Skip to content

Commit ef3f5f8

Browse files
committed
refactor: cleanup
1 parent e0483be commit ef3f5f8

25 files changed

Lines changed: 135 additions & 941 deletions

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@
1010

1111
<application
1212
android:name=".SysctlGuiApp"
13-
android:allowBackup="true"
14-
android:fullBackupContent="true"
13+
android:allowBackup="false"
1514
android:icon="@mipmap/ic_launcher"
1615
android:label="@string/app_name"
1716
android:roundIcon="@mipmap/ic_launcher_round"
@@ -23,34 +22,17 @@
2322
android:name=".ui.params.user.ManageFavoritesParamsActivity"
2423
android:label="@string/tasker_list_plugin_favorites"
2524
android:theme="@style/AppTheme" />
26-
<activity
27-
android:name=".ui.settings.SettingsActivity"
28-
android:label="@string/settings"
29-
android:theme="@style/AppTheme" />
3025
<activity
3126
android:name=".ui.params.edit.EditKernelParamActivity"
3227
android:label="@string/edit_params"
3328
android:theme="@style/AppTheme" />
3429
<activity
3530
android:name=".ui.main.MainActivity"
36-
android:label="@string/app_name"
37-
android:theme="@style/AppTheme" />
38-
<activity
39-
android:name=".ui.main.MainActivity2"
40-
android:label="@string/app_name"
41-
android:theme="@style/AppTheme" />
42-
<activity
43-
android:name=".ui.params.list.KernelParamListActivity"
44-
android:label="@string/kernel_params"
4531
android:theme="@style/AppTheme" />
4632
<activity
4733
android:name=".ui.params.user.ManageOnStartUpParamsActivity"
4834
android:label="@string/manage_parameters"
4935
android:theme="@style/AppTheme" />
50-
<activity
51-
android:name=".ui.export.ExportOptionsActivity"
52-
android:label="@string/export_options"
53-
android:theme="@style/AppTheme" />
5436
<activity
5537
android:name=".ui.StartActivity"
5638
android:exported="true"
@@ -138,4 +120,4 @@
138120
</service>
139121
</application>
140122

