1
0
Fork 0

Closes #436 - Make Toolbar Menu Item When Exhaustive

master
Emily Kager 2019-02-11 14:12:18 -08:00 committed by Jeff Boek
parent ed723557e9
commit 414cf16658
1 changed files with 21 additions and 5 deletions

View File

@ -29,9 +29,9 @@ import mozilla.components.feature.downloads.DownloadsFeature
import mozilla.components.feature.prompts.PromptFeature
import mozilla.components.feature.session.SessionFeature
import mozilla.components.feature.session.SessionUseCases
import org.mozilla.fenix.DefaultThemeManager
import mozilla.components.support.base.feature.BackHandler
import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
import org.mozilla.fenix.DefaultThemeManager
import org.mozilla.fenix.R
import org.mozilla.fenix.components.FindInPageIntegration
import org.mozilla.fenix.ext.requireComponents
@ -208,7 +208,7 @@ class BrowserFragment : Fragment(), BackHandler {
@SuppressWarnings("ComplexMethod")
private fun handleToolbarItemInteraction(action: SearchAction.ToolbarMenuItemTapped) {
val sessionUseCases = requireComponents.useCases.sessionUseCases
when (action.item) {
Do exhaustive when (action.item) {
is ToolbarMenu.Item.Back -> sessionUseCases.goBack.invoke()
is ToolbarMenu.Item.Forward -> sessionUseCases.goForward.invoke()
is ToolbarMenu.Item.Reload -> sessionUseCases.reload.invoke()
@ -221,17 +221,33 @@ class BrowserFragment : Fragment(), BackHandler {
.selectedSession?.url?.apply { requireContext().share(this) }
is ToolbarMenu.Item.NewPrivateTab -> {
PreferenceManager.getDefaultSharedPreferences(context)
.edit().putBoolean(context!!.getString(R.string.pref_key_private_mode),
!PreferenceManager.getDefaultSharedPreferences(context)
.getBoolean(context!!.getString(R.string.pref_key_private_mode), false)).apply() }
.edit().putBoolean(
context!!.getString(R.string.pref_key_private_mode),
!PreferenceManager.getDefaultSharedPreferences(context)
.getBoolean(context!!.getString(R.string.pref_key_private_mode), false)
).apply()
}
is ToolbarMenu.Item.FindInPage -> FindInPageIntegration.launch?.invoke()
is ToolbarMenu.Item.ReportIssue -> requireComponents.core.sessionManager
.selectedSession?.url?.apply {
val reportUrl = String.format(REPORT_SITE_ISSUE_URL, this)
sessionUseCases.loadUrl.invoke(reportUrl)
}
ToolbarMenu.Item.Help -> {
// TODO Help
}
ToolbarMenu.Item.NewTab -> {
val directions =
BrowserFragmentDirections.actionBrowserFragmentToSearchFragment(null)
Navigation.findNavController(view!!).navigate(directions)
}
}
}
object Do {
inline infix fun <reified T> exhaustive(any: T?) = any
}
companion object {
private const val REQUEST_CODE_DOWNLOAD_PERMISSIONS = 1
private const val REQUEST_CODE_PROMPT_PERMISSIONS = 2