From 2805a67e9dd6952bcd95e6d941af77a33a8df7b9 Mon Sep 17 00:00:00 2001 From: akliuxingyuan Date: Sat, 7 Jan 2023 18:43:51 +0800 Subject: [PATCH] add toolbar menu option to show display name instead of email --- .../fenix/components/accounts/FenixAccountManager.kt | 10 ++++++++++ .../fenix/components/toolbar/DefaultToolbarMenu.kt | 8 +++++++- app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt | 8 +++++++- .../mozilla/fenix/settings/CustomizationFragment.kt | 6 ++++++ app/src/main/java/org/mozilla/fenix/utils/Settings.kt | 5 +++++ app/src/main/res/values-zh-rCN/strings.xml | 2 ++ app/src/main/res/values-zh-rTW/strings.xml | 2 ++ app/src/main/res/values/preference_keys.xml | 5 +++-- app/src/main/res/values/strings.xml | 4 +++- app/src/main/res/xml/customization_preferences.xml | 10 +++++++--- 10 files changed, 52 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/components/accounts/FenixAccountManager.kt b/app/src/main/java/org/mozilla/fenix/components/accounts/FenixAccountManager.kt index cd83991ef..1c6328a58 100644 --- a/app/src/main/java/org/mozilla/fenix/components/accounts/FenixAccountManager.kt +++ b/app/src/main/java/org/mozilla/fenix/components/accounts/FenixAccountManager.kt @@ -23,6 +23,16 @@ class FenixAccountManager(context: Context) { null } + /** + * Returns the Firefox Account displayName if authenticated in the app, `null` otherwise. + */ + val accountProfileDisplayName: String? + get() = if (accountState == AccountState.AUTHENTICATED) { + accountManager.accountProfile()?.displayName + } else { + null + } + /** * The current state of the Firefox Account. See [AccountState]. */ diff --git a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt index edcca2f93..6f7609714 100644 --- a/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt +++ b/app/src/main/java/org/mozilla/fenix/components/toolbar/DefaultToolbarMenu.kt @@ -352,7 +352,13 @@ open class DefaultToolbarMenu( private fun syncMenuItem(): BrowserMenuImageText? { val syncItemTitle = if (context.components.backgroundServices.accountManagerAvailableQueue.isReady()) { - accountManager.accountProfileEmail ?: context.getString(R.string.sync_menu_sync_and_save_data) + if (context.settings().showDisplayNameInsteadofEmail) { + accountManager.accountProfileDisplayName + ?: context.getString(R.string.sync_menu_sync_and_save_data) + } else { + accountManager.accountProfileEmail + ?: context.getString(R.string.sync_menu_sync_and_save_data) + } } else { null } diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt b/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt index a5425ad61..12559d86e 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeMenu.kt @@ -100,7 +100,13 @@ class HomeMenu( private fun syncSignInMenuItem(): BrowserMenuImageText? { val syncItemTitle = if (context.components.backgroundServices.accountManagerAvailableQueue.isReady()) { - accountManager.accountProfileEmail ?: context.getString(R.string.sync_menu_sync_and_save_data) + if (context.settings().showDisplayNameInsteadofEmail) { + accountManager.accountProfileDisplayName + ?: context.getString(R.string.sync_menu_sync_and_save_data) + } else { + accountManager.accountProfileEmail + ?: context.getString(R.string.sync_menu_sync_and_save_data) + } } else { null } diff --git a/app/src/main/java/org/mozilla/fenix/settings/CustomizationFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/CustomizationFragment.kt index 8ce52bba4..1a36eb232 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/CustomizationFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/CustomizationFragment.kt @@ -60,6 +60,12 @@ class CustomizationFragment : PreferenceFragmentCompat() { onPreferenceChangeListener = SharedPreferenceUpdater() } + + requirePreference(R.string.pref_key_show_displayname_insteadof_email).apply { + isChecked = requireContext().settings().showDisplayNameInsteadofEmail + + onPreferenceChangeListener = SharedPreferenceUpdater() + } } private fun setupRadioGroups() { diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index 5cf37214e..92c146ee3 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -745,6 +745,11 @@ class Settings(private val appContext: Context) : PreferencesHolder { default = true, ) + var showDisplayNameInsteadofEmail by booleanPreference( + appContext.getPreferenceKey(R.string.pref_key_show_displayname_insteadof_email), + default = true, + ) + var shouldRelinquishMemoryUnderPressure by booleanPreference( appContext.getPreferenceKey(R.string.pref_key_relinquish_memory_under_pressure), default = true, diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 4ca6b6976..cbdf6651c 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -604,6 +604,8 @@ 顶部 底部 + + 展示显示名而不是邮件 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 359582656..e283c8123 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -599,6 +599,8 @@ 頂端 底端 + + 展示顯示名而不是郵件 diff --git a/app/src/main/res/values/preference_keys.xml b/app/src/main/res/values/preference_keys.xml index 65ab1d0fe..cc8454e9f 100644 --- a/app/src/main/res/values/preference_keys.xml +++ b/app/src/main/res/values/preference_keys.xml @@ -124,6 +124,7 @@ pref_key_toolbar_top pref_key_toolbar_bottom pref_key_strip_url + pref_key_show_displayname_insteadof_email pref_key_privacy_pop_window @@ -141,12 +142,12 @@ pref_key_swipe_toolbar_show_tabs pref_key_recent_tabs pref_key_recent_bookmarks - + pref_addons_settings_category pref_key_addons_custom_account pref_key_addons_custom_collection - + pref_system_behavior_settings_category pref_key_relinquish_memory_under_pressure diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2a310ed79..a74416c37 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -590,6 +590,8 @@ Top Bottom + + Show Display name instead of email @@ -1859,7 +1861,7 @@ Set custom add-ons account Set custom add-ons collection - + Configure system behavior diff --git a/app/src/main/res/xml/customization_preferences.xml b/app/src/main/res/xml/customization_preferences.xml index 628c6cf89..3153ed0b3 100644 --- a/app/src/main/res/xml/customization_preferences.xml +++ b/app/src/main/res/xml/customization_preferences.xml @@ -46,6 +46,10 @@ android:key="@string/pref_key_strip_url" android:summary="@string/preferences_strip_url_description" android:title="@string/preferences_strip_url_title" /> + - + - + - +