commit bf4389486fc048a7a6a83f607eb7438dc471d82a
parent d5a926f3367b3a267c03e1007d2f018a62b35ef0
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date: Wed, 5 Feb 2025 21:51:06 +0100
feat: sif indicator
Signed-off-by: rhunk <101876869+rhunk@users.noreply.github.com>
Diffstat:
1 file changed, 30 insertions(+), 0 deletions(-)
diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/SecurityFeatures.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/SecurityFeatures.kt
@@ -1,8 +1,18 @@
package me.rhunk.snapenhance.core
import android.system.Os
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.filled.Check
import androidx.compose.material.icons.filled.NotInterested
+import androidx.compose.material3.Icon
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.unit.dp
+import kotlinx.coroutines.delay
import me.rhunk.snapenhance.common.bridge.FileHandleScope
import me.rhunk.snapenhance.common.bridge.InternalFileHandleType
import me.rhunk.snapenhance.common.bridge.toWrapper
@@ -11,6 +21,7 @@ import me.rhunk.snapenhance.common.config.VersionRequirement
import me.rhunk.snapenhance.common.util.protobuf.ProtoEditor
import me.rhunk.snapenhance.common.util.protobuf.ProtoReader
import me.rhunk.snapenhance.core.event.events.impl.UnaryCallEvent
+import me.rhunk.snapenhance.core.ui.CustomComposable
import me.rhunk.snapenhance.core.util.ktx.setObjectField
import java.io.FileDescriptor
import kotlin.text.isNotEmpty
@@ -110,6 +121,25 @@ class SecurityFeatures(
val status = getStatus()
val safeMode = shouldUseSafeMode && (status == null || status < 2)
+ if (status != null && status >= 2) {
+ lateinit var composable: CustomComposable
+ composable = {
+ Row(
+ modifier = Modifier
+ .padding(16.dp)
+ .align(Alignment.TopCenter),
+ ) {
+ Icon(Icons.Filled.Check, contentDescription = null, tint = Color(0xFF85A947))
+ }
+
+ LaunchedEffect(Unit) {
+ delay(2500)
+ context.inAppOverlay.removeCustomComposable(composable)
+ }
+ }
+ context.inAppOverlay.addCustomComposable(composable)
+ }
+
if (safeMode && !debugDisable) {
context.features.addActivityCreateListener {
context.inAppOverlay.showStatusToast(