diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 6102543f..50e3228e 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -23,14 +23,6 @@ public void *(de.robv.android.xposed.callbacks.XC_LoadPackage$LoadPackageParam); } --keep class * implements de.robv.android.xposed.IXposedHookInitPackageResources { - public void *(de.robv.android.xposed.callbacks.XC_InitPackageResources$InitPackageResourcesParam); -} - --keep class * implements de.robv.android.xposed.IXposedHookZygoteInit { - public void *(de.robv.android.xposed.IXposedHookZygoteInit$StartupParam); -} - -assumenosideeffects class kotlin.jvm.internal.Intrinsics { public static void check*(...); public static void throw*(...); diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c8eb5804..02018f52 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,15 +2,14 @@ - + + android:roundIcon="@mipmap/ic_launcher_round" + android:supportsRtl="true" + android:theme="@style/AppTheme"> - - + + @@ -52,7 +51,7 @@ android:label="@string/lock_max" android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"> - + @@ -63,7 +62,7 @@ android:label="@string/allow_screenshots" android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"> - + diff --git a/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt b/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt index 8d691a08..d91e44a4 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt @@ -12,6 +12,7 @@ import android.view.View import android.widget.Switch import android.widget.Toast import cn.fkj233.ui.activity.MIUIActivity +import cn.fkj233.ui.activity.OwnSP import cn.fkj233.ui.activity.view.* import cn.fkj233.ui.dialog.MIUIDialog import com.lt2333.simplicitytools.BuildConfig @@ -436,6 +437,23 @@ class SettingsActivity : MIUIActivity() { SwitchV("remove_small_window_restrictions") ) ) + add(TextSummaryArrowV(TextSummaryV(textId = R.string.max_wallpaper_scale, onClickListener = { + MIUIDialog(activity).apply { + setTitle(R.string.max_wallpaper_scale) + setEditText("", "${activity.getString(R.string.def)}1.1, ${activity.getString(R.string.current)}${OwnSP.ownSP.getFloat("max_wallpaper_scale", 1.1f)}") + setLButton(textId = R.string.cancel) { + dismiss() + } + setRButton(textId = R.string.Done) { + OwnSP.ownSP.edit().run { + putFloat("max_wallpaper_scale", getEditText().toFloat()) + apply() + } + dismiss() + } + show() + } + }))) } } @@ -677,7 +695,12 @@ class SettingsActivity : MIUIActivity() { SwitchV("hide_battery_charging_icon") ) ) - add(TextWithSwitchV(TextV(resId = R.string.hide_gps_icon), SwitchV("hide_gps_icon"))) + add( + TextWithSwitchV( + TextV(resId = R.string.hide_gps_icon), + SwitchV("hide_gps_icon") + ) + ) add( TextWithSwitchV( TextV(resId = R.string.hide_bluetooth_icon), @@ -732,7 +755,12 @@ class SettingsActivity : MIUIActivity() { SwitchV("hide_mobile_type_icon") ) ) - add(TextWithSwitchV(TextV(resId = R.string.hide_wifi_icon), SwitchV("hide_wifi_icon"))) + add( + TextWithSwitchV( + TextV(resId = R.string.hide_wifi_icon), + SwitchV("hide_wifi_icon") + ) + ) add( TextWithSwitchV( TextV(resId = R.string.hide_wifi_activity_icon), @@ -757,7 +785,12 @@ class SettingsActivity : MIUIActivity() { SwitchV("hide_hotspot_icon") ) ) - add(TextWithSwitchV(TextV(resId = R.string.hide_vpn_icon), SwitchV("hide_vpn_icon"))) + add( + TextWithSwitchV( + TextV(resId = R.string.hide_vpn_icon), + SwitchV("hide_vpn_icon") + ) + ) add( TextWithSwitchV( TextV(resId = R.string.hide_airplane_icon), @@ -941,7 +974,8 @@ class SettingsActivity : MIUIActivity() { intent.component = comp startActivity(intent) } catch (e: Exception) { - Toast.makeText(activity, "启动失败,可能是不支持", Toast.LENGTH_LONG).show() + Toast.makeText(activity, "启动失败,可能是不支持", Toast.LENGTH_LONG) + .show() } }) ) diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/Android.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/Android.kt index 8cd5deec..6f8bf2a9 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/Android.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/Android.kt @@ -2,6 +2,7 @@ package com.lt2333.simplicitytools.hook.app import com.lt2333.simplicitytools.hook.app.android.DeleteOnPostNotification import com.lt2333.simplicitytools.hook.app.android.DisableFlagSecure +import com.lt2333.simplicitytools.hook.app.android.MaxWallpaperScale import com.lt2333.simplicitytools.hook.app.android.RemoveSmallWindowRestrictions import com.lt2333.simplicitytools.hook.app.android.corepatch.CorePatch import de.robv.android.xposed.IXposedHookLoadPackage @@ -19,5 +20,7 @@ class Android : IXposedHookLoadPackage { DeleteOnPostNotification().handleLoadPackage(lpparam) //解除小窗限制 RemoveSmallWindowRestrictions().handleLoadPackage(lpparam) + //壁纸缩放比例 + MaxWallpaperScale().handleLoadPackage(lpparam) } } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/DisableFlagSecure.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/DisableFlagSecure.kt index 611b1e69..75fdbd8b 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/DisableFlagSecure.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/DisableFlagSecure.kt @@ -5,7 +5,7 @@ import com.lt2333.simplicitytools.util.hookBeforeMethod import de.robv.android.xposed.IXposedHookLoadPackage import de.robv.android.xposed.callbacks.XC_LoadPackage -class DisableFlagSecure :IXposedHookLoadPackage { +class DisableFlagSecure : IXposedHookLoadPackage { override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { "com.android.server.wm.WindowState".hookBeforeMethod(lpparam.classLoader, "isSecureLocked") { hasEnable("disable_flag_secure") { diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/MaxWallpaperScale.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/MaxWallpaperScale.kt new file mode 100644 index 00000000..4cc82a16 --- /dev/null +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/MaxWallpaperScale.kt @@ -0,0 +1,23 @@ +package com.lt2333.simplicitytools.hook.app.android + +import android.app.Service +import android.icu.text.DisplayContext +import com.lt2333.simplicitytools.util.XSPUtils +import com.lt2333.simplicitytools.util.hookAfterMethod +import com.lt2333.simplicitytools.util.hookBeforeMethod +import com.lt2333.simplicitytools.util.setFloatField +import de.robv.android.xposed.IXposedHookLoadPackage +import de.robv.android.xposed.callbacks.XC_LoadPackage + +class MaxWallpaperScale : IXposedHookLoadPackage { + override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { + val value = XSPUtils.getFloat("max_wallpaper_scale", 1.1f) + "com.android.server.wm.WallpaperController".hookAfterMethod(lpparam.classLoader, "WallpaperController", Service::class.java, DisplayContext::class.java + ) { + it.thisObject.setFloatField("mMaxWallpaperScale", value) + } + "com.android.server.wm.WallpaperController".hookBeforeMethod(lpparam.classLoader, "zoomOutToScale", Float::class.java) { + it.thisObject.setFloatField("mMaxWallpaperScale", value) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/ShowBatteryTemperature.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/ShowBatteryTemperature.kt index 66fd0f3e..ac5b569a 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/ShowBatteryTemperature.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/ShowBatteryTemperature.kt @@ -13,7 +13,10 @@ import android.view.View import android.widget.LinearLayout import android.widget.TextView import cn.fkj233.ui.activity.dp2px -import com.lt2333.simplicitytools.util.* +import com.lt2333.simplicitytools.util.XSPUtils +import com.lt2333.simplicitytools.util.findClass +import com.lt2333.simplicitytools.util.hookAfterMethod +import com.lt2333.simplicitytools.util.hookBeforeMethod import de.robv.android.xposed.IXposedHookLoadPackage import de.robv.android.xposed.callbacks.XC_LoadPackage import java.lang.reflect.Field @@ -36,6 +39,7 @@ class ShowBatteryTemperature: IXposedHookLoadPackage { val textView = view.findViewById(currentTemperatureValue) textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 36.399998f) textView.gravity = Gravity.NO_GRAVITY + textView.typeface = Typeface.create(null, 400, false) textView.setPadding(0, 0, 0, 0) textView.height = dp2px(context, 49.099983f) textView.textAlignment = View.TEXT_ALIGNMENT_VIEW_START @@ -48,7 +52,7 @@ class ShowBatteryTemperature: IXposedHookLoadPackage { tempView.setPadding(0, dp2px(context, 25f), 0, 0) tempView.text = "℃" tempView.setTextColor(Color.parseColor(if (isDarkMode) "#e6e6e6" else "#333333")) - tempView.typeface = Typeface.create(null, 500, false) + tempView.typeface = Typeface.create(null, 400, false) tempView.textAlignment = View.TEXT_ALIGNMENT_VIEW_START val tempeValueContainer = context.resources.getIdentifier("tempe_value_container", "id", "com.miui.securitycenter") val linearLayout = view.findViewById(tempeValueContainer) diff --git a/app/src/main/java/com/lt2333/simplicitytools/util/KotlinXposedHelper.kt b/app/src/main/java/com/lt2333/simplicitytools/util/KotlinXposedHelper.kt index d22161e9..fa2edf5d 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/util/KotlinXposedHelper.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/util/KotlinXposedHelper.kt @@ -395,6 +395,10 @@ fun T.setLongField(field: String?, value: Long) = apply { XposedHelpers.setLongField(this, field, value) } +fun T.setFloatField(field: String?, value: Float) = apply { + XposedHelpers.setFloatField(this, field, value) +} + fun T.setObjectField(field: String?, value: Any?) = apply { XposedHelpers.setObjectField(this, field, value) } diff --git a/app/src/main/java/com/lt2333/simplicitytools/util/XSPUtils.kt b/app/src/main/java/com/lt2333/simplicitytools/util/XSPUtils.kt index 9b5521e1..7b5bd829 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/util/XSPUtils.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/util/XSPUtils.kt @@ -4,7 +4,7 @@ import com.lt2333.simplicitytools.BuildConfig import de.robv.android.xposed.XSharedPreferences object XSPUtils { - var prefs = XSharedPreferences(BuildConfig.APPLICATION_ID, "config") + private var prefs = XSharedPreferences(BuildConfig.APPLICATION_ID, "config") fun getBoolean(key: String, defValue: Boolean): Boolean { if (prefs.hasFileChanged()) { @@ -18,6 +18,13 @@ object XSPUtils { } return prefs.getInt(key, defValue) } + + fun getFloat(key: String, defValue: Float): Float { + if (prefs.hasFileChanged()) { + prefs.reload() + } + return prefs.getFloat(key, defValue) + } } inline fun hasEnable(key: String, default: Boolean = false, noinline extraCondition: (() -> Boolean)? = null, crossinline block: () -> Unit) { diff --git a/app/src/main/res/values-night/styles.xml b/app/src/main/res/values-night/styles.xml index 641cbec0..ad38ea98 100644 --- a/app/src/main/res/values-night/styles.xml +++ b/app/src/main/res/values-night/styles.xml @@ -1,4 +1,4 @@ - + - - \ No newline at end of file diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 8d65f5a0..8b882e16 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -151,4 +151,7 @@ 移除主题壁纸的广告 电池页面显示当前温度 启用Alpha充电动画 + 壁纸缩放比例 + 默认值: + 当前值: diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 41a93650..b2010fca 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -151,4 +151,7 @@ 拿掉主題壁紙的廣告 電池頁面展示當前溫度 啟用Alpha充電動畫 + 壁紙縮放比例 + 默認值: + 當前值: diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 338bee8f..001d1f54 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -151,4 +151,7 @@ 拿掉主題壁紙的廣告 電池頁面展示當前溫度 啟用Alpha充電動畫 + 壁紙縮放比例 + 默認值: + 當前值: diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6e44d351..feb12cfa 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -151,4 +151,7 @@ Remove ads for theme manager Battery page shows the current temperature Enable wave charge animation + Max wallpaper scale + "Default: " + Current: diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 072abf83..c9f26e38 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,5 +1,5 @@ - + - - - \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f37c82dd..c4a685e2 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Sun Feb 13 16:53:34 CST 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME