diff --git a/app/build.gradle b/app/build.gradle index 9be6d6f..78f20c4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "me.lucky.wasted" minSdk 23 targetSdk 31 - versionCode 9 - versionName "1.1.2" + versionCode 10 + versionName "1.1.3" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/me/lucky/wasted/CodeReceiver.kt b/app/src/main/java/me/lucky/wasted/CodeReceiver.kt index 50600f8..43ec5be 100644 --- a/app/src/main/java/me/lucky/wasted/CodeReceiver.kt +++ b/app/src/main/java/me/lucky/wasted/CodeReceiver.kt @@ -1,6 +1,5 @@ package me.lucky.wasted -import android.app.admin.DevicePolicyManager import android.content.BroadcastReceiver import android.content.Context import android.content.Intent @@ -17,10 +16,10 @@ class CodeReceiver : BroadcastReceiver() { code == "" || intent.action != TRIGGER || intent.getStringExtra("code") != code) return - val dpm = context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager + val admin = DeviceAdmin(context) try { - dpm.lockNow() - if (prefs.doWipe) dpm.wipeData(Utils.getWipeDataFlags()) + admin.dpm.lockNow() + if (prefs.doWipe) admin.wipeData() } catch (exc: SecurityException) {} } } diff --git a/app/src/main/java/me/lucky/wasted/DeviceAdmin.kt b/app/src/main/java/me/lucky/wasted/DeviceAdmin.kt index da4e38c..d0f2ebe 100644 --- a/app/src/main/java/me/lucky/wasted/DeviceAdmin.kt +++ b/app/src/main/java/me/lucky/wasted/DeviceAdmin.kt @@ -3,6 +3,7 @@ package me.lucky.wasted import android.app.admin.DevicePolicyManager import android.content.ComponentName import android.content.Context +import android.os.Build class DeviceAdmin(ctx: Context) { val dpm by lazy { @@ -12,4 +13,9 @@ class DeviceAdmin(ctx: Context) { fun remove() = dpm.removeActiveAdmin(deviceAdmin) fun isActive(): Boolean = dpm.isAdminActive(deviceAdmin) + + fun wipeData() { + dpm.wipeData(if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) + DevicePolicyManager.WIPE_SILENTLY else 0) + } } diff --git a/app/src/main/java/me/lucky/wasted/MainActivity.kt b/app/src/main/java/me/lucky/wasted/MainActivity.kt index 23b621e..fb7196d 100644 --- a/app/src/main/java/me/lucky/wasted/MainActivity.kt +++ b/app/src/main/java/me/lucky/wasted/MainActivity.kt @@ -9,9 +9,8 @@ import android.os.Bundle import android.widget.Toast import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity -import java.util.* - import me.lucky.wasted.databinding.ActivityMainBinding +import java.util.* open class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding diff --git a/app/src/main/java/me/lucky/wasted/PanicResponderActivity.kt b/app/src/main/java/me/lucky/wasted/PanicResponderActivity.kt index 62179c4..7950436 100644 --- a/app/src/main/java/me/lucky/wasted/PanicResponderActivity.kt +++ b/app/src/main/java/me/lucky/wasted/PanicResponderActivity.kt @@ -1,7 +1,5 @@ package me.lucky.wasted -import android.app.admin.DevicePolicyManager -import android.content.Context import android.os.Bundle import androidx.appcompat.app.AppCompatActivity @@ -10,9 +8,7 @@ import info.guardianproject.panic.PanicResponder class PanicResponderActivity : AppCompatActivity() { private val prefs by lazy { Preferences(this) } - private val dpm by lazy { - getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager - } + private val admin by lazy { DeviceAdmin(this) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -21,9 +17,9 @@ class PanicResponderActivity : AppCompatActivity() { return } try { - dpm.lockNow() + admin.dpm.lockNow() if (PanicResponder.receivedTriggerFromConnectedApp(this) && - prefs.doWipe) dpm.wipeData(Utils.getWipeDataFlags()) + prefs.doWipe) admin.wipeData() } catch (exc: SecurityException) {} finish() } diff --git a/app/src/main/java/me/lucky/wasted/QSTileService.kt b/app/src/main/java/me/lucky/wasted/QSTileService.kt index 3233497..e792ad5 100644 --- a/app/src/main/java/me/lucky/wasted/QSTileService.kt +++ b/app/src/main/java/me/lucky/wasted/QSTileService.kt @@ -40,7 +40,7 @@ class QSTileService : TileService() { timer?.schedule(timerTask { try { admin.dpm.lockNow() - admin.dpm.wipeData(Utils.getWipeDataFlags()) + admin.wipeData() } catch (exc: SecurityException) {} }, 2000) } diff --git a/app/src/main/java/me/lucky/wasted/Utils.kt b/app/src/main/java/me/lucky/wasted/Utils.kt deleted file mode 100644 index 26250b1..0000000 --- a/app/src/main/java/me/lucky/wasted/Utils.kt +++ /dev/null @@ -1,13 +0,0 @@ -package me.lucky.wasted - -import android.app.admin.DevicePolicyManager -import android.os.Build - -class Utils { - companion object { - fun getWipeDataFlags(): Int { - return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) - DevicePolicyManager.WIPE_SILENTLY else 0 - } - } -} diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fba4cda..f276a06 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -6,7 +6,7 @@ Admin service unavailable Wipe data Confirm Panic App - Are you sure that you want to allow %1$s to trigger destructive panic actions? + Are you sure that you want to allow %1$s to trigger destructive panic actions\? an unknown app Allow Cancel diff --git a/fastlane/metadata/android/en-US/changelogs/10.txt b/fastlane/metadata/android/en-US/changelogs/10.txt new file mode 100644 index 0000000..5d45bf6 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/10.txt @@ -0,0 +1 @@ +under the hood improvements diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png index ea8b0e6..e335dea 100644 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png differ