Skip to content

Commit a947251

Browse files
committed
Rewire settings preferences and update design
1 parent 791d0e9 commit a947251

File tree

129 files changed

+2799
-1250
lines changed

Some content is hidden

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

129 files changed

+2799
-1250
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<application
1616
android:name=".SwitchAI"
1717
android:allowBackup="false"
18+
android:appCategory="productivity"
1819
android:dataExtractionRules="@xml/data_extraction_rules"
1920
android:enableOnBackInvokedCallback="true"
2021
android:fullBackupContent="false"
@@ -490,7 +491,7 @@
490491
<!--digital assistant service-->
491492

492493
<activity
493-
android:name=".services.DigitalAssistantService"
494+
android:name=".service.DigitalAssistantService"
494495
android:configChanges="orientation|screenSize|keyboard|keyboardHidden"
495496
android:excludeFromRecents="true"
496497
android:exported="true"
@@ -506,7 +507,7 @@
506507
<!--assistant service-->
507508

508509
<activity
509-
android:name=".services.AssistantService"
510+
android:name=".service.AssistantService"
510511
android:configChanges="orientation|screenSize|keyboard|keyboardHidden"
511512
android:excludeFromRecents="true"
512513
android:exported="true"
@@ -521,12 +522,33 @@
521522
</intent-filter>
522523
</activity>
523524

525+
<!--assistant quick settings tile service-->
526+
527+
<service
528+
android:name=".service.AssistantTileService"
529+
android:exported="true"
530+
android:icon="@drawable/ic_assistant"
531+
android:label="@string/assistant_label"
532+
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
533+
<intent-filter>
534+
<action android:name="android.service.quicksettings.action.QS_TILE" />
535+
</intent-filter>
536+
</service>
537+
538+
539+
<!--assistant widget list service-->
540+
541+
<service
542+
android:name=".widget.utils.WidgetAssistantListService"
543+
android:exported="false"
544+
android:permission="android.permission.BIND_REMOTEVIEWS" />
545+
524546
<!--assistant material widget-->
525547

526548
<receiver
527549
android:name=".widget.AssistantMaterialWidgetProvider"
528550
android:exported="true"
529-
android:label="@string/widget_assistant_label">
551+
android:label="@string/widget_label">
530552
<intent-filter>
531553
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
532554
</intent-filter>
@@ -540,33 +562,13 @@
540562
<receiver
541563
android:name=".widget.AssistantInvisibleWidgetProvider"
542564
android:exported="true"
543-
android:label="@string/widget_assistant_invisible_label">
565+
android:label="@string/widget_invisible_label">
544566
<intent-filter>
545567
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
546568
</intent-filter>
547569
<meta-data
548570
android:name="android.appwidget.provider"
549571
android:resource="@xml/widget_assistant_invisible" />
550572
</receiver>
551-
552-
<!--assistant widget list service-->
553-
554-
<service
555-
android:name=".widget.utils.WidgetAssistantListService"
556-
android:exported="false"
557-
android:permission="android.permission.BIND_REMOTEVIEWS" />
558-
559-
<!--assistant quick settings tile service-->
560-
561-
<service
562-
android:name="com.wstxda.switchai.services.AssistantTileService"
563-
android:exported="true"
564-
android:icon="@drawable/ic_assistant"
565-
android:label="@string/assistant_label"
566-
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
567-
<intent-filter>
568-
<action android:name="android.service.quicksettings.action.QS_TILE" />
569-
</intent-filter>
570-
</service>
571573
</application>
572574
</manifest>

app/src/main/java/com/wstxda/switchai/SwitchAI.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import com.wstxda.switchai.ui.ThemeManager
88
import com.wstxda.switchai.utils.Constants
99

