feat: app appearance & disable spotlight

This commit is contained in:
rhunk 2023-06-09 00:49:58 +02:00
parent 7aa75b6fc8
commit cbf2d41d7a
5 changed files with 37 additions and 12 deletions

View File

@ -59,7 +59,9 @@
"longitude_value": "Longitude", "longitude_value": "Longitude",
"hide_ui_elements": "Hide UI Elements", "hide_ui_elements": "Hide UI Elements",
"auto_updater": "Auto Updater", "auto_updater": "Auto Updater",
"infinite_story_boost": "Infinite Story Boost" "infinite_story_boost": "Infinite Story Boost",
"enable_app_appearance": "Enable App Appearance Settings",
"disable_spotlight": "Disable Spotlight"
}, },
"option": { "option": {

View File

@ -80,17 +80,10 @@ class ModContext {
} }
} }
fun restartApp() { fun softRestartApp(saveSettings: Boolean = false) {
androidContext.packageManager.getLaunchIntentForPackage( if (saveSettings) {
Constants.SNAPCHAT_PACKAGE_NAME config.writeConfig()
)?.let {
val intent = Intent.makeRestartActivityTask(it.component)
androidContext.startActivity(intent)
Runtime.getRuntime().exit(0)
} }
}
fun softRestartApp() {
val intent: Intent? = androidContext.packageManager.getLaunchIntentForPackage( val intent: Intent? = androidContext.packageManager.getLaunchIntentForPackage(
Constants.SNAPCHAT_PACKAGE_NAME Constants.SNAPCHAT_PACKAGE_NAME
) )

View File

@ -35,7 +35,7 @@ class SnapEnhance {
start { bridgeResult -> start { bridgeResult ->
if (!bridgeResult) { if (!bridgeResult) {
Logger.xposedLog("Cannot connect to bridge service") Logger.xposedLog("Cannot connect to bridge service")
appContext.restartApp() appContext.softRestartApp()
return@start return@start
} }
runCatching { runCatching {

View File

@ -258,6 +258,19 @@ enum class ConfigProperty(
ConfigCategory.UI_TWEAKS, ConfigCategory.UI_TWEAKS,
ConfigIntegerValue(20) ConfigIntegerValue(20)
), ),
DISABLE_SPOTLIGHT(
"property.disable_spotlight",
"description.disable_spotlight",
ConfigCategory.UI_TWEAKS,
ConfigStateValue(false)
),
ENABLE_APP_APPEARANCE(
"property.enable_app_appearance",
"description.enable_app_appearance",
ConfigCategory.UI_TWEAKS,
ConfigStateValue(false)
),
// UPDATES // UPDATES
AUTO_UPDATER( AUTO_UPDATER(

View File

@ -1,8 +1,11 @@
package me.rhunk.snapenhance.features.impl package me.rhunk.snapenhance.features.impl
import android.annotation.SuppressLint
import me.rhunk.snapenhance.config.ConfigProperty import me.rhunk.snapenhance.config.ConfigProperty
import me.rhunk.snapenhance.features.Feature import me.rhunk.snapenhance.features.Feature
import me.rhunk.snapenhance.features.FeatureLoadParams import me.rhunk.snapenhance.features.FeatureLoadParams
import me.rhunk.snapenhance.hook.HookStage
import me.rhunk.snapenhance.hook.hook
import me.rhunk.snapenhance.util.setObjectField import me.rhunk.snapenhance.util.setObjectField
import java.lang.reflect.Field import java.lang.reflect.Field
import java.lang.reflect.Modifier import java.lang.reflect.Modifier
@ -33,6 +36,7 @@ class ConfigEnumKeys : Feature("Config enum keys", loadParams = FeatureLoadParam
} }
} }
@SuppressLint("PrivateApi")
override fun onActivityCreate() { override fun onActivityCreate() {
if (context.config.bool(ConfigProperty.NEW_MAP_UI)) { if (context.config.bool(ConfigProperty.NEW_MAP_UI)) {
hookAllEnums(context.mappings.getMappedClass("enums", "PLUS")) { key, set -> hookAllEnums(context.mappings.getMappedClass("enums", "PLUS")) { key, set ->
@ -62,5 +66,18 @@ class ConfigEnumKeys : Feature("Config enum keys", loadParams = FeatureLoadParam
} }
} }
} }
ConfigProperty.ENABLE_APP_APPEARANCE.valueContainer.addPropertyChangeListener {
context.softRestartApp(true)
}
val sharedPreferencesImpl = context.androidContext.classLoader.loadClass("android.app.SharedPreferencesImpl")
sharedPreferencesImpl.methods.first { it.name == "getBoolean" }.hook(HookStage.BEFORE) { param ->
when (param.arg<String>(0)) {
"SIG_APP_APPEARANCE_SETTING" -> if (context.config.bool(ConfigProperty.ENABLE_APP_APPEARANCE)) param.setResult(true)
"SPOTLIGHT_5TH_TAB_ENABLED" -> if (context.config.bool(ConfigProperty.DISABLE_SPOTLIGHT)) param.setResult(false)
}
}
} }
} }