Skip to content

Commit 9496701

Browse files
committed
Remove material you and dark/light theme
1 parent d3cd6d4 commit 9496701

File tree

11 files changed

+4
-217
lines changed

11 files changed

+4
-217
lines changed

android/app/src/androidTest/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreenTest.kt

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import io.mockk.MockKAnnotations
77
import net.mullvad.mullvadvpn.compose.createEdgeToEdgeComposeExtension
88
import net.mullvad.mullvadvpn.compose.setContentWithTheme
99
import net.mullvad.mullvadvpn.compose.state.SettingsUiState
10-
import net.mullvad.mullvadvpn.lib.theme.DarkThemeState
1110
import org.junit.jupiter.api.BeforeEach
1211
import org.junit.jupiter.api.Test
1312
import org.junit.jupiter.api.extension.RegisterExtension

android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/component/Scaffolding.kt

-1
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ fun ScaffoldWithMediumTopBar(
127127
actions: @Composable RowScope.() -> Unit = {},
128128
lazyListState: LazyListState = rememberLazyListState(),
129129
scrollbarColor: Color = MaterialTheme.colorScheme.onSurface.copy(alpha = AlphaScrollbar),
130-
toolbarColor: Color = MaterialTheme.colorScheme.surface,
131130
snackbarHostState: SnackbarHostState = remember { SnackbarHostState() },
132131
content: @Composable (modifier: Modifier, lazyListState: LazyListState) -> Unit
133132
) {

android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/SettingsScreen.kt

-47
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_TEST_TAG
4343
import net.mullvad.mullvadvpn.compose.transitions.SettingsTransition
4444
import net.mullvad.mullvadvpn.lib.common.util.openLink
4545
import net.mullvad.mullvadvpn.lib.theme.AppTheme
46-
import net.mullvad.mullvadvpn.lib.theme.DarkThemeState
4746
import net.mullvad.mullvadvpn.lib.theme.Dimens
4847
import net.mullvad.mullvadvpn.util.appendHideNavOnPlayBuild
4948
import net.mullvad.mullvadvpn.viewmodel.SettingsViewModel
@@ -61,8 +60,6 @@ private fun PreviewSettings() {
6160
isLoggedIn = true,
6261
isUpdateAvailable = true,
6362
isPlayBuild = false,
64-
isMaterialYouTheme = false,
65-
darkThemeState = DarkThemeState.SYSTEM
6663
),
6764
)
6865
}
@@ -82,8 +79,6 @@ fun Settings(navigator: DestinationsNavigator) {
8279
onApiAccessClick = dropUnlessResumed { navigator.navigate(ApiAccessListDestination) },
8380
onReportProblemCellClick =
8481
dropUnlessResumed { navigator.navigate(ReportProblemDestination) },
85-
onUseMaterialYouThemeClick = vm::setUseMaterialYouTheme,
86-
onDarkThemeStateSelected = vm::onDarkThemeStateSelected,
8782
onBackClick = dropUnlessResumed { navigator.navigateUp() }
8883
)
8984
}
@@ -96,8 +91,6 @@ fun SettingsScreen(
9691
onSplitTunnelingCellClick: () -> Unit = {},
9792
onReportProblemCellClick: () -> Unit = {},
9893
onApiAccessClick: () -> Unit = {},
99-
onUseMaterialYouThemeClick: (Boolean) -> Unit = {},
100-
onDarkThemeStateSelected: (DarkThemeState) -> Unit = {},
10194
onBackClick: () -> Unit = {}
10295
) {
10396
val context = LocalContext.current
@@ -111,11 +104,7 @@ fun SettingsScreen(
111104
state = lazyListState
112105
) {
113106
item { Spacer(modifier = Modifier.height(Dimens.cellLabelVerticalPadding)) }
114-
item {
115-
MaterialYou(state = state, onUseMaterialYouThemeClick = onUseMaterialYouThemeClick)
116-
}
117107
item { Spacer(modifier = Modifier.height(Dimens.cellLabelVerticalPadding)) }
118-
item { DarkTheme(state = state, onDarkThemeStateSelected = onDarkThemeStateSelected) }
119108
if (state.isLoggedIn) {
120109
item { Spacer(modifier = Modifier.height(Dimens.cellLabelVerticalPadding)) }
121110
item {
@@ -260,39 +249,3 @@ private fun PrivacyPolicy(context: Context, state: SettingsUiState) {
260249
}
261250
)
262251
}
263-
264-
@Composable
265-
private fun MaterialYou(state: SettingsUiState, onUseMaterialYouThemeClick: (Boolean) -> Unit) {
266-
HeaderSwitchComposeCell(
267-
title = stringResource(id = R.string.use_material_you),
268-
isToggled = state.isMaterialYouTheme,
269-
onCellClicked = onUseMaterialYouThemeClick
270-
)
271-
}
272-
273-
@Composable
274-
private fun DarkTheme(
275-
state: SettingsUiState,
276-
onDarkThemeStateSelected: (DarkThemeState) -> Unit = {}
277-
) {
278-
Column {
279-
HeaderCell(
280-
text = stringResource(id = R.string.use_dark_theme),
281-
)
282-
SelectableCell(
283-
title = stringResource(id = R.string.use_system_setting),
284-
isSelected = state.darkThemeState == DarkThemeState.SYSTEM,
285-
onCellClicked = { onDarkThemeStateSelected(DarkThemeState.SYSTEM) }
286-
)
287-
SelectableCell(
288-
title = stringResource(id = R.string.on),
289-
isSelected = state.darkThemeState == DarkThemeState.ON,
290-
onCellClicked = { onDarkThemeStateSelected(DarkThemeState.ON) }
291-
)
292-
SelectableCell(
293-
title = stringResource(id = R.string.off),
294-
isSelected = state.darkThemeState == DarkThemeState.OFF,
295-
onCellClicked = { onDarkThemeStateSelected(DarkThemeState.OFF) }
296-
)
297-
}
298-
}
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
package net.mullvad.mullvadvpn.compose.state
22

3-
import net.mullvad.mullvadvpn.lib.theme.DarkThemeState
4-
53
data class SettingsUiState(
64
val appVersion: String,
75
val isLoggedIn: Boolean,
86
val isUpdateAvailable: Boolean,
97
val isPlayBuild: Boolean,
10-
val isMaterialYouTheme: Boolean,
11-
val darkThemeState: DarkThemeState
128
)

android/app/src/main/kotlin/net/mullvad/mullvadvpn/di/UiModule.kt

+1-10
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import android.content.SharedPreferences
55
import android.content.pm.PackageManager
66
import androidx.datastore.dataStoreFile
77
import androidx.datastore.preferences.core.PreferenceDataStoreFactory
8-
import java.io.File
98
import kotlinx.coroutines.Dispatchers
109
import kotlinx.coroutines.MainScope
1110
import net.mullvad.mullvadvpn.BuildConfig
@@ -18,7 +17,6 @@ import net.mullvad.mullvadvpn.lib.model.ApiAccessMethodName
1817
import net.mullvad.mullvadvpn.lib.model.GeoLocationId
1918
import net.mullvad.mullvadvpn.lib.payment.PaymentProvider
2019
import net.mullvad.mullvadvpn.lib.shared.VoucherRepository
21-
import net.mullvad.mullvadvpn.lib.theme.ThemeRepository
2220
import net.mullvad.mullvadvpn.repository.ApiAccessRepository
2321
import net.mullvad.mullvadvpn.repository.ChangelogRepository
2422
import net.mullvad.mullvadvpn.repository.CustomListsRepository
@@ -161,13 +159,6 @@ val uiModule = module {
161159
}
162160

163161
single { ProblemReportRepository() }
164-
single {
165-
ThemeRepository(
166-
PreferenceDataStoreFactory.create {
167-
File(androidContext().filesDir, "settings.preferences_pb")
168-
}
169-
)
170-
}
171162
single {
172163
PreferenceDataStoreFactory.create { androidContext().dataStoreFile(APP_PREFERENCES_NAME) }
173164
}
@@ -201,7 +192,7 @@ val uiModule = module {
201192
viewModel { LoginViewModel(get(), get(), get()) }
202193
viewModel { PrivacyDisclaimerViewModel(get(), IS_PLAY_BUILD) }
203194
viewModel { SelectLocationViewModel(get(), get(), get(), get(), get(), get()) }
204-
viewModel { SettingsViewModel(get(), get(), get(), IS_PLAY_BUILD) }
195+
viewModel { SettingsViewModel(get(), get(), IS_PLAY_BUILD) }
205196
viewModel { SplashViewModel(get(), get(), get()) }
206197
viewModel { VoucherDialogViewModel(get()) }
207198
viewModel { VpnSettingsViewModel(get(), get(), get()) }

android/app/src/main/kotlin/net/mullvad/mullvadvpn/viewmodel/SettingsViewModel.kt

+2-19
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,25 @@ import kotlinx.coroutines.launch
1010
import net.mullvad.mullvadvpn.compose.state.SettingsUiState
1111
import net.mullvad.mullvadvpn.lib.model.DeviceState
1212
import net.mullvad.mullvadvpn.lib.shared.DeviceRepository
13-
import net.mullvad.mullvadvpn.lib.theme.DarkThemeState
14-
import net.mullvad.mullvadvpn.lib.theme.ThemeRepository
1513
import net.mullvad.mullvadvpn.ui.serviceconnection.AppVersionInfoRepository
1614

1715
class SettingsViewModel(
1816
deviceRepository: DeviceRepository,
1917
appVersionInfoRepository: AppVersionInfoRepository,
20-
private val themeRepository: ThemeRepository,
2118
isPlayBuild: Boolean
2219
) : ViewModel() {
2320

2421
val uiState: StateFlow<SettingsUiState> =
2522
combine(
2623
deviceRepository.deviceState,
2724
appVersionInfoRepository.versionInfo(),
28-
themeRepository.useMaterialYouTheme(),
29-
themeRepository.useDarkTheme()
30-
) { deviceState, versionInfo, useMaterialYouTheme, darkThemeState ->
25+
) { deviceState, versionInfo ->
3126
SettingsUiState(
3227
isLoggedIn = deviceState is DeviceState.LoggedIn,
3328
appVersion = versionInfo.currentVersion,
3429
isUpdateAvailable =
3530
versionInfo.let { it.isSupported.not() || it.isUpdateAvailable },
36-
isPlayBuild = isPlayBuild,
37-
isMaterialYouTheme = useMaterialYouTheme,
38-
darkThemeState = darkThemeState
31+
isPlayBuild = isPlayBuild
3932
)
4033
}
4134
.stateIn(
@@ -46,16 +39,6 @@ class SettingsViewModel(
4639
isLoggedIn = false,
4740
isUpdateAvailable = false,
4841
isPlayBuild = isPlayBuild,
49-
isMaterialYouTheme = false,
50-
darkThemeState = DarkThemeState.ON
5142
)
5243
)
53-
54-
fun setUseMaterialYouTheme(useMaterialYouTheme: Boolean) {
55-
viewModelScope.launch { themeRepository.setUseMaterialYouTheme(useMaterialYouTheme) }
56-
}
57-
58-
fun onDarkThemeStateSelected(darkThemeState: DarkThemeState) {
59-
viewModelScope.launch { themeRepository.setUseDarkTheme(darkThemeState) }
60-
}
6144
}

android/lib/resource/src/main/res/values/strings.xml

-3
Original file line numberDiff line numberDiff line change
@@ -386,7 +386,4 @@
386386
<string name="failed_to_set_current_test_error">Failed to set to current - API not reachable</string>
387387
<string name="failed_to_set_current_unknown_error">Failed to set to current - Unknown reason</string>
388388
<string name="split_tunneling_disabled_description">Split tunneling is disabled.</string>
389-
<string name="use_material_you">Use material you theme</string>
390-
<string name="use_dark_theme">Use dark theme</string>
391-
<string name="use_system_setting">Use system setting</string>
392389
</resources>

android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/AnimatableTheme.kt

-56
This file was deleted.

android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/DarkThemeState.kt

-7
This file was deleted.

android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/Theme.kt

+1-19
Original file line numberDiff line numberDiff line change
@@ -169,31 +169,13 @@ private val LocalAppDimens = staticCompositionLocalOf { defaultDimensions }
169169

170170
@Composable
171171
fun AppTheme(content: @Composable () -> Unit) {
172-
val themeRepository: ThemeRepository = get().get()
173-
val dynamicColor = themeRepository.useMaterialYouTheme().collectAsState().value
174-
val darkTheme =
175-
when (themeRepository.useDarkTheme().collectAsState().value) {
176-
DarkThemeState.SYSTEM -> isSystemInDarkTheme()
177-
DarkThemeState.ON -> true
178-
DarkThemeState.OFF -> false
179-
}
180-
val context = LocalContext.current
181-
val colorScheme =
182-
when {
183-
dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
184-
if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
185-
}
186-
darkTheme -> darkColorScheme
187-
else -> lightColorScheme
188-
}
189-
190172
val typography = MullvadTypography
191173
// Set dimensions and type scale based on configurations here
192174
val dimensions = defaultDimensions
193175

194176
ProvideDimens(dimensions = dimensions) {
195177
MaterialTheme(
196-
colorScheme = colorScheme.switch(),
178+
colorScheme = darkColorScheme,
197179
shapes = Shapes,
198180
typography = typography,
199181
content = {

android/lib/theme/src/main/kotlin/net/mullvad/mullvadvpn/lib/theme/ThemeRepository.kt

-50
This file was deleted.

0 commit comments

Comments
 (0)