141-
</manifest>
123+
</manifest>

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import com.androidvip.sysctlgui.domain.repository.AppPrefs
1616
import com.androidvip.sysctlgui.domain.usecase.PerformDatabaseMigrationUseCase
1717
import com.androidvip.sysctlgui.goAway
1818
import com.androidvip.sysctlgui.helpers.Actions
19-
import com.androidvip.sysctlgui.ui.main.MainActivity2
19+
import com.androidvip.sysctlgui.ui.main.MainActivity
2020
import com.androidvip.sysctlgui.ui.params.edit.EditKernelParamActivity
2121
import com.androidvip.sysctlgui.ui.params.user.RemovableParamAdapter
2222
import com.topjohnwu.superuser.Shell
@@ -98,8 +98,8 @@ class StartActivity : AppCompatActivity() {
9898
)
9999
val nextIntent = when (intent.action) {
100100
in shortcutNames -> {
101-
Intent(this, MainActivity2::class.java).apply {
102-
putExtra(MainActivity2.EXTRA_DESTINATION, intent.action)
101+
Intent(this, MainActivity::class.java).apply {
102+
putExtra(MainActivity.EXTRA_DESTINATION, intent.action)
103103
}
104104
}
105105

@@ -119,7 +119,7 @@ class StartActivity : AppCompatActivity() {
119119
}
120120

121121
else -> {
122-
Intent(this, MainActivity2::class.java)
122+
Intent(this, MainActivity::class.java)
123123
}
124124
}
125125

app/src/main/kotlin/com/androidvip/sysctlgui/ui/export/ExportOptionsActivity.kt

Lines changed: 0 additions & 150 deletions
This file was deleted.
Lines changed: 35 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,103 +1,73 @@
11
package com.androidvip.sysctlgui.ui.main
22

3-
import android.content.Intent
43
import android.os.Bundle
5-
import android.text.method.LinkMovementMethod
6-
import android.view.Menu
74
import android.view.MenuItem
85
import androidx.appcompat.app.AppCompatActivity
96
import androidx.core.view.WindowCompat
7+
import androidx.navigation.fragment.NavHostFragment
8+
import androidx.navigation.ui.AppBarConfiguration
9+
import androidx.navigation.ui.setupWithNavController
1010
import com.androidvip.sysctlgui.R
11-
import com.androidvip.sysctlgui.data.models.SettingsItem
12-
import com.androidvip.sysctlgui.data.utils.RootUtils
13-
import com.androidvip.sysctlgui.databinding.ActivityMainBinding
14-
import com.androidvip.sysctlgui.domain.repository.AppPrefs
15-
import com.androidvip.sysctlgui.domain.usecase.PerformDatabaseMigrationUseCase
16-
import com.androidvip.sysctlgui.helpers.OnSettingsItemClickedListener
17-
import com.androidvip.sysctlgui.ui.export.ExportOptionsActivity
18-
import com.androidvip.sysctlgui.ui.params.list.KernelParamListActivity
19-
import com.androidvip.sysctlgui.ui.params.user.ManageFavoritesParamsActivity
20-
import com.androidvip.sysctlgui.ui.settings.SettingsActivity
21-
import org.koin.android.ext.android.inject
22-
import org.koin.androidx.viewmodel.ext.android.viewModel
11+
import com.androidvip.sysctlgui.databinding.ActivityMain2Binding
12+
import com.androidvip.sysctlgui.helpers.Actions
2313

24-
class MainActivity : AppCompatActivity(), OnSettingsItemClickedListener {
25-
private lateinit var binding: ActivityMainBinding
26-
private val rootUtils: RootUtils by inject()
27-
private val viewModel: MainViewModel by viewModel()
28-
private val prefs: AppPrefs by inject()
29-
private val performDatabaseMigrationUseCase: PerformDatabaseMigrationUseCase by inject()
14+
class MainActivity : AppCompatActivity() {
15+
private lateinit var binding: ActivityMain2Binding
3016

3117
override fun onCreate(savedInstanceState: Bundle?) {
3218
super.onCreate(savedInstanceState)
3319
WindowCompat.setDecorFitsSystemWindows(window, false)
3420

35-
binding = ActivityMainBinding.inflate(layoutInflater)
21+
binding = ActivityMain2Binding.inflate(layoutInflater)
3622
setContentView(binding.root)
3723
setSupportActionBar(binding.toolbar)
3824

39-
val adapter = HomeItemAdapter(this)
40-
binding.content.recyclerView.adapter = adapter
41-
adapter.submitList(viewModel.getHomeItems())
42-
43-
observeUi()
44-
45-
binding.content.mainAppDescription.movementMethod = LinkMovementMethod.getInstance()
46-
}
47-
48-
override fun onCreateOptionsMenu(menu: Menu): Boolean {
49-
menuInflater.inflate(R.menu.menu_main, menu)
50-
51-
return true
25+
setUpNavigation()
26+
navigateFromIntent()
5227
}
5328

5429
override fun onOptionsItemSelected(item: MenuItem): Boolean {
5530
when (item.itemId) {
5631
android.R.id.home -> finish()
5732

58-
R.id.action_settings -> viewModel.doWhenSettingsPressed()
59-
6033
R.id.action_exit -> {
6134
moveTaskToBack(true)
6235
finish()
6336
}
6437
}
6538

66-
return true
39+
return false // Let fragments have a chance to consume it
6740
}
6841

69-
override fun onDestroy() {
70-
rootUtils.finishProcess()
71-
super.onDestroy()
42+
override fun onSupportNavigateUp(): Boolean {
43+
return navHost.navController.navigateUp() || super.onSupportNavigateUp()
7244
}
7345

74-
override fun onSettingsItemClicked(item: SettingsItem, position: Int) {
75-
when (position) {
76-
0 -> viewModel.doWhenListPressed()
77-
1 -> viewModel.doWhenBrowsePressed()
78-
2 -> viewModel.doWhenImportPressed()
79-
3 -> viewModel.doWhenFavoritesPressed()
80-
}
81-
}
46+
private fun setUpNavigation() = with(binding) {
47+
val navController = navHost.navController
48+
val defaultIds = setOf(R.id.navigationBrowse, R.id.navigationExport, R.id.navigationSettings)
49+
val appBarConfiguration = AppBarConfiguration(defaultIds)
8250

83-
private fun observeUi() = viewModel.viewEffect.observe(this) { viewEffect ->
84-
when (viewEffect) {
85-
is MainViewEffect.NavigateToKernelList -> startActivity(
86-
Intent(this, KernelParamListActivity::class.java)
87-
)
51+
toolbarLayout.setupWithNavController(toolbar, navController, appBarConfiguration)
52+
navView.setupWithNavController(navController)
53+
}
8854

89-
is MainViewEffect.ExportParams -> {
90-
startActivity(Intent(this, ExportOptionsActivity::class.java))
91-
}
55+
private fun navigateFromIntent() {
56+
val fragmentName = intent.getStringExtra(EXTRA_DESTINATION) ?: return
57+
when (fragmentName) {
58+
Actions.BrowseParams.name -> R.id.navigationBrowse
59+
Actions.ExportParams.name -> R.id.navigationExport
60+
Actions.OpenSettings.name -> R.id.navigationSettings
61+
else -> null
62+
}?.let { id ->
63+
navHost.navController.navigate(id)
64+
}
65+
}
9266

93-
is MainViewEffect.NavigateToFavorites -> startActivity(
94-
Intent(this, ManageFavoritesParamsActivity::class.java)
95-
)
67+
private val navHost: NavHostFragment
68+
get() = supportFragmentManager.findFragmentById(R.id.navHostFragment) as NavHostFragment
9669

97-
is MainViewEffect.NavigateToSettings -> {
98-
startActivity(Intent(this, SettingsActivity::class.java))
99-
}
100-
else -> {}
101-
}
70+
companion object {
71+
internal const val EXTRA_DESTINATION = "destination"
10272
}
10373
}

0 commit comments

Comments
 (0)