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
--- 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)) {