Skip to content

Commit 4fe086f

Browse files
committed
feature[#40]: force dark theme option
1 parent efc6989 commit 4fe086f

File tree

34 files changed

+272
-193
lines changed

34 files changed

+272
-193
lines changed

app/src/main/kotlin/com/androidvip/sysctlgui/SysctlGuiApp.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,25 @@ import android.app.Application
44
import com.androidvip.sysctlgui.data.di.dataModules
55
import com.androidvip.sysctlgui.di.presentationModules
66
import com.androidvip.sysctlgui.domain.di.domainModule
7+
import com.androidvip.sysctlgui.domain.repository.AppPrefs
78
import com.google.android.material.color.DynamicColors
9+
import org.koin.android.ext.android.get
810
import org.koin.android.ext.koin.androidContext
911
import org.koin.core.context.startKoin
1012

1113
class SysctlGuiApp : Application() {
1214

1315
override fun onCreate() {
1416
super.onCreate()
15-
DynamicColors.applyToActivitiesIfAvailable(this)
1617

1718
startKoin {
1819
androidContext(this@SysctlGuiApp)
1920
modules(dataModules + presentationModules + domainModule)
2021
}
22+
23+
val prefs: AppPrefs = get()
24+
if (prefs.dynamicColors) {
25+
DynamicColors.applyToActivitiesIfAvailable(this)
26+
}
2127
}
2228
}

app/src/main/kotlin/com/androidvip/sysctlgui/ui/base/BaseActivity.kt

Lines changed: 0 additions & 19 deletions
This file was deleted.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.androidvip.sysctlgui.ui.base
2+
3+
import android.os.Bundle
4+
import androidx.appcompat.app.AppCompatActivity
5+
import androidx.core.view.WindowCompat
6+
import com.androidvip.sysctlgui.R
7+
import com.androidvip.sysctlgui.domain.repository.AppPrefs
8+
import org.koin.android.ext.android.inject
9+
10+
/**
11+
* Base activity that uses AppCompat for theming
12+
* TODO: Temporary until 100% compose
13+
*/
14+
abstract class BaseAppCompatActivity : AppCompatActivity() {
15+
private val prefs by inject<AppPrefs>()
16+
17+
override fun onCreate(savedInstanceState: Bundle?) {
18+
super.onCreate(savedInstanceState)
19+
WindowCompat.setDecorFitsSystemWindows(window, false)
20+
21+
if (prefs.forceDark) {
22+
setTheme(R.style.AppTheme_ForceDark)
23+
}
24+
}
25+
}

app/src/main/kotlin/com/androidvip/sysctlgui/ui/base/BaseFragment.kt

Lines changed: 0 additions & 36 deletions
This file was deleted.

app/src/main/kotlin/com/androidvip/sysctlgui/ui/base/BaseSearchActivity.kt

Lines changed: 0 additions & 62 deletions
This file was deleted.

app/src/main/kotlin/com/androidvip/sysctlgui/ui/main/MainActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@ package com.androidvip.sysctlgui.ui.main
22

33
import android.os.Bundle
44
import android.view.MenuItem
5-
import androidx.appcompat.app.AppCompatActivity
65
import androidx.core.view.WindowCompat
76
import androidx.navigation.fragment.NavHostFragment
87
import androidx.navigation.ui.AppBarConfiguration
98
import androidx.navigation.ui.setupWithNavController
109
import com.androidvip.sysctlgui.R
1110
import com.androidvip.sysctlgui.databinding.ActivityMain2Binding
1211
import com.androidvip.sysctlgui.helpers.Actions
12+
import com.androidvip.sysctlgui.ui.base.BaseAppCompatActivity
1313

14-
class MainActivity : AppCompatActivity() {
14+
class MainActivity : BaseAppCompatActivity() {
1515
private lateinit var binding: ActivityMain2Binding
1616

1717
override fun onCreate(savedInstanceState: Bundle?) {

app/src/main/kotlin/com/androidvip/sysctlgui/ui/params/browse/KernelParamBrowseFragment.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ import androidx.navigation.fragment.findNavController
3737
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
3838
import com.androidvip.sysctlgui.R
3939
import com.androidvip.sysctlgui.data.models.KernelParam
40-
import com.androidvip.sysctlgui.design.theme.SysctlGuiTheme
4140
import com.androidvip.sysctlgui.getColorRoles
4241
import com.androidvip.sysctlgui.goAway
4342
import com.androidvip.sysctlgui.show
@@ -46,6 +45,7 @@ import com.androidvip.sysctlgui.ui.base.BaseSearchFragment
4645
import com.androidvip.sysctlgui.ui.params.EmptyParamsWarning
4746
import com.androidvip.sysctlgui.ui.params.OnParamItemClickedListener
4847
import com.androidvip.sysctlgui.ui.params.edit.EditKernelParamActivity
48+
import com.androidvip.sysctlgui.utils.ComposeTheme
4949
import com.androidvip.sysctlgui.utils.Consts
5050
import com.google.android.material.color.MaterialColors
5151
import java.io.File
@@ -64,7 +64,7 @@ class KernelParamBrowseFragment : BaseSearchFragment(), OnParamItemClickedListen
6464
): View {
6565
return ComposeView(requireContext()).apply {
6666
setContent {
67-
SysctlGuiTheme {
67+
ComposeTheme {
6868
val state by viewModel.uiState.collectAsStateWithLifecycle()
6969
val refreshing = state.isLoading
7070
val refreshState = rememberPullRefreshState(

app/src/main/kotlin/com/androidvip/sysctlgui/ui/params/edit/EditKernelParamActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import androidx.appcompat.app.AlertDialog
1111
import androidx.lifecycle.lifecycleScope
1212
import com.androidvip.sysctlgui.R
1313
import com.androidvip.sysctlgui.data.models.KernelParam
14-
import com.androidvip.sysctlgui.design.theme.SysctlGuiTheme
1514
import com.androidvip.sysctlgui.toast
15+
import com.androidvip.sysctlgui.utils.ComposeTheme
1616
import kotlinx.coroutines.launch
1717
import org.koin.androidx.viewmodel.ext.android.viewModel
1818

@@ -25,7 +25,7 @@ class EditKernelParamActivity : ComponentActivity() {
2525
super.onCreate(savedInstanceState)
2626

2727
setContent {
28-
SysctlGuiTheme {
28+
ComposeTheme {
2929
EditParamScreen(viewModel = viewModel)
3030
}
3131
}

app/src/main/kotlin/com/androidvip/sysctlgui/ui/params/edit/EditParamScreen.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -405,12 +405,14 @@ private fun ParamDocs(info: String?) {
405405
)
406406

407407
if (info != null) {
408-
Text(
409-
modifier = Modifier.padding(top = 4.dp, bottom = 16.dp, start = 16.dp, end = 16.dp),
410-
text = info,
411-
style = MaterialTheme.typography.bodyMedium,
412-
color = MaterialTheme.colorScheme.onBackground
413-
)
408+
SelectionContainer {
409+
Text(
410+
modifier = Modifier.padding(top = 4.dp, bottom = 16.dp, start = 16.dp, end = 16.dp),
411+
text = info,
412+
style = MaterialTheme.typography.bodyMedium,
413+
color = MaterialTheme.colorScheme.onBackground
414+
)
415+
}
414416
} else {
415417
Card(
416418
modifier = Modifier

app/src/main/kotlin/com/androidvip/sysctlgui/ui/params/edit/EditParamViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class EditParamViewModel(
3636
updateParam(currentState.param.copy(favorite = !currentState.param.favorite))
3737
}
3838
is EditParamViewEvent.TaskerListSelected -> {
39-
updateParam(currentState.param.copy(taskerList = event.listId))
39+
updateParam(currentState.param.copy(taskerList = event.listId, taskerParam = true))
4040
}
4141
is EditParamViewEvent.ParamValueInputChanged -> {
4242
setState { copy(typedValue = event.newValue) }

0 commit comments

Comments
 (0)