88 lines
2.5 KiB
Kotlin
88 lines
2.5 KiB
Kotlin
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
package org.mozilla.fenix.helpers
|
|
|
|
import androidx.test.platform.app.InstrumentationRegistry
|
|
import org.mozilla.fenix.ext.settings
|
|
|
|
/**
|
|
* Helper for querying the status and modifying various features and settings in the application.
|
|
*/
|
|
interface FeatureSettingsHelper {
|
|
/**
|
|
* Whether the onboarding for existing users should be shown or not.
|
|
* It should appear only once on the first visit to homescreen.
|
|
*/
|
|
var isHomeOnboardingDialogEnabled: Boolean
|
|
|
|
/**
|
|
* Whether the Pocket stories feature is enabled or not.
|
|
*/
|
|
var isPocketEnabled: Boolean
|
|
|
|
/**
|
|
* Whether the "Jump back in" CFR should be shown or not.
|
|
* It should appear on the first visit to homescreen given that there is a tab opened.
|
|
*/
|
|
var isJumpBackInCFREnabled: Boolean
|
|
|
|
/**
|
|
* Whether the onboarding dialog for choosing wallpapers should be shown or not.
|
|
*/
|
|
var isWallpaperOnboardingEnabled: Boolean
|
|
|
|
/**
|
|
* Whether the "Jump back in" homescreen section is enabled or not.
|
|
* It shows the last visited tab on this device and on other synced devices.
|
|
*/
|
|
var isRecentTabsFeatureEnabled: Boolean
|
|
|
|
/**
|
|
* Whether the "Recently visited" homescreen section is enabled or not.
|
|
* It can show up to 9 history highlights and history groups.
|
|
*/
|
|
var isRecentlyVisitedFeatureEnabled: Boolean
|
|
|
|
/**
|
|
* Whether the onboarding dialog for PWAs should be shown or not.
|
|
* It can show the first time a website that can be installed as a PWA is accessed.
|
|
*/
|
|
var isPWAsPromptEnabled: Boolean
|
|
|
|
/**
|
|
* Whether the "Site permissions" option is checked in the "Delete browsing data" screen or not.
|
|
*/
|
|
var isDeleteSitePermissionsEnabled: Boolean
|
|
|
|
/**
|
|
* Enable or disable showing the TCP CFR when accessing a webpage for the first time.
|
|
*/
|
|
var isTCPCFREnabled: Boolean
|
|
|
|
/**
|
|
* The current "Enhanced Tracking Protection" policy.
|
|
* @see ETPPolicy
|
|
*/
|
|
var etpPolicy: ETPPolicy
|
|
|
|
fun applyFlagUpdates()
|
|
|
|
fun resetAllFeatureFlags()
|
|
|
|
companion object {
|
|
val settings = InstrumentationRegistry.getInstrumentation().targetContext.settings()
|
|
}
|
|
}
|
|
|
|
/**
|
|
* All "Enhanced Tracking Protection" modes.
|
|
*/
|
|
enum class ETPPolicy {
|
|
STANDARD,
|
|
STRICT,
|
|
CUSTOM,
|
|
;
|
|
}
|