Browse Source

Add expert mode

Signed-off-by: Mario Danic <mario@lovelyhq.com>
Mario Danic 7 years ago
parent
commit
fb3e97bf10

+ 1 - 2
src/main/java/com/owncloud/android/files/services/FileUploader.java

@@ -374,8 +374,7 @@ public class FileUploader extends Service
             boolean accountMatch;
             for ( OCUpload failedUpload: failedUploads) {
                 accountMatch = (account == null || account.name.equals(failedUpload.getAccountName()));
-                resultMatch = ((uploadResult == null || uploadResult.equals(failedUpload.getLastResult())) &&
-                        !failedUpload.getLastResult().equals(UploadResult.FILE_NOT_FOUND));
+                resultMatch = ((uploadResult == null || uploadResult.equals(failedUpload.getLastResult()))));
                 if (accountMatch && resultMatch) {
                     if (currentAccount == null ||
                             !currentAccount.name.equals(failedUpload.getAccountName())) {

+ 19 - 2
src/main/java/com/owncloud/android/ui/activity/Preferences.java

@@ -107,6 +107,7 @@ public class Preferences extends PreferenceActivity
     private SwitchPreference pCode;
     private SwitchPreference fPrint;
     private SwitchPreference mShowHiddenFiles;
+    private SwitchPreference mExpertMode;
     private Preference pAboutApp;
     private AppCompatDelegate mDelegate;
 
@@ -333,9 +334,21 @@ public class Preferences extends PreferenceActivity
             });
         } else {
             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;
+            }
+        });
+
         PreferenceCategory preferenceCategoryMore = (PreferenceCategory) findPreference("more");
         preferenceCategoryMore.setTitle(ThemeUtils.getColoredTitle(getString(R.string.prefs_category_more),
                 accentColor));
@@ -469,7 +482,11 @@ public class Preferences extends PreferenceActivity
             }
         }
 
-        boolean loggerEnabled = getResources().getBoolean(R.bool.logger_enabled) || BuildConfig.DEBUG;
+        SharedPreferences appPrefs =
+                PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
+
+        boolean loggerEnabled = getResources().getBoolean(R.bool.logger_enabled) || BuildConfig.DEBUG ||
+                appPrefs.getBoolean("expert_mode", false);
         Preference pLogger = findPreference("logger");
         if (pLogger != null) {
             if (loggerEnabled) {

+ 18 - 2
src/main/java/com/owncloud/android/ui/activity/UploadListActivity.java

@@ -29,9 +29,11 @@ import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.ServiceConnection;
+import android.content.SharedPreferences;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.IBinder;
+import android.preference.PreferenceManager;
 import android.support.design.widget.BottomNavigationView;
 import android.support.v4.app.FragmentTransaction;
 import android.view.Menu;
@@ -40,12 +42,14 @@ import android.view.MenuItem;
 import android.view.View;
 import android.widget.Toast;
 
+import com.evernote.android.job.JobRequest;
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.datamodel.UploadsStorageManager;
 import com.owncloud.android.db.OCUpload;
 import com.owncloud.android.files.services.FileUploader;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
+import com.owncloud.android.jobs.FilesSyncJob;
 import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.utils.Log_OC;
@@ -234,6 +238,14 @@ public class UploadListActivity extends FileActivity implements UploadListFragme
                 uploadListFragment.updateUploads();
                 break;
 
+            case R.id.action_force_rescan:
+                new JobRequest.Builder(FilesSyncJob.TAG)
+                        .setExact(1_000L)
+                        .setUpdateCurrent(false)
+                        .build()
+                        .schedule();
+                break;
+
             default:
                 retval = super.onOptionsItemSelected(item);
         }
@@ -243,8 +255,12 @@ public class UploadListActivity extends FileActivity implements UploadListFragme
 
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
-        MenuInflater inflater = getMenuInflater();
-        inflater.inflate(R.menu.upload_list_menu, menu);
+        SharedPreferences appPrefs =
+                PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
+        if (appPrefs.getBoolean("expert_mode", false)) {
+            MenuInflater inflater = getMenuInflater();
+            inflater.inflate(R.menu.upload_list_menu, menu);
+        }
         return true;
     }
 

+ 26 - 13
src/main/res/menu/upload_list_menu.xml

@@ -17,18 +17,31 @@
   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 -->
-<menu xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item
-        android:id="@+id/action_retry_uploads"
-        android:title="@string/action_retry_uploads"/>
-    <item
-        android:id="@+id/action_clear_failed_uploads"
-        android:title="@string/action_clear_failed_uploads"/>
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <group
+        android:id="@+id/upload_list_actions"
+        android:checkableBehavior="none">
 
-    <item
-        android:id="@+id/action_clear_successfull_uploads"
-        android:title="@string/action_clear_successful_uploads"/>
-    <item
-        android:id="@+id/action_clear_finished_uploads"
-        android:title="@string/action_clear_finished_uploads"/>
+        <item
+            android:id="@+id/action_retry_uploads"
+            android:title="@string/action_retry_uploads"/>
+        <item
+            android:id="@+id/action_clear_failed_uploads"
+            android:title="@string/action_clear_failed_uploads"/>
+
+        <item
+            android:id="@+id/action_clear_successfull_uploads"
+            android:title="@string/action_clear_successful_uploads"/>
+        <item
+            android:id="@+id/action_clear_finished_uploads"
+            android:title="@string/action_clear_finished_uploads"/>
+    </group>
+    <group
+        android:id="@+id/upload_list_force_scan"
+        android:checkableBehavior="none">
+
+        <item
+            android:id="@+id/action_force_rescan"
+            android:title="@string/action_force_rescan"/>
+    </group>
 </menu>

+ 2 - 0
src/main/res/values/strings.xml

@@ -45,6 +45,7 @@
     <string name="prefs_passcode">Passcode lock</string>
     <string name="prefs_fingerprint">Fingerprint lock</string>
     <string name="prefs_fingerprint_notsetup">No fingerprints have been set up.</string>
+    <string name="prefs_expert_mode">Expert mode</string>
     <string name="prefs_show_hidden_files">Show hidden files</string>
     <string name="prefs_instant_upload">Instant uploading of pictures</string>
     <string name="prefs_instant_upload_summary">Upload pictures taken by camera instantly</string>
@@ -543,6 +544,7 @@
     <string name="action_clear_failed_uploads">Clear failed uploads</string>
     <string name="action_clear_successful_uploads">Clear successful uploads</string>
     <string name="action_clear_finished_uploads">Clear finished uploads</string>
+    <string name="action_force_rescan">Force rescan</string>
 
     <string name="action_switch_grid_view">Grid view</string>
     <string name="action_switch_list_view">List view</string>

+ 3 - 0
src/main/res/xml/preferences.xml

@@ -102,6 +102,9 @@
 		<com.owncloud.android.ui.ThemeableSwitchPreference
 			android:title="@string/prefs_show_hidden_files"
 			android:key="show_hidden_files"/>
+		<com.owncloud.android.ui.ThemeableSwitchPreference
+			android:title="@string/prefs_expert_mode"
+			android:key="expert_mode"/>
 	</PreferenceCategory>
 
 	<PreferenceCategory android:title="@string/prefs_category_more" android:key="more">