Skip to content

Commit 1b054f8

Browse files
authored
Merge pull request #1074 from haiwen/v3012-share-stream
v3.0.12 - New Logo - Fix some bugs - Improve some features
2 parents 7a5c4b1 + 2dfcf5c commit 1b054f8

File tree

109 files changed

+747
-595
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+747
-595
lines changed

app/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ android {
1414
targetSdkVersion rootProject.ext.targetSdkVersion
1515
compileSdk rootProject.ext.compileSdkVersion
1616

17-
versionCode 170
18-
versionName "3.0.11"
17+
versionCode 175
18+
versionName "3.0.12"
1919
multiDexEnabled true
2020

2121
resValue "string", "authorities", defaultConfig.applicationId + '.debug.cameraupload.provider'
@@ -27,7 +27,7 @@ android {
2727
javaCompileOptions {
2828
annotationProcessorOptions {
2929
arguments["room.incremental"] = "true"
30-
arguments["workmanager.inline"] = "false" // 禁用 WorkManager 的自动初始化
30+
// arguments["workmanager.inline"] = "false"
3131
}
3232
}
3333
}
17.5 KB
Loading
-4.92 KB
Binary file not shown.
-2.09 KB
Binary file not shown.
-3.17 KB
Binary file not shown.
-6.57 KB
Binary file not shown.
-11.3 KB
Binary file not shown.
Binary file not shown.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="108dp"
3+
android:height="108dp"
4+
android:viewportWidth="108"
5+
android:viewportHeight="108">
6+
<group android:scaleX="0.95"
7+
android:scaleY="0.95"
8+
android:translateX="2.7"
9+
android:translateY="2.7">
10+
<path
11+
android:pathData="M24,51.15C24,50.13 24.82,49.32 25.82,49.32C26.3,49.32 26.73,49.51 27.06,49.81C27.05,49.65 27.04,49.49 27.04,49.33C27.04,45.93 29.76,43.19 33.13,43.19C34,43.19 34.82,43.37 35.58,43.71C35.57,43.54 35.56,43.36 35.56,43.2C35.56,38.12 39.64,34 44.69,34C49.69,34 53.76,38.07 53.81,43.11C52.16,44.57 50.85,46.42 50,48.5C48.37,47.48 46.45,46.87 44.39,46.87C40.14,46.87 36.48,49.3 34.76,52.98H28.26H25.82C24.82,52.96 24,52.16 24,51.15ZM71.69,45.64C69.44,43.37 66.35,41.97 62.92,41.97C56.67,41.97 51.49,46.64 50.64,52.71C49.1,50.64 46.64,49.29 43.87,49.29C39.19,49.29 35.4,53.12 35.4,57.83C35.4,59.21 35.72,60.5 36.29,61.65C33.35,62.25 31.17,64.56 31.17,67.29C31.17,70.5 34.15,73.09 37.83,73.09C39.45,73.09 40.94,72.58 42.09,71.73L55.7,58.23C57.21,56.84 59.21,56 61.41,56C66.01,56 69.76,59.7 69.88,64.31C69.88,64.31 69.88,64.3 69.87,64.3C69.95,65.67 69.24,67.04 67.94,67.8C66.13,68.85 63.86,68.29 62.87,66.55C61.87,64.8 62.52,62.54 64.34,61.48C64.76,61.24 65.2,61.08 65.65,61C65.27,60.92 64.86,60.88 64.45,60.88C61.11,60.88 58.39,63.61 58.39,66.99C58.39,70.36 61.1,73.09 64.45,73.09C64.59,73.09 64.74,73.08 64.89,73.07L64.88,73.05L65.05,73.04H76.93V73.08C80.56,72.92 84,69.54 84,65.43C84,61.22 80.43,57.78 76.25,57.78C76.24,57.78 76.24,57.78 76.23,57.78C75.56,59 74.74,59.71 73.81,60.47C74.78,58.68 75.34,56.64 75.34,54.46C75.32,51.01 73.93,47.9 71.69,45.64Z"
12+
android:fillColor="#08A800"/>
13+
</group>
14+
</vector>

app/src/debug/res/drawable/logo_debug_large.xml

Lines changed: 0 additions & 36 deletions
This file was deleted.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3+
<background android:drawable="@color/ic_launcher_background"/>
4+
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
5+
</adaptive-icon>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3+
<background android:drawable="@color/ic_launcher_background"/>
4+
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
5+
</adaptive-icon>
-4.92 KB
Binary file not shown.
1.35 KB
Binary file not shown.
Binary file not shown.
-3.17 KB
Binary file not shown.
876 Bytes
Binary file not shown.
Binary file not shown.
-6.57 KB
Binary file not shown.
1.77 KB
Binary file not shown.
Binary file not shown.
-11.3 KB
Binary file not shown.
2.69 KB
Binary file not shown.
Binary file not shown.
-14.7 KB
Binary file not shown.
Binary file not shown.
Binary file not shown.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<color name="ic_launcher_background">#FFFFFF</color>
4+
</resources>

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,11 @@
6161
<application
6262
android:name=".SeadroidApplication"
6363
android:allowBackup="true"
64-
android:icon="@drawable/ic_launcher"
64+
android:icon="@mipmap/ic_launcher"
6565
android:label="@string/app_name"
6666
android:networkSecurityConfig="@xml/network_security_config"
6767
android:requestLegacyExternalStorage="true"
68+
android:roundIcon="@mipmap/ic_launcher_round"
6869
android:theme="@style/AppTheme.Material3">
6970

7071
<!-- <provider-->
16.5 KB
Loading

app/src/main/java/com/seafile/seadroid2/SeafException.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public class SeafException extends Exception {
4343
public static final SeafException REQUEST_TRANSFER_URL_EXCEPTION = new SeafException(24, "request transfer url failed");
4444
public static final SeafException IO_EXCEPTION = new SeafException(25, "io exception");
4545
public static final SeafException PERMISSION_EXCEPTION = new SeafException(26, "miss permission");
46+
public static final SeafException NETWORK_UNAVAILABLE = new SeafException(27, SeadroidApplication.getAppContext().getString(R.string.network_unavailable));
4647

4748
public SeafException(int code, String msg) {
4849
super(msg);

app/src/main/java/com/seafile/seadroid2/config/AbsLayoutItemType.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ public class AbsLayoutItemType {
66
*/
77
public static final int NOT_SUPPORTED = -1;
88

9-
//
10-
public static final int BLANK = -2;
11-
129
public static final int REPO = 10;
1310
public static final int DIRENT_LIST = 11;
1411
public static final int DIRENT_GRID = 12;

app/src/main/java/com/seafile/seadroid2/config/Constants.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ private Constants() {
1010

1111

1212
public static final int PERIODIC_SCAN_INTERVALS = 1000 * 60 * 5; //5m
13-
public static final int PASSWORD_MINIMUM_LENGTH = 8;
1413
public static final String URL_PRIVACY = "https://www.seafile.com/privacy/";
1514

1615
public static class ObjType {

app/src/main/java/com/seafile/seadroid2/framework/file_monitor/FileSyncService.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ private void startFolderMonitor(List<String> pathList) {
218218
List<FileAlterationObserver> observerList = new ArrayList<>();
219219
for (String str : pathList) {
220220

221-
SLogs.d("backup path: " + str);
221+
SLogs.d(FileSyncService.class, "backup path: " + str);
222222
FileAlterationObserver observer = new FileAlterationObserver(str, FILE_FILTER);
223223

224224
observer.addListener(new FileSyncService.FolderStateChangedListener());
@@ -282,48 +282,48 @@ public FolderStateChangedListener() {
282282

283283
@Override
284284
public void onStart(FileAlterationObserver observer) {
285-
SLogs.d("FileMonitor onStart: " + observer.getDirectory());
285+
SLogs.d(FileSyncService.class, "monitor start: " + observer.getDirectory());
286286
}
287287

288288
@Override
289289
public void onDirectoryCreate(File directory) {
290-
SLogs.d("FileMonitor onDirectoryCreate = " + directory.getAbsolutePath());
290+
SLogs.d(FileSyncService.class, "onDirectoryCreate = " + directory.getAbsolutePath());
291291
// doBackup("create", directory);
292292
}
293293

294294
@Override
295295
public void onDirectoryChange(File directory) {
296-
SLogs.d("FileMonitor onDirectoryChange = " + directory.getAbsolutePath());
296+
SLogs.d(FileSyncService.class, "onDirectoryChange = " + directory.getAbsolutePath());
297297
// doBackup("change", directory);
298298
}
299299

300300
@Override
301301
public void onDirectoryDelete(File directory) {
302-
SLogs.d("FileMonitor onDirectoryDelete = " + directory.getAbsolutePath());
302+
SLogs.d(FileSyncService.class, "onDirectoryDelete = " + directory.getAbsolutePath());
303303
// doBackup("delete", directory);
304304
}
305305

306306
@Override
307307
public void onFileCreate(File file) {
308-
SLogs.d("FileMonitor onFileCreate = " + file.getAbsolutePath());
308+
SLogs.d(FileSyncService.class, "onFileCreate = " + file.getAbsolutePath());
309309
doBackup("create", file);
310310
}
311311

312312
@Override
313313
public void onFileChange(File file) {
314-
SLogs.d("FileMonitor onFileChange = " + file.getAbsolutePath());
314+
SLogs.d(FileSyncService.class, "onFileChange = " + file.getAbsolutePath());
315315
doBackup("change", file);
316316
}
317317

318318
@Override
319319
public void onFileDelete(File file) {
320-
SLogs.d("FileMonitor onFileDelete = " + file.getAbsolutePath());
320+
SLogs.d(FileSyncService.class, "onFileDelete = " + file.getAbsolutePath());
321321
// doBackup("delete", file);
322322
}
323323

324324
@Override
325325
public void onStop(FileAlterationObserver observer) {
326-
SLogs.d("FileMonitor onStop");
326+
SLogs.d(FileSyncService.class, "monitor stop");
327327
}
328328
}
329329

@@ -335,7 +335,7 @@ public void onDestroy() {
335335
}
336336

337337
private void destroy() {
338-
SLogs.e("file monitor service destroy");
338+
SLogs.d(FileSyncService.class, "file monitor service destroy");
339339
stopFolderMonitor();
340340

341341
//

app/src/main/java/com/seafile/seadroid2/framework/model/BlankModel.java

Lines changed: 0 additions & 8 deletions
This file was deleted.

app/src/main/java/com/seafile/seadroid2/framework/model/sdoc/SDocPageOptionsModel.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import android.os.Parcel;
44
import android.os.Parcelable;
5+
import android.text.TextUtils;
56

67
public class SDocPageOptionsModel implements Parcelable {
78
public String docName;
@@ -15,6 +16,17 @@ public class SDocPageOptionsModel implements Parcelable {
1516

1617
public boolean enableMetadataManagement;
1718

19+
public boolean canUse() {
20+
if (TextUtils.isEmpty(seadocServerUrl)
21+
|| TextUtils.isEmpty(docUuid)
22+
|| TextUtils.isEmpty(repoID)
23+
|| TextUtils.isEmpty(seadocAccessToken)) {
24+
return false;
25+
}
26+
27+
return true;
28+
}
29+
1830
@Override
1931
public String toString() {
2032
return "SDocPageOptionsModel{" +

app/src/main/java/com/seafile/seadroid2/framework/util/ExceptionUtils.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,11 @@ public static SeafException parse(int errorCode, String bodyString) {
9292
if (bodyString.toLowerCase().contains("please provide password to view it")) {
9393
return SeafException.INVALID_PASSWORD;
9494
}
95+
96+
if (bodyString.toLowerCase().contains("wrong password")) {
97+
return SeafException.INVALID_PASSWORD;
98+
}
99+
95100
return SeafException.NOT_FOUND_LOGGED_USER_EXCEPTION;
96101
}
97102

app/src/main/java/com/seafile/seadroid2/framework/util/Logs.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,10 @@ public static void d(String msg) {
113113
XLog.d(msg);
114114
}
115115

116+
public static void d(Class<?> clz, String msg) {
117+
XLog.d(clz.getSimpleName() + " -> " + msg);
118+
}
119+
116120
public static void d(String msg, Throwable tr) {
117121
XLog.d(msg, tr);
118122
}

app/src/main/java/com/seafile/seadroid2/framework/util/Objs.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ public static List<BaseModel> convertToAdapterList(List<RepoModel> list, boolean
175175
List<RepoModel> mineList = treeMap.get(RepoType.TYPE_MINE);
176176
if (!CollectionUtils.isEmpty(mineList)) {
177177
List<RepoModel> sortedList = sortRepos(mineList);
178-
newRvList.add(new GroupItemModel(R.string.personal, sortedList));
178+
newRvList.add(new GroupItemModel(R.string.my_libraries, sortedList));
179179
newRvList.addAll(sortedList);
180180
}
181181

app/src/main/java/com/seafile/seadroid2/framework/worker/BackgroundJobManagerImpl.java

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
import com.seafile.seadroid2.framework.worker.download.DownloadFileScannerWorker;
2121
import com.seafile.seadroid2.framework.worker.download.DownloadWorker;
2222
import com.seafile.seadroid2.framework.worker.reupoad.DownloadedFileMonitorWorker;
23-
import com.seafile.seadroid2.framework.worker.upload.FolderBackupScanWorker;
24-
import com.seafile.seadroid2.framework.worker.upload.MediaBackupScanWorker;
2523
import com.seafile.seadroid2.framework.worker.upload.FileUploadWorker;
24+
import com.seafile.seadroid2.framework.worker.upload.FolderBackupScanWorker;
2625
import com.seafile.seadroid2.framework.worker.upload.FolderBackupUploadWorker;
26+
import com.seafile.seadroid2.framework.worker.upload.MediaBackupScanWorker;
2727
import com.seafile.seadroid2.framework.worker.upload.MediaBackupUploadWorker;
2828

2929
import java.util.List;
@@ -55,6 +55,8 @@ private static class SingletonHolder {
5555
}
5656

5757
private <T extends ListenableWorker> OneTimeWorkRequest.Builder oneTimeRequestBuilder(Class<T> tClass) {
58+
SLogs.d(BackgroundJobManagerImpl.class, "Creating WorkRequest for: " + tClass.getSimpleName());
59+
5860
return new OneTimeWorkRequest.Builder(tClass)
5961
.setBackoffCriteria(BackoffPolicy.LINEAR, 5, TimeUnit.SECONDS)
6062
.addTag(TAG_ALL)
@@ -72,7 +74,7 @@ private <T extends ListenableWorker> PeriodicWorkRequest.Builder periodicRequest
7274
return new PeriodicWorkRequest.Builder(tClass, intervalMins, TimeUnit.MINUTES, flexIntervalMins, TimeUnit.MINUTES)
7375
.addTag(TAG_ALL)
7476
.addTag(TAG_TRANSFER)
75-
.addTag(tClass.getSimpleName());
77+
.addTag(TAG_TRANSFER + ":" + tClass.getSimpleName());
7678
}
7779

7880
public void cancelById(UUID uid) {
@@ -94,6 +96,7 @@ public WorkManager getWorkManager() {
9496
////////////////////// media //////////////////////
9597

9698
public void startMediaBackupChain(boolean isForce) {
99+
SLogs.d(BackgroundJobManagerImpl.class, "startMediaBackupChain: isForce:" + isForce);
97100
cancelMediaBackupChain();
98101

99102
OneTimeWorkRequest scanRequest = getMediaScannerWorkerRequest(isForce);
@@ -145,12 +148,6 @@ private OneTimeWorkRequest getMediaUploadWorkerRequest() {
145148
.build();
146149
}
147150

148-
public void restartMediaBackupWorker() {
149-
SLogs.e("restartMediaBackupWorker");
150-
cancelByTag(TAG_ALBUM_BACKUP);
151-
startMediaBackupChain(false);
152-
}
153-
154151
//cancel media
155152
public void cancelMediaBackupChain() {
156153
cancelByTag(TAG_ALBUM_BACKUP);
@@ -159,6 +156,7 @@ public void cancelMediaBackupChain() {
159156
////////////////////// upload folder //////////////////////
160157

161158
public void startFolderBackupChain(boolean isForce) {
159+
SLogs.d(BackgroundJobManagerImpl.class, "startFolderBackupChain: isForce:" + isForce);
162160
cancelFolderBackupWorker();
163161

164162
OneTimeWorkRequest scanRequest = getFolderBackupScanWorkerRequest(isForce);
@@ -209,18 +207,14 @@ private OneTimeWorkRequest getFolderBackupUploadWorkerRequest() {
209207
.build();
210208
}
211209

212-
public void restartFolderBackupWorker() {
213-
cancelByTag(TAG_FOLDER_BACKUP);
214-
215-
startFolderBackupChain(false);
216-
}
217-
218210
public void cancelFolderBackupWorker() {
211+
SLogs.d(BackgroundJobManagerImpl.class, "cancelFolderBackupWorker");
219212
cancelByTag(TAG_FOLDER_BACKUP);
220213
}
221214

222215
////////////////////// upload file //////////////////////
223216
public void startFileUploadWorker() {
217+
SLogs.d(BackgroundJobManagerImpl.class, "startFileUploadWorker");
224218
String workerName = FileUploadWorker.class.getSimpleName();
225219
OneTimeWorkRequest request = getFileUploadRequest();
226220
getWorkManager().enqueueUniqueWork(workerName, ExistingWorkPolicy.KEEP, request);
@@ -251,6 +245,7 @@ public void startDownloadChain() {
251245
}
252246

253247
public void startDownloadChain(List<String> direntIds) {
248+
SLogs.d(BackgroundJobManagerImpl.class, "start download chain");
254249
OneTimeWorkRequest scanRequest = getDownloadScanRequest(direntIds);
255250
OneTimeWorkRequest downloadRequest = getDownloadRequest();
256251

@@ -304,7 +299,9 @@ public void cancelDownloadWorker() {
304299
////////////////////// downloaded file monitor //////////////////////
305300

306301
public void startCheckDownloadedFileChain() {
302+
SLogs.d(BackgroundJobManagerImpl.class, "startCheckDownloadedFileChain");
307303
OneTimeWorkRequest checkRequest = getCheckDownloadedFileRequest();
304+
308305
String workerName = DownloadedFileMonitorWorker.class.getSimpleName();
309306
getWorkManager().enqueueUniqueWork(workerName, ExistingWorkPolicy.KEEP, checkRequest);
310307
}
@@ -315,13 +312,12 @@ private OneTimeWorkRequest getCheckDownloadedFileRequest() {
315312
.build();
316313
return oneTimeRequestBuilder(DownloadedFileMonitorWorker.class)
317314
.setConstraints(constraints)
315+
.setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST)
318316
.build();
319317
}
320318

321319

322320
public void cancelAllJobs() {
323321
getWorkManager().cancelAllWork();
324322
}
325-
326-
327323
}

0 commit comments

Comments
 (0)