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