浏览代码

Oh well

Signed-off-by: Mario Danic <mario@lovelyhq.com>
Mario Danic 7 年之前
父节点
当前提交
803bf2194e
共有 1 个文件被更改,包括 16 次插入1 次删除
  1. 16 1
      src/main/java/com/owncloud/android/ui/activity/ContactsPreferenceActivity.java

+ 16 - 1
src/main/java/com/owncloud/android/ui/activity/ContactsPreferenceActivity.java

@@ -114,7 +114,7 @@ public class ContactsPreferenceActivity extends FileActivity implements FileFrag
         PersistableBundleCompat bundle = new PersistableBundleCompat();
         bundle.putString(ContactsBackupJob.ACCOUNT, account.name);
 
-        cancelContactBackupJobForAccount(MainApp.getAppContext(), account);
+        cancelPreviousContactBackupJobForAccount(MainApp.getAppContext(), account);
 
         new JobRequest.Builder(ContactsBackupJob.TAG)
                 .setExtras(bundle)
@@ -134,6 +134,21 @@ public class ContactsPreferenceActivity extends FileActivity implements FileFrag
         }
     }
 
+    public static void cancelPreviousContactBackupJobForAccount(Context context, Account account) {
+        Log_OC.d(TAG, "disabling existing contacts backup job for account: " + account.name);
+
+        JobManager jobManager = JobManager.create(context);
+        Set<JobRequest> jobs = jobManager.getAllJobRequestsForTag(ContactsBackupJob.TAG);
+
+        for (JobRequest jobRequest : jobs) {
+            PersistableBundleCompat extras = jobRequest.getExtras();
+            if (extras.getString(ContactsBackupJob.ACCOUNT, "").equalsIgnoreCase(account.name) &&
+                    jobRequest.isPeriodic()) {
+                jobManager.cancel(jobRequest.getJobId());
+            }
+        }
+    }
+
     public static void cancelContactBackupJobForAccount(Context context, Account account) {
         Log_OC.d(TAG, "disabling contacts backup job for account: " + account.name);