Skip to content

Commit 20c84f7

Browse files
committed
refactor: [WIP] updated presentation layer
1 parent 40a95b6 commit 20c84f7

186 files changed

Lines changed: 5748 additions & 4238 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/build.gradle.kts

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ plugins {
66
alias(libs.plugins.kotlin.compose)
77
alias(libs.plugins.ksp)
88
alias(libs.plugins.jetbrains.kotlin.serialization)
9-
kotlin("kapt")
109
id("kotlin-parcelize")
1110
}
1211

@@ -65,7 +64,6 @@ android {
6564

6665
buildFeatures {
6766
viewBinding = true
68-
dataBinding = true
6967
compose = true
7068
}
7169

@@ -108,12 +106,14 @@ dependencies {
108106
implementation(libs.kotlin.stdlib)
109107
implementation(libs.kotlinx.coroutines.android)
110108

111-
implementation(libs.androidx.core.ktx)
112109
implementation(libs.androidx.activity.compose)
110+
implementation(libs.androidx.core.ktx)
111+
implementation(libs.androidx.core.splashscreen)
113112
implementation(libs.androidx.appcompat)
114113
implementation(libs.androidx.material)
115114
implementation(libs.androidx.navigation.compose)
116115
implementation(libs.androidx.window)
116+
implementation(libs.androidx.work.runtime.ktx)
117117

118118
// Lifecycle
119119
implementation(libs.androidx.lifecycle.runtime.ktx)
@@ -124,23 +124,7 @@ dependencies {
124124
implementation(libs.androidx.lifecycle.viewmodel.savedstate)
125125
//ksp(libs.androidx.lifecycle.compiler)
126126

127-
implementation(AndroidX.splashScreen)
128-
implementation(AndroidX.lifecycleLiveData)
129-
implementation(AndroidX.navigationFragment)
130-
implementation(AndroidX.navigationUi)
131-
implementation(AndroidX.preference)
132-
implementation(AndroidX.room)
133-
implementation(AndroidX.roomRuntime)
134-
implementation(AndroidX.workManager)
135-
ksp(AndroidX.roomCompiler)
136-
137-
implementation(Google.gson)
138-
139127
implementation(libs.koin)
140128
implementation(libs.koin.compose)
141129
implementation(libs.bundles.libsu)
142-
143-
implementation(Dependencies.libSuIo)
144-
implementation(Dependencies.liveEvent)
145-
implementation(Dependencies.tapTargetView)
146130
}

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,25 +22,7 @@
2222
android:theme="@style/AppTheme"
2323
android:enableOnBackInvokedCallback="true"
2424
tools:ignore="GoogleAppIndexingWarning">
25-
26-
<activity
27-
android:name=".ui.params.user.ManageFavoritesParamsActivity"
28-
android:label="@string/tasker_list_plugin_favorites"
29-
android:launchMode="singleTask"
30-
android:theme="@style/AppTheme" />
31-
<activity
32-
android:name=".ui.params.edit.EditKernelParamActivity"
33-
android:label="@string/edit_params"
34-
android:launchMode="singleTask"
35-
android:theme="@style/AppTheme" />
36-
<activity
37-
android:name=".ui.main.MainActivity"
38-
android:theme="@style/AppTheme" />
39-
<activity
40-
android:name=".ui.params.user.ManageOnStartUpParamsActivity"
41-
android:launchMode="singleTask"
42-
android:label="@string/manage_parameters"
43-
android:theme="@style/AppTheme" />
25+
<activity android:name=".ui.main.MainActivity" />
4426
<activity
4527
android:name=".ui.start.StartActivity"
4628
android:exported="true"

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

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

33
import android.app.Application
44
import com.androidvip.sysctlgui.data.di.dataModules
5-
import com.androidvip.sysctlgui.di.presentationModules
5+
import com.androidvip.sysctlgui.di.presentationModule
66
import com.androidvip.sysctlgui.domain.di.domainModule
77
import com.androidvip.sysctlgui.domain.repository.AppPrefs
88
import com.google.android.material.color.DynamicColors
@@ -17,7 +17,7 @@ class SysctlGuiApp : Application() {
1717

1818
startKoin {
1919
androidContext(this@SysctlGuiApp)
20-
modules(dataModules + presentationModules + domainModule)
20+
modules(dataModules + presentationModule + domainModule)
2121
}
2222

2323
val prefs: AppPrefs = get()
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.androidvip.sysctlgui.core.navigation
2+
3+
import androidx.compose.ui.graphics.vector.ImageVector
4+
5+
/**
6+
* Represents a top-level destination in the application's navigation.
7+
*
8+
* @param T The type of [UiRoute] this top-level route represents. This allows for specific
9+
* route information to be associated with the top-level destination.
10+
* @property name The human-readable name of the top-level destination, used for labels.
11+
* @property route The actual [UiRoute] object that defines the navigation destination.
12+
* @property selectedIcon The icon to display when this top-level route is currently selected.
13+
* @property unselectedIcon The icon to display when this top-level route is not selected.
14+
*/
15+
data class TopLevelRoute<T : UiRoute>(
16+
val name: String,
17+
val route: T,
18+
val selectedIcon: ImageVector,
19+
val unselectedIcon: ImageVector
20+
)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.androidvip.sysctlgui.core.navigation
2+
3+
import kotlinx.serialization.Serializable
4+
5+
/**
6+
* Represents the different routes in the application's UI.
7+
* This is used for navigation purposes.
8+
*/
9+
@Serializable
10+
sealed interface UiRoute {
11+
@Serializable
12+
data object BrowseParams : UiRoute
13+
@Serializable
14+
data class EditParam(val paramName: String) : UiRoute
15+
@Serializable
16+
data object Presets : UiRoute
17+
@Serializable
18+
data object ImportPresets : UiRoute
19+
@Serializable
20+
data object Favorites : UiRoute
21+
@Serializable
22+
data object UserParams : UiRoute
23+
@Serializable
24+
data object Search : UiRoute
25+
@Serializable
26+
data object Settings : UiRoute
27+
}

app/src/main/kotlin/com/androidvip/sysctlgui/data/mapper/DomainParamMapper.kt

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

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

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

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

Lines changed: 0 additions & 10 deletions
This file was deleted.
Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
package com.androidvip.sysctlgui.di
22

3-
import com.androidvip.sysctlgui.ui.export.ExportOptionsViewModel
43
import com.androidvip.sysctlgui.ui.main.MainViewModel
5-
import com.androidvip.sysctlgui.ui.params.browse.BrowseParamsViewModel
4+
import com.androidvip.sysctlgui.ui.params.browse.ParamBrowseViewModel
65
import com.androidvip.sysctlgui.ui.params.edit.EditParamViewModel
7-
import com.androidvip.sysctlgui.ui.params.list.ListParamsViewModel
8-
import com.androidvip.sysctlgui.ui.params.user.UserParamsViewModel
6+
import com.androidvip.sysctlgui.ui.presets.PresetsViewModel
7+
import com.androidvip.sysctlgui.ui.search.SearchViewModel
8+
import com.androidvip.sysctlgui.ui.settings.SettingsViewModel
9+
import com.androidvip.sysctlgui.ui.user.UserParamsViewModel
910
import com.androidvip.sysctlgui.widgets.FavoriteWidgetParamUpdater
1011
import org.koin.android.ext.koin.androidContext
11-
import org.koin.androidx.viewmodel.dsl.viewModel
12-
import org.koin.androidx.viewmodel.dsl.viewModelOf
12+
import org.koin.core.module.dsl.viewModelOf
1313
import org.koin.dsl.module
1414

15-
internal val presentationModules = module {
16-
viewModel { BrowseParamsViewModel(get(), get()) }
17-
viewModelOf(::ListParamsViewModel)
18-
viewModelOf(::UserParamsViewModel)
19-
viewModelOf(::EditParamViewModel)
15+
internal val presentationModule = module {
2016
viewModelOf(::MainViewModel)
21-
viewModel { ExportOptionsViewModel(get(), get(), get()) }
17+
viewModelOf(::SettingsViewModel)
18+
viewModelOf(::ParamBrowseViewModel)
19+
viewModelOf(::EditParamViewModel)
20+
viewModelOf(::SearchViewModel)
21+
viewModelOf(::PresetsViewModel)
22+
viewModelOf(::UserParamsViewModel)
2223

2324
single { FavoriteWidgetParamUpdater(androidContext()).getListener() }
2425
}

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

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

0 commit comments

Comments
 (0)