From 2e4bc3e8024b40bf137c7b3a8af30f2e4a8c18f8 Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Wed, 28 Sep 2022 20:29:04 +0800 Subject: [PATCH] Modify change hideOrShowLauncherIcon in a hard-code way --- .../com/fankes/tsbattery/data/DataConst.kt | 1 - .../tsbattery/ui/activity/MainActivity.kt | 11 ++------- .../utils/factory/FunctionFactory.kt | 24 +++++++++++++++++++ 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/fankes/tsbattery/data/DataConst.kt b/app/src/main/java/com/fankes/tsbattery/data/DataConst.kt index 2f9b9d4..40b07e8 100644 --- a/app/src/main/java/com/fankes/tsbattery/data/DataConst.kt +++ b/app/src/main/java/com/fankes/tsbattery/data/DataConst.kt @@ -25,7 +25,6 @@ import com.highcapable.yukihookapi.hook.xposed.prefs.data.PrefsData object DataConst { - val ENABLE_HIDE_ICON = PrefsData("_hide_icon", false) val ENABLE_RUN_INFO = PrefsData("_tip_run_info", false) val ENABLE_NOTIFY_TIP = PrefsData("_tip_in_notify", true) val ENABLE_SETTING_TIP = PrefsData("_tip_in_setting", true) diff --git a/app/src/main/java/com/fankes/tsbattery/ui/activity/MainActivity.kt b/app/src/main/java/com/fankes/tsbattery/ui/activity/MainActivity.kt index ed783a0..08b9394 100644 --- a/app/src/main/java/com/fankes/tsbattery/ui/activity/MainActivity.kt +++ b/app/src/main/java/com/fankes/tsbattery/ui/activity/MainActivity.kt @@ -23,8 +23,6 @@ package com.fankes.tsbattery.ui.activity -import android.content.ComponentName -import android.content.pm.PackageManager import android.view.HapticFeedbackConstants import androidx.core.view.isVisible import com.fankes.tsbattery.BuildConfig @@ -152,11 +150,11 @@ class MainActivity : BaseActivity() { it.performHapticFeedback(HapticFeedbackConstants.KEYBOARD_TAP) } /** 获取 Sp 存储的信息 */ + binding.hideIconInLauncherSwitch.isChecked = isLauncherIconShowing.not() binding.qqtimProtectModeSwitch.isChecked = modulePrefs.get(DataConst.ENABLE_QQTIM_WHITE_MODE) binding.qqTimCoreServiceSwitch.isChecked = modulePrefs.get(DataConst.ENABLE_QQTIM_CORESERVICE_BAN) binding.qqTimCoreServiceKnSwitch.isChecked = modulePrefs.get(DataConst.ENABLE_QQTIM_CORESERVICE_CHILD_BAN) binding.wechatDisableHookSwitch.isChecked = modulePrefs.get(DataConst.DISABLE_WECHAT_HOOK) - binding.hideIconInLauncherSwitch.isChecked = modulePrefs.get(DataConst.ENABLE_HIDE_ICON) binding.notifyModuleInfoSwitch.isChecked = modulePrefs.get(DataConst.ENABLE_RUN_INFO) binding.notifyNotifyTipSwitch.isChecked = modulePrefs.get(DataConst.ENABLE_NOTIFY_TIP) binding.settingModuleTipSwitch.isChecked = modulePrefs.get(DataConst.ENABLE_SETTING_TIP) @@ -180,12 +178,7 @@ class MainActivity : BaseActivity() { } binding.hideIconInLauncherSwitch.setOnCheckedChangeListener { btn, b -> if (btn.isPressed.not()) return@setOnCheckedChangeListener - modulePrefs.put(DataConst.ENABLE_HIDE_ICON, b) - packageManager.setComponentEnabledSetting( - ComponentName(this@MainActivity, "com.fankes.tsbattery.Home"), - if (b) PackageManager.COMPONENT_ENABLED_STATE_DISABLED else PackageManager.COMPONENT_ENABLED_STATE_ENABLED, - PackageManager.DONT_KILL_APP - ) + hideOrShowLauncherIcon(b) } binding.notifyModuleInfoSwitch.setOnCheckedChangeListener { btn, b -> if (btn.isPressed.not()) return@setOnCheckedChangeListener diff --git a/app/src/main/java/com/fankes/tsbattery/utils/factory/FunctionFactory.kt b/app/src/main/java/com/fankes/tsbattery/utils/factory/FunctionFactory.kt index d2b981b..9bbe03d 100644 --- a/app/src/main/java/com/fankes/tsbattery/utils/factory/FunctionFactory.kt +++ b/app/src/main/java/com/fankes/tsbattery/utils/factory/FunctionFactory.kt @@ -24,6 +24,7 @@ package com.fankes.tsbattery.utils.factory import android.app.Activity +import android.content.ComponentName import android.content.Context import android.content.Intent import android.content.pm.PackageInfo @@ -35,6 +36,7 @@ import android.net.Uri import android.provider.Settings import android.widget.Toast import androidx.core.content.getSystemService +import com.fankes.tsbattery.BuildConfig import com.google.android.material.snackbar.Snackbar import com.highcapable.yukihookapi.hook.xposed.application.ModuleApplication.Companion.appContext @@ -178,3 +180,25 @@ fun Context.openBrowser(url: String, packageName: String = "") = runCatching { else snake(msg = "启动系统浏览器失败") } +/** + * 隐藏或显示启动器图标 + * + * - 你可能需要 LSPosed 的最新版本以开启高版本系统中隐藏 APP 桌面图标功能 + * @param isShow 是否显示 + */ +fun Context.hideOrShowLauncherIcon(isShow: Boolean) { + packageManager?.setComponentEnabledSetting( + ComponentName(packageName, "${BuildConfig.APPLICATION_ID}.Home"), + if (isShow) PackageManager.COMPONENT_ENABLED_STATE_DISABLED else PackageManager.COMPONENT_ENABLED_STATE_ENABLED, + PackageManager.DONT_KILL_APP + ) +} + +/** + * 获取启动器图标状态 + * @return [Boolean] 是否显示 + */ +val Context.isLauncherIconShowing + get() = packageManager?.getComponentEnabledSetting( + ComponentName(packageName, "${BuildConfig.APPLICATION_ID}.Home") + ) != PackageManager.COMPONENT_ENABLED_STATE_DISABLED \ No newline at end of file