diff --git a/app/src/main/kotlin/star/sky/voyager/activity/pages/apps/ScreenShotPage.kt b/app/src/main/kotlin/star/sky/voyager/activity/pages/apps/ScreenShotPage.kt index 1c2bf5d..5f01394 100644 --- a/app/src/main/kotlin/star/sky/voyager/activity/pages/apps/ScreenShotPage.kt +++ b/app/src/main/kotlin/star/sky/voyager/activity/pages/apps/ScreenShotPage.kt @@ -28,6 +28,12 @@ class ScreenShotPage : BasePage() { ), SwitchV("save_as_png", false) ) + TextSummaryWithSwitch( + TextSummaryV( + textId = R.string.privacy_mosaic, + ), + SwitchV("privacy_mosaic", false) + ) val deviceBinding = GetDataBinding({ safeSP.getBoolean( "device_shell", diff --git a/app/src/main/kotlin/star/sky/voyager/hook/apps/ScreenShot.kt b/app/src/main/kotlin/star/sky/voyager/hook/apps/ScreenShot.kt index 9fec904..63f6c0c 100644 --- a/app/src/main/kotlin/star/sky/voyager/hook/apps/ScreenShot.kt +++ b/app/src/main/kotlin/star/sky/voyager/hook/apps/ScreenShot.kt @@ -4,6 +4,7 @@ import de.robv.android.xposed.callbacks.XC_LoadPackage import star.sky.voyager.hook.hooks.mediaeditor.UnlockUnlimitedCropping import star.sky.voyager.hook.hooks.multipackage.SuperClipboard import star.sky.voyager.hook.hooks.screenshot.DeviceShell +import star.sky.voyager.hook.hooks.screenshot.PrivacyMosaic import star.sky.voyager.hook.hooks.screenshot.SaveAsPng import star.sky.voyager.hook.hooks.screenshot.SaveToPictures import star.sky.voyager.utils.init.AppRegister @@ -18,6 +19,7 @@ object ScreenShot : AppRegister() { SuperClipboard, SaveToPictures, // 截图保存到 Pictures/Screenshots SaveAsPng, // 截图格式为 PNG + PrivacyMosaic, // 智能隐私打码 // Scroll, DeviceShell, ) diff --git a/app/src/main/kotlin/star/sky/voyager/hook/hooks/screenshot/PrivacyMosaic.kt b/app/src/main/kotlin/star/sky/voyager/hook/hooks/screenshot/PrivacyMosaic.kt new file mode 100644 index 0000000..7b188c5 --- /dev/null +++ b/app/src/main/kotlin/star/sky/voyager/hook/hooks/screenshot/PrivacyMosaic.kt @@ -0,0 +1,17 @@ +package star.sky.voyager.hook.hooks.screenshot + +import com.github.kyuubiran.ezxhelper.ClassUtils.loadClass +import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook +import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder +import star.sky.voyager.utils.init.HookRegister +import star.sky.voyager.utils.key.hasEnable + +object PrivacyMosaic : HookRegister() { + override fun init() = hasEnable("privacy_mosaic") { + loadClass("com.miui.gallery.editor.photo.screen.mosaic.ScreenMosaicView") + .methodFinder().filterByName("isSupportPrivacyMarking") + .first().createHook { + returnConstant(true) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index f257fa3..59ff4b2 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -471,6 +471,7 @@ スクリーンショットは Pictures/Screenshots に保存されます PNG形式でスクリーンショットを保存する カスタムシェル付きのスクリーンショット機種 + スマートプライバシーモザイク デバイスを偽装: 商店提供モデル diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 9edcb06..d42743e 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -471,6 +471,7 @@ 截图保存到 \nPictures/Screenshots 截图格式为 PNG 自定义带壳截图的机型 + 智能隐私打码 伪装机型为: 商店推送的机型 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d642a2c..8ef59b3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -472,6 +472,7 @@ Save screenshots to \nPictures/Screenshots Save screenshots as PNG Customize device with shell for screenshots + Intelligent Privacy Mosaic Disguise your model as what in the GetApps Device Market Models