Skip to content

Commit f7390b1

Browse files
authored
Merge pull request #28 from Lennoard/refactor/redesign
Refactor/redesign
2 parents 3cb4dc7 + 5564c00 commit f7390b1

81 files changed

Lines changed: 1819 additions & 681 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: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import org.jetbrains.kotlin.config.KotlinCompilerVersion
22
import java.util.Properties
33

4-
val devCycle = false
4+
val devCycle = true
55

66
plugins {
77
id("com.android.application")
@@ -11,8 +11,7 @@ plugins {
1111
}
1212

1313
android {
14-
15-
compileSdk = 30
14+
compileSdk = 31
1615
compileOptions {
1716
sourceCompatibility = JavaVersion.VERSION_1_8
1817
targetCompatibility = JavaVersion.VERSION_1_8
@@ -38,8 +37,8 @@ android {
3837

3938
defaultConfig {
4039
applicationId = "com.androidvip.sysctlgui"
41-
minSdk = 19
42-
targetSdk = 30
40+
minSdk = 21
41+
targetSdk = 31
4342
versionCode = 10
4443
versionName = "1.1.0"
4544
vectorDrawables.useSupportLibrary = true
@@ -80,13 +79,17 @@ android {
8079
}
8180

8281
packagingOptions {
83-
exclude("/META-INF/**")
84-
exclude("/androidsupportmultidexversion.txt")
85-
exclude("/kotlin/**")
86-
exclude("/kotlinx/**")
87-
exclude("/okhttp3/**")
88-
exclude("/*.txt")
89-
exclude("/*.bin")
82+
resources.excludes.addAll(
83+
arrayOf(
84+
"/META-INF/**",
85+
"/androidsupportmultidexversion.txt",
86+
"/kotlin/**",
87+
"/kotlinx/**",
88+
"/okhttp3/**",
89+
"/*.txt",
90+
"/*.bin"
91+
)
92+
)
9093
}
9194
}
9295

@@ -115,20 +118,24 @@ dependencies {
115118

116119
implementation("io.insert-koin:koin-android:3.1.3")
117120

118-
implementation("androidx.appcompat:appcompat:1.3.1")
119-
implementation("androidx.constraintlayout:constraintlayout:2.1.1")
120-
implementation("androidx.core:core-ktx:1.3.2")
121-
implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.3.1")
122-
implementation("androidx.preference:preference-ktx:1.1.1")
121+
implementation("androidx.appcompat:appcompat:1.4.1")
122+
implementation("androidx.constraintlayout:constraintlayout:2.1.3")
123+
implementation("androidx.core:core-ktx:1.7.0")
124+
implementation("androidx.core:core-splashscreen:1.0.0-beta01")
125+
implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.4.0")
126+
implementation("androidx.navigation:navigation-fragment-ktx:2.4.0")
127+
implementation("androidx.navigation:navigation-ui-ktx:2.4.0")
128+
implementation("androidx.preference:preference-ktx:1.2.0")
123129
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
124130
implementation("androidx.room:room-ktx:2.3.0")
125131
implementation("androidx.room:room-runtime:2.3.0")
126132

127-
implementation("com.google.android.material:material:1.4.0")
133+
implementation("com.google.android.material:material:1.6.0-alpha02")
128134
implementation("com.google.code.gson:gson:2.8.6")
129135

130136
implementation("com.getkeepsafe.taptargetview:taptargetview:1.13.3")
131137
implementation("com.github.topjohnwu.libsu:core:2.5.1")
138+
implementation("com.github.hadilq:live-event:1.3.0")
132139

133140
kapt("androidx.room:room-compiler:2.3.0")
134141
}

app/src/main/AndroidManifest.xml

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,37 +16,45 @@
1616
android:label="@string/app_name"
1717
android:roundIcon="@mipmap/ic_launcher_round"
1818
android:supportsRtl="true"
19-
android:theme="@style/AppTheme"
19+
android:theme="@style/AppTheme.Starting"
2020
tools:ignore="GoogleAppIndexingWarning">
2121

22-
<activity android:name=".ui.params.user.ManageFavoritesParamsActivity" />
22+
<activity
23+
android:name=".ui.params.user.ManageFavoritesParamsActivity"
24+
android:label="@string/tasker_list_plugin_favorites"
25+
android:theme="@style/AppTheme" />
2326
<activity
2427
android:name=".ui.settings.SettingsActivity"
25-
android:label="@string/settings" />
28+
android:label="@string/settings"
29+
android:theme="@style/AppTheme" />
2630
<activity
2731
android:name=".ui.params.edit.EditKernelParamActivity"
2832
android:label="@string/edit_params"
29-
android:theme="@style/AppTheme.NoActionBar" />
33+
android:theme="@style/AppTheme" />
3034
<activity
3135
android:name=".ui.main.MainActivity"
3236
android:label="@string/app_name"
33-
android:theme="@style/AppTheme.NoActionBar" />
37+
android:theme="@style/AppTheme" />
3438
<activity
35-
android:name=".ui.params.list.KernelParamListActivity"
36-
android:label="@string/kernel_params" />
39+
android:name=".ui.main.MainActivity2"
40+
android:label="@string/app_name"
41+
android:theme="@style/AppTheme" />
3742
<activity
38-
android:name=".ui.params.browse.KernelParamBrowserActivity"
39-
android:label="@string/browse_variables" />
43+
android:name=".ui.params.list.KernelParamListActivity"
44+
android:label="@string/kernel_params"
45+
android:theme="@style/AppTheme" />
4046
<activity
4147
android:name=".ui.params.user.ManageOnStartUpParamsActivity"
42-
android:label="@string/manage_parameters" />
48+
android:label="@string/manage_parameters"
49+
android:theme="@style/AppTheme" />
4350
<activity
4451
android:name=".ui.export.ExportOptionsActivity"
4552
android:label="@string/export_options"
46-
android:theme="@style/AppTheme.NoActionBar" />
53+
android:theme="@style/AppTheme" />
4754
<activity
48-
android:name=".ui.SplashActivity"
49-
android:theme="@style/AppTheme.NoActionBar">
55+
android:name=".ui.StartActivity"
56+
android:exported="true"
57+
android:theme="@style/AppTheme">
5058
<intent-filter>
5159
<action android:name="android.intent.action.MAIN" />
5260

@@ -59,6 +67,7 @@
5967
</activity>
6068
<activity
6169
android:name=".ui.tasker.TaskerPluginActivity"
70+
android:exported="true"
6271
android:label="@string/tasker_settings">
6372
<intent-filter>
6473
<action android:name="com.twofortyfouram.locale.intent.action.EDIT_SETTING" />
@@ -67,12 +76,15 @@
6776

6877
<receiver
6978
android:name=".receivers.BootReceiver"
70-
android:enabled="false">
79+
android:enabled="true"
80+
android:exported="false">
7181
<intent-filter>
7282
<action android:name="android.intent.action.BOOT_COMPLETED" />
7383
</intent-filter>
7484
</receiver>
75-
<receiver android:name=".widgets.FavoritesWidget">
85+
<receiver
86+
android:name=".widgets.FavoritesWidget"
87+
android:exported="false">
7688
<intent-filter>
7789
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
7890
</intent-filter>
@@ -81,7 +93,9 @@
8193
android:name="android.appwidget.provider"
8294
android:resource="@xml/favorites_widget_info" />
8395
</receiver>
84-
<receiver android:name=".receivers.TaskerReceiver">
96+
<receiver
97+
android:name=".receivers.TaskerReceiver"
98+
android:exported="true">
8599
<intent-filter>
86100
<action android:name="com.twofortyfouram.locale.intent.action.FIRE_SETTING" />
87101
</intent-filter>
@@ -102,6 +116,7 @@
102116
android:permission="android.permission.BIND_REMOTEVIEWS" />
103117
<service
104118
android:name=".services.tiles.StartUpTileService"
119+
android:exported="false"
105120
android:icon="@drawable/ic_start_up_tile"
106121
android:label="@string/tile_toggle_start_up_label"
107122
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
@@ -112,6 +127,7 @@
112127
</service>
113128
<service
114129
android:name=".services.tiles.StartAppTileService"
130+
android:exported="false"
115131
android:icon="@drawable/ic_start_app_tile"
116132
android:label="@string/tile_start_app_label"
117133
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">

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

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

33
import android.app.Activity
44
import android.content.Context
5-
import android.graphics.Color
5+
import android.content.res.ColorStateList
66
import android.net.Uri
77
import android.os.Bundle
88
import android.os.Handler
99
import android.os.Looper
1010
import android.view.View
1111
import android.widget.Toast
12+
import androidx.annotation.AttrRes
13+
import androidx.core.view.ViewCompat
14+
import androidx.fragment.app.Fragment
1215
import com.androidvip.sysctlgui.receivers.TaskerReceiver
16+
import com.google.android.material.color.ColorRoles
17+
import com.google.android.material.color.MaterialColors
1318
import com.google.android.material.snackbar.Snackbar
14-
import kotlinx.coroutines.Dispatchers
15-
import kotlinx.coroutines.withContext
1619
import java.io.InputStream
1720
import kotlin.contracts.ExperimentalContracts
1821
import kotlin.contracts.contract
22+
import kotlinx.coroutines.Dispatchers
23+
import kotlinx.coroutines.withContext
1924

2025
fun View.goAway() { this.visibility = View.GONE }
2126
fun View.hide() { this.visibility = View.INVISIBLE }
2227
fun View.show() { this.visibility = View.VISIBLE }
2328

29+
fun View.getColorRoles(@AttrRes colorAttrRes: Int = R.attr.colorPrimary): ColorRoles {
30+
val color = MaterialColors.getColor(this, colorAttrRes)
31+
return MaterialColors.getColorRoles(context, color)
32+
}
33+
2434
fun Snackbar.showAsLight() {
25-
view.setBackgroundColor(Color.parseColor("#cfd8dc"))
26-
setTextColor(Color.parseColor("#DE000000"))
35+
val roles = view.getColorRoles()
36+
ViewCompat.setBackgroundTintList(view, ColorStateList.valueOf(roles.accentContainer))
37+
setTextColor(roles.accent)
2738
show()
2839
}
2940

41+
fun Fragment.toast(messageRes: Int, length: Int = Toast.LENGTH_SHORT) {
42+
if (!isAdded) return
43+
requireContext().toast(getString(messageRes), length)
44+
}
45+
3046
fun Context?.toast(messageRes: Int, length: Int = Toast.LENGTH_SHORT) {
3147
if (this == null) return
3248
toast(getString(messageRes), length)

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,19 @@ 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.google.android.material.color.DynamicColors
78
import org.koin.android.ext.koin.androidContext
89
import org.koin.core.context.startKoin
910

1011
class SysctlGuiApp : Application() {
1112

1213
override fun onCreate() {
1314
super.onCreate()
15+
DynamicColors.applyToActivitiesIfAvailable(this)
1416

1517
startKoin {
1618
androidContext(this@SysctlGuiApp)
1719
modules(dataModules + presentationModules + domainModule)
1820
}
1921
}
2022
}
21-

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import org.koin.androidx.viewmodel.dsl.viewModel
1212
import org.koin.dsl.module
1313

1414
internal val presentationModules = module {
15-
viewModel { BrowseParamsViewModel(get(), Dispatchers.IO) }
15+
viewModel { BrowseParamsViewModel(get(), Dispatchers.IO, get()) }
1616
viewModel { ListParamsViewModel(get()) }
1717
viewModel { UserParamsViewModel(get(), get(), get()) }
1818
viewModel { MainViewModel() }
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.androidvip.sysctlgui.helpers
22

33
enum class Actions {
4-
KernelParamsListActivity,
5-
KernelParamBrowserActivity,
6-
SettingsActivity,
4+
KernelParamsListFragment,
5+
KernelParamBrowserFragment,
6+
SettingsFragment,
77
ExportParams,
88
EditParam
99
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class SwipeToDeleteCallback(
3636
)
3737
private val background: ColorDrawable = ColorDrawable(ContextCompat.getColor(
3838
weakContext.get()!!,
39-
R.color.error
39+
R.color.red_500
4040
))
4141
private val intrinsicWidth: Int
4242
private val intrinsicHeight: Int

app/src/main/kotlin/com/androidvip/sysctlgui/receivers/BootReceiver.kt

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,14 @@ package com.androidvip.sysctlgui.receivers
33
import android.content.BroadcastReceiver
44
import android.content.Context
55
import android.content.Intent
6-
import android.os.Build
7-
import com.androidvip.sysctlgui.services.LegacyStartUpService
86
import com.androidvip.sysctlgui.services.StartUpService
97

108
class BootReceiver : BroadcastReceiver() {
119
override fun onReceive(context: Context?, intent: Intent?) {
1210
if (intent?.action == Intent.ACTION_BOOT_COMPLETED) {
1311

1412
context?.let {
15-
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.KITKAT) {
16-
LegacyStartUpService.start(context)
17-
} else {
18-
StartUpService.start(context)
19-
}
13+
StartUpService.start(context)
2014
}
2115
}
2216
}

app/src/main/kotlin/com/androidvip/sysctlgui/services/tiles/StartAppTileService.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import android.os.Build
55
import android.service.quicksettings.Tile
66
import android.service.quicksettings.TileService
77
import androidx.annotation.RequiresApi
8-
import com.androidvip.sysctlgui.ui.SplashActivity
8+
import com.androidvip.sysctlgui.ui.StartActivity
99

1010
@RequiresApi(Build.VERSION_CODES.N)
1111
class StartAppTileService : TileService() {
@@ -16,7 +16,7 @@ class StartAppTileService : TileService() {
1616
updateTile()
1717
}
1818
startActivityAndCollapse(
19-
Intent(this, SplashActivity::class.java)
19+
Intent(this, StartActivity::class.java)
2020
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_SINGLE_TOP)
2121
)
2222
}

0 commit comments

Comments
 (0)