Skip to content

Commit efc6989

Browse files
committed
refactor: compose user params list
1 parent 122a258 commit efc6989

27 files changed

+401
-647
lines changed

app/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ dependencies {
113113

114114
implementation(AndroidX.splashScreen)
115115
implementation(AndroidX.lifecycleLiveData)
116+
implementation(AndroidX.lifecycleRuntimeCompose)
116117
implementation(AndroidX.navigationFragment)
117118
implementation(AndroidX.navigationUi)
118119
implementation(AndroidX.preference)

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
<activity
2121
android:name=".ui.params.user.ManageFavoritesParamsActivity"
2222
android:label="@string/tasker_list_plugin_favorites"
23+
android:launchMode="singleTask"
2324
android:theme="@style/AppTheme" />
2425
<activity
2526
android:name=".ui.params.edit.EditKernelParamActivity"
@@ -31,6 +32,7 @@
3132
android:theme="@style/AppTheme" />
3233
<activity
3334
android:name=".ui.params.user.ManageOnStartUpParamsActivity"
35+
android:launchMode="singleTask"
3436
android:label="@string/manage_parameters"
3537
android:theme="@style/AppTheme" />
3638
<activity

app/src/main/kotlin/com/androidvip/sysctlgui/data/models/KernelParam.kt

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.androidvip.sysctlgui.data.models
22

33
import android.os.Parcelable
4-
import com.androidvip.sysctlgui.utils.Consts
54
import com.androidvip.sysctlgui.domain.models.DomainKernelParam
5+
import com.androidvip.sysctlgui.utils.Consts
66
import kotlinx.parcelize.Parcelize
77

88
@Parcelize
@@ -15,21 +15,6 @@ data class KernelParam(
1515
override var taskerParam: Boolean = false,
1616
override var taskerList: Int = Consts.LIST_NUMBER_PRIMARY_TASKER
1717
) : DomainKernelParam(), Parcelable {
18-
19-
override fun equals(other: Any?): Boolean {
20-
if (this === other) return true
21-
if (javaClass != other?.javaClass) return false
22-
23-
other as KernelParam
24-
if (name != other.name) return false
25-
26-
return true
27-
}
28-
29-
override fun hashCode(): Int {
30-
return name.hashCode()
31-
}
32-
3318
override fun toString(): String {
3419
if (name.isEmpty()) setNameFromPath(path)
3520
return "$name = $value"

app/src/main/kotlin/com/androidvip/sysctlgui/di/PresentationModule.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.androidvip.sysctlgui.di
33
import com.androidvip.sysctlgui.ui.export.ExportOptionsViewModel
44
import com.androidvip.sysctlgui.ui.main.MainViewModel
55
import com.androidvip.sysctlgui.ui.params.browse.BrowseParamsViewModel
6+
import com.androidvip.sysctlgui.ui.params.edit.EditParamViewModel
67
import com.androidvip.sysctlgui.ui.params.list.ListParamsViewModel
78
import com.androidvip.sysctlgui.ui.params.user.UserParamsViewModel
89
import com.androidvip.sysctlgui.widgets.FavoriteWidgetParamUpdater
@@ -15,6 +16,7 @@ internal val presentationModules = module {
1516
viewModel { BrowseParamsViewModel(get(), get()) }
1617
viewModelOf(::ListParamsViewModel)
1718
viewModelOf(::UserParamsViewModel)
19+
viewModelOf(::EditParamViewModel)
1820
viewModelOf(::MainViewModel)
1921
viewModel { ExportOptionsViewModel(get(), get(), get()) }
2022

app/src/main/kotlin/com/androidvip/sysctlgui/helpers/SwipeToDeleteCallback.kt

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

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

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package com.androidvip.sysctlgui.ui.params.browse
22

33
import android.annotation.SuppressLint
44
import android.app.Dialog
5-
import android.content.Intent
65
import android.os.Bundle
76
import android.view.LayoutInflater
87
import android.view.Menu
@@ -27,12 +26,12 @@ import androidx.compose.material.pullrefresh.rememberPullRefreshState
2726
import androidx.compose.material3.Divider
2827
import androidx.compose.material3.MaterialTheme
2928
import androidx.compose.runtime.Composable
30-
import androidx.compose.runtime.collectAsState
3129
import androidx.compose.runtime.getValue
3230
import androidx.compose.ui.Alignment
3331
import androidx.compose.ui.Modifier
3432
import androidx.compose.ui.platform.ComposeView
3533
import androidx.compose.ui.unit.dp
34+
import androidx.lifecycle.compose.collectAsStateWithLifecycle
3635
import androidx.lifecycle.lifecycleScope
3736
import androidx.navigation.fragment.findNavController
3837
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
@@ -47,7 +46,6 @@ import com.androidvip.sysctlgui.ui.base.BaseSearchFragment
4746
import com.androidvip.sysctlgui.ui.params.EmptyParamsWarning
4847
import com.androidvip.sysctlgui.ui.params.OnParamItemClickedListener
4948
import com.androidvip.sysctlgui.ui.params.edit.EditKernelParamActivity
50-
import com.androidvip.sysctlgui.ui.params.user.RemovableParamAdapter
5149
import com.androidvip.sysctlgui.utils.Consts
5250
import com.google.android.material.color.MaterialColors
5351
import java.io.File
@@ -67,7 +65,7 @@ class KernelParamBrowseFragment : BaseSearchFragment(), OnParamItemClickedListen
6765
return ComposeView(requireContext()).apply {
6866
setContent {
6967
SysctlGuiTheme {
70-
val state by viewModel.uiState.collectAsState()
68+
val state by viewModel.uiState.collectAsStateWithLifecycle()
7169
val refreshing = state.isLoading
7270
val refreshState = rememberPullRefreshState(
7371
refreshing = refreshing,
@@ -179,10 +177,7 @@ class KernelParamBrowseFragment : BaseSearchFragment(), OnParamItemClickedListen
179177
}
180178

181179
private fun navigateToParamDetails(param: KernelParam) {
182-
Intent(requireContext(), EditKernelParamActivity::class.java).apply {
183-
putExtra(RemovableParamAdapter.EXTRA_PARAM, param)
184-
startActivity(this)
185-
}
180+
startActivity(EditKernelParamActivity.getIntent(requireContext(), param))
186181
}
187182

188183
private fun refresh() {

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

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.androidvip.sysctlgui.ui.params.edit
22

33
import android.app.Activity
4+
import android.content.Context
45
import android.content.Intent
56
import android.os.Bundle
67
import androidx.activity.ComponentActivity
@@ -12,17 +13,13 @@ import com.androidvip.sysctlgui.R
1213
import com.androidvip.sysctlgui.data.models.KernelParam
1314
import com.androidvip.sysctlgui.design.theme.SysctlGuiTheme
1415
import com.androidvip.sysctlgui.toast
15-
import com.androidvip.sysctlgui.ui.params.user.RemovableParamAdapter
1616
import kotlinx.coroutines.launch
1717
import org.koin.androidx.viewmodel.ext.android.viewModel
1818

1919
class EditKernelParamActivity : ComponentActivity() {
2020
private val viewModel by viewModel<EditParamViewModel>()
2121
private val isEditingSavedParam: Boolean
22-
get() = intent.getBooleanExtra(
23-
RemovableParamAdapter.EXTRA_EDIT_SAVED_PARAM,
24-
false
25-
)
22+
get() = intent.getBooleanExtra(EXTRA_EDIT_SAVED_PARAM, false)
2623

2724
override fun onCreate(savedInstanceState: Bundle?) {
2825
super.onCreate(savedInstanceState)
@@ -46,8 +43,7 @@ class EditKernelParamActivity : ComponentActivity() {
4643
}
4744

4845
private fun handleIntent(intent: Intent) {
49-
val extraParam = RemovableParamAdapter.EXTRA_PARAM
50-
val param = intent.getParcelableExtra(extraParam) as? KernelParam
46+
val param = intent.getParcelableExtra(EXTRA_PARAM) as? KernelParam
5147
if (param != null) {
5248
viewModel.onEvent(EditParamViewEvent.ReceivedParam(param, this))
5349
} else {
@@ -105,7 +101,13 @@ class EditKernelParamActivity : ComponentActivity() {
105101
}
106102

107103
companion object {
108-
const val NAME_TRANSITION_NAME = "transition_title"
109-
const val VALUE_TRANSITION_NAME = "transition_value"
104+
const val EXTRA_EDIT_SAVED_PARAM = "edit_saved_param"
105+
const val EXTRA_PARAM = "param"
106+
107+
fun getIntent(context: Context, param: KernelParam): Intent {
108+
return Intent(context, EditKernelParamActivity::class.java).apply {
109+
putExtra(EXTRA_PARAM, param)
110+
}
111+
}
110112
}
111113
}

0 commit comments

Comments
 (0)