Skip to content

Commit 161dbad

Browse files
authored
Remove light theme experiment and enable for all (#388)
1 parent 2921638 commit 161dbad

File tree

7 files changed

+7
-53
lines changed

7 files changed

+7
-53
lines changed

app/src/androidTest/java/com/duckduckgo/app/settings/SettingsViewModelTest.kt

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import com.duckduckgo.app.settings.SettingsViewModel.Command
2828
import com.duckduckgo.app.settings.db.SettingsDataStore
2929
import com.duckduckgo.app.statistics.Variant
3030
import com.duckduckgo.app.statistics.VariantManager
31-
import com.duckduckgo.app.statistics.VariantManager.VariantFeature.ThemeFeature.ThemeToggle
3231
import com.duckduckgo.app.statistics.pixels.Pixel
3332
import com.nhaarman.mockito_kotlin.*
3433
import org.junit.Assert.*
@@ -208,19 +207,5 @@ class SettingsViewModelTest {
208207
assertEquals(expectedStartString, latestViewState().version)
209208
}
210209

211-
@Test
212-
fun whenThemeToggleFeatureExistsThenThemeToggleIsShown() {
213-
whenever(mockVariantManager.getVariant()).thenReturn(Variant("aa", 1.0, listOf(ThemeToggle)))
214-
testee.start()
215-
assertTrue(latestViewState().showThemeToggle)
216-
}
217-
218-
@Test
219-
fun whenThemeToggleFeatureDoesNotExistThenThemeToggleIsNotShown() {
220-
whenever(mockVariantManager.getVariant()).thenReturn(Variant("aa", 1.0, emptyList()))
221-
testee.start()
222-
assertFalse(latestViewState().showThemeToggle)
223-
}
224-
225210
private fun latestViewState() = testee.viewState.value!!
226211
}

app/src/main/java/com/duckduckgo/app/global/DuckDuckGoActivity.kt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import android.support.v4.content.LocalBroadcastManager
2424
import android.support.v7.app.AppCompatActivity
2525
import android.view.MenuItem
2626
import com.duckduckgo.app.settings.db.SettingsDataStore
27-
import com.duckduckgo.app.statistics.VariantManager
2827
import dagger.android.AndroidInjection
2928
import javax.inject.Inject
3029

@@ -37,14 +36,11 @@ abstract class DuckDuckGoActivity : AppCompatActivity() {
3736
@Inject
3837
lateinit var settingsDataStore: SettingsDataStore
3938

40-
@Inject
41-
lateinit var variantManager: VariantManager
42-
4339
private var themeChangeReceiver: BroadcastReceiver? = null
4440

4541
override fun onCreate(savedInstanceState: Bundle?) {
4642
AndroidInjection.inject(this)
47-
themeChangeReceiver = applyTheme(settingsDataStore, variantManager.getVariant())
43+
themeChangeReceiver = applyTheme(settingsDataStore)
4844
super.onCreate(savedInstanceState)
4945
}
5046

app/src/main/java/com/duckduckgo/app/global/DuckDuckGoApplication.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ import com.duckduckgo.app.httpsupgrade.HttpsUpgrader
3838
import com.duckduckgo.app.job.AppConfigurationSyncer
3939
import com.duckduckgo.app.migration.LegacyMigration
4040
import com.duckduckgo.app.settings.db.SettingsDataStore
41-
import com.duckduckgo.app.statistics.VariantManager
4241
import com.duckduckgo.app.statistics.api.StatisticsUpdater
4342
import com.duckduckgo.app.statistics.pixels.Pixel
4443
import com.duckduckgo.app.statistics.pixels.Pixel.PixelName.APP_LAUNCH
@@ -90,10 +89,7 @@ open class DuckDuckGoApplication : HasActivityInjector, HasServiceInjector, HasS
9089

9190
@Inject
9291
lateinit var notificationRegistrar: NotificationRegistrar
93-
94-
@Inject
95-
lateinit var variantManager: VariantManager
96-
92+
9793
@Inject
9894
lateinit var pixel: Pixel
9995

@@ -127,7 +123,7 @@ open class DuckDuckGoApplication : HasActivityInjector, HasServiceInjector, HasS
127123
}
128124

129125
initializeStatistics()
130-
initializeTheme(settingsDataStore, variantManager.getVariant())
126+
initializeTheme(settingsDataStore)
131127
loadTrackerData()
132128
configureDataDownloader()
133129
recordInstallationTimestamp()

app/src/main/java/com/duckduckgo/app/global/Theming.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,9 @@ import android.content.Intent
2222
import android.content.IntentFilter
2323
import android.support.v4.content.LocalBroadcastManager
2424
import com.duckduckgo.app.browser.R
25-
import com.duckduckgo.app.global.DuckDuckGoTheme.DARK
26-
import com.duckduckgo.app.global.DuckDuckGoTheme.LIGHT
2725
import com.duckduckgo.app.global.Theming.Constants.BROADCAST_THEME_CHANGED
2826
import com.duckduckgo.app.global.Theming.Constants.THEME_MAP
2927
import com.duckduckgo.app.settings.db.SettingsDataStore
30-
import com.duckduckgo.app.statistics.Variant
31-
import com.duckduckgo.app.statistics.VariantManager.VariantFeature.ThemeFeature.LightThemeAsDefault
3228

3329

3430
enum class DuckDuckGoTheme {
@@ -38,9 +34,9 @@ enum class DuckDuckGoTheme {
3834

3935
object Theming {
4036

41-
fun initializeTheme(settingsDataStore: SettingsDataStore, variant: Variant) {
37+
fun initializeTheme(settingsDataStore: SettingsDataStore) {
4238
if (settingsDataStore.theme == null) {
43-
settingsDataStore.theme = if (variant.hasFeature(LightThemeAsDefault)) LIGHT else DARK
39+
settingsDataStore.theme = DuckDuckGoTheme.DARK
4440
}
4541
}
4642

@@ -55,7 +51,7 @@ object Theming {
5551
}
5652
}
5753

58-
fun DuckDuckGoActivity.applyTheme(settingsDataStore: SettingsDataStore, variant: Variant): BroadcastReceiver? {
54+
fun DuckDuckGoActivity.applyTheme(settingsDataStore: SettingsDataStore): BroadcastReceiver? {
5955
val themeId = THEME_MAP[Pair(manifestThemeId(), settingsDataStore.theme)] ?: return null
6056
setTheme(themeId)
6157
return registerForThemeChangeBroadcast()

app/src/main/java/com/duckduckgo/app/settings/SettingsActivity.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import android.os.Bundle
2424
import android.support.v7.widget.SwitchCompat
2525
import android.view.View
2626
import android.widget.CompoundButton.OnCheckedChangeListener
27-
import androidx.core.view.isVisible
2827
import com.duckduckgo.app.about.AboutDuckDuckGoActivity
2928
import com.duckduckgo.app.browser.R
3029
import com.duckduckgo.app.feedback.ui.FeedbackActivity
@@ -77,7 +76,6 @@ class SettingsActivity : DuckDuckGoActivity() {
7776
viewModel.viewState.observe(this, Observer<SettingsViewModel.ViewState> { viewState ->
7877
viewState?.let {
7978
version.text = it.version
80-
lightThemeToggle.isVisible = it.showThemeToggle
8179
lightThemeToggle.quietlySetIsChecked(it.lightThemeEnabled, lightThemeToggleListener)
8280
autocompleteToggle.quietlySetIsChecked(it.autoCompleteSuggestionsEnabled, autocompleteToggleListener)
8381
updateDefaultBrowserViewVisibility(it)

app/src/main/java/com/duckduckgo/app/settings/SettingsViewModel.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import com.duckduckgo.app.global.DuckDuckGoTheme
2424
import com.duckduckgo.app.global.SingleLiveEvent
2525
import com.duckduckgo.app.settings.db.SettingsDataStore
2626
import com.duckduckgo.app.statistics.VariantManager
27-
import com.duckduckgo.app.statistics.VariantManager.VariantFeature.ThemeFeature.ThemeToggle
2827
import com.duckduckgo.app.statistics.pixels.Pixel
2928
import com.duckduckgo.app.statistics.pixels.Pixel.PixelName.*
3029
import timber.log.Timber
@@ -40,7 +39,6 @@ class SettingsViewModel @Inject constructor(
4039
data class ViewState(
4140
val loading: Boolean = true,
4241
val version: String = "",
43-
val showThemeToggle: Boolean = false,
4442
val lightThemeEnabled: Boolean = false,
4543
val autoCompleteSuggestionsEnabled: Boolean = true,
4644
val showDefaultBrowserSetting: Boolean = false,
@@ -73,7 +71,6 @@ class SettingsViewModel @Inject constructor(
7371

7472
viewState.value = currentViewState.copy(
7573
loading = false,
76-
showThemeToggle = variant.hasFeature(ThemeToggle),
7774
lightThemeEnabled = isLightTheme,
7875
autoCompleteSuggestionsEnabled = settingsDataStore.autoCompleteSuggestionsEnabled,
7976
isAppDefaultBrowser = defaultBrowserAlready,

app/src/main/java/com/duckduckgo/app/statistics/VariantManager.kt

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,15 @@
1616

1717
package com.duckduckgo.app.statistics
1818

19-
import android.os.Build
2019
import android.support.annotation.WorkerThread
2120
import com.duckduckgo.app.statistics.VariantManager.Companion.DEFAULT_VARIANT
22-
import com.duckduckgo.app.statistics.VariantManager.VariantFeature.ThemeFeature.*
2321
import com.duckduckgo.app.statistics.store.StatisticsDataStore
2422
import timber.log.Timber
2523

2624
@WorkerThread
2725
interface VariantManager {
2826

2927
sealed class VariantFeature {
30-
31-
sealed class ThemeFeature : VariantFeature() {
32-
object ThemeToggle : ThemeFeature()
33-
object LightThemeAsDefault : ThemeFeature()
34-
object DarkThemeAsDefault : ThemeFeature()
35-
}
3628
}
3729

3830
companion object {
@@ -43,13 +35,7 @@ interface VariantManager {
4335
val ACTIVE_VARIANTS = listOf(
4436
// SERP variants - do not remove
4537
Variant(key = "sa", weight = 1.0, features = emptyList()),
46-
Variant(key = "sb", weight = 1.0, features = emptyList()),
47-
48-
// Light theme experiment
49-
Variant(key = "mg", weight = 2.0, features = emptyList()),
50-
Variant(key = "mh", weight = 1.0, features = listOf(LightThemeAsDefault, ThemeToggle)),
51-
Variant(key = "mj", weight = 1.0, features = listOf(DarkThemeAsDefault, ThemeToggle))
52-
)
38+
Variant(key = "sb", weight = 1.0, features = emptyList()))
5339
}
5440

5541
fun getVariant(activeVariants: List<Variant> = ACTIVE_VARIANTS): Variant

0 commit comments

Comments
 (0)