From efd1167ce6661a68d8c5927b17d8498d92ed747f Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Wed, 9 Aug 2017 14:14:56 +0200 Subject: [PATCH 1/6] make auto upload light working again --- .../owncloud/android/jobs/FilesSyncJob.java | 65 +++++++++++++++---- 1 file changed, 54 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/owncloud/android/jobs/FilesSyncJob.java b/src/main/java/com/owncloud/android/jobs/FilesSyncJob.java index 216cf3e7a8de..c43fd5d7eb33 100644 --- a/src/main/java/com/owncloud/android/jobs/FilesSyncJob.java +++ b/src/main/java/com/owncloud/android/jobs/FilesSyncJob.java @@ -1,4 +1,4 @@ -/** +/* * Nextcloud Android client application * * @author Mario Danic @@ -24,6 +24,7 @@ import android.accounts.Account; import android.content.ContentResolver; import android.content.Context; +import android.content.res.Resources; import android.os.PowerManager; import android.support.annotation.NonNull; import android.support.media.ExifInterface; @@ -32,7 +33,9 @@ import com.evernote.android.job.Job; import com.evernote.android.job.util.support.PersistableBundleCompat; import com.owncloud.android.MainApp; +import com.owncloud.android.R; import com.owncloud.android.authentication.AccountUtils; +import com.owncloud.android.datamodel.ArbitraryDataProvider; import com.owncloud.android.datamodel.FilesystemDataProvider; import com.owncloud.android.datamodel.MediaFolderType; import com.owncloud.android.datamodel.SyncedFolder; @@ -40,6 +43,7 @@ import com.owncloud.android.files.services.FileUploader; import com.owncloud.android.lib.common.utils.Log_OC; import com.owncloud.android.operations.UploadFileOperation; +import com.owncloud.android.ui.activity.Preferences; import com.owncloud.android.utils.FileStorageUtils; import com.owncloud.android.utils.FilesSyncHelper; import com.owncloud.android.utils.MimeTypeUtil; @@ -78,6 +82,9 @@ protected Result onRunJob(Params params) { PersistableBundleCompat bundle = params.getExtras(); final boolean skipCustom = bundle.getBoolean(SKIP_CUSTOM, false); + Resources resources = MainApp.getAppContext().getResources(); + boolean lightVersion = resources.getBoolean(R.bool.syncedFolder_light); + FilesSyncHelper.restartJobsIfNeeded(); FilesSyncHelper.insertAllDBEntries(skipCustom); @@ -95,9 +102,9 @@ protected Result onRunJob(Params params) { final Locale currentLocale = context.getResources().getConfiguration().locale; if (MediaFolderType.IMAGE == syncedFolder.getType()) { - String mimetypeString = FileStorageUtils.getMimeTypeFromName(file.getAbsolutePath()); - if ("image/jpeg".equalsIgnoreCase(mimetypeString) || "image/tiff". - equalsIgnoreCase(mimetypeString)) { + String mimeTypeString = FileStorageUtils.getMimeTypeFromName(file.getAbsolutePath()); + if ("image/jpeg".equalsIgnoreCase(mimeTypeString) || "image/tiff". + equalsIgnoreCase(mimeTypeString)) { try { ExifInterface exifInterface = new ExifInterface(file.getAbsolutePath()); String exifDate = exifInterface.getAttribute(ExifInterface.TAG_DATETIME); @@ -116,23 +123,46 @@ protected Result onRunJob(Params params) { } } - boolean needsCharging = syncedFolder.getChargingOnly(); - boolean needsWifi = syncedFolder.getWifiOnly(); - String mimeType = MimeTypeUtil.getBestMimeTypeByFilename(file.getAbsolutePath()); Account account = AccountUtils.getOwnCloudAccountByName(context, syncedFolder.getAccount()); + String remotePath; + boolean subfolderByDate; + Integer uploadAction; + boolean needsCharging; + boolean needsWifi; + + if (lightVersion) { + ArbitraryDataProvider arbitraryDataProvider = new ArbitraryDataProvider( + context.getContentResolver()); + + needsCharging = resources.getBoolean(R.bool.syncedFolder_light_on_charging); + needsWifi = account == null || arbitraryDataProvider.getBooleanValue(account.name, + Preferences.SYNCED_FOLDER_LIGHT_UPLOAD_ON_WIFI); + String uploadActionString = resources.getString(R.string.syncedFolder_light_upload_behaviour); + uploadAction = getUploadAction(uploadActionString); + + subfolderByDate = resources.getBoolean(R.bool.syncedFolder_light_use_subfolders); + + remotePath = resources.getString(R.string.syncedFolder_remote_folder); + } else { + needsCharging = syncedFolder.getChargingOnly(); + needsWifi = syncedFolder.getWifiOnly(); + uploadAction = syncedFolder.getUploadAction(); + subfolderByDate = syncedFolder.getSubfolderByDate(); + remotePath = syncedFolder.getRemotePath(); + } + requester.uploadFileWithOverwrite( context, account, file.getAbsolutePath(), FileStorageUtils.getInstantUploadFilePath( currentLocale, - syncedFolder.getRemotePath(), file.getName(), - lastModificationTime, - syncedFolder.getSubfolderByDate()), - syncedFolder.getUploadAction(), + remotePath, file.getName(), + lastModificationTime, subfolderByDate), + uploadAction, mimeType, true, // create parent folder if not existent UploadFileOperation.CREATED_AS_INSTANT_PICTURE, @@ -150,4 +180,17 @@ protected Result onRunJob(Params params) { wakeLock.release(); return Result.SUCCESS; } + + private Integer getUploadAction(String action) { + switch (action) { + case "LOCAL_BEHAVIOUR_FORGET": + return FileUploader.LOCAL_BEHAVIOUR_FORGET; + case "LOCAL_BEHAVIOUR_MOVE": + return FileUploader.LOCAL_BEHAVIOUR_MOVE; + case "LOCAL_BEHAVIOUR_DELETE": + return FileUploader.LOCAL_BEHAVIOUR_DELETE; + default: + return FileUploader.LOCAL_BEHAVIOUR_FORGET; + } + } } From f63efd0c3d1ab98ec663db97d78c64857557ea28 Mon Sep 17 00:00:00 2001 From: nextcloud-android-bot <> Date: Wed, 9 Aug 2017 12:30:08 +0000 Subject: [PATCH 2/6] Drone: update Lint results to reflect reduced error/warning count [skip ci] --- scripts/lint/lint-results.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/lint/lint-results.txt b/scripts/lint/lint-results.txt index dd4e869f14f6..5bb29643d8b5 100644 --- a/scripts/lint/lint-results.txt +++ b/scripts/lint/lint-results.txt @@ -1,2 +1,2 @@ DO NOT TOUCH; GENERATED BY DRONE - Lint Report: 3 errors and 653 warnings + Lint Report: 3 errors and 646 warnings From 185887bb4216a8fbc006fe441ce8b841675dc939 Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Thu, 10 Aug 2017 11:13:04 +0200 Subject: [PATCH 3/6] disable expert mode on auto upload light, also no custom folders --- .../android/ui/activity/Preferences.java | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/owncloud/android/ui/activity/Preferences.java b/src/main/java/com/owncloud/android/ui/activity/Preferences.java index 67651201a8dd..97e35e7756c3 100644 --- a/src/main/java/com/owncloud/android/ui/activity/Preferences.java +++ b/src/main/java/com/owncloud/android/ui/activity/Preferences.java @@ -338,18 +338,20 @@ public boolean onPreferenceClick(Preference preference) { preferenceCategoryDetails.removePreference(mShowHiddenFiles); } - mExpertMode = (SwitchPreference) findPreference("expert_mode"); - mExpertMode.setOnPreferenceClickListener(new OnPreferenceClickListener() { - @Override - public boolean onPreferenceClick(Preference preference) { - SharedPreferences appPrefs = - PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); - SharedPreferences.Editor editor = appPrefs.edit(); - editor.putBoolean("expert_mode", mExpertMode.isChecked()); - editor.apply(); - return true; - } - }); + if (!getResources().getBoolean(R.bool.syncedFolder_light)) { + mExpertMode = (SwitchPreference) findPreference("expert_mode"); + mExpertMode.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + SharedPreferences appPrefs = + PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + SharedPreferences.Editor editor = appPrefs.edit(); + editor.putBoolean("expert_mode", mExpertMode.isChecked()); + editor.apply(); + return true; + } + }); + } PreferenceCategory preferenceCategoryMore = (PreferenceCategory) findPreference("more"); preferenceCategoryMore.setTitle(ThemeUtils.getColoredTitle(getString(R.string.prefs_category_more), From fecc46830774a7ac232a2ed2adfd215e45060770 Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Thu, 10 Aug 2017 12:29:42 +0200 Subject: [PATCH 4/6] removed some unused code to get the warnings down ;-) --- src/main/res/values/dims.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/res/values/dims.xml b/src/main/res/values/dims.xml index a3556ead6caa..4e20c1b53632 100644 --- a/src/main/res/values/dims.xml +++ b/src/main/res/values/dims.xml @@ -40,7 +40,6 @@ 32dp 8dp 4dp - 2dp -2dp 56dp 72dp From 67c77adf40feb65d64b5fe0b6ace80d58eba274e Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Thu, 10 Aug 2017 12:34:21 +0200 Subject: [PATCH 5/6] removed some unused code to get the warnings down ;-) --- src/main/res/anim/disappear.xml | 27 --------------------------- src/main/res/values/dims.xml | 1 + 2 files changed, 1 insertion(+), 27 deletions(-) delete mode 100644 src/main/res/anim/disappear.xml diff --git a/src/main/res/anim/disappear.xml b/src/main/res/anim/disappear.xml deleted file mode 100644 index 5fd6f075123f..000000000000 --- a/src/main/res/anim/disappear.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/main/res/values/dims.xml b/src/main/res/values/dims.xml index 4e20c1b53632..a3556ead6caa 100644 --- a/src/main/res/values/dims.xml +++ b/src/main/res/values/dims.xml @@ -40,6 +40,7 @@ 32dp 8dp 4dp + 2dp -2dp 56dp 72dp From 86844523ee634059fdc27984efd91274ec77b0fb Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Thu, 10 Aug 2017 13:52:20 +0200 Subject: [PATCH 6/6] disable expert mode on auto upload light, also no custom folders, doing it right now... --- .../java/com/owncloud/android/ui/activity/Preferences.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/owncloud/android/ui/activity/Preferences.java b/src/main/java/com/owncloud/android/ui/activity/Preferences.java index 97e35e7756c3..280281dbcbf3 100644 --- a/src/main/java/com/owncloud/android/ui/activity/Preferences.java +++ b/src/main/java/com/owncloud/android/ui/activity/Preferences.java @@ -338,7 +338,11 @@ public boolean onPreferenceClick(Preference preference) { preferenceCategoryDetails.removePreference(mShowHiddenFiles); } - if (!getResources().getBoolean(R.bool.syncedFolder_light)) { + mExpertMode = (SwitchPreference) findPreference("expert_mode"); + + if (getResources().getBoolean(R.bool.syncedFolder_light)) { + preferenceCategoryDetails.removePreference(mExpertMode); + } else { mExpertMode = (SwitchPreference) findPreference("expert_mode"); mExpertMode.setOnPreferenceClickListener(new OnPreferenceClickListener() { @Override