1010
class SwitchAI : Application(), SharedPreferences.OnSharedPreferenceChangeListener {
11+
1112
private val prefs by lazy { PreferenceHelper(this) }
1213
private val shortcuts by lazy { ShortcutManager(this) }
1314

app/src/main/java/com/wstxda/switchai/activity/AssistantActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ abstract class AssistantActivity : BaseActivity() {
2121
fun createAssistantIntent(
2222
packageName: String, voiceInputActivity: String, defaultActivity: String
2323
): Intent {
24-
val useVoiceInput = preferenceHelper.getBoolean(Constants.ASSISTANT_VOICE_PREF_KEY, true)
24+
val useVoiceInput = preferenceHelper.getBoolean(Constants.VOICE_INPUT_PREF_KEY, true)
2525
val className = if (useVoiceInput) voiceInputActivity else defaultActivity
2626

2727
return Intent().apply {

app/src/main/java/com/wstxda/switchai/activity/MainActivity.kt

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,16 @@ package com.wstxda.switchai.activity
33
import android.os.Bundle
44
import android.view.MenuItem
55
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
6+
import androidx.navigation.NavController
7+
import androidx.navigation.fragment.NavHostFragment
68
import com.wstxda.switchai.R
79
import com.wstxda.switchai.databinding.ActivityMainBinding
810
import com.wstxda.switchai.ui.component.AssistantTutorialBottomSheet
911

1012
class MainActivity : BaseActivity() {
1113

1214
private val binding by lazy { ActivityMainBinding.inflate(layoutInflater) }
15+
private lateinit var navController: NavController
1316

1417
override fun onCreate(savedInstanceState: Bundle?) {
1518
installSplashScreen()
@@ -18,9 +21,34 @@ class MainActivity : BaseActivity() {
1821
applySystemBarInsets(binding.navHostContainer)
1922

2023
setupToolbar(binding.toolbar, showBackButton = false)
21-
binding.collapsingToolbar.title = getString(R.string.app_settings)
24+
setupNavController()
2225
}
2326

27+
override fun onDestroy() {
28+
super.onDestroy()
29+
navController.removeOnDestinationChangedListener(destinationChangedListener)
30+
}
31+
32+
private fun setupNavController() {
33+
val navHostFragment =
34+
supportFragmentManager.findFragmentById(R.id.nav_host_container) as NavHostFragment
35+
navController = navHostFragment.navController
36+
37+
navController.addOnDestinationChangedListener(destinationChangedListener)
38+
}
39+
40+
private val destinationChangedListener =
41+
NavController.OnDestinationChangedListener { controller, destination, _ ->
42+
val label = destination.label?.toString() ?: getString(R.string.app_settings)
43+
binding.collapsingToolbar.title = label
44+
45+
val isTopLevel = destination.id == controller.graph.startDestinationId
46+
supportActionBar?.setDisplayHomeAsUpEnabled(!isTopLevel)
47+
binding.toolbar.setNavigationOnClickListener {
48+
if (!isTopLevel) onBackPressedDispatcher.onBackPressed()
49+
}
50+
}
51+
2452
override fun getMenuResId(): Int = R.menu.main_menu
2553

2654
override fun onMenuItemSelected(item: MenuItem): Boolean {

app/src/main/java/com/wstxda/switchai/assistant/GeminiAssistant.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class GeminiAssistant : AssistantActivity() {
1919

2020
override fun onCreateInternal() {
2121
lifecycleScope.launch {
22-
if (preferences.getBoolean(Constants.ASSISTANT_ROOT_PREF_KEY)) {
22+
if (preferences.getBoolean(Constants.VOICE_INPUT_ROOT_PREF_KEY)) {
2323
openGeminiRoot()
2424
} else {
2525
openGemini()

app/src/main/java/com/wstxda/switchai/assistant/MarusyaAssistant.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class MarusyaAssistant : AssistantActivity() {
1919

2020
override fun onCreateInternal() {
2121
lifecycleScope.launch {
22-
if (preferences.getBoolean(Constants.ASSISTANT_ROOT_PREF_KEY)) {
22+
if (preferences.getBoolean(Constants.VOICE_INPUT_ROOT_PREF_KEY)) {
2323
openMarusyaRoot()
2424
} else {
2525
openMarusya()

app/src/main/java/com/wstxda/switchai/assistant/YuanbaoAssistant.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class YuanbaoAssistant : AssistantActivity() {
1919

2020
override fun onCreateInternal() {
2121
lifecycleScope.launch {
22-
if (preferences.getBoolean(Constants.ASSISTANT_ROOT_PREF_KEY)) {
22+
if (preferences.getBoolean(Constants.VOICE_INPUT_ROOT_PREF_KEY)) {
2323
openYuanbaoRoot()
2424
} else {
2525
openYuanbao()

0 commit comments

Comments
 (0)