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