diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt index b47c12654f..452496ca06 100644 --- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt +++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt @@ -82,6 +82,7 @@ import org.mozilla.fenix.ext.navigateBlockingForAsyncNavGraph import org.mozilla.fenix.ext.measureNoInline import org.mozilla.fenix.ext.metrics import org.mozilla.fenix.ext.nav +import org.mozilla.fenix.ext.setNavigationIcon import org.mozilla.fenix.ext.settings import org.mozilla.fenix.home.HomeFragmentDirections import org.mozilla.fenix.home.intent.CrashReporterIntentProcessor @@ -717,6 +718,7 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity { setSupportActionBar(navigationToolbar) // Add ids to this that we don't want to have a toolbar back button setupNavigationToolbar() + setNavigationIcon(R.drawable.ic_back_button) isToolbarInflated = true } diff --git a/app/src/main/java/org/mozilla/fenix/ext/Activity.kt b/app/src/main/java/org/mozilla/fenix/ext/Activity.kt index 6469a4c883..f38afd4060 100644 --- a/app/src/main/java/org/mozilla/fenix/ext/Activity.kt +++ b/app/src/main/java/org/mozilla/fenix/ext/Activity.kt @@ -12,9 +12,12 @@ import android.app.role.RoleManager import android.content.Intent import android.os.Build import android.provider.Settings +import androidx.annotation.DrawableRes +import androidx.appcompat.app.AppCompatActivity import androidx.core.os.bundleOf import org.mozilla.fenix.BrowserDirection import org.mozilla.fenix.HomeActivity +import org.mozilla.fenix.R import org.mozilla.fenix.settings.SupportUtils /** @@ -108,6 +111,20 @@ private fun Activity.navigateToDefaultBrowserAppsSettings() { } } +/** + * Sets the icon for the back (up) navigation button. + * @param icon The resource id of the icon. + */ +fun Activity.setNavigationIcon( + @DrawableRes icon: Int +) { + (this as? AppCompatActivity)?.supportActionBar?.let { + it.setDisplayHomeAsUpEnabled(true) + it.setHomeAsUpIndicator(icon) + it.setHomeActionContentDescription(R.string.action_bar_up_description) + } +} + const val REQUEST_CODE_BROWSER_ROLE = 1 const val SETTINGS_SELECT_OPTION_KEY = ":settings:fragment_args_key" const val SETTINGS_SHOW_FRAGMENT_ARGS = ":settings:show_fragment_args" diff --git a/app/src/main/java/org/mozilla/fenix/ext/Fragment.kt b/app/src/main/java/org/mozilla/fenix/ext/Fragment.kt index 1eb2cb27bf..45fb19f661 100644 --- a/app/src/main/java/org/mozilla/fenix/ext/Fragment.kt +++ b/app/src/main/java/org/mozilla/fenix/ext/Fragment.kt @@ -35,6 +35,7 @@ fun Fragment.getPreferenceKey(@StringRes resourceId: Int): String = getString(re */ fun Fragment.showToolbar(title: String) { (requireActivity() as AppCompatActivity).title = title + activity?.setNavigationIcon(R.drawable.ic_back_button) (activity as NavHostActivity).getSupportActionBarAndInflateIfNecessary().show() } diff --git a/app/src/main/java/org/mozilla/fenix/library/LibraryPageView.kt b/app/src/main/java/org/mozilla/fenix/library/LibraryPageView.kt index 4d4adf6e39..183f62abfa 100644 --- a/app/src/main/java/org/mozilla/fenix/library/LibraryPageView.kt +++ b/app/src/main/java/org/mozilla/fenix/library/LibraryPageView.kt @@ -44,5 +44,7 @@ open class LibraryPageView( activity?.title = title val toolbar = activity?.findViewById(R.id.navigationToolbar) toolbar?.setToolbarColors(foregroundColor, backgroundColor) + toolbar?.setNavigationIcon(R.drawable.ic_back_button) + toolbar?.navigationIcon?.setTint(foregroundColor) } } diff --git a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt index 2fddae924a..8eac22ccd3 100644 --- a/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/library/history/HistoryFragment.kt @@ -105,6 +105,7 @@ class HistoryFragment : LibraryPageFragment(), UserInteractionHandl view.historyLayout, historyInteractor ) + showToolbar(getString(R.string.library_history)) return view } @@ -161,7 +162,6 @@ class HistoryFragment : LibraryPageFragment(), UserInteractionHandl override fun onResume() { super.onResume() - showToolbar(getString(R.string.library_history)) } override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { diff --git a/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt index ba1d7a8866..beb70564ed 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt @@ -25,6 +25,7 @@ import org.mozilla.fenix.crashes.CrashListActivity import org.mozilla.fenix.ext.navigateBlockingForAsyncNavGraph import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.settings +import org.mozilla.fenix.ext.showToolbar import org.mozilla.fenix.settings.SupportUtils import org.mozilla.fenix.settings.about.AboutItemType.LICENSING_INFO import org.mozilla.fenix.settings.about.AboutItemType.PRIVACY_NOTICE @@ -53,7 +54,7 @@ class AboutFragment : Fragment(), AboutPageListener { appName = getString(R.string.app_name) headerAppName = if (Config.channel.isRelease) getString(R.string.daylight_app_name) else appName - activity?.title = getString(R.string.preferences_about, appName) + showToolbar(getString(R.string.preferences_about, appName)) return rootView } diff --git a/app/src/main/res/drawable/ic_back_button.xml b/app/src/main/res/drawable/ic_back_button.xml new file mode 100644 index 0000000000..95f2e380a7 --- /dev/null +++ b/app/src/main/res/drawable/ic_back_button.xml @@ -0,0 +1,13 @@ + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 17bfbf684e..4afbc624e3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1713,4 +1713,7 @@ Click for more details + + + Navigate up