Skip to content

Commit 85f7fa7

Browse files
committed
Remove material you and dark/light theme
1 parent 9cbbac5 commit 85f7fa7

File tree

11 files changed

+4
-218
lines changed

11 files changed

+4
-218
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
@@ -44,7 +44,6 @@ import net.mullvad.mullvadvpn.compose.test.LAZY_LIST_TEST_TAG
4444
import net.mullvad.mullvadvpn.compose.transitions.SettingsTransition
4545
import net.mullvad.mullvadvpn.lib.common.util.openLink
4646
import net.mullvad.mullvadvpn.lib.theme.AppTheme
47-
import net.mullvad.mullvadvpn.lib.theme.DarkThemeState
4847
import net.mullvad.mullvadvpn.lib.theme.Dimens
4948
import net.mullvad.mullvadvpn.util.appendHideNavOnPlayBuild
5049
import net.mullvad.mullvadvpn.viewmodel.SettingsViewModel
@@ -62,8 +61,6 @@ private fun PreviewSettings() {
6261
isLoggedIn = true,
6362
isSupportedVersion = true,
6463
isPlayBuild = false,
65-
isMaterialYouTheme = false,
66-
darkThemeState = DarkThemeState.SYSTEM
6764
),
6865
)
6966
}
@@ -83,8 +80,6 @@ fun Settings(navigator: DestinationsNavigator) {
8380
onApiAccessClick = dropUnlessResumed { navigator.navigate(ApiAccessListDestination) },
8481
onReportProblemCellClick =
8582
dropUnlessResumed { navigator.navigate(ReportProblemDestination) },
86-
onUseMaterialYouThemeClick = vm::setUseMaterialYouTheme,
87-
onDarkThemeStateSelected = vm::onDarkThemeStateSelected,
8883
onBackClick = dropUnlessResumed { navigator.navigateUp() }
8984
)
9085
}
@@ -97,8 +92,6 @@ fun SettingsScreen(
9792
onSplitTunnelingCellClick: () -> Unit = {},
9893
onReportProblemCellClick: () -> Unit = {},
9994
onApiAccessClick: () -> Unit = {},
100-
onUseMaterialYouThemeClick: (Boolean) -> Unit = {},
101-
onDarkThemeStateSelected: (DarkThemeState) -> Unit = {},
10295
onBackClick: () -> Unit = {}
10396
) {
10497
val context = LocalContext.current
@@ -112,11 +105,7 @@ fun SettingsScreen(
112105
state = lazyListState
113106
) {
114107
item { Spacer(modifier = Modifier.height(Dimens.cellLabelVerticalPadding)) }
115-
item {
116-
MaterialYou(state = state, onUseMaterialYouThemeClick = onUseMaterialYouThemeClick)
117-
}
118108
item { Spacer(modifier = Modifier.height(Dimens.cellLabelVerticalPadding)) }
119-
item { DarkTheme(state = state, onDarkThemeStateSelected = onDarkThemeStateSelected) }
120109
if (state.isLoggedIn) {
121110
item { Spacer(modifier = Modifier.height(Dimens.cellLabelVerticalPadding)) }
122111
item {
@@ -261,39 +250,3 @@ private fun PrivacyPolicy(context: Context, state: SettingsUiState) {
261250
}
262251
)
263252
}
264-
265-
@Composable
266-
private fun MaterialYou(state: SettingsUiState, onUseMaterialYouThemeClick: (Boolean) -> Unit) {
267-
HeaderSwitchComposeCell(
268-
title = stringResource(id = R.string.use_material_you),
269-
isToggled = state.isMaterialYouTheme,
270-
onCellClicked = onUseMaterialYouThemeClick
271-
)
272-
}
273-
274-
@Composable
275-
private fun DarkTheme(
276-
state: SettingsUiState,
277-
onDarkThemeStateSelected: (DarkThemeState) -> Unit = {}
278-
) {
279-
Column {
280-
HeaderCell(
281-
text = stringResource(id = R.string.use_dark_theme),
282-
)
283-
SelectableCell(
284-
title = stringResource(id = R.string.use_system_setting),
285-
isSelected = state.darkThemeState == DarkThemeState.SYSTEM,
286-
onCellClicked = { onDarkThemeStateSelected(DarkThemeState.SYSTEM) }
287-
)
288-
SelectableCell(
289-
title = stringResource(id = R.string.on),
290-
isSelected = state.darkThemeState == DarkThemeState.ON,
291-
onCellClicked = { onDarkThemeStateSelected(DarkThemeState.ON) }
292-
)
293-
SelectableCell(
294-
title = stringResource(id = R.string.off),
295-
isSelected = state.darkThemeState == DarkThemeState.OFF,
296-
onCellClicked = { onDarkThemeStateSelected(DarkThemeState.OFF) }
297-
)
298-
}
299-
}
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 isSupportedVersion: 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
@@ -14,7 +13,6 @@ import net.mullvad.mullvadvpn.constant.IS_PLAY_BUILD
1413
import net.mullvad.mullvadvpn.dataproxy.MullvadProblemReport
1514
import net.mullvad.mullvadvpn.lib.payment.PaymentProvider
1615
import net.mullvad.mullvadvpn.lib.shared.VoucherRepository
17-
import net.mullvad.mullvadvpn.lib.theme.ThemeRepository
1816
import net.mullvad.mullvadvpn.repository.ApiAccessRepository
1917
import net.mullvad.mullvadvpn.repository.ChangelogRepository
2018
import net.mullvad.mullvadvpn.repository.CustomListsRepository
@@ -159,13 +157,6 @@ val uiModule = module {
159157
}
160158

161159
single { ProblemReportRepository() }
162-
single {
163-
ThemeRepository(
164-
PreferenceDataStoreFactory.create {
165-
File(androidContext().filesDir, "settings.preferences_pb")
166-
}
167-
)
168-
}
169160
single {
170161
PreferenceDataStoreFactory.create { androidContext().dataStoreFile(APP_PREFERENCES_NAME) }
171162
}
@@ -197,7 +188,7 @@ val uiModule = module {
197188
viewModel { LoginViewModel(get(), get(), get()) }
198189
viewModel { PrivacyDisclaimerViewModel(get(), IS_PLAY_BUILD) }
199190
viewModel { SelectLocationViewModel(get(), get(), get(), get(), get(), get()) }
200-
viewModel { SettingsViewModel(get(), get(), get(), IS_PLAY_BUILD) }
191+
viewModel { SettingsViewModel(get(), get(), IS_PLAY_BUILD) }
201192
viewModel { SplashViewModel(get(), get(), get(), get()) }
202193
viewModel { VoucherDialogViewModel(get()) }
203194
viewModel { VpnSettingsViewModel(get(), get(), get()) }

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

+2-20
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,27 @@ import kotlinx.coroutines.flow.SharingStarted
66
import kotlinx.coroutines.flow.StateFlow
77
import kotlinx.coroutines.flow.combine
88
import kotlinx.coroutines.flow.stateIn
9-
import kotlinx.coroutines.launch
109
import net.mullvad.mullvadvpn.compose.state.SettingsUiState
1110
import net.mullvad.mullvadvpn.lib.model.DeviceState
1211
import net.mullvad.mullvadvpn.lib.shared.DeviceRepository
13-
import net.mullvad.mullvadvpn.lib.theme.DarkThemeState
14-
import net.mullvad.mullvadvpn.lib.theme.ThemeRepository
1512
import net.mullvad.mullvadvpn.ui.serviceconnection.AppVersionInfoRepository
1613

1714
class SettingsViewModel(
1815
deviceRepository: DeviceRepository,
1916
appVersionInfoRepository: AppVersionInfoRepository,
20-
private val themeRepository: ThemeRepository,
2117
isPlayBuild: Boolean
2218
) : ViewModel() {
2319

2420
val uiState: StateFlow<SettingsUiState> =
2521
combine(
2622
deviceRepository.deviceState,
2723
appVersionInfoRepository.versionInfo(),
28-
themeRepository.useMaterialYouTheme(),
29-
themeRepository.useDarkTheme()
30-
) { deviceState, versionInfo, useMaterialYouTheme, darkThemeState ->
24+
) { deviceState, versionInfo ->
3125
SettingsUiState(
3226
isLoggedIn = deviceState is DeviceState.LoggedIn,
3327
appVersion = versionInfo.currentVersion,
3428
isSupportedVersion = versionInfo.isSupported,
35-
isPlayBuild = isPlayBuild,
36-
isMaterialYouTheme = useMaterialYouTheme,
37-
darkThemeState = darkThemeState
29+
isPlayBuild = isPlayBuild
3830
)
3931
}
4032
.stateIn(
@@ -45,16 +37,6 @@ class SettingsViewModel(
4537
isLoggedIn = false,
4638
isSupportedVersion = true,
4739
isPlayBuild = isPlayBuild,
48-
isMaterialYouTheme = false,
49-
darkThemeState = DarkThemeState.ON
5040
)
5141
)
52-
53-
fun setUseMaterialYouTheme(useMaterialYouTheme: Boolean) {
54-
viewModelScope.launch { themeRepository.setUseMaterialYouTheme(useMaterialYouTheme) }
55-
}
56-
57-
fun onDarkThemeStateSelected(darkThemeState: DarkThemeState) {
58-
viewModelScope.launch { themeRepository.setUseDarkTheme(darkThemeState) }
59-
}
6042
}

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

-3
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,4 @@
384384
<string name="failed_to_set_current_test_error">Failed to set to current - API not reachable</string>
385385
<string name="failed_to_set_current_unknown_error">Failed to set to current - Unknown reason</string>
386386
<string name="split_tunneling_disabled_description">Split tunneling is disabled.</string>
387-
<string name="use_material_you">Use material you theme</string>
388-
<string name="use_dark_theme">Use dark theme</string>
389-
<string name="use_system_setting">Use system setting</string>
390387
</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
@@ -168,31 +168,13 @@ private val LocalAppDimens = staticCompositionLocalOf { defaultDimensions }
168168
@OptIn(ExperimentalMaterial3Api::class)
169169
@Composable
170170
fun AppTheme(content: @Composable () -> Unit) {
171-
val themeRepository: ThemeRepository = get().get()
172-
val dynamicColor = themeRepository.useMaterialYouTheme().collectAsState().value
173-
val darkTheme =
174-
when (themeRepository.useDarkTheme().collectAsState().value) {
175-
DarkThemeState.SYSTEM -> isSystemInDarkTheme()
176-
DarkThemeState.ON -> true
177-
DarkThemeState.OFF -> false
178-
}
179-
val context = LocalContext.current
180-
val colorScheme =
181-
when {
182-
dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
183-
if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
184-
}
185-
darkTheme -> darkColorScheme
186-
else -> lightColorScheme
187-
}
188-
189171
val typography = MullvadTypography
190172
// Set dimensions and type scale based on configurations here
191173
val dimensions = defaultDimensions
192174

193175
ProvideDimens(dimensions = dimensions) {
194176
MaterialTheme(
195-
colorScheme = colorScheme.switch(),
177+
colorScheme = darkColorScheme,
196178
shapes = Shapes,
197179
typography = typography,
198180
content = {

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

-50
This file was deleted.

0 commit comments

Comments
 (0)