1
0
Fork 0
fenix/app/src/main/java/org/mozilla/fenix/FeatureFlags.kt

65 lines
2.2 KiB
Kotlin

package org.mozilla.fenix
/**
* A single source for setting feature flags that are mostly based on build type.
*/
object FeatureFlags {
// lazy is used to suppress "Condition is always 'true'" warnings when using the flags.
// https://github.com/mozilla-mobile/fenix/pull/4077#issuecomment-511964072
// A convenience flag for production builds.
private val production by lazy { BuildConfig.BUILD_TYPE == "fenixProduction" }
// A convenience flag for beta builds.
private val beta by lazy { BuildConfig.BUILD_TYPE == "fenixBeta" }
// A convenience flag for the nightly build in Google Play.
private val nightly by lazy {
BuildConfig.BUILD_TYPE == "fenixNightly"
}
// A convenience flag for debug builds.
private val debug by lazy { BuildConfig.BUILD_TYPE == "debug" }
// A convenience flag for enabling in all builds (a feature that can still be toggled off).
private val all = production or beta or nightly or debug
/**
* Pull-to-refresh allows you to pull the web content down far enough to have the page to
* reload.
*/
const val pullToRefreshEnabled = false
/**
* Integration of media features provided by `feature-media` component:
* - Background playback without the app getting killed
* - Media notification with play/pause controls
* - Audio Focus handling (pausing/resuming in agreement with other media apps)
* - Support for hardware controls to toggle play/pause (e.g. buttons on a headset)
*
* Behind nightly flag until all related Android Components issues are fixed and QA has signed
* off.
*
* https://github.com/mozilla-mobile/fenix/issues/4431
*/
const val mediaIntegration = true
/**
* Displays the categories blocked by ETP in a panel in the toolbar
*/
val etpCategories = nightly or debug
/**
* Gives option in Settings to disable auto play media
*/
val autoPlayMedia = nightly or debug
/**
* Allows Progressive Web Apps to be installed to the device home screen.
*/
val progressiveWebApps = nightly or debug
val forceZoomPreference = nightly or debug
/**
* Gives option in Settings to see logins and sync logins
*/
const val logins = false
}