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 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; + } + } } 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..280281dbcbf3 100644 --- a/src/main/java/com/owncloud/android/ui/activity/Preferences.java +++ b/src/main/java/com/owncloud/android/ui/activity/Preferences.java @@ -339,17 +339,23 @@ public boolean onPreferenceClick(Preference preference) { } 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)) { + preferenceCategoryDetails.removePreference(mExpertMode); + } else { + 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), 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