diff --git a/mobile/android/base/fxa/activities/FxAccountStatusFragment.java b/mobile/android/base/fxa/activities/FxAccountStatusFragment.java index 4182cbb9f1b..abd4335c87c 100644 --- a/mobile/android/base/fxa/activities/FxAccountStatusFragment.java +++ b/mobile/android/base/fxa/activities/FxAccountStatusFragment.java @@ -41,6 +41,7 @@ import org.mozilla.gecko.fxa.tasks.FxAccountCodeResender; import org.mozilla.gecko.sync.ExtendedJSONObject; import org.mozilla.gecko.sync.SharedPreferencesClientsDataDelegate; import org.mozilla.gecko.sync.SyncConfiguration; +import org.mozilla.gecko.sync.setup.activities.ActivityUtils; import org.mozilla.gecko.util.HardwareUtils; import org.mozilla.gecko.util.ThreadUtils; @@ -94,6 +95,7 @@ public class FxAccountStatusFragment protected PreferenceCategory accountCategory; protected Preference profilePreference; protected Preference emailPreference; + protected Preference manageAccountPreference; protected Preference authServerPreference; protected Preference needsPasswordPreference; @@ -169,6 +171,10 @@ public class FxAccountStatusFragment } else { accountCategory.removePreference(profilePreference); } + manageAccountPreference = ensureFindPreference("manage_account"); + if (AppConstants.MOZ_ANDROID_NATIVE_ACCOUNT_UI) { + accountCategory.removePreference(manageAccountPreference); + } authServerPreference = ensureFindPreference("auth_server"); needsPasswordPreference = ensureFindPreference("needs_credentials"); @@ -197,6 +203,7 @@ public class FxAccountStatusFragment } else { emailPreference.setOnPreferenceClickListener(this); } + manageAccountPreference.setOnPreferenceClickListener(this); needsPasswordPreference.setOnPreferenceClickListener(this); needsVerificationPreference.setOnPreferenceClickListener(this); @@ -234,6 +241,12 @@ public class FxAccountStatusFragment @Override public boolean onPreferenceClick(Preference preference) { + if (preference == manageAccountPreference) { + // There's no native equivalent, so no need to re-direct through an Intent filter. + ActivityUtils.openURLInFennec(getActivity().getApplicationContext(), "about:accounts?action=manage"); + return true; + } + if (preference == needsPasswordPreference) { final Intent intent = new Intent(FxAccountConstants.ACTION_FXA_UPDATE_CREDENTIALS); final Bundle extras = getExtrasForAccount(); diff --git a/mobile/android/base/locales/en-US/sync_strings.dtd b/mobile/android/base/locales/en-US/sync_strings.dtd index 0d9d9df04f2..f2406e41a77 100644 --- a/mobile/android/base/locales/en-US/sync_strings.dtd +++ b/mobile/android/base/locales/en-US/sync_strings.dtd @@ -197,6 +197,7 @@ + diff --git a/mobile/android/base/resources/xml/fxaccount_status_prefscreen.xml b/mobile/android/base/resources/xml/fxaccount_status_prefscreen.xml index 237783b912d..ee64b74ddd2 100644 --- a/mobile/android/base/resources/xml/fxaccount_status_prefscreen.xml +++ b/mobile/android/base/resources/xml/fxaccount_status_prefscreen.xml @@ -16,6 +16,11 @@ android:key="email" android:persistent="false" android:title="@string/fxaccount_email_hint" /> + &syncBrand.shortName.label; &fxaccount_status_header2; &fxaccount_status_signed_in_as; +&fxaccount_status_manage_account; &fxaccount_status_auth_server; &fxaccount_status_sync_now; &fxaccount_status_syncing2; @@ -240,4 +241,4 @@ &fxaccount_sync_finish_migrating_notification_text; -&fxaccount_enable_debug_mode; \ No newline at end of file +&fxaccount_enable_debug_mode;