diff --git a/app/src/androidTest/java/com/duckduckgo/app/settings/SettingsViewModelTest.kt b/app/src/androidTest/java/com/duckduckgo/app/settings/SettingsViewModelTest.kt index 9c9baccae195..3b3447b63d90 100644 --- a/app/src/androidTest/java/com/duckduckgo/app/settings/SettingsViewModelTest.kt +++ b/app/src/androidTest/java/com/duckduckgo/app/settings/SettingsViewModelTest.kt @@ -28,7 +28,6 @@ import com.duckduckgo.app.settings.SettingsViewModel.Command import com.duckduckgo.app.settings.db.SettingsDataStore import com.duckduckgo.app.statistics.Variant import com.duckduckgo.app.statistics.VariantManager -import com.duckduckgo.app.statistics.VariantManager.VariantFeature.ThemeFeature.ThemeToggle import com.duckduckgo.app.statistics.pixels.Pixel import com.nhaarman.mockito_kotlin.* import org.junit.Assert.* @@ -208,19 +207,5 @@ class SettingsViewModelTest { assertEquals(expectedStartString, latestViewState().version) } - @Test - fun whenThemeToggleFeatureExistsThenThemeToggleIsShown() { - whenever(mockVariantManager.getVariant()).thenReturn(Variant("aa", 1.0, listOf(ThemeToggle))) - testee.start() - assertTrue(latestViewState().showThemeToggle) - } - - @Test - fun whenThemeToggleFeatureDoesNotExistThenThemeToggleIsNotShown() { - whenever(mockVariantManager.getVariant()).thenReturn(Variant("aa", 1.0, emptyList())) - testee.start() - assertFalse(latestViewState().showThemeToggle) - } - private fun latestViewState() = testee.viewState.value!! } \ No newline at end of file diff --git a/app/src/main/java/com/duckduckgo/app/global/DuckDuckGoActivity.kt b/app/src/main/java/com/duckduckgo/app/global/DuckDuckGoActivity.kt index 6c91aa080889..aa82d2fa3aba 100644 --- a/app/src/main/java/com/duckduckgo/app/global/DuckDuckGoActivity.kt +++ b/app/src/main/java/com/duckduckgo/app/global/DuckDuckGoActivity.kt @@ -24,7 +24,6 @@ import android.support.v4.content.LocalBroadcastManager import android.support.v7.app.AppCompatActivity import android.view.MenuItem import com.duckduckgo.app.settings.db.SettingsDataStore -import com.duckduckgo.app.statistics.VariantManager import dagger.android.AndroidInjection import javax.inject.Inject @@ -37,14 +36,11 @@ abstract class DuckDuckGoActivity : AppCompatActivity() { @Inject lateinit var settingsDataStore: SettingsDataStore - @Inject - lateinit var variantManager: VariantManager - private var themeChangeReceiver: BroadcastReceiver? = null override fun onCreate(savedInstanceState: Bundle?) { AndroidInjection.inject(this) - themeChangeReceiver = applyTheme(settingsDataStore, variantManager.getVariant()) + themeChangeReceiver = applyTheme(settingsDataStore) super.onCreate(savedInstanceState) } diff --git a/app/src/main/java/com/duckduckgo/app/global/DuckDuckGoApplication.kt b/app/src/main/java/com/duckduckgo/app/global/DuckDuckGoApplication.kt index a6ccfe434fd2..85d990e3c4f1 100644 --- a/app/src/main/java/com/duckduckgo/app/global/DuckDuckGoApplication.kt +++ b/app/src/main/java/com/duckduckgo/app/global/DuckDuckGoApplication.kt @@ -38,7 +38,6 @@ import com.duckduckgo.app.httpsupgrade.HttpsUpgrader import com.duckduckgo.app.job.AppConfigurationSyncer import com.duckduckgo.app.migration.LegacyMigration import com.duckduckgo.app.settings.db.SettingsDataStore -import com.duckduckgo.app.statistics.VariantManager import com.duckduckgo.app.statistics.api.StatisticsUpdater import com.duckduckgo.app.statistics.pixels.Pixel import com.duckduckgo.app.statistics.pixels.Pixel.PixelName.APP_LAUNCH @@ -90,10 +89,7 @@ open class DuckDuckGoApplication : HasActivityInjector, HasServiceInjector, HasS @Inject lateinit var notificationRegistrar: NotificationRegistrar - - @Inject - lateinit var variantManager: VariantManager - + @Inject lateinit var pixel: Pixel @@ -127,7 +123,7 @@ open class DuckDuckGoApplication : HasActivityInjector, HasServiceInjector, HasS } initializeStatistics() - initializeTheme(settingsDataStore, variantManager.getVariant()) + initializeTheme(settingsDataStore) loadTrackerData() configureDataDownloader() recordInstallationTimestamp() diff --git a/app/src/main/java/com/duckduckgo/app/global/Theming.kt b/app/src/main/java/com/duckduckgo/app/global/Theming.kt index 809fe7e6b499..42d44db06873 100644 --- a/app/src/main/java/com/duckduckgo/app/global/Theming.kt +++ b/app/src/main/java/com/duckduckgo/app/global/Theming.kt @@ -22,13 +22,9 @@ import android.content.Intent import android.content.IntentFilter import android.support.v4.content.LocalBroadcastManager import com.duckduckgo.app.browser.R -import com.duckduckgo.app.global.DuckDuckGoTheme.DARK -import com.duckduckgo.app.global.DuckDuckGoTheme.LIGHT import com.duckduckgo.app.global.Theming.Constants.BROADCAST_THEME_CHANGED import com.duckduckgo.app.global.Theming.Constants.THEME_MAP import com.duckduckgo.app.settings.db.SettingsDataStore -import com.duckduckgo.app.statistics.Variant -import com.duckduckgo.app.statistics.VariantManager.VariantFeature.ThemeFeature.LightThemeAsDefault enum class DuckDuckGoTheme { @@ -38,9 +34,9 @@ enum class DuckDuckGoTheme { object Theming { - fun initializeTheme(settingsDataStore: SettingsDataStore, variant: Variant) { + fun initializeTheme(settingsDataStore: SettingsDataStore) { if (settingsDataStore.theme == null) { - settingsDataStore.theme = if (variant.hasFeature(LightThemeAsDefault)) LIGHT else DARK + settingsDataStore.theme = DuckDuckGoTheme.DARK } } @@ -55,7 +51,7 @@ object Theming { } } -fun DuckDuckGoActivity.applyTheme(settingsDataStore: SettingsDataStore, variant: Variant): BroadcastReceiver? { +fun DuckDuckGoActivity.applyTheme(settingsDataStore: SettingsDataStore): BroadcastReceiver? { val themeId = THEME_MAP[Pair(manifestThemeId(), settingsDataStore.theme)] ?: return null setTheme(themeId) return registerForThemeChangeBroadcast() diff --git a/app/src/main/java/com/duckduckgo/app/settings/SettingsActivity.kt b/app/src/main/java/com/duckduckgo/app/settings/SettingsActivity.kt index 612aae9b474b..7113b6bfa280 100644 --- a/app/src/main/java/com/duckduckgo/app/settings/SettingsActivity.kt +++ b/app/src/main/java/com/duckduckgo/app/settings/SettingsActivity.kt @@ -24,7 +24,6 @@ import android.os.Bundle import android.support.v7.widget.SwitchCompat import android.view.View import android.widget.CompoundButton.OnCheckedChangeListener -import androidx.core.view.isVisible import com.duckduckgo.app.about.AboutDuckDuckGoActivity import com.duckduckgo.app.browser.R import com.duckduckgo.app.feedback.ui.FeedbackActivity @@ -77,7 +76,6 @@ class SettingsActivity : DuckDuckGoActivity() { viewModel.viewState.observe(this, Observer { viewState -> viewState?.let { version.text = it.version - lightThemeToggle.isVisible = it.showThemeToggle lightThemeToggle.quietlySetIsChecked(it.lightThemeEnabled, lightThemeToggleListener) autocompleteToggle.quietlySetIsChecked(it.autoCompleteSuggestionsEnabled, autocompleteToggleListener) updateDefaultBrowserViewVisibility(it) diff --git a/app/src/main/java/com/duckduckgo/app/settings/SettingsViewModel.kt b/app/src/main/java/com/duckduckgo/app/settings/SettingsViewModel.kt index 3e06e1efcd72..b5cd9dce4660 100644 --- a/app/src/main/java/com/duckduckgo/app/settings/SettingsViewModel.kt +++ b/app/src/main/java/com/duckduckgo/app/settings/SettingsViewModel.kt @@ -24,7 +24,6 @@ import com.duckduckgo.app.global.DuckDuckGoTheme import com.duckduckgo.app.global.SingleLiveEvent import com.duckduckgo.app.settings.db.SettingsDataStore import com.duckduckgo.app.statistics.VariantManager -import com.duckduckgo.app.statistics.VariantManager.VariantFeature.ThemeFeature.ThemeToggle import com.duckduckgo.app.statistics.pixels.Pixel import com.duckduckgo.app.statistics.pixels.Pixel.PixelName.* import timber.log.Timber @@ -40,7 +39,6 @@ class SettingsViewModel @Inject constructor( data class ViewState( val loading: Boolean = true, val version: String = "", - val showThemeToggle: Boolean = false, val lightThemeEnabled: Boolean = false, val autoCompleteSuggestionsEnabled: Boolean = true, val showDefaultBrowserSetting: Boolean = false, @@ -73,7 +71,6 @@ class SettingsViewModel @Inject constructor( viewState.value = currentViewState.copy( loading = false, - showThemeToggle = variant.hasFeature(ThemeToggle), lightThemeEnabled = isLightTheme, autoCompleteSuggestionsEnabled = settingsDataStore.autoCompleteSuggestionsEnabled, isAppDefaultBrowser = defaultBrowserAlready, diff --git a/app/src/main/java/com/duckduckgo/app/statistics/VariantManager.kt b/app/src/main/java/com/duckduckgo/app/statistics/VariantManager.kt index 9d457329f9bd..c464a6eb96a4 100644 --- a/app/src/main/java/com/duckduckgo/app/statistics/VariantManager.kt +++ b/app/src/main/java/com/duckduckgo/app/statistics/VariantManager.kt @@ -16,10 +16,8 @@ package com.duckduckgo.app.statistics -import android.os.Build import android.support.annotation.WorkerThread import com.duckduckgo.app.statistics.VariantManager.Companion.DEFAULT_VARIANT -import com.duckduckgo.app.statistics.VariantManager.VariantFeature.ThemeFeature.* import com.duckduckgo.app.statistics.store.StatisticsDataStore import timber.log.Timber @@ -27,12 +25,6 @@ import timber.log.Timber interface VariantManager { sealed class VariantFeature { - - sealed class ThemeFeature : VariantFeature() { - object ThemeToggle : ThemeFeature() - object LightThemeAsDefault : ThemeFeature() - object DarkThemeAsDefault : ThemeFeature() - } } companion object { @@ -43,13 +35,7 @@ interface VariantManager { val ACTIVE_VARIANTS = listOf( // SERP variants - do not remove Variant(key = "sa", weight = 1.0, features = emptyList()), - Variant(key = "sb", weight = 1.0, features = emptyList()), - - // Light theme experiment - Variant(key = "mg", weight = 2.0, features = emptyList()), - Variant(key = "mh", weight = 1.0, features = listOf(LightThemeAsDefault, ThemeToggle)), - Variant(key = "mj", weight = 1.0, features = listOf(DarkThemeAsDefault, ThemeToggle)) - ) + Variant(key = "sb", weight = 1.0, features = emptyList())) } fun getVariant(activeVariants: List = ACTIVE_VARIANTS): Variant