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:
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/SecurityFeatures.kt | 30++++++++++++++++++++++++++++++
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(