diff --git a/README.md b/README.md
index 2f20738..64b2964 100644
--- a/README.md
+++ b/README.md
@@ -24,6 +24,7 @@ locks a device and optionally runs wipe.
Also you can:
* fire when a device was not unlocked for X time
* fire when a USB data connection is made while a device is locked
+* fire when a fake messenger app is launched
* fire when a duress password is entered (companion app: [Duress](https://github.com/x13a/Duress))
The app works in `Work Profile` too. Use [Shelter](https://github.com/PeterCxy/Shelter) to install
diff --git a/app/build.gradle b/app/build.gradle
index 1fd2654..590fc68 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -10,8 +10,8 @@ android {
applicationId "me.lucky.wasted"
minSdk 23
targetSdk 32
- versionCode 34
- versionName "1.5.5"
+ versionCode 35
+ versionName "1.5.6"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1531773..f2e2775 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -156,5 +156,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/me/lucky/wasted/MainActivity.kt b/app/src/main/java/me/lucky/wasted/MainActivity.kt
index 4959127..3c4d322 100644
--- a/app/src/main/java/me/lucky/wasted/MainActivity.kt
+++ b/app/src/main/java/me/lucky/wasted/MainActivity.kt
@@ -143,6 +143,7 @@ open class MainActivity : AppCompatActivity() {
R.id.nav_trigger_tile -> TileFragment()
R.id.nav_trigger_notification -> NotificationFragment()
R.id.nav_trigger_lock -> LockFragment()
+ R.id.nav_trigger_application -> ApplicationFragment()
R.id.top_settings -> SettingsFragment()
else -> MainFragment()
}
diff --git a/app/src/main/java/me/lucky/wasted/Preferences.kt b/app/src/main/java/me/lucky/wasted/Preferences.kt
index b8284e6..574e343 100644
--- a/app/src/main/java/me/lucky/wasted/Preferences.kt
+++ b/app/src/main/java/me/lucky/wasted/Preferences.kt
@@ -22,6 +22,7 @@ class Preferences(ctx: Context, encrypted: Boolean = true) {
private const val TRIGGERS = "triggers"
private const val TRIGGER_LOCK_COUNT = "trigger_lock_count"
private const val TRIGGER_TILE_DELAY = "trigger_tile_delay"
+ private const val TRIGGER_APPLICATION_OPTIONS = "trigger_application_options"
private const val FILE_NAME = "sec_shared_prefs"
@@ -85,6 +86,10 @@ class Preferences(ctx: Context, encrypted: Boolean = true) {
get() = prefs.getLong(TRIGGER_TILE_DELAY, DEFAULT_TRIGGER_TILE_DELAY)
set(value) = prefs.edit { putLong(TRIGGER_TILE_DELAY, value) }
+ var triggerApplicationOptions: Int
+ get() = prefs.getInt(TRIGGER_APPLICATION_OPTIONS, 0)
+ set(value) = prefs.edit { putInt(TRIGGER_APPLICATION_OPTIONS, value) }
+
fun registerListener(listener: SharedPreferences.OnSharedPreferenceChangeListener) =
prefs.registerOnSharedPreferenceChangeListener(listener)
@@ -114,4 +119,12 @@ enum class Trigger(val value: Int) {
NOTIFICATION(1 shl 4),
LOCK(1 shl 5),
USB(1 shl 6),
+ APPLICATION(1 shl 7),
+}
+
+enum class ApplicationOption(val value: Int) {
+ SIGNAL(1),
+ TELEGRAM(1 shl 1),
+ THREEMA(1 shl 2),
+ SESSION(1 shl 3),
}
\ No newline at end of file
diff --git a/app/src/main/java/me/lucky/wasted/Utils.kt b/app/src/main/java/me/lucky/wasted/Utils.kt
index 5a865b7..72a5700 100644
--- a/app/src/main/java/me/lucky/wasted/Utils.kt
+++ b/app/src/main/java/me/lucky/wasted/Utils.kt
@@ -36,6 +36,7 @@ class Utils(private val ctx: Context) {
setBroadcastEnabled(enabled && triggers.and(Trigger.BROADCAST.value) != 0)
setNotificationEnabled(enabled && triggers.and(Trigger.NOTIFICATION.value) != 0)
updateForegroundRequiredEnabled()
+ updateApplicationEnabled()
}
fun setPanicKitEnabled(enabled: Boolean) {
@@ -60,6 +61,29 @@ class Utils(private val ctx: Context) {
fun setNotificationEnabled(enabled: Boolean) =
setComponentEnabled(NotificationListenerService::class.java, enabled)
+ fun updateApplicationEnabled() {
+ val prefix = "${ctx.packageName}.trigger.application"
+ val prefs = Preferences(ctx)
+ val options = prefs.triggerApplicationOptions
+ val enabled = prefs.isEnabled && prefs.triggers.and(Trigger.APPLICATION.value) != 0
+ setComponentEnabled(
+ "$prefix.SignalActivity",
+ enabled && options.and(ApplicationOption.SIGNAL.value) != 0,
+ )
+ setComponentEnabled(
+ "$prefix.TelegramActivity",
+ enabled && options.and(ApplicationOption.TELEGRAM.value) != 0,
+ )
+ setComponentEnabled(
+ "$prefix.ThreemaActivity",
+ enabled && options.and(ApplicationOption.THREEMA.value) != 0,
+ )
+ setComponentEnabled(
+ "$prefix.SessionActivity",
+ enabled && options.and(ApplicationOption.SESSION.value) != 0,
+ )
+ }
+
fun updateForegroundRequiredEnabled() {
val prefs = Preferences(ctx)
val enabled = prefs.isEnabled
@@ -78,8 +102,14 @@ class Utils(private val ctx: Context) {
}
private fun setComponentEnabled(cls: Class<*>, enabled: Boolean) =
+ setComponentEnabled(ComponentName(ctx, cls), enabled)
+
+ private fun setComponentEnabled(cls: String, enabled: Boolean) =
+ setComponentEnabled(ComponentName(ctx, cls), enabled)
+
+ private fun setComponentEnabled(componentName: ComponentName, enabled: Boolean) =
ctx.packageManager.setComponentEnabledSetting(
- ComponentName(ctx, cls),
+ componentName,
if (enabled) PackageManager.COMPONENT_ENABLED_STATE_ENABLED else
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP,
diff --git a/app/src/main/java/me/lucky/wasted/fragment/ApplicationFragment.kt b/app/src/main/java/me/lucky/wasted/fragment/ApplicationFragment.kt
new file mode 100644
index 0000000..8aeb9db
--- /dev/null
+++ b/app/src/main/java/me/lucky/wasted/fragment/ApplicationFragment.kt
@@ -0,0 +1,95 @@
+package me.lucky.wasted.fragment
+
+import android.content.Context
+import android.content.SharedPreferences
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+
+import me.lucky.wasted.ApplicationOption
+import me.lucky.wasted.Preferences
+import me.lucky.wasted.Utils
+import me.lucky.wasted.databinding.FragmentApplicationBinding
+
+class ApplicationFragment : Fragment() {
+ private lateinit var binding: FragmentApplicationBinding
+ private lateinit var ctx: Context
+ private lateinit var prefs: Preferences
+ private lateinit var prefsdb: Preferences
+ private val utils by lazy { Utils(ctx) }
+
+ private val prefsListener = SharedPreferences.OnSharedPreferenceChangeListener { _, key ->
+ prefs.copyTo(prefsdb, key)
+ }
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?,
+ ): View {
+ binding = FragmentApplicationBinding.inflate(inflater, container, false)
+ init()
+ setup()
+ return binding.root
+ }
+
+ override fun onStart() {
+ super.onStart()
+ prefs.registerListener(prefsListener)
+ }
+
+ override fun onStop() {
+ super.onStop()
+ prefs.unregisterListener(prefsListener)
+ }
+
+ private fun init() {
+ ctx = requireContext()
+ prefs = Preferences(ctx)
+ prefsdb = Preferences(ctx, encrypted = false)
+ binding.apply {
+ val options = prefs.triggerApplicationOptions
+ signal.isChecked = options.and(ApplicationOption.SIGNAL.value) != 0
+ telegram.isChecked = options.and(ApplicationOption.TELEGRAM.value) != 0
+ threema.isChecked = options.and(ApplicationOption.THREEMA.value) != 0
+ session.isChecked = options.and(ApplicationOption.SESSION.value) != 0
+ }
+ }
+
+ private fun setup() = binding.apply {
+ signal.setOnCheckedChangeListener { _, isChecked ->
+ prefs.triggerApplicationOptions = Utils.setFlag(
+ prefs.triggerApplicationOptions,
+ ApplicationOption.SIGNAL.value,
+ isChecked,
+ )
+ utils.updateApplicationEnabled()
+ }
+ telegram.setOnCheckedChangeListener { _, isChecked ->
+ prefs.triggerApplicationOptions = Utils.setFlag(
+ prefs.triggerApplicationOptions,
+ ApplicationOption.TELEGRAM.value,
+ isChecked,
+ )
+ utils.updateApplicationEnabled()
+ }
+ threema.setOnCheckedChangeListener { _, isChecked ->
+ prefs.triggerApplicationOptions = Utils.setFlag(
+ prefs.triggerApplicationOptions,
+ ApplicationOption.THREEMA.value,
+ isChecked,
+ )
+ utils.updateApplicationEnabled()
+ }
+ session.setOnCheckedChangeListener { _, isChecked ->
+ prefs.triggerApplicationOptions = Utils.setFlag(
+ prefs.triggerApplicationOptions,
+ ApplicationOption.SESSION.value,
+ isChecked,
+ )
+ utils.updateApplicationEnabled()
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/me/lucky/wasted/fragment/SettingsFragment.kt b/app/src/main/java/me/lucky/wasted/fragment/SettingsFragment.kt
index 8334b61..44a96f2 100644
--- a/app/src/main/java/me/lucky/wasted/fragment/SettingsFragment.kt
+++ b/app/src/main/java/me/lucky/wasted/fragment/SettingsFragment.kt
@@ -60,6 +60,7 @@ class SettingsFragment : Fragment() {
notification.isChecked = triggers.and(Trigger.NOTIFICATION.value) != 0
lock.isChecked = triggers.and(Trigger.LOCK.value) != 0
usb.isChecked = triggers.and(Trigger.USB.value) != 0
+ application.isChecked = triggers.and(Trigger.APPLICATION.value) != 0
}
}
@@ -93,5 +94,9 @@ class SettingsFragment : Fragment() {
prefs.triggers = Utils.setFlag(prefs.triggers, Trigger.USB.value, isChecked)
utils.updateForegroundRequiredEnabled()
}
+ application.setOnCheckedChangeListener { _, isChecked ->
+ prefs.triggers = Utils.setFlag(prefs.triggers, Trigger.APPLICATION.value, isChecked)
+ utils.updateApplicationEnabled()
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/me/lucky/wasted/trigger/application/ApplicationActivity.kt b/app/src/main/java/me/lucky/wasted/trigger/application/ApplicationActivity.kt
new file mode 100644
index 0000000..61858d2
--- /dev/null
+++ b/app/src/main/java/me/lucky/wasted/trigger/application/ApplicationActivity.kt
@@ -0,0 +1,26 @@
+package me.lucky.wasted.trigger.application
+
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+
+import me.lucky.wasted.Preferences
+import me.lucky.wasted.Trigger
+import me.lucky.wasted.admin.DeviceAdminManager
+
+class ApplicationActivity : AppCompatActivity() {
+ private val prefs by lazy { Preferences(this) }
+ private val admin by lazy { DeviceAdminManager(this) }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ if (!prefs.isEnabled || prefs.triggers.and(Trigger.APPLICATION.value) == 0) {
+ finishAndRemoveTask()
+ return
+ }
+ try {
+ admin.lockNow()
+ if (prefs.isWipeData) admin.wipeData()
+ } catch (exc: SecurityException) {}
+ finishAndRemoveTask()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/me/lucky/wasted/trigger/shortcut/ShortcutActivity.kt b/app/src/main/java/me/lucky/wasted/trigger/shortcut/ShortcutActivity.kt
index 2208e25..5ef3433 100644
--- a/app/src/main/java/me/lucky/wasted/trigger/shortcut/ShortcutActivity.kt
+++ b/app/src/main/java/me/lucky/wasted/trigger/shortcut/ShortcutActivity.kt
@@ -10,11 +10,8 @@ import me.lucky.wasted.trigger.broadcast.BroadcastReceiver
class ShortcutActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- if (Preferences(this).triggers.and(Trigger.SHORTCUT.value) == 0) {
- finishAndRemoveTask()
- return
- }
- BroadcastReceiver.panic(this, intent)
+ if (Preferences(this).triggers.and(Trigger.SHORTCUT.value) != 0)
+ BroadcastReceiver.panic(this, intent)
finishAndRemoveTask()
}
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v24/ic_telegram_foreground.xml b/app/src/main/res/drawable-v24/ic_telegram_foreground.xml
new file mode 100644
index 0000000..715ef17
--- /dev/null
+++ b/app/src/main/res/drawable-v24/ic_telegram_foreground.xml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_session_foreground.xml b/app/src/main/res/drawable/ic_session_foreground.xml
new file mode 100644
index 0000000..220dab0
--- /dev/null
+++ b/app/src/main/res/drawable/ic_session_foreground.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_signal_foreground.xml b/app/src/main/res/drawable/ic_signal_foreground.xml
new file mode 100644
index 0000000..969be9b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_signal_foreground.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_threema_foreground.xml b/app/src/main/res/drawable/ic_threema_foreground.xml
new file mode 100644
index 0000000..3844a16
--- /dev/null
+++ b/app/src/main/res/drawable/ic_threema_foreground.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_application.xml b/app/src/main/res/layout/fragment_application.xml
new file mode 100644
index 0000000..3c1075d
--- /dev/null
+++ b/app/src/main/res/layout/fragment_application.xml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml
index 1c11b72..2f8f03f 100644
--- a/app/src/main/res/layout/fragment_settings.xml
+++ b/app/src/main/res/layout/fragment_settings.xml
@@ -142,6 +142,25 @@
android:text="@string/trigger_usb_description"
android:textAppearance="?attr/textAppearanceBodySmall" />
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/nav.xml b/app/src/main/res/menu/nav.xml
index e753eee..fc9124d 100644
--- a/app/src/main/res/menu/nav.xml
+++ b/app/src/main/res/menu/nav.xml
@@ -23,6 +23,10 @@
android:id="@+id/nav_trigger_lock"
android:title="@string/trigger_lock" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/top.xml b/app/src/main/res/menu/top.xml
index c994ac9..c5c3eca 100644
--- a/app/src/main/res/menu/top.xml
+++ b/app/src/main/res/menu/top.xml
@@ -14,7 +14,7 @@
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_session.xml b/app/src/main/res/mipmap-anydpi-v26/ic_session.xml
new file mode 100644
index 0000000..854b566
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_session.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_session_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_session_round.xml
new file mode 100644
index 0000000..854b566
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_session_round.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_signal.xml b/app/src/main/res/mipmap-anydpi-v26/ic_signal.xml
new file mode 100644
index 0000000..84d2826
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_signal.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_signal_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_signal_round.xml
new file mode 100644
index 0000000..84d2826
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_signal_round.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_telegram.xml b/app/src/main/res/mipmap-anydpi-v26/ic_telegram.xml
new file mode 100644
index 0000000..3c270f4
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_telegram.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_telegram_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_telegram_round.xml
new file mode 100644
index 0000000..3c270f4
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_telegram_round.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_threema.xml b/app/src/main/res/mipmap-anydpi-v26/ic_threema.xml
new file mode 100644
index 0000000..21d8f73
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_threema.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_threema_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_threema_round.xml
new file mode 100644
index 0000000..21d8f73
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_threema_round.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_session.png b/app/src/main/res/mipmap-hdpi/ic_session.png
new file mode 100644
index 0000000..4295edc
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_session.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_session_round.png b/app/src/main/res/mipmap-hdpi/ic_session_round.png
new file mode 100644
index 0000000..a2602f2
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_session_round.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_signal.png b/app/src/main/res/mipmap-hdpi/ic_signal.png
new file mode 100644
index 0000000..11c4f25
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_signal.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_signal_round.png b/app/src/main/res/mipmap-hdpi/ic_signal_round.png
new file mode 100644
index 0000000..d84c200
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_signal_round.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_telegram.png b/app/src/main/res/mipmap-hdpi/ic_telegram.png
new file mode 100644
index 0000000..1cf2ea7
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_telegram.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_telegram_round.png b/app/src/main/res/mipmap-hdpi/ic_telegram_round.png
new file mode 100644
index 0000000..837e57b
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_telegram_round.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_threema.png b/app/src/main/res/mipmap-hdpi/ic_threema.png
new file mode 100644
index 0000000..8668ae2
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_threema.png differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_threema_round.png b/app/src/main/res/mipmap-hdpi/ic_threema_round.png
new file mode 100644
index 0000000..73c003c
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_threema_round.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_session.png b/app/src/main/res/mipmap-mdpi/ic_session.png
new file mode 100644
index 0000000..f141e25
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_session.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_session_round.png b/app/src/main/res/mipmap-mdpi/ic_session_round.png
new file mode 100644
index 0000000..433819a
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_session_round.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_signal.png b/app/src/main/res/mipmap-mdpi/ic_signal.png
new file mode 100644
index 0000000..43eade3
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_signal.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_signal_round.png b/app/src/main/res/mipmap-mdpi/ic_signal_round.png
new file mode 100644
index 0000000..da40802
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_signal_round.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_telegram.png b/app/src/main/res/mipmap-mdpi/ic_telegram.png
new file mode 100644
index 0000000..7032995
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_telegram.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_telegram_round.png b/app/src/main/res/mipmap-mdpi/ic_telegram_round.png
new file mode 100644
index 0000000..5451579
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_telegram_round.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_threema.png b/app/src/main/res/mipmap-mdpi/ic_threema.png
new file mode 100644
index 0000000..298569e
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_threema.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_threema_round.png b/app/src/main/res/mipmap-mdpi/ic_threema_round.png
new file mode 100644
index 0000000..7119e02
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_threema_round.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_session.png b/app/src/main/res/mipmap-xhdpi/ic_session.png
new file mode 100644
index 0000000..19e41ac
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_session.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_session_round.png b/app/src/main/res/mipmap-xhdpi/ic_session_round.png
new file mode 100644
index 0000000..2098e1b
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_session_round.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_signal.png b/app/src/main/res/mipmap-xhdpi/ic_signal.png
new file mode 100644
index 0000000..fc2810e
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_signal.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_signal_round.png b/app/src/main/res/mipmap-xhdpi/ic_signal_round.png
new file mode 100644
index 0000000..d00bdd6
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_signal_round.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_telegram.png b/app/src/main/res/mipmap-xhdpi/ic_telegram.png
new file mode 100644
index 0000000..88189a5
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_telegram.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_telegram_round.png b/app/src/main/res/mipmap-xhdpi/ic_telegram_round.png
new file mode 100644
index 0000000..1cac2a8
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_telegram_round.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_threema.png b/app/src/main/res/mipmap-xhdpi/ic_threema.png
new file mode 100644
index 0000000..e96e98a
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_threema.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_threema_round.png b/app/src/main/res/mipmap-xhdpi/ic_threema_round.png
new file mode 100644
index 0000000..08c858d
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_threema_round.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_session.png b/app/src/main/res/mipmap-xxhdpi/ic_session.png
new file mode 100644
index 0000000..2640674
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_session.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_session_round.png b/app/src/main/res/mipmap-xxhdpi/ic_session_round.png
new file mode 100644
index 0000000..32f2e36
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_session_round.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_signal.png b/app/src/main/res/mipmap-xxhdpi/ic_signal.png
new file mode 100644
index 0000000..f525eaf
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_signal.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_signal_round.png b/app/src/main/res/mipmap-xxhdpi/ic_signal_round.png
new file mode 100644
index 0000000..339116a
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_signal_round.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_telegram.png b/app/src/main/res/mipmap-xxhdpi/ic_telegram.png
new file mode 100644
index 0000000..d2c1110
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_telegram.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_telegram_round.png b/app/src/main/res/mipmap-xxhdpi/ic_telegram_round.png
new file mode 100644
index 0000000..71bf4ce
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_telegram_round.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_threema.png b/app/src/main/res/mipmap-xxhdpi/ic_threema.png
new file mode 100644
index 0000000..5fde7cd
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_threema.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_threema_round.png b/app/src/main/res/mipmap-xxhdpi/ic_threema_round.png
new file mode 100644
index 0000000..c0dbbe5
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_threema_round.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_session.png b/app/src/main/res/mipmap-xxxhdpi/ic_session.png
new file mode 100644
index 0000000..ad63be6
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_session.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_session_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_session_round.png
new file mode 100644
index 0000000..dfb36a0
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_session_round.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_signal.png b/app/src/main/res/mipmap-xxxhdpi/ic_signal.png
new file mode 100644
index 0000000..2f0237a
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_signal.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_signal_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_signal_round.png
new file mode 100644
index 0000000..79fd298
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_signal_round.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_telegram.png b/app/src/main/res/mipmap-xxxhdpi/ic_telegram.png
new file mode 100644
index 0000000..29b57d2
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_telegram.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_telegram_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_telegram_round.png
new file mode 100644
index 0000000..9cc2baa
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_telegram_round.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_threema.png b/app/src/main/res/mipmap-xxxhdpi/ic_threema.png
new file mode 100644
index 0000000..1f7a029
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_threema.png differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_threema_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_threema_round.png
new file mode 100644
index 0000000..f375c51
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_threema_round.png differ
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 6f5b7b3..7fd9843 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -25,6 +25,12 @@
Copiato
Principale
Impostazioni
+ Modifica
+ Vai
+ Autenticazione
+ segreto
+ Usa un segreto abbastanza forte.
+ Non deve essere vuoto!
Abilita il panic responder. PanicKit è una raccolta di strumenti per la creazione di \"pulsanti di panico\" che possono attivare una risposta a livello di sistema quando l\'utente si trova in una situazione di ansia o di pericolo. Consente alle app trigger e alle app responder di connettersi tra loro in modo sicuro e semplice. L\'utente si collega all\'app trigger quando si trova in una situazione di panico. Le app di risposta ricevono il segnale di attivazione ed eseguono individualmente le operazioni per le quali sono state configurate.
Abilita il servizio toggle. Si tratta di un pulsante nel pannello delle impostazioni rapide quando scorri il dito dalla parte superiore dello schermo. Questo pulsante simula la modalità aereo.
Abilita la scorciatoia dell\'icona. È un pulsante che viene visualizzato quando si tocca a lungo l\'icona di Wasted.
diff --git a/app/src/main/res/values-no/strings.xml b/app/src/main/res/values-no/strings.xml
new file mode 100644
index 0000000..15b1c97
--- /dev/null
+++ b/app/src/main/res/values-no/strings.xml
@@ -0,0 +1,41 @@
+
+
+ Wasted
+ Tøm data
+ Tøm eSIM
+ Bekreft panikk-app
+ Er du sikker på at du vil tillate %1$s å utløse destruktive handlinger\\?
+ en ukjent app
+ Tillat
+ Flymodus
+ Panikk
+ tid
+ 7d / 48t / 120m
+ Hvor lenge å vente. Modifikatorer: [d]ays [h]ours [m]inutes
+ Sikker forsinkelse før den utløses. Gir deg litt tid til å kansellere utløseren hvis du trykker på flisen med et uhell.
+ Standard
+ Vakt
+ PanicKit
+ Flis
+ Snarvei
+ Kringkasting
+ Varsel
+ Lås
+ USB
+ Kopiert
+ Primær
+ Innstillinger
+ Edit
+ GOTO
+ Authentication
+ secret
+ Use strong enough secret.
+ Must not be blank!
+ Skru på panikk responder. PanicKit er en samling verktøy for å lage \"panikknapper\" som kan utløse en systemomfattende respons når brukeren er i en skummel eller farlig situasjon. Den aktiverer utløser-apper og responder-apper for å sikkert og enkelt kobles mot hverandre. Brukeren interagerer med utløserknappen når de er i en panikksituasjon. Responder-appene mottar et utløsersignal, og kjører stegene de ble konfigurert til å kjøre individuelt.
+ Aktivér flis-tjenesten. Det er en knapp i hurtiginnstillingpanelet når du sveiper ned fra toppen av skjermen. Denne knappen vil etterligne flymodusknappen.
+ Aktivér ikonsnarvei. Det er en knapp du vil se når du trykker og holder inne på Wasted-ikonet.
+ Enable broadcast receiver. It is useful to communicate with another Android apps. For example you can fire Wasted from Tasker using this.
+ Enable device notification listener. It will scan all notifications it has access to for the secret code. When found it will fire.
+ Enable lock job scheduler. It will schedule a job every time you lock a device and cancel it every time you unlock a device. When you do not unlock a device for X time a job will fire.
+ Enable USB state receiver. When you make a USB data connection while a device is locked it will fire. It must not fire on charger, only on device and accessory.
+
diff --git a/app/src/main/res/values/ic_session_background.xml b/app/src/main/res/values/ic_session_background.xml
new file mode 100644
index 0000000..6269a5c
--- /dev/null
+++ b/app/src/main/res/values/ic_session_background.xml
@@ -0,0 +1,4 @@
+
+
+ #323031
+
\ No newline at end of file
diff --git a/app/src/main/res/values/ic_signal_background.xml b/app/src/main/res/values/ic_signal_background.xml
new file mode 100644
index 0000000..c0ca906
--- /dev/null
+++ b/app/src/main/res/values/ic_signal_background.xml
@@ -0,0 +1,4 @@
+
+
+ #4975E8
+
\ No newline at end of file
diff --git a/app/src/main/res/values/ic_telegram_background.xml b/app/src/main/res/values/ic_telegram_background.xml
new file mode 100644
index 0000000..53f83f9
--- /dev/null
+++ b/app/src/main/res/values/ic_telegram_background.xml
@@ -0,0 +1,4 @@
+
+
+ #23A0DC
+
\ No newline at end of file
diff --git a/app/src/main/res/values/ic_threema_background.xml b/app/src/main/res/values/ic_threema_background.xml
new file mode 100644
index 0000000..a45dc51
--- /dev/null
+++ b/app/src/main/res/values/ic_threema_background.xml
@@ -0,0 +1,4 @@
+
+
+ #323232
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9f8d15a..444171c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -22,11 +22,11 @@
Notification
Lock
USB
+ Application
Copied
Main
Settings
Edit
- Copy
GOTO
Authentication
secret
@@ -39,4 +39,9 @@
Enable device notification listener. It will scan all notifications it has access to for the secret code. When found it will fire.
Enable lock job scheduler. It will schedule a job every time you lock a device and cancel it every time you unlock a device. When you do not unlock a device for X time a job will fire.
Enable USB state receiver. When you make a USB data connection while a device is locked it will fire. It must not fire on charger, only on device and accessory.
+ Enable fake application. It will add fake messenger applications. Launching them will fire Wasted.
+ Signal
+ Telegram
+ Threema
+ Session
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/35.txt b/fastlane/metadata/android/en-US/changelogs/35.txt
new file mode 100644
index 0000000..32edc33
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/35.txt
@@ -0,0 +1,3 @@
+application trigger
+add Norwegian translation, thanks to Frederik
+update Italian translation, thanks to Giovanni Donisi (@gdonisi + @giovannidonisi)
diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt
index e79d8de..ea2546f 100644
--- a/fastlane/metadata/android/en-US/full_description.txt
+++ b/fastlane/metadata/android/en-US/full_description.txt
@@ -6,6 +6,7 @@ Device Administration API, it locks a device and optionally runs wipe.
Also you can:
* fire when a device was not unlocked for X time
* fire when a USB data connection is made while a device is locked
+* fire when a fake messenger app is launched
* fire when a duress password is entered (companion app: [Duress](https://github.com/x13a/Duress))
The app works in Work Profile too. Use Shelter to install risky apps and Wasted in it. Then you can
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png
index 3619526..1a71e95 100644
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png and b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png differ
diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png
deleted file mode 100644
index 1a71e95..0000000
Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png and /dev/null differ