From 88da4bcc3717926296773fab368f1280c6122e22 Mon Sep 17 00:00:00 2001 From: lucky <> Date: Fri, 14 Jan 2022 15:39:34 +0300 Subject: [PATCH] move PanicKit and code to launchers --- app/src/main/AndroidManifest.xml | 2 ++ .../main/java/me/lucky/wasted/MainActivity.kt | 34 ++++++++++--------- .../main/java/me/lucky/wasted/Preferences.kt | 17 +++++----- .../java/me/lucky/wasted/ShortcutManager.kt | 7 ++-- app/src/main/res/values-ru/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ 6 files changed, 37 insertions(+), 27 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ff48333..5113594 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -51,6 +51,7 @@ @@ -62,6 +63,7 @@ diff --git a/app/src/main/java/me/lucky/wasted/MainActivity.kt b/app/src/main/java/me/lucky/wasted/MainActivity.kt index f6e3890..2fd89eb 100644 --- a/app/src/main/java/me/lucky/wasted/MainActivity.kt +++ b/app/src/main/java/me/lucky/wasted/MainActivity.kt @@ -88,14 +88,8 @@ open class MainActivity : AppCompatActivity() { private fun setup() { binding.apply { - description.setOnLongClickListener { - showLaunchersSettings() - true - } code.setOnClickListener { - prefs.isCodeEnabled = !prefs.isCodeEnabled - updateCodeColorState() - setCodeReceiverState(prefs.isServiceEnabled && prefs.isCodeEnabled) + showLaunchersSettings() } code.setOnLongClickListener { prefs.code = makeCode() @@ -172,7 +166,7 @@ open class MainActivity : AppCompatActivity() { } .setPositiveButton(R.string.ok) { _, _ -> prefs.launchers = launchers - setLaunchers(prefs.isServiceEnabled) + setLaunchersState(prefs.isServiceEnabled) } .show() } @@ -196,7 +190,7 @@ open class MainActivity : AppCompatActivity() { private fun updateCodeColorState() { binding.code.setBackgroundColor(getColor( - if (prefs.isCodeEnabled) R.color.code_receiver_on else R.color.code_receiver_off + if (prefs.launchers != 0) R.color.code_receiver_on else R.color.code_receiver_off )) } @@ -207,19 +201,23 @@ open class MainActivity : AppCompatActivity() { return } prefs.isServiceEnabled = true - setCodeReceiverState(prefs.isCodeEnabled) - setLaunchers(true) + setLaunchersState(true) } - private fun setLaunchers(value: Boolean) { + private fun setLaunchersState(value: Boolean) { if (value) { val launchers = prefs.launchers + setPanicKitState(launchers.and(Launcher.PANIC_KIT.flag) != 0) setTileState(launchers.and(Launcher.TILE.flag) != 0) - if (launchers.and(Launcher.SHORTCUT.flag) != 0) shortcut.push() else shortcut.remove() + shortcut.setState(launchers.and(Launcher.SHORTCUT.flag) != 0) + setCodeReceiverState(launchers.and(Launcher.CODE.flag) != 0) } else { + setPanicKitState(false) setTileState(false) - shortcut.remove() + shortcut.setState(false) + setCodeReceiverState(false) } + updateCodeColorState() } private fun showWipeJobServiceStartFailedPopup() { @@ -232,9 +230,8 @@ open class MainActivity : AppCompatActivity() { private fun setOff() { prefs.isServiceEnabled = false - setCodeReceiverState(false) setWipeOnInactivityComponentsState(false) - setLaunchers(false) + setLaunchersState(false) admin.remove() } @@ -247,6 +244,11 @@ open class MainActivity : AppCompatActivity() { private fun setTileState(value: Boolean) = setComponentState(QSTileService::class.java, value) + private fun setPanicKitState(value: Boolean) { + setComponentState(PanicConnectionActivity::class.java, value) + setComponentState(PanicResponderActivity::class.java, value) + } + private fun setComponentState(cls: Class<*>, value: Boolean) { packageManager.setComponentEnabledSetting( ComponentName(this, cls), diff --git a/app/src/main/java/me/lucky/wasted/Preferences.kt b/app/src/main/java/me/lucky/wasted/Preferences.kt index fa473ce..861b97c 100644 --- a/app/src/main/java/me/lucky/wasted/Preferences.kt +++ b/app/src/main/java/me/lucky/wasted/Preferences.kt @@ -17,12 +17,12 @@ class Preferences(ctx: Context) { private const val WIPE_ON_INACTIVITY = "wipe_on_inactivity" private const val LAUNCHERS = "launchers" - private const val CODE_ENABLED = "code_enabled" private const val WIPE_ON_INACTIVITY_DAYS = "wipe_on_inactivity_days" private const val FILE_NAME = "sec_shared_prefs" // migration private const val DO_WIPE = "do_wipe" + private const val CODE_ENABLED = "code_enabled" private const val WIPE_ON_INACTIVE = "wipe_on_inactive" private const val WIPE_ON_INACTIVE_DAYS = "wipe_on_inactive_days" } @@ -41,17 +41,16 @@ class Preferences(ctx: Context) { set(value) = prefs.edit { putBoolean(SERVICE_ENABLED, value) } var launchers: Int - get() = prefs.getInt(LAUNCHERS, 0) + get() = prefs.getInt( + LAUNCHERS, + if (prefs.getBoolean(CODE_ENABLED, false)) Launcher.CODE.flag else 0, + ) set(value) = prefs.edit { putInt(LAUNCHERS, value) } var code: String get() = prefs.getString(CODE, "") ?: "" set(value) = prefs.edit { putString(CODE, value) } - var isCodeEnabled: Boolean - get() = prefs.getBoolean(CODE_ENABLED, false) - set(value) = prefs.edit { putBoolean(CODE_ENABLED, value) } - var isWipeData: Boolean get() = prefs.getBoolean(WIPE_DATA, prefs.getBoolean(DO_WIPE, false)) set(value) = prefs.edit { putBoolean(WIPE_DATA, value) } @@ -80,6 +79,8 @@ class Preferences(ctx: Context) { } enum class Launcher(val flag: Int) { - TILE(1), - SHORTCUT(1 shl 1), + PANIC_KIT(1), + TILE(1 shl 1), + SHORTCUT(1 shl 2), + CODE(1 shl 3) } diff --git a/app/src/main/java/me/lucky/wasted/ShortcutManager.kt b/app/src/main/java/me/lucky/wasted/ShortcutManager.kt index 94d1362..4f7adcf 100644 --- a/app/src/main/java/me/lucky/wasted/ShortcutManager.kt +++ b/app/src/main/java/me/lucky/wasted/ShortcutManager.kt @@ -13,7 +13,7 @@ class ShortcutManager(private val ctx: Context) { private val prefs by lazy { Preferences(ctx) } - fun push() { + private fun push() { ShortcutManagerCompat.pushDynamicShortcut( ctx, ShortcutInfoCompat.Builder(ctx, SHORTCUT_ID) @@ -28,5 +28,6 @@ class ShortcutManager(private val ctx: Context) { ) } - fun remove() = ShortcutManagerCompat.removeDynamicShortcuts(ctx, arrayListOf(SHORTCUT_ID)) -} \ No newline at end of file + private fun remove() = ShortcutManagerCompat.removeDynamicShortcuts(ctx, arrayListOf(SHORTCUT_ID)) + fun setState(value: Boolean) = if (value) push() else remove() +} diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 97a2d77..2c5dc6f 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -28,7 +28,9 @@ Активировать тревогу\? Это заблокирует устройство и опционально сотрёт его данные. Да + PanicKit Плитка Ярлык + Код diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 83e8dc1..cb42e4b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -28,7 +28,9 @@ Activate panic\? This will lock a device and optionally wipe its data. Yes + PanicKit Tile Shortcut + Code