diff --git a/apps/vbox/client/androidApp/src/main/AndroidManifest.xml b/apps/vbox/client/androidApp/src/main/AndroidManifest.xml
index 48964e4..52be9c1 100644
--- a/apps/vbox/client/androidApp/src/main/AndroidManifest.xml
+++ b/apps/vbox/client/androidApp/src/main/AndroidManifest.xml
@@ -28,6 +28,7 @@
android:configChanges="screenSize|screenLayout|orientation|smallestScreenSize"
android:exported="true"
android:icon="@mipmap/ic_launcher"
+ android:label="@string/app_name"
android:supportsPictureInPicture="true">
@@ -98,6 +99,7 @@
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
+
@@ -108,5 +110,14 @@
android:scheme="android_secret_code" />
+
+
+
+
+
+
diff --git a/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/MainActivity.kt b/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/MainActivity.kt
index 4493663..6826fe0 100644
--- a/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/MainActivity.kt
+++ b/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/MainActivity.kt
@@ -42,7 +42,7 @@ class MainActivity : ComponentActivity() {
.setData(null)
.setAction(null)
}
- val isPiggyActivity = componentName?.className == SecretCodeReceiver.PIGGY_CLS
+ val isPiggyActivity = componentName?.className == PigReceiver.PIGGY_CLS
setContent {
if (isPiggyActivity) {
CompositionLocalProvider(LocalColorSchemeProvider provides getPiggyColorScheme()) {
diff --git a/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/PigReceiver.kt b/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/PigReceiver.kt
new file mode 100644
index 0000000..30d951c
--- /dev/null
+++ b/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/PigReceiver.kt
@@ -0,0 +1,42 @@
+package ru.shadowsparky.videobox.multiplatform
+
+import android.content.BroadcastReceiver
+import android.content.ComponentName
+import android.content.Context
+import android.content.Intent
+import android.content.pm.PackageManager
+import android.util.Log
+
+// adb shell am broadcast -a ru.shadowsparky.videobox.ACTION_SWITCH_PIGGY_ICON -p ru.shadowsparky.videobox.multiplatform.debug
+// adb shell am broadcast -a ru.shadowsparky.videobox.ACTION_SWITCH_PIGGY_ICON -p ru.shadowsparky.videobox.multiplatform
+open class PigReceiver : BroadcastReceiver() {
+ override fun onReceive(context: Context?, intent: Intent?) {
+ Log.d("PigReceiver", "intent ${intent?.action} received. context $context")
+ if (context == null) return
+ when (intent?.action) {
+ "android.provider.Telephony.SECRET_CODE",
+ "ru.shadowsparky.videobox.ACTION_SWITCH_PIGGY_ICON" -> {
+ val pm = context.packageManager
+ val mainActivity = ComponentName(context, MainActivity::class.java)
+ val piggyActivityAlias = ComponentName(context, PIGGY_CLS)
+ val isMainEnabled = pm.getComponentEnabledSetting(mainActivity) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED
+ pm.setState(piggyActivityAlias, isMainEnabled)
+ pm.setState(mainActivity, !isMainEnabled)
+ }
+ }
+ }
+
+ private fun PackageManager.setState(cn: ComponentName, isEnabled: Boolean) {
+ setComponentEnabledSetting(
+ cn,
+ if (isEnabled) PackageManager.COMPONENT_ENABLED_STATE_ENABLED else PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
+ PackageManager.DONT_KILL_APP
+ )
+ }
+
+ companion object {
+ const val PIGGY_CLS = "ru.shadowsparky.videobox.multiplatform.PiggyActivity"
+ }
+}
+
+class SecretCodeReceiver : PigReceiver()
diff --git a/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/SecretCodeReceiver.kt b/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/SecretCodeReceiver.kt
deleted file mode 100644
index cfd7e2c..0000000
--- a/apps/vbox/client/androidApp/src/main/kotlin/ru/shadowsparky/videobox/multiplatform/SecretCodeReceiver.kt
+++ /dev/null
@@ -1,32 +0,0 @@
-package ru.shadowsparky.videobox.multiplatform
-
-import android.content.BroadcastReceiver
-import android.content.ComponentName
-import android.content.Context
-import android.content.Intent
-import android.content.pm.PackageManager
-
-// adb shell am broadcast -a android.provider.Telephony.SECRET_CODE -d android_secret_code://676767
-class SecretCodeReceiver : BroadcastReceiver() {
- override fun onReceive(context: Context?, intent: Intent?) {
- if (context == null || intent?.action != "android.provider.Telephony.SECRET_CODE") return
- val pm = context.packageManager
- val mainActivity = ComponentName(context, MainActivity::class.java)
- val piggyActivityAlias = ComponentName(context, PIGGY_CLS)
- val isMainEnabled = pm.getComponentEnabledSetting(mainActivity) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED
- pm.setState(piggyActivityAlias, isMainEnabled)
- pm.setState(mainActivity, !isMainEnabled)
- }
-
- private fun PackageManager.setState(cn: ComponentName, isEnabled: Boolean) {
- setComponentEnabledSetting(
- cn,
- if (isEnabled) PackageManager.COMPONENT_ENABLED_STATE_ENABLED else PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
- PackageManager.DONT_KILL_APP
- )
- }
-
- companion object {
- const val PIGGY_CLS = "ru.shadowsparky.videobox.multiplatform.PiggyActivity"
- }
-}