Bug 1360359 - WIP Part 3: TODO stuff draft
authorGrigory Kruglov <gkruglov@mozilla.com>
Thu, 27 Apr 2017 20:58:39 -0400
changeset 569901 647c4381f98c21c0a5202cd044c8b3de19d2479d
parent 569900 fef12de1388baf87cb78f15d1d9ead6a9eb977cd
child 626322 fde134d17c982cbcb8af2f6c9d57259c06223f63
push id56303
push userbmo:gkruglov@mozilla.com
push dateFri, 28 Apr 2017 01:01:51 +0000
bugs1360359
milestone55.0a1
Bug 1360359 - WIP Part 3: TODO stuff - enable stage - split History > History+Forms sync pref - Drive Form History and Form Autofill from the Forms sync pref MozReview-Commit-ID: 8QnEQLBzVDW
mobile/android/services/src/main/java/org/mozilla/gecko/fxa/activities/FxAccountStatusFragment.java
mobile/android/services/src/main/java/org/mozilla/gecko/sync/GlobalSession.java
mobile/android/services/src/main/java/org/mozilla/gecko/sync/stage/GlobalSyncStage.java
--- a/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/activities/FxAccountStatusFragment.java
+++ b/mobile/android/services/src/main/java/org/mozilla/gecko/fxa/activities/FxAccountStatusFragment.java
@@ -108,16 +108,17 @@ public class FxAccountStatusFragment
 
   protected PreferenceCategory syncCategory;
 
   protected CheckBoxPreference bookmarksPreference;
   protected CheckBoxPreference historyPreference;
   protected CheckBoxPreference tabsPreference;
   protected CheckBoxPreference passwordsPreference;
   protected CheckBoxPreference readingListPreference;
+  protected CheckBoxPreference formsPreference;
 
   protected EditTextPreference deviceNamePreference;
   protected Preference syncServerPreference;
   protected Preference morePreference;
   protected Preference syncNowPreference;
 
   protected volatile AndroidFxAccount fxAccount;
   // The contract is: when fxAccount is non-null, then clientsDataDelegate is
@@ -178,16 +179,17 @@ public class FxAccountStatusFragment
     needsFinishMigratingPreference = ensureFindPreference("needs_finish_migrating");
 
     syncCategory = (PreferenceCategory) ensureFindPreference("sync_category");
 
     bookmarksPreference = (CheckBoxPreference) ensureFindPreference("bookmarks");
     historyPreference = (CheckBoxPreference) ensureFindPreference("history");
     tabsPreference = (CheckBoxPreference) ensureFindPreference("tabs");
     passwordsPreference = (CheckBoxPreference) ensureFindPreference("passwords");
+    formsPreference = (CheckBoxPreference) ensureFindPreference("forms");
 
     if (!FxAccountUtils.LOG_PERSONAL_INFORMATION) {
       removeDebugButtons();
     } else {
       connectDebugButtons();
       ALWAYS_SHOW_AUTH_SERVER = true;
       ALWAYS_SHOW_SYNC_SERVER = true;
     }
@@ -199,16 +201,17 @@ public class FxAccountStatusFragment
     needsPasswordPreference.setOnPreferenceClickListener(this);
     needsVerificationPreference.setOnPreferenceClickListener(this);
     needsFinishMigratingPreference.setOnPreferenceClickListener(this);
 
     bookmarksPreference.setOnPreferenceClickListener(this);
     historyPreference.setOnPreferenceClickListener(this);
     tabsPreference.setOnPreferenceClickListener(this);
     passwordsPreference.setOnPreferenceClickListener(this);
+    formsPreference.setOnPreferenceClickListener(this);
 
     deviceNamePreference = (EditTextPreference) ensureFindPreference("device_name");
     deviceNamePreference.setOnPreferenceChangeListener(this);
 
     syncServerPreference = ensureFindPreference("sync_server");
     morePreference = ensureFindPreference("more");
     morePreference.setOnPreferenceClickListener(this);
 
@@ -277,17 +280,18 @@ public class FxAccountStatusFragment
       startActivity(intent);
 
       return true;
     }
 
     if (preference == bookmarksPreference ||
         preference == historyPreference ||
         preference == passwordsPreference ||
-        preference == tabsPreference) {
+        preference == tabsPreference ||
+        preference == formsPreference) {
       saveEngineSelections();
       return true;
     }
 
     if (preference == morePreference) {
       getActivity().openOptionsMenu();
       return true;
     }
@@ -312,16 +316,17 @@ public class FxAccountStatusFragment
     return false;
   }
 
   protected void setCheckboxesEnabled(boolean enabled) {
     bookmarksPreference.setEnabled(enabled);
     historyPreference.setEnabled(enabled);
     tabsPreference.setEnabled(enabled);
     passwordsPreference.setEnabled(enabled);
+    formsPreference.setEnabled(enabled);
     // Since we can't sync, we can't update our remote client record.
     deviceNamePreference.setEnabled(enabled);
     syncNowPreference.setEnabled(enabled);
   }
 
   /**
    * Show at most one error preference, hiding all others.
    *
--- a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/GlobalSession.java
+++ b/mobile/android/services/src/main/java/org/mozilla/gecko/sync/GlobalSession.java
@@ -31,16 +31,17 @@ import org.mozilla.gecko.sync.stage.Andr
 import org.mozilla.gecko.sync.stage.AndroidBrowserRecentHistoryServerSyncStage;
 import org.mozilla.gecko.sync.stage.CheckPreconditionsStage;
 import org.mozilla.gecko.sync.stage.CompletedStage;
 import org.mozilla.gecko.sync.stage.EnsureCrypto5KeysStage;
 import org.mozilla.gecko.sync.stage.FennecTabsServerSyncStage;
 import org.mozilla.gecko.sync.stage.FetchInfoCollectionsStage;
 import org.mozilla.gecko.sync.stage.FetchInfoConfigurationStage;
 import org.mozilla.gecko.sync.stage.FetchMetaGlobalStage;
+import org.mozilla.gecko.sync.stage.FormAutofillServerSyncStage;
 import org.mozilla.gecko.sync.stage.FormHistoryServerSyncStage;
 import org.mozilla.gecko.sync.stage.GlobalSyncStage;
 import org.mozilla.gecko.sync.stage.GlobalSyncStage.Stage;
 import org.mozilla.gecko.sync.stage.NoSuchStageException;
 import org.mozilla.gecko.sync.stage.PasswordsServerSyncStage;
 import org.mozilla.gecko.sync.stage.SyncClientsEngineStage;
 import org.mozilla.gecko.sync.stage.UploadMetaGlobalStage;
 
@@ -192,16 +193,17 @@ public class GlobalSession implements Ht
     stages.put(Stage.syncPasswords,           new PasswordsServerSyncStage());
 
     // Will only run if syncFullHistory stage never completed.
     // Bug 1316110 tracks follow up work to improve efficiency of this stage.
     stages.put(Stage.syncRecentHistory,       new AndroidBrowserRecentHistoryServerSyncStage());
 
     stages.put(Stage.syncBookmarks,           new AndroidBrowserBookmarksServerSyncStage());
     stages.put(Stage.syncFormHistory,         new FormHistoryServerSyncStage());
+    stages.put(Stage.syncFormAutofill,        new FormAutofillServerSyncStage());
     stages.put(Stage.syncFullHistory,         new AndroidBrowserHistoryServerSyncStage());
 
     stages.put(Stage.uploadMetaGlobal,        new UploadMetaGlobalStage());
     stages.put(Stage.completed,               new CompletedStage());
 
     this.stages = Collections.unmodifiableMap(stages);
   }
 
--- a/mobile/android/services/src/main/java/org/mozilla/gecko/sync/stage/GlobalSyncStage.java
+++ b/mobile/android/services/src/main/java/org/mozilla/gecko/sync/stage/GlobalSyncStage.java
@@ -32,16 +32,17 @@ public interface GlobalSyncStage {
     updateEnabledEngines,
     */
     syncTabs("tabs"),
     syncPasswords("passwords"),
     syncRecentHistory("recentHistory"),
     syncBookmarks("bookmarks"),
     syncFullHistory("history"),
     syncFormHistory("forms"),
+    syncFormAutofill("formAutofill"),
 
     uploadMetaGlobal,
     completed;
 
     // Maintain a mapping from names ("bookmarks") to Stage enumerations (syncBookmarks).
     private static final Map<String, Stage> named = new HashMap<String, Stage>();
     static {
       for (Stage s : EnumSet.allOf(Stage.class)) {