For #18608 Add experiment for set default browser MenuItem.

upstream-sync
Arturo Mejia 3 years ago
parent 9d728ec168
commit db9b3676d3

@ -582,7 +582,7 @@ sealed class Event {
NEW_PRIVATE_TAB, SHARE, BACK, FORWARD, RELOAD, STOP, OPEN_IN_FENIX,
SAVE_TO_COLLECTION, ADD_TO_TOP_SITES, ADD_TO_HOMESCREEN, QUIT, READER_MODE_ON,
READER_MODE_OFF, OPEN_IN_APP, BOOKMARK, READER_MODE_APPEARANCE, ADDONS_MANAGER,
BOOKMARKS, HISTORY, SYNC_TABS, DOWNLOADS
BOOKMARKS, HISTORY, SYNC_TABS, DOWNLOADS, SET_DEFAULT_BROWSER
}
override val extras: Map<Events.browserMenuActionKeys, String>?

@ -41,6 +41,7 @@ import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.getRootView
import org.mozilla.fenix.ext.nav
import org.mozilla.fenix.ext.navigateSafe
import org.mozilla.fenix.ext.openSetDefaultBrowserOption
import org.mozilla.fenix.settings.deletebrowsingdata.deleteAndQuit
import org.mozilla.fenix.utils.Do
import org.mozilla.fenix.utils.Settings
@ -338,6 +339,9 @@ class DefaultBrowserToolbarMenuController(
BrowserFragmentDirections.actionGlobalHome(focusOnAddressBar = true)
)
}
is ToolbarMenu.Item.SetDefaultBrowser -> {
activity.openSetDefaultBrowserOption()
}
}
}
@ -387,6 +391,7 @@ class DefaultBrowserToolbarMenuController(
is ToolbarMenu.Item.History -> Event.BrowserMenuItemTapped.Item.HISTORY
is ToolbarMenu.Item.Downloads -> Event.BrowserMenuItemTapped.Item.DOWNLOADS
is ToolbarMenu.Item.NewTab -> Event.BrowserMenuItemTapped.Item.NEW_TAB
is ToolbarMenu.Item.SetDefaultBrowser -> Event.BrowserMenuItemTapped.Item.SET_DEFAULT_BROWSER
}
metrics.track(Event.BrowserMenuItemTapped(eventItem))

@ -38,10 +38,14 @@ import org.mozilla.fenix.FeatureFlags
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R
import org.mozilla.fenix.browser.browsingmode.BrowsingMode
import org.mozilla.fenix.experiments.ExperimentBranch
import org.mozilla.fenix.experiments.Experiments
import org.mozilla.fenix.ext.asActivity
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.ext.withExperiment
import org.mozilla.fenix.theme.ThemeManager
import org.mozilla.fenix.utils.BrowsersCache
/**
* Builds the toolbar object used with the 3-dot menu in the browser fragment.
@ -357,6 +361,7 @@ open class DefaultToolbarMenu(
BrowserMenuDivider(),
reportSiteIssuePlaceholder,
findInPage,
getSetDefaultBrowserItem(),
addToTopSites,
addToHomescreen.apply { visible = ::canAddToHomescreen },
installToHomescreen.apply { visible = ::canInstall },
@ -594,4 +599,21 @@ open class DefaultToolbarMenu(
.any { it.url == newUrl }
}
}
private fun getSetDefaultBrowserItem(): BrowserMenuImageText? {
val experiments = context.components.analytics.experiments
val browsers = BrowsersCache.all(context)
return experiments.withExperiment(Experiments.DEFAULT_BROWSER) { experimentBranch ->
if (experimentBranch == ExperimentBranch.DEFAULT_BROWSER_TOOLBAR_MENU && !browsers.isDefaultBrowser) {
return@withExperiment BrowserMenuImageText(
label = context.getString(R.string.preferences_set_as_default_browser),
imageResource = R.mipmap.ic_launcher
) {
onItemTapped.invoke(ToolbarMenu.Item.SetDefaultBrowser)
}
} else {
null
}
}
}
}

@ -26,6 +26,7 @@ interface ToolbarMenu {
object AddonsManager : Item()
object Quit : Item()
object OpenInApp : Item()
object SetDefaultBrowser : Item()
object Bookmark : Item()
object CustomizeReaderView : Item()
object Bookmarks : Item()

@ -9,6 +9,7 @@ class Experiments {
const val A_A_NIMBUS_VALIDATION = "fenix-nimbus-validation-v3"
const val BOOKMARK_ICON = "fenix-bookmark-list-icon"
const val ANDROID_KEYSTORE = "fenix-android-keystore"
const val DEFAULT_BROWSER = "fenix-default-browser"
}
}
@ -18,5 +19,6 @@ class ExperimentBranch {
const val CONTROL = "control"
const val A1 = "a1"
const val A2 = "a2"
const val DEFAULT_BROWSER_TOOLBAR_MENU = "default_browser_toolbar_menu"
}
}

Loading…
Cancel
Save