From ffbab94e8ca180d66329bfef04599f7213e6638d Mon Sep 17 00:00:00 2001 From: AP Date: Sun, 8 Mar 2026 15:01:07 +0530 Subject: [PATCH 1/9] Enhance anti-uninstall protection and improve lock screen security - **Anti-Uninstall Improvements**: - Introduced granular settings to protect Device Admin, Usage Stats, Accessibility, and Overlay settings from being tampered with. - Implemented recursive node inspection in `AppLockAccessibilityService` to detect and block access to AppLock's "App Info" and uninstallation pages. - Added extensive class name mappings for Samsung and stock Android settings pages to improve detection reliability. - Updated `AdminDisableActivity` to explicitly remove active admin status upon verified deactivation. - **Lock Screen & Security**: - Improved `PasswordOverlayActivity` to block Home and Recents button bypasses by listening for system dialog closures. - Added display of the locked app's icon and a "Continue to [App Name]" header on the lock screen for better UX. - Enhanced immersive mode settings to hide system UI and disable gestures while the lock screen is active. - Implemented a more robust `isServiceRunning` check across different backend implementations. - **UI & UX**: - Refactored `AppIntroScreen` to require both Accessibility and Usage Stats permissions regardless of the selected locking method to ensure anti-uninstall features work correctly. - Updated `SettingsScreen` to sync state with the repository on resume and pre-fetch string resources. - Improved the toggling behavior of setting items using the `toggleable` modifier for better accessibility. - **Technical Changes**: - Updated `AppLockAccessibilityService` to run as a foreground service with `systemExempted` type where applicable. - Switched `SharedPreferences` operations to use `commit = true` for immediate data persistence in critical settings. - Expanded accessibility event types to include `typeWindowContentChanged` and `typeWindowsChanged` for better UI monitoring. --- .idea/modules.xml | 8 - app/src/main/AndroidManifest.xml | 3 +- .../applock/core/broadcast/DeviceAdmin.kt | 4 - .../data/repository/AppLockRepository.kt | 25 ++ .../data/repository/PreferencesRepository.kt | 48 ++- .../features/admin/AdminDisableActivity.kt | 4 + .../features/appintro/ui/AppIntroScreen.kt | 117 +++--- .../lockscreen/ui/PasswordOverlayScreen.kt | 248 ++++++++--- .../lockscreen/ui/PatternLockScreen.kt | 69 +--- .../features/settings/ui/SettingsScreen.kt | 157 +++++-- .../services/AppLockAccessibilityService.kt | 389 ++++++++++-------- .../pranav/applock/services/AppLockManager.kt | 59 ++- .../services/ExperimentalAppLockService.kt | 7 + .../res/xml/accessibility_service_config.xml | 5 +- 14 files changed, 765 insertions(+), 378 deletions(-) delete mode 100644 .idea/modules.xml diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 15e36ed..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8a00795..846d210 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -37,7 +37,6 @@ android:enableOnBackInvokedCallback="true" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" - android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.AppLock" @@ -85,7 +84,7 @@ diff --git a/app/src/main/java/dev/pranav/applock/core/broadcast/DeviceAdmin.kt b/app/src/main/java/dev/pranav/applock/core/broadcast/DeviceAdmin.kt index dca2388..1215203 100644 --- a/app/src/main/java/dev/pranav/applock/core/broadcast/DeviceAdmin.kt +++ b/app/src/main/java/dev/pranav/applock/core/broadcast/DeviceAdmin.kt @@ -17,10 +17,6 @@ class DeviceAdmin : DeviceAdminReceiver() { context.getSharedPreferences("app_lock_settings", Context.MODE_PRIVATE).edit { putBoolean("anti_uninstall", true) } - - val component = ComponentName(context, DeviceAdmin::class.java) - - getManager(context).setUninstallBlocked(component, context.packageName, true) } override fun onDisabled(context: Context, intent: android.content.Intent) { diff --git a/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt b/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt index 91e35fe..2bc3b3e 100644 --- a/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt +++ b/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt @@ -69,6 +69,31 @@ class AppLockRepository(private val context: Context) { preferencesRepository.setAntiUninstallEnabled(enabled) fun isAntiUninstallEnabled(): Boolean = preferencesRepository.isAntiUninstallEnabled() + + fun setAntiUninstallAdminSettingsEnabled(enabled: Boolean) = + preferencesRepository.setAntiUninstallAdminSettingsEnabled(enabled) + + fun isAntiUninstallAdminSettingsEnabled(): Boolean = + preferencesRepository.isAntiUninstallAdminSettingsEnabled() + + fun setAntiUninstallUsageStatsEnabled(enabled: Boolean) = + preferencesRepository.setAntiUninstallUsageStatsEnabled(enabled) + + fun isAntiUninstallUsageStatsEnabled(): Boolean = + preferencesRepository.isAntiUninstallUsageStatsEnabled() + + fun setAntiUninstallAccessibilityEnabled(enabled: Boolean) = + preferencesRepository.setAntiUninstallAccessibilityEnabled(enabled) + + fun isAntiUninstallAccessibilityEnabled(): Boolean = + preferencesRepository.isAntiUninstallAccessibilityEnabled() + + fun setAntiUninstallOverlayEnabled(enabled: Boolean) = + preferencesRepository.setAntiUninstallOverlayEnabled(enabled) + + fun isAntiUninstallOverlayEnabled(): Boolean = + preferencesRepository.isAntiUninstallOverlayEnabled() + fun setProtectEnabled(enabled: Boolean) = preferencesRepository.setProtectEnabled(enabled) fun isProtectEnabled(): Boolean = preferencesRepository.isProtectEnabled() diff --git a/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt b/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt index 20a7f10..7d1a584 100644 --- a/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt +++ b/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt @@ -17,7 +17,7 @@ class PreferencesRepository(context: Context) { context.getSharedPreferences(PREFS_NAME_SETTINGS, Context.MODE_PRIVATE) fun setPassword(password: String) { - appLockPrefs.edit { putString(KEY_PASSWORD, password) } + appLockPrefs.edit(commit = true) { putString(KEY_PASSWORD, password) } } fun getPassword(): String? { @@ -30,7 +30,7 @@ class PreferencesRepository(context: Context) { } fun setPattern(pattern: String) { - appLockPrefs.edit { putString(KEY_PATTERN, pattern) } + appLockPrefs.edit(commit = true) { putString(KEY_PATTERN, pattern) } } fun getPattern(): String? { @@ -43,7 +43,7 @@ class PreferencesRepository(context: Context) { } fun setLockType(lockType: String) { - settingsPrefs.edit { putString(KEY_LOCK_TYPE, lockType) } + settingsPrefs.edit(commit = true) { putString(KEY_LOCK_TYPE, lockType) } } fun getLockType(): String { @@ -83,15 +83,47 @@ class PreferencesRepository(context: Context) { } fun setAntiUninstallEnabled(enabled: Boolean) { - settingsPrefs.edit { putBoolean(KEY_ANTI_UNINSTALL, enabled) } + settingsPrefs.edit(commit = true) { putBoolean(KEY_ANTI_UNINSTALL, enabled) } } fun isAntiUninstallEnabled(): Boolean { return settingsPrefs.getBoolean(KEY_ANTI_UNINSTALL, false) } + fun setAntiUninstallAdminSettingsEnabled(enabled: Boolean) { + settingsPrefs.edit(commit = true) { putBoolean(KEY_ANTI_UNINSTALL_ADMIN_SETTINGS, enabled) } + } + + fun isAntiUninstallAdminSettingsEnabled(): Boolean { + return settingsPrefs.getBoolean(KEY_ANTI_UNINSTALL_ADMIN_SETTINGS, false) + } + + fun setAntiUninstallUsageStatsEnabled(enabled: Boolean) { + settingsPrefs.edit(commit = true) { putBoolean(KEY_ANTI_UNINSTALL_USAGE_STATS, enabled) } + } + + fun isAntiUninstallUsageStatsEnabled(): Boolean { + return settingsPrefs.getBoolean(KEY_ANTI_UNINSTALL_USAGE_STATS, false) + } + + fun setAntiUninstallAccessibilityEnabled(enabled: Boolean) { + settingsPrefs.edit(commit = true) { putBoolean(KEY_ANTI_UNINSTALL_ACCESSIBILITY, enabled) } + } + + fun isAntiUninstallAccessibilityEnabled(): Boolean { + return settingsPrefs.getBoolean(KEY_ANTI_UNINSTALL_ACCESSIBILITY, false) + } + + fun setAntiUninstallOverlayEnabled(enabled: Boolean) { + settingsPrefs.edit(commit = true) { putBoolean(KEY_ANTI_UNINSTALL_OVERLAY, enabled) } + } + + fun isAntiUninstallOverlayEnabled(): Boolean { + return settingsPrefs.getBoolean(KEY_ANTI_UNINSTALL_OVERLAY, false) + } + fun setProtectEnabled(enabled: Boolean) { - settingsPrefs.edit { putBoolean(KEY_APPLOCK_ENABLED, enabled) } + settingsPrefs.edit(commit = true) { putBoolean(KEY_APPLOCK_ENABLED, enabled) } } fun isProtectEnabled(): Boolean { @@ -115,7 +147,7 @@ class PreferencesRepository(context: Context) { } fun setBackendImplementation(backend: BackendImplementation) { - settingsPrefs.edit { putString(KEY_BACKEND_IMPLEMENTATION, backend.name) } + settingsPrefs.edit(commit = true) { putString(KEY_BACKEND_IMPLEMENTATION, backend.name) } } fun getBackendImplementation(): BackendImplementation { @@ -164,6 +196,10 @@ class PreferencesRepository(context: Context) { private const val KEY_DISABLE_HAPTICS = "disable_haptics" private const val KEY_USE_MAX_BRIGHTNESS = "use_max_brightness" private const val KEY_ANTI_UNINSTALL = "anti_uninstall" + private const val KEY_ANTI_UNINSTALL_ADMIN_SETTINGS = "anti_uninstall_admin_settings" + private const val KEY_ANTI_UNINSTALL_USAGE_STATS = "anti_uninstall_usage_stats" + private const val KEY_ANTI_UNINSTALL_ACCESSIBILITY = "anti_uninstall_accessibility" + private const val KEY_ANTI_UNINSTALL_OVERLAY = "anti_uninstall_overlay" private const val KEY_UNLOCK_TIME_DURATION = "unlock_time_duration" private const val KEY_BACKEND_IMPLEMENTATION = "backend_implementation" private const val KEY_COMMUNITY_LINK_SHOWN = "community_link_shown" diff --git a/app/src/main/java/dev/pranav/applock/features/admin/AdminDisableActivity.kt b/app/src/main/java/dev/pranav/applock/features/admin/AdminDisableActivity.kt index 09708a9..3eed7d4 100644 --- a/app/src/main/java/dev/pranav/applock/features/admin/AdminDisableActivity.kt +++ b/app/src/main/java/dev/pranav/applock/features/admin/AdminDisableActivity.kt @@ -73,6 +73,8 @@ class AdminDisableActivity : ComponentActivity() { R.string.password_verified_admin, Toast.LENGTH_SHORT ).show() + + devicePolicyManager.removeActiveAdmin(deviceAdminComponentName) appLockRepository.setAntiUninstallEnabled(false) finish() }, @@ -111,6 +113,8 @@ class AdminDisableActivity : ComponentActivity() { R.string.password_verified_admin, Toast.LENGTH_SHORT ).show() + + devicePolicyManager.removeActiveAdmin(deviceAdminComponentName) appLockRepository.setAntiUninstallEnabled(false) finish() }, diff --git a/app/src/main/java/dev/pranav/applock/features/appintro/ui/AppIntroScreen.kt b/app/src/main/java/dev/pranav/applock/features/appintro/ui/AppIntroScreen.kt index a0cceae..86fb316 100644 --- a/app/src/main/java/dev/pranav/applock/features/appintro/ui/AppIntroScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/appintro/ui/AppIntroScreen.kt @@ -193,6 +193,7 @@ fun AppIntroScreen(navController: NavController) { NotificationManagerCompat.from(context).areNotificationsEnabled() } accessibilityServiceEnabled = context.isAccessibilityServiceEnabled() + usageStatsPermissionGranted = context.hasUsagePermission() } val onFinishCallback = { @@ -355,55 +356,55 @@ fun AppIntroScreen(navController: NavController) { onNext = { true } ) - val methodSpecificPages = when (selectedMethod) { - AppUsageMethod.ACCESSIBILITY -> listOf( - IntroPage( - title = stringResource(R.string.accessibility_service_title), - description = stringResource(R.string.app_intro_accessibility_desc), - icon = Accessibility, - backgroundColor = Color(0xFFF1550E), - contentColor = Color.White, - onNext = { - accessibilityServiceEnabled = context.isAccessibilityServiceEnabled() - if (!accessibilityServiceEnabled) { - val intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS) - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - context.startActivity(intent) - false - } else { - context.appLockRepository() - .setBackendImplementation(BackendImplementation.ACCESSIBILITY) - true - } + val mandatoryPermissionPages = listOf( + IntroPage( + title = stringResource(R.string.accessibility_service_title), + description = stringResource(R.string.app_intro_accessibility_desc), + icon = Accessibility, + backgroundColor = Color(0xFFF1550E), + contentColor = Color.White, + onNext = { + accessibilityServiceEnabled = context.isAccessibilityServiceEnabled() + if (!accessibilityServiceEnabled) { + val intent = Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS) + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + context.startActivity(intent) + false + } else { + true } - ) - ) - - AppUsageMethod.USAGE_STATS -> listOf( - IntroPage( - title = stringResource(R.string.app_intro_usage_stats_title), - description = stringResource(R.string.app_intro_usage_stats_desc), - icon = Icons.Default.QueryStats, - backgroundColor = Color(0xFFB453A4), - contentColor = Color.White, - onNext = { - usageStatsPermissionGranted = context.hasUsagePermission() - if (!usageStatsPermissionGranted) { - val intent = Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS) - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) - context.startActivity(intent) - false - } else { - context.appLockRepository() - .setBackendImplementation(BackendImplementation.USAGE_STATS) - context.startService( - Intent(context, ExperimentalAppLockService::class.java) - ) - true - } + } + ), + IntroPage( + title = stringResource(R.string.app_intro_usage_stats_title), + description = stringResource(R.string.app_intro_usage_stats_desc), + icon = Icons.Default.QueryStats, + backgroundColor = Color(0xFFB453A4), + contentColor = Color.White, + onNext = { + usageStatsPermissionGranted = context.hasUsagePermission() + if (!usageStatsPermissionGranted) { + val intent = Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS) + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + context.startActivity(intent) + false + } else { + true } - ) + } ) + ) + + val methodSpecificPages = when (selectedMethod) { + AppUsageMethod.ACCESSIBILITY -> { + context.appLockRepository().setBackendImplementation(BackendImplementation.ACCESSIBILITY) + emptyList() + } + + AppUsageMethod.USAGE_STATS -> { + context.appLockRepository().setBackendImplementation(BackendImplementation.USAGE_STATS) + emptyList() + } AppUsageMethod.SHIZUKU -> listOf( IntroPage( @@ -454,10 +455,12 @@ fun AppIntroScreen(navController: NavController) { notificationPermissionGranted = NotificationManagerCompat.from(context).areNotificationsEnabled() } + accessibilityServiceEnabled = context.isAccessibilityServiceEnabled() + usageStatsPermissionGranted = context.hasUsagePermission() val methodPermissionGranted = when (selectedMethod) { - AppUsageMethod.ACCESSIBILITY -> context.isAccessibilityServiceEnabled() - AppUsageMethod.USAGE_STATS -> context.hasUsagePermission() + AppUsageMethod.ACCESSIBILITY -> accessibilityServiceEnabled + AppUsageMethod.USAGE_STATS -> usageStatsPermissionGranted AppUsageMethod.SHIZUKU -> { if (Shizuku.isPreV11()) { checkSelfPermission( @@ -470,12 +473,11 @@ fun AppIntroScreen(navController: NavController) { } } - // Only require all permissions if accessibility is selected - val allPermissionsGranted = if (selectedMethod == AppUsageMethod.ACCESSIBILITY) { - overlayPermissionGranted && notificationPermissionGranted && methodPermissionGranted - } else { - overlayPermissionGranted && notificationPermissionGranted && methodPermissionGranted - } + val allPermissionsGranted = overlayPermissionGranted && + notificationPermissionGranted && + accessibilityServiceEnabled && + usageStatsPermissionGranted && + methodPermissionGranted if (!allPermissionsGranted) { Toast.makeText( @@ -483,13 +485,18 @@ fun AppIntroScreen(navController: NavController) { context.getString(R.string.all_permissions_required), Toast.LENGTH_SHORT ).show() + } else { + // Ensure correct service is started if not Accessibility + if (selectedMethod == AppUsageMethod.USAGE_STATS) { + context.startService(Intent(context, ExperimentalAppLockService::class.java)) + } } allPermissionsGranted } ) val allPages = - basicPages + methodSelectionPage + methodSpecificPages + finalPage + basicPages + methodSelectionPage + mandatoryPermissionPages + methodSpecificPages + finalPage AppIntro( pages = allPages, diff --git a/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt b/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt index de95e8a..2245103 100644 --- a/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt @@ -1,7 +1,16 @@ package dev.pranav.applock.features.lockscreen.ui +import android.annotation.SuppressLint +import android.app.admin.DevicePolicyManager +import android.content.BroadcastReceiver +import android.content.ComponentName import android.content.Context +import android.content.Intent +import android.content.IntentFilter import android.content.res.Configuration +import android.graphics.Bitmap +import android.graphics.Canvas +import android.graphics.drawable.Drawable import android.os.Build import android.os.Bundle import android.util.Log @@ -17,6 +26,7 @@ import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.FastOutSlowInEasing import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.tween +import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.interaction.collectIsPressedAsState @@ -31,12 +41,15 @@ import androidx.compose.material3.* import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.asImageBitmap import androidx.compose.ui.graphics.graphicsLayer import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalConfiguration import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalWindowInfo import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp @@ -45,6 +58,7 @@ import androidx.core.content.ContextCompat import androidx.fragment.app.FragmentActivity import androidx.lifecycle.lifecycleScope import dev.pranav.applock.R +import dev.pranav.applock.core.broadcast.DeviceAdmin import dev.pranav.applock.core.ui.shapes import dev.pranav.applock.core.utils.appLockRepository import dev.pranav.applock.core.utils.vibrate @@ -56,6 +70,7 @@ import dev.pranav.applock.ui.icons.Fingerprint import dev.pranav.applock.ui.theme.AppLockTheme import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import java.util.concurrent.Executor class PasswordOverlayActivity : FragmentActivity() { @@ -68,10 +83,35 @@ class PasswordOverlayActivity : FragmentActivity() { private var isBiometricPromptShowingLocal = false private var movedToBackground = false - private var appName: String = "" + private var appName by mutableStateOf("") + private var appIcon by mutableStateOf(null) private val TAG = "PasswordOverlayActivity" + private val systemDialogsReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + if (intent.action == Intent.ACTION_CLOSE_SYSTEM_DIALOGS) { + val reason = intent.getStringExtra("reason") + // Handle button presses + when (reason) { + "recentapps" -> { + // Recents button pressed - trigger HOME action + Log.d(TAG, "Recents button pressed - triggering HOME action") + goHome() + return + } + "homekey" -> { + // Home button pressed - trigger HOME action + Log.d(TAG, "Home button pressed - triggering HOME action") + goHome() + return + } + } + } + } + } + + @SuppressLint("UnspecifiedRegisterReceiverFlag") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -87,12 +127,41 @@ class PasswordOverlayActivity : FragmentActivity() { appLockRepository = AppLockRepository(applicationContext) + // Override back button to do nothing onBackPressedDispatcher.addCallback(this) { - // Prevent back navigation to maintain security + Log.d(TAG, "Back button pressed - ignoring on lock screen") + // Do nothing - swallow the back press } setupWindow() - loadAppNameAndSetupUI() + loadAppDetailsAndSetupUI() + + val filter = IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + registerReceiver(systemDialogsReceiver, filter, Context.RECEIVER_EXPORTED) + } else { + registerReceiver(systemDialogsReceiver, filter) + } + } + + private fun goHome() { + try { + val dpm = getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager + val adminComponent = ComponentName(this, DeviceAdmin::class.java) + + if (appLockRepository.isAntiUninstallEnabled() && dpm.isAdminActive(adminComponent)) { + // If device admin is active, we can also lock the device as requested for better security + // dpm.lockNow() // Uncomment if immediate lock is preferred over just going home + } + + val intent = Intent(Intent.ACTION_MAIN).apply { + addCategory(Intent.CATEGORY_HOME) + flags = Intent.FLAG_ACTIVITY_NEW_TASK + } + startActivity(intent) + } catch (e: Exception) { + Log.e(TAG, "Error going home: ${e.message}") + } } override fun onPostCreate(savedInstanceState: Bundle?) { @@ -118,7 +187,8 @@ class PasswordOverlayActivity : FragmentActivity() { WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON or WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON or WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON or - WindowManager.LayoutParams.FLAG_SECURE + WindowManager.LayoutParams.FLAG_SECURE or + WindowManager.LayoutParams.FLAG_FULLSCREEN ) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { @@ -130,6 +200,14 @@ class PasswordOverlayActivity : FragmentActivity() { window.setHideOverlayWindows(true) } + // Disable system gestures and navigation + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + val flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN or + WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR or + WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS + + window.addFlags(flags) + } val layoutParams = window.attributes layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY @@ -138,17 +216,34 @@ class PasswordOverlayActivity : FragmentActivity() { layoutParams.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_FULL } window.attributes = layoutParams + + // Immersive mode to hide system UI + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + window.decorView.systemUiVisibility = ( + android.view.View.SYSTEM_UI_FLAG_LAYOUT_STABLE or + android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or + android.view.View.SYSTEM_UI_FLAG_FULLSCREEN + ) + } } - private fun loadAppNameAndSetupUI() { + private fun loadAppDetailsAndSetupUI() { lifecycleScope.launch(Dispatchers.IO) { try { - appName = packageManager.getApplicationLabel( - packageManager.getApplicationInfo(lockedPackageNameFromIntent!!, 0) - ).toString() + val pkgName = lockedPackageNameFromIntent!! + val info = packageManager.getApplicationInfo(pkgName, 0) + val label = packageManager.getApplicationLabel(info).toString() + val icon = packageManager.getApplicationIcon(info) + + withContext(Dispatchers.Main) { + appName = label + appIcon = icon + } } catch (e: Exception) { - Log.e(TAG, "Error loading app name: ${e.message}") - appName = getString(R.string.default_app_name) + Log.e(TAG, "Error loading app details: ${e.message}") + withContext(Dispatchers.Main) { + appName = getString(R.string.default_app_name) + } } } setupUI() @@ -192,6 +287,7 @@ class PasswordOverlayActivity : FragmentActivity() { modifier = Modifier.padding(innerPadding), fromMainActivity = false, lockedAppName = appName, + lockedAppIcon = appIcon, triggeringPackageName = triggeringPackageNameFromIntent, onPatternAttempt = onPatternAttemptCallback ) @@ -205,6 +301,7 @@ class PasswordOverlayActivity : FragmentActivity() { onBiometricAuth = { triggerBiometricPrompt() }, onAuthSuccess = {}, lockedAppName = appName, + lockedAppIcon = appIcon, triggeringPackageName = triggeringPackageNameFromIntent, onPinAttempt = onPinAttemptCallback ) @@ -247,8 +344,6 @@ class PasswordOverlayActivity : FragmentActivity() { isBiometricPromptShowingLocal = false lockedPackageNameFromIntent?.let { pkgName -> AppLockManager.temporarilyUnlockAppWithBiometrics(pkgName) - // Fix: Do NOT relaunch the app. Just finish the overlay to reveal the underlying activity. - // This preserves the navigation stack/state of the locked app. } finishAfterTransition() } @@ -257,7 +352,7 @@ class PasswordOverlayActivity : FragmentActivity() { override fun onResume() { super.onResume() movedToBackground = false - AppLockManager.isLockScreenShown.set(true) // Set to true when activity is visible + AppLockManager.isLockScreenShown.set(true) lifecycleScope.launch { applyUserPreferences() } @@ -288,6 +383,13 @@ class PasswordOverlayActivity : FragmentActivity() { } } + override fun onUserLeaveHint() { + super.onUserLeaveHint() + Log.d(TAG, "User leave hint - going home from lock screen") + // Allow going home when user presses home/recents + goHome() + } + override fun onPause() { super.onPause() if (!isChangingConfigurations() && !isBiometricPromptShowingLocal && !movedToBackground) { @@ -314,6 +416,11 @@ class PasswordOverlayActivity : FragmentActivity() { override fun onDestroy() { super.onDestroy() + try { + unregisterReceiver(systemDialogsReceiver) + } catch (e: Exception) { + // Already unregistered + } AppLockManager.isLockScreenShown.set(false) AppLockManager.reportBiometricAuthFinished() Log.d(TAG, "PasswordOverlayActivity onDestroy for $lockedPackageNameFromIntent") @@ -330,6 +437,7 @@ fun PasswordOverlayScreen( onBiometricAuth: () -> Unit = {}, onAuthSuccess: () -> Unit, lockedAppName: String? = null, + lockedAppIcon: Drawable? = null, triggeringPackageName: String? = null, onPinAttempt: ((pin: String) -> Boolean)? = null ) { @@ -366,25 +474,13 @@ fun PasswordOverlayScreen( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { - Text( - text = if (!fromMainActivity && !lockedAppName.isNullOrEmpty()) - "Continue to $lockedAppName" - else - stringResource(R.string.enter_password_to_continue), - style = MaterialTheme.typography.titleLarge, - textAlign = TextAlign.Center + AppHeader( + fromMainActivity = fromMainActivity, + lockedAppName = lockedAppName, + lockedAppIcon = lockedAppIcon, + style = MaterialTheme.typography.titleLarge ) -// if (!fromMainActivity && !triggeringPackageName.isNullOrEmpty()) { -// Spacer(modifier = Modifier.height(8.dp)) -// Text( -// text = triggeringPackageName, -// style = MaterialTheme.typography.labelSmall, -// color = MaterialTheme.colorScheme.onSurfaceVariant.copy(alpha = 0.6f), -// textAlign = TextAlign.Center -// ) -// } - Spacer(modifier = Modifier.height(16.dp)) PasswordIndicators( @@ -436,27 +532,16 @@ fun PasswordOverlayScreen( val topSpacerHeight = if (screenHeightDp < 600.dp) 12.dp else 48.dp Spacer(modifier = Modifier.height(topSpacerHeight)) - Text( - text = if (!fromMainActivity && !lockedAppName.isNullOrEmpty()) - "Continue to $lockedAppName" - else - stringResource(R.string.enter_password_to_continue), + AppHeader( + fromMainActivity = fromMainActivity, + lockedAppName = lockedAppName, + lockedAppIcon = lockedAppIcon, style = if (!fromMainActivity && !lockedAppName.isNullOrEmpty()) MaterialTheme.typography.titleLargeEmphasized else - MaterialTheme.typography.headlineMediumEmphasized, - textAlign = TextAlign.Center + MaterialTheme.typography.headlineMediumEmphasized ) -// if (!fromMainActivity && !triggeringPackageName.isNullOrEmpty()) { -// Text( -// text = triggeringPackageName, -// style = MaterialTheme.typography.labelSmall, -// color = MaterialTheme.colorScheme.onSurfaceVariant.copy(alpha = 0.6f), -// textAlign = TextAlign.Center -// ) -// } - Spacer(modifier = Modifier.height(16.dp)) PasswordIndicators( @@ -500,6 +585,70 @@ fun PasswordOverlayScreen( } } +@Composable +fun AppHeader( + fromMainActivity: Boolean, + lockedAppName: String?, + lockedAppIcon: Drawable?, + style: androidx.compose.ui.text.TextStyle +) { + if (!fromMainActivity && !lockedAppName.isNullOrEmpty()) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(16.dp) + ) { + Text( + text = "Continue to", + style = MaterialTheme.typography.bodyMedium, + color = MaterialTheme.colorScheme.onSurfaceVariant, + letterSpacing = 1.sp + ) + + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp), + modifier = Modifier.padding(horizontal = 16.dp) + ) { + if (lockedAppIcon != null) { + val bitmap = remember(lockedAppIcon) { + val b = Bitmap.createBitmap( + lockedAppIcon.intrinsicWidth.coerceAtLeast(1), + lockedAppIcon.intrinsicHeight.coerceAtLeast(1), + Bitmap.Config.ARGB_8888 + ) + val canvas = Canvas(b) + lockedAppIcon.setBounds(0, 0, canvas.width, canvas.height) + lockedAppIcon.draw(canvas) + b.asImageBitmap() + } + Image( + bitmap = bitmap, + contentDescription = null, + modifier = Modifier + .size(40.dp) + .clip(RoundedCornerShape(8.dp)) + ) + } + + Text( + text = lockedAppName, + style = style.copy( + fontWeight = FontWeight.Bold, + letterSpacing = 0.5.sp + ), + textAlign = TextAlign.Center + ) + } + } + } else { + Text( + text = stringResource(R.string.enter_password_to_continue), + style = style, + textAlign = TextAlign.Center + ) + } +} + @OptIn(ExperimentalMaterial3ExpressiveApi::class, ExperimentalAnimationApi::class) @Composable fun PasswordIndicators( @@ -679,9 +828,6 @@ fun KeypadSection( } } - // Calculate available height for keypad (heuristic) - // 4 rows of buttons + 3 spacings + biometric button (optional) - // Estimate top content takes ~200dp val estimatedTopContentHeight = 220.dp val availableHeight = screenHeightDp - estimatedTopContentHeight @@ -709,10 +855,7 @@ fun KeypadSection( val totalHorizontalSpacing = buttonSpacing * 2 val widthBasedSize = (availableWidth - totalHorizontalSpacing) / 3.5f - // Height constraint for portrait val totalVerticalSpacing = buttonSpacing * 3 - // If biometric button is shown, it takes extra space, but it's floating or above? - // In the current layout, it's inside the column at the top. val biometricAllowance = if (showBiometricButton) 60.dp else 0.dp val heightBasedSize = (availableHeight - totalVerticalSpacing - biometricAllowance) / 4f @@ -769,7 +912,6 @@ fun KeypadSection( Modifier .padding(horizontal = horizontalPadding) .navigationBarsPadding() - // Add a small bottom padding to ensure it doesn't touch the edge .padding(bottom = 8.dp) } ) { diff --git a/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PatternLockScreen.kt b/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PatternLockScreen.kt index 69b9f7d..d187a82 100644 --- a/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PatternLockScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PatternLockScreen.kt @@ -1,5 +1,6 @@ package dev.pranav.applock.features.lockscreen.ui +import android.graphics.drawable.Drawable import androidx.compose.animation.ExperimentalAnimationApi import androidx.compose.animation.core.FastOutSlowInEasing import androidx.compose.animation.core.animateFloatAsState @@ -50,6 +51,7 @@ fun PatternLockScreen( modifier: Modifier = Modifier, fromMainActivity: Boolean = false, lockedAppName: String? = null, + lockedAppIcon: Drawable? = null, triggeringPackageName: String? = null, onPatternAttempt: ((pattern: String) -> Boolean)? = null, onBiometricAuth: (() -> Unit)? = null @@ -119,43 +121,27 @@ fun PatternLockScreen( .weight(1f) .fillMaxSize(), horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.SpaceBetween + verticalArrangement = Arrangement.Center ) { - Column( - horizontalAlignment = Alignment.CenterHorizontally - ) { + AppHeader( + fromMainActivity = fromMainActivity, + lockedAppName = lockedAppName, + lockedAppIcon = lockedAppIcon, + style = MaterialTheme.typography.titleMedium + ) + + if (showError) { + Spacer(modifier = Modifier.height(8.dp)) Text( - text = if (!fromMainActivity && !lockedAppName.isNullOrEmpty()) - "Continue to $lockedAppName" - else - stringResource(R.string.enter_pattern_to_continue), - style = MaterialTheme.typography.titleMedium, - color = MaterialTheme.colorScheme.onSurface, + text = stringResource(R.string.incorrect_pattern_try_again), + color = MaterialTheme.colorScheme.error, + style = MaterialTheme.typography.bodySmall, textAlign = TextAlign.Center ) -// -// if (!fromMainActivity && !triggeringPackageName.isNullOrEmpty()) { -// Spacer(modifier = Modifier.height(8.dp)) -// Text( -// text = triggeringPackageName, -// style = MaterialTheme.typography.bodySmall, -// color = MaterialTheme.colorScheme.onSurfaceVariant, -// textAlign = TextAlign.Center -// ) -// } - - if (showError) { - Spacer(modifier = Modifier.height(8.dp)) - Text( - text = stringResource(R.string.incorrect_pattern_try_again), - color = MaterialTheme.colorScheme.error, - style = MaterialTheme.typography.bodySmall, - textAlign = TextAlign.Center - ) - } } if (appLockRepository.isBiometricAuthEnabled() && onBiometricAuth != null) { + Spacer(modifier = Modifier.height(16.dp)) FilledTonalIconButton( onClick = { onBiometricAuth() }, modifier = Modifier.size(44.dp), @@ -206,26 +192,13 @@ fun PatternLockScreen( Column( horizontalAlignment = Alignment.CenterHorizontally ) { - Text( - text = if (!fromMainActivity && !lockedAppName.isNullOrEmpty()) - "Continue to $lockedAppName" - else - stringResource(R.string.enter_pattern_to_continue), - style = MaterialTheme.typography.headlineMedium, - color = MaterialTheme.colorScheme.onSurface, - textAlign = TextAlign.Center + AppHeader( + fromMainActivity = fromMainActivity, + lockedAppName = lockedAppName, + lockedAppIcon = lockedAppIcon, + style = MaterialTheme.typography.headlineSmall ) -// if (!fromMainActivity && !triggeringPackageName.isNullOrEmpty()) { -// Spacer(modifier = Modifier.height(8.dp)) -// Text( -// text = triggeringPackageName, -// style = MaterialTheme.typography.labelLarge, -// color = MaterialTheme.colorScheme.onSurfaceVariant, -// textAlign = TextAlign.Center -// ) -// } - if (showError) { Spacer(modifier = Modifier.height(8.dp)) Text( diff --git a/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt b/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt index 01843f1..3805e25 100644 --- a/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt @@ -15,6 +15,7 @@ import androidx.compose.animation.core.spring import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.selection.toggleable import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack @@ -31,10 +32,14 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.Role import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.core.net.toUri +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleEventObserver import androidx.navigation.NavController import dev.pranav.applock.R import dev.pranav.applock.core.broadcast.DeviceAdmin @@ -60,8 +65,17 @@ fun SettingsScreen( navController: NavController ) { val context = LocalContext.current + val lifecycleOwner = LocalLifecycleOwner.current val appLockRepository = remember { AppLockRepository(context) } + // Pre-fetch strings to avoid LocalContext.current resource querying in lambdas + val shizukuPermissionGrantedMsg = stringResource(R.string.settings_screen_shizuku_permission_granted) + val shizukuPermissionRequiredMsg = stringResource(R.string.settings_screen_shizuku_permission_required_desc) + val deviceAdminExplanation = stringResource(R.string.main_screen_device_admin_explanation) + val exportLogsError = stringResource(R.string.settings_screen_export_logs_error) + val shizukuNotRunningMsg = stringResource(R.string.settings_screen_shizuku_not_running_toast) + val usagePermissionMsg = stringResource(R.string.settings_screen_usage_permission_toast) + var showDialog by remember { mutableStateOf(false) } var showUnlockTimeDialog by remember { mutableStateOf(false) } @@ -69,17 +83,9 @@ fun SettingsScreen( ActivityResultContracts.RequestPermission() ) { isGranted -> if (isGranted) { - Toast.makeText( - context, - context.getString(R.string.settings_screen_shizuku_permission_granted), - Toast.LENGTH_SHORT - ).show() + Toast.makeText(context, shizukuPermissionGrantedMsg, Toast.LENGTH_SHORT).show() } else { - Toast.makeText( - context, - context.getString(R.string.settings_screen_shizuku_permission_required_desc), - Toast.LENGTH_SHORT - ).show() + Toast.makeText(context, shizukuPermissionRequiredMsg, Toast.LENGTH_SHORT).show() } } @@ -88,6 +94,12 @@ fun SettingsScreen( var useBiometricAuth by remember { mutableStateOf(appLockRepository.isBiometricAuthEnabled()) } var unlockTimeDuration by remember { mutableIntStateOf(appLockRepository.getUnlockTimeDuration()) } var antiUninstallEnabled by remember { mutableStateOf(appLockRepository.isAntiUninstallEnabled()) } + + var antiUninstallAdminSettings by remember { mutableStateOf(appLockRepository.isAntiUninstallAdminSettingsEnabled()) } + var antiUninstallUsageStats by remember { mutableStateOf(appLockRepository.isAntiUninstallUsageStatsEnabled()) } + var antiUninstallAccessibility by remember { mutableStateOf(appLockRepository.isAntiUninstallAccessibilityEnabled()) } + var antiUninstallOverlay by remember { mutableStateOf(appLockRepository.isAntiUninstallOverlayEnabled()) } + var disableHapticFeedback by remember { mutableStateOf(appLockRepository.shouldDisableHaptics()) } var loggingEnabled by remember { mutableStateOf(appLockRepository.isLoggingEnabled()) } @@ -95,6 +107,29 @@ fun SettingsScreen( var showDeviceAdminDialog by remember { mutableStateOf(false) } var showAccessibilityDialog by remember { mutableStateOf(false) } + // Sync state with repository on resume (e.g. after returning from AdminDisableActivity) + DisposableEffect(lifecycleOwner) { + val observer = LifecycleEventObserver { _, event -> + if (event == Lifecycle.Event.ON_RESUME) { + autoUnlock = appLockRepository.isAutoUnlockEnabled() + useMaxBrightness = appLockRepository.shouldUseMaxBrightness() + useBiometricAuth = appLockRepository.isBiometricAuthEnabled() + unlockTimeDuration = appLockRepository.getUnlockTimeDuration() + antiUninstallEnabled = appLockRepository.isAntiUninstallEnabled() + antiUninstallAdminSettings = appLockRepository.isAntiUninstallAdminSettingsEnabled() + antiUninstallUsageStats = appLockRepository.isAntiUninstallUsageStatsEnabled() + antiUninstallAccessibility = appLockRepository.isAntiUninstallAccessibilityEnabled() + antiUninstallOverlay = appLockRepository.isAntiUninstallOverlayEnabled() + disableHapticFeedback = appLockRepository.shouldDisableHaptics() + loggingEnabled = appLockRepository.isLoggingEnabled() + } + } + lifecycleOwner.lifecycle.addObserver(observer) + onDispose { + lifecycleOwner.lifecycle.removeObserver(observer) + } + } + val biometricManager = remember { BiometricManager.from(context) } val isBiometricAvailable = remember { biometricManager.canAuthenticate( @@ -103,6 +138,20 @@ fun SettingsScreen( ) == BiometricManager.BIOMETRIC_SUCCESS } + // Effect to handle anti-uninstall settings reset when disabled + LaunchedEffect(antiUninstallEnabled) { + if (!antiUninstallEnabled) { + antiUninstallAdminSettings = false + antiUninstallUsageStats = false + antiUninstallAccessibility = false + antiUninstallOverlay = false + appLockRepository.setAntiUninstallAdminSettingsEnabled(false) + appLockRepository.setAntiUninstallUsageStatsEnabled(false) + appLockRepository.setAntiUninstallAccessibilityEnabled(false) + appLockRepository.setAntiUninstallOverlayEnabled(false) + } + } + if (showDialog) { AlertDialog( onDismissRequest = { showDialog = false }, @@ -164,7 +213,7 @@ fun SettingsScreen( putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, component) putExtra( DevicePolicyManager.EXTRA_ADD_EXPLANATION, - context.getString(R.string.main_screen_device_admin_explanation) + deviceAdminExplanation ) } context.startActivity(intent) @@ -343,15 +392,12 @@ fun SettingsScreen( val hasAccessibility = context.isAccessibilityServiceEnabled() when { - !hasDeviceAdmin && !hasAccessibility -> { - showPermissionDialog = true + !hasAccessibility -> { + showAccessibilityDialog = true } !hasDeviceAdmin -> { showDeviceAdminDialog = true } - !hasAccessibility -> { - showAccessibilityDialog = true - } else -> { antiUninstallEnabled = true appLockRepository.setAntiUninstallEnabled(true) @@ -368,6 +414,62 @@ fun SettingsScreen( ) } + if (antiUninstallEnabled) { + item { + SectionTitle(text = "Anti-Uninstall Settings") + } + item { + SettingsGroup( + items = listOf( + ToggleSettingItem( + icon = Icons.Default.AdminPanelSettings, + title = "Protect Device Admin", + subtitle = "Prevent access to device admin settings", + checked = antiUninstallAdminSettings, + enabled = antiUninstallEnabled, + onCheckedChange = { isChecked -> + antiUninstallAdminSettings = isChecked + appLockRepository.setAntiUninstallAdminSettingsEnabled(isChecked) + } + ), + ToggleSettingItem( + icon = Icons.Default.QueryStats, + title = "Protect Usage Stats", + subtitle = "Prevent access to usage stats settings", + checked = antiUninstallUsageStats, + enabled = antiUninstallEnabled, + onCheckedChange = { isChecked -> + antiUninstallUsageStats = isChecked + appLockRepository.setAntiUninstallUsageStatsEnabled(isChecked) + } + ), + ToggleSettingItem( + icon = Accessibility, + title = "Protect Accessibility", + subtitle = "Prevent access to accessibility settings", + checked = antiUninstallAccessibility, + enabled = antiUninstallEnabled, + onCheckedChange = { isChecked -> + antiUninstallAccessibility = isChecked + appLockRepository.setAntiUninstallAccessibilityEnabled(isChecked) + } + ), + ToggleSettingItem( + icon = Display, + title = "Protect Overlay Settings", + subtitle = "Prevent access to appear on top settings", + checked = antiUninstallOverlay, + enabled = antiUninstallEnabled, + onCheckedChange = { isChecked -> + antiUninstallOverlay = isChecked + appLockRepository.setAntiUninstallOverlayEnabled(isChecked) + } + ) + ) + ) + } + } + item { SectionTitle(text = stringResource(R.string.settings_screen_advanced_title)) } @@ -393,7 +495,7 @@ fun SettingsScreen( } else { Toast.makeText( context, - context.getString(R.string.settings_screen_export_logs_error), + exportLogsError, Toast.LENGTH_SHORT ).show() } @@ -417,7 +519,7 @@ fun SettingsScreen( } else { Toast.makeText( context, - context.getString(R.string.settings_screen_export_logs_error), + exportLogsError, Toast.LENGTH_SHORT ).show() } @@ -443,7 +545,9 @@ fun SettingsScreen( BackendSelectionCard( appLockRepository = appLockRepository, context = context, - shizukuPermissionLauncher = shizukuPermissionLauncher + shizukuPermissionLauncher = shizukuPermissionLauncher, + shizukuNotRunningMsg = shizukuNotRunningMsg, + usagePermissionMsg = usagePermissionMsg ) } @@ -590,7 +694,12 @@ fun ToggleSettingRow( ) { ListItem( modifier = Modifier - .clickable(enabled = enabled) { if (enabled) onCheckedChange(!checked) } + .toggleable( + value = checked, + enabled = enabled, + role = Role.Switch, + onValueChange = { onCheckedChange(it) } + ) .padding(vertical = 2.dp, horizontal = 4.dp), headlineContent = { Text( @@ -754,7 +863,9 @@ fun UnlockTimeDurationDialog( fun BackendSelectionCard( appLockRepository: AppLockRepository, context: Context, - shizukuPermissionLauncher: androidx.activity.result.ActivityResultLauncher + shizukuPermissionLauncher: androidx.activity.result.ActivityResultLauncher, + shizukuNotRunningMsg: String, + usagePermissionMsg: String ) { var selectedBackend by remember { mutableStateOf(appLockRepository.getBackendImplementation()) } @@ -781,7 +892,7 @@ fun BackendSelectionCard( } else { Toast.makeText( context, - context.getString(R.string.settings_screen_shizuku_not_running_toast), + shizukuNotRunningMsg, Toast.LENGTH_LONG ).show() } @@ -803,7 +914,7 @@ fun BackendSelectionCard( context.startActivity(intent) Toast.makeText( context, - context.getString(R.string.settings_screen_usage_permission_toast), + usagePermissionMsg, Toast.LENGTH_LONG ).show() return@BackendSelectionItem diff --git a/app/src/main/java/dev/pranav/applock/services/AppLockAccessibilityService.kt b/app/src/main/java/dev/pranav/applock/services/AppLockAccessibilityService.kt index 5377dba..b895f48 100644 --- a/app/src/main/java/dev/pranav/applock/services/AppLockAccessibilityService.kt +++ b/app/src/main/java/dev/pranav/applock/services/AppLockAccessibilityService.kt @@ -3,17 +3,24 @@ package dev.pranav.applock.services import android.accessibilityservice.AccessibilityService import android.accessibilityservice.AccessibilityServiceInfo import android.annotation.SuppressLint +import android.app.Notification +import android.app.NotificationChannel +import android.app.NotificationManager import android.app.admin.DevicePolicyManager import android.content.ComponentName import android.content.Intent import android.content.pm.PackageManager import android.content.pm.ResolveInfo +import android.content.pm.ServiceInfo +import android.os.Build import android.util.Log import android.view.accessibility.AccessibilityEvent import android.view.accessibility.AccessibilityNodeInfo import android.view.inputmethod.InputMethodManager import android.widget.Toast +import androidx.core.app.NotificationCompat import androidx.core.content.getSystemService +import dev.pranav.applock.R import dev.pranav.applock.core.broadcast.DeviceAdmin import dev.pranav.applock.core.utils.LogUtils import dev.pranav.applock.core.utils.appLockRepository @@ -22,6 +29,9 @@ import dev.pranav.applock.data.repository.AppLockRepository import dev.pranav.applock.data.repository.BackendImplementation import dev.pranav.applock.features.lockscreen.ui.PasswordOverlayActivity import dev.pranav.applock.services.AppLockConstants.ACCESSIBILITY_SETTINGS_CLASSES +import dev.pranav.applock.services.AppLockConstants.DEVICE_ADMIN_SETTINGS_CLASSES +import dev.pranav.applock.services.AppLockConstants.USAGE_ACCESS_SETTINGS_CLASSES +import dev.pranav.applock.services.AppLockConstants.OVERLAY_SETTINGS_CLASSES import dev.pranav.applock.services.AppLockConstants.EXCLUDED_APPS import rikka.shizuku.Shizuku @@ -33,13 +43,16 @@ class AppLockAccessibilityService : AccessibilityService() { private var recentsOpen = false private var lastForegroundPackage = "" + private val NOTIFICATION_ID = 114 + private val CHANNEL_ID = "AppLockAccessibilityServiceChannel" + private val notificationManager: NotificationManager by lazy { getSystemService(NotificationManager::class.java)!! } + enum class BiometricState { IDLE, AUTH_STARTED } companion object { private const val TAG = "AppLockAccessibility" - private const val DEVICE_ADMIN_SETTINGS_PACKAGE = "com.android.settings" private const val APP_PACKAGE_PREFIX = "dev.pranav.applock" @Volatile @@ -53,7 +66,6 @@ class AppLockAccessibilityService : AccessibilityService() { LogUtils.d(TAG, "Screen off detected. Resetting AppLock state.") AppLockManager.isLockScreenShown.set(false) AppLockManager.clearTemporarilyUnlockedApp() - // Optional: Clear all unlock timestamps to force re-lock on next unlock AppLockManager.appUnlockTimes.clear() } } catch (e: Exception) { @@ -69,6 +81,7 @@ class AppLockAccessibilityService : AccessibilityService() { AppLockManager.currentBiometricState = BiometricState.IDLE AppLockManager.isLockScreenShown.set(false) startPrimaryBackendService() + startForegroundService() val filter = android.content.IntentFilter().apply { addAction(Intent.ACTION_SCREEN_OFF) @@ -80,7 +93,10 @@ class AppLockAccessibilityService : AccessibilityService() { } } - override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int = START_STICKY + override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { + startForegroundService() + return START_STICKY + } override fun onServiceConnected() { super.onServiceConnected() @@ -96,33 +112,53 @@ class AppLockAccessibilityService : AccessibilityService() { Log.d(TAG, "Accessibility service connected") AppLockManager.resetRestartAttempts(TAG) appLockRepository.setActiveBackend(BackendImplementation.ACCESSIBILITY) + startForegroundService() } catch (e: Exception) { logError("Error in onServiceConnected", e) } } override fun onAccessibilityEvent(event: AccessibilityEvent) { - Log.d(TAG, event.toString()) try { + // Block Recents button if lock screen is active + if (AppLockManager.isLockScreenShown.get()) { + if (isRecentsEvent(event)) { + LogUtils.d(TAG, "Blocking Recents access while lock screen is active. Triggering BACK action to stay on overlay.") + // Performing BACK when recents panel is opening will dismiss it, making the button feel "dead". + performGlobalAction(GLOBAL_ACTION_BACK) + return + } + } + handleAccessibilityEvent(event) } catch (e: Exception) { logError("Unhandled error in onAccessibilityEvent", e) } } + private fun isRecentsEvent(event: AccessibilityEvent): Boolean { + val packageName = event.packageName?.toString() ?: "" + val className = event.className?.toString() ?: "" + val text = event.text.toString().lowercase() + + // Don't block if it's our own app's event + if (packageName == applicationContext.packageName) return false + + return className in AppLockConstants.KNOWN_RECENTS_CLASSES || + (packageName == "com.android.systemui" && className.contains("recents", ignoreCase = true)) || + text.contains("recent apps") || + text.contains("overview") + } + private fun handleAccessibilityEvent(event: AccessibilityEvent) { - if (appLockRepository.isAntiUninstallEnabled() && - event.packageName == DEVICE_ADMIN_SETTINGS_PACKAGE - ) { - checkForDeviceAdminDeactivation(event) + if (appLockRepository.isAntiUninstallEnabled()) { + handleAntiUninstallBlocking(event) } - // Early return if protection is disabled or service is not running if (!appLockRepository.isProtectEnabled() || !isServiceRunning) { return } - // Handle window state changes if (event.eventType == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) { try { handleWindowStateChanged(event) @@ -132,16 +168,12 @@ class AppLockAccessibilityService : AccessibilityService() { } } - // Skip processing if recents are open if (recentsOpen) { - LogUtils.d(TAG, "Recents opened, ignoring accessibility event") return } - // Extract and validate package name val packageName = event.packageName?.toString() ?: return - // Skip if device is locked or app is excluded if (!isValidPackageForLocking(packageName)) { return } @@ -153,30 +185,142 @@ class AppLockAccessibilityService : AccessibilityService() { } } + private fun handleAntiUninstallBlocking(event: AccessibilityEvent) { + val packageName = event.packageName?.toString() ?: return + + // Broadly check for settings or package installer + val isSettings = packageName.contains("settings") || + packageName.contains("packageinstaller") || + packageName.contains("permissioncontroller") || + packageName == "android" + + if (!isSettings) return + + val className = event.className?.toString() ?: "" + val root = rootInActiveWindow + + // 1. Protect AppLock's own App Info and Uninstallation + if (root != null && (containsTextRecursive(root, "dev.pranav.applock") || containsTextRecursive(root, "App Lock"))) { + if (className.contains("AppDetails") || className.contains("InstalledAppDetails") || + className.contains("Uninstaller") || className.contains("PackageInstaller") || + className.contains("Settings\$AppDetailsActivity")) { + blockAccess("App Lock protection is active.") + return + } + } + + // Sub switch 1: Device Admin Settings + if (appLockRepository.isAntiUninstallAdminSettingsEnabled()) { + if (className in DEVICE_ADMIN_SETTINGS_CLASSES || + className.contains("DeviceAdminSettings") || + className.contains("DeviceAdminAdd")) { + blockAccess("Device Admin settings are protected.") + return + } + if (root != null && (containsTextRecursive(root, "Device admin") || containsTextRecursive(root, "Device administrator"))) { + if (className.contains("SubSettings") || className.contains("SettingsActivity")) { + blockAccess("Device Admin settings are protected.") + return + } + } + } + + // Sub switch 2: Usage Stats Screen + if (appLockRepository.isAntiUninstallUsageStatsEnabled()) { + if (className in USAGE_ACCESS_SETTINGS_CLASSES || + className.contains("UsageAccessSettings") || + className.contains("UsageStats")) { + blockAccess("Usage access settings are protected.") + return + } + if (root != null && (containsTextRecursive(root, "Usage access") || containsTextRecursive(root, "Usage stats"))) { + if (className.contains("SubSettings") || className.contains("SettingsActivity")) { + blockAccess("Usage access settings are protected.") + return + } + } + } + + // Sub switch 3: Accessibility Settings + if (appLockRepository.isAntiUninstallAccessibilityEnabled()) { + if (className in ACCESSIBILITY_SETTINGS_CLASSES || + className.contains("AccessibilitySettings") || + className.contains("AccessibilityServiceWarning")) { + blockAccess("Accessibility settings are protected.") + return + } + + val accessibilityKeywords = listOf("Accessibility", "Installed apps", "Downloaded apps", "Installed services", "Downloaded services") + if (root != null && accessibilityKeywords.any { containsTextRecursive(root, it) }) { + // If we see "App Lock" in an accessibility-related screen, block it. + if (containsTextRecursive(root, "App Lock")) { + blockAccess("Accessibility settings for App Lock are protected.") + return + } + } + } + + // Sub switch 4: Overlay (Appear on top) Settings + if (appLockRepository.isAntiUninstallOverlayEnabled()) { + if (className in OVERLAY_SETTINGS_CLASSES || + className.contains("DrawOverlayDetails") || + className.contains("OverlaySettings")) { + blockAccess("Overlay settings are protected.") + return + } + if (root != null && (containsTextRecursive(root, "Display over other apps") || containsTextRecursive(root, "Appear on top"))) { + if (className.contains("SubSettings") || className.contains("SettingsActivity") || className.contains("DrawOverlayDetails")) { + blockAccess("Overlay settings are protected.") + return + } + } + } + } + + private fun containsTextRecursive(node: AccessibilityNodeInfo?, text: String): Boolean { + if (node == null) return false + + val nodeText = node.text?.toString() ?: "" + val contentDescription = node.contentDescription?.toString() ?: "" + + if (nodeText.contains(text, ignoreCase = true) || contentDescription.contains(text, ignoreCase = true)) { + return true + } + + for (i in 0 until node.childCount) { + val child = node.getChild(i) + if (containsTextRecursive(child, text)) { + return true + } + } + return false + } + + private fun blockAccess(message: String) { + performGlobalAction(GLOBAL_ACTION_HOME) + Toast.makeText(this, message, Toast.LENGTH_SHORT).show() + } + private fun handleWindowStateChanged(event: AccessibilityEvent) { val isRecentlyOpened = isRecentlyOpened(event) val isHomeScreen = isHomeScreen(event) when { isRecentlyOpened -> { - LogUtils.d(TAG, "Entering recents") recentsOpen = true } isHomeScreenTransition(event) && recentsOpen -> { - LogUtils.d(TAG, "Transitioning to home screen from recents") recentsOpen = false clearTemporarilyUnlockedAppIfNeeded() } isHomeScreen -> { - LogUtils.d(TAG, "On home screen") recentsOpen = false clearTemporarilyUnlockedAppIfNeeded() } isAppSwitchedFromRecents(event) -> { - LogUtils.d(TAG, "App switched from recents") recentsOpen = false clearTemporarilyUnlockedAppIfNeeded(event.packageName?.toString()) } @@ -212,25 +356,21 @@ class AppLockAccessibilityService : AccessibilityService() { newPackage !in appLockRepository.getTriggerExcludedApps()) if (shouldClear) { - LogUtils.d(TAG, "Clearing temporarily unlocked app") AppLockManager.clearTemporarilyUnlockedApp() } } private fun isValidPackageForLocking(packageName: String): Boolean { - // Check if device is locked if (applicationContext.isDeviceLocked()) { AppLockManager.appUnlockTimes.clear() AppLockManager.clearTemporarilyUnlockedApp() return false } - // Check if accessibility should handle locking if (!shouldAccessibilityHandleLocking()) { return false } - // Skip excluded packages if (packageName == APP_PACKAGE_PREFIX || packageName in keyboardPackages || packageName in EXCLUDED_APPS @@ -238,7 +378,6 @@ class AppLockAccessibilityService : AccessibilityService() { return false } - // Skip known recents classes return true } @@ -247,21 +386,15 @@ class AppLockAccessibilityService : AccessibilityService() { val triggeringPackage = lastForegroundPackage lastForegroundPackage = currentForegroundPackage - // Skip if triggering package is excluded if (triggeringPackage in appLockRepository.getTriggerExcludedApps()) { return } - // Fix for "Lock Immediately" not working when switching between apps val unlockedApp = AppLockManager.temporarilyUnlockedApp if (unlockedApp.isNotEmpty() && unlockedApp != currentForegroundPackage && currentForegroundPackage !in appLockRepository.getTriggerExcludedApps() ) { - LogUtils.d( - TAG, - "Switched from unlocked app $unlockedApp to $currentForegroundPackage." - ) AppLockManager.setRecentlyLeftApp(unlockedApp) AppLockManager.clearTemporarilyUnlockedApp() } @@ -283,19 +416,16 @@ class AppLockAccessibilityService : AccessibilityService() { } private fun checkAndLockApp(packageName: String, triggeringPackage: String, currentTime: Long) { - // Return early if lock screen is already shown or biometric auth is in progress if (AppLockManager.isLockScreenShown.get() || AppLockManager.currentBiometricState == BiometricState.AUTH_STARTED ) { return } - // Return if package is not locked if (packageName !in appLockRepository.getLockedApps()) { return } - // Return if app is temporarily unlocked if (AppLockManager.isAppTemporarilyUnlocked(packageName)) { return } @@ -305,30 +435,18 @@ class AppLockAccessibilityService : AccessibilityService() { val unlockDurationMinutes = appLockRepository.getUnlockTimeDuration() val unlockTimestamp = AppLockManager.appUnlockTimes[packageName] ?: 0L - LogUtils.d( - TAG, - "checkAndLockApp: pkg=$packageName, duration=$unlockDurationMinutes min, unlockTime=$unlockTimestamp, currentTime=$currentTime, isLockScreenShown=${AppLockManager.isLockScreenShown.get()}" - ) - if (unlockDurationMinutes > 0 && unlockTimestamp > 0) { if (unlockDurationMinutes >= 10_000) { return } val durationMillis = unlockDurationMinutes.toLong() * 60L * 1000L - val elapsedMillis = currentTime - unlockTimestamp - LogUtils.d( - TAG, - "Grace period check: elapsed=${elapsedMillis}ms (${elapsedMillis / 1000}s), duration=${durationMillis}ms (${durationMillis / 1000}s)" - ) - if (elapsedMillis < durationMillis) { return } - LogUtils.d(TAG, "Unlock grace period expired for $packageName. Clearing timestamp.") AppLockManager.appUnlockTimes.remove(packageName) AppLockManager.clearTemporarilyUnlockedApp() } @@ -336,7 +454,6 @@ class AppLockAccessibilityService : AccessibilityService() { if (AppLockManager.isLockScreenShown.get() || AppLockManager.currentBiometricState == BiometricState.AUTH_STARTED ) { - LogUtils.d(TAG, "Lock screen already shown or biometric auth in progress, skipping") return } @@ -344,7 +461,6 @@ class AppLockAccessibilityService : AccessibilityService() { } private fun showLockScreenOverlay(packageName: String, triggeringPackage: String) { - LogUtils.d(TAG, "Locked app detected: $packageName. Showing overlay.") AppLockManager.isLockScreenShown.set(true) val intent = Intent(this, PasswordOverlayActivity::class.java).apply { @@ -365,109 +481,6 @@ class AppLockAccessibilityService : AccessibilityService() { } } - private fun checkForDeviceAdminDeactivation(event: AccessibilityEvent) { - Log.d(TAG, "Checking for device admin deactivation for event: $event") - - // Check if user is trying to deactivate the accessibility service - if (isDeactivationAttempt(event)) { - Log.d(TAG, "Blocking accessibility service deactivation") - blockDeactivationAttempt() - return - } - - // Check if on device admin page and our app is visible - val isDeviceAdminPage = isDeviceAdminPage(event) - //val isOurAppVisible = findNodeWithTextContaining(rootNode, "App Lock") != null || - // findNodeWithTextContaining(rootNode, "AppLock") != null - - LogUtils.d(TAG, "User is on device admin page: $isDeviceAdminPage, $event") - - if (!isDeviceAdminPage) { - return - } - - blockDeviceAdminDeactivation() - } - - private fun isDeactivationAttempt(event: AccessibilityEvent): Boolean { - val isAccessibilitySettings = event.className in ACCESSIBILITY_SETTINGS_CLASSES && - event.text.any { it.contains("App Lock") } - val isSubSettings = event.className == "com.android.settings.SubSettings" && - event.text.any { it.contains("App Lock") } - val isAlertDialog = - event.packageName == "com.google.android.packageinstaller" && event.className == "android.app.AlertDialog" && event.text.toString() - .lowercase().contains("App Lock") - - return isAccessibilitySettings || isSubSettings || isAlertDialog - } - - @SuppressLint("InlinedApi") - private fun blockDeactivationAttempt() { - try { - performGlobalAction(GLOBAL_ACTION_BACK) - performGlobalAction(GLOBAL_ACTION_HOME) - performGlobalAction(GLOBAL_ACTION_LOCK_SCREEN) - } catch (e: Exception) { - logError("Error blocking deactivation attempt", e) - } - } - - private fun isDeviceAdminPage(event: AccessibilityEvent): Boolean { - val hasDeviceAdminDescription = event.contentDescription?.toString()?.lowercase() - ?.contains("Device admin app") == true && - event.className == "android.widget.FrameLayout" - - val isAdminConfigClass = - event.className!!.contains("DeviceAdminAdd") || event.className!!.contains("DeviceAdminSettings") - - return hasDeviceAdminDescription || isAdminConfigClass - } - - @SuppressLint("InlinedApi") - private fun blockDeviceAdminDeactivation() { - try { - val dpm: DevicePolicyManager? = getSystemService() - val component = ComponentName(this, DeviceAdmin::class.java) - - if (dpm?.isAdminActive(component) == true) { - performGlobalAction(GLOBAL_ACTION_BACK) - performGlobalAction(GLOBAL_ACTION_BACK) - performGlobalAction(GLOBAL_ACTION_HOME) - Thread.sleep(100) - performGlobalAction(GLOBAL_ACTION_LOCK_SCREEN) - Toast.makeText( - this, - "Disable anti-uninstall from AppLock settings to remove this restriction.", - Toast.LENGTH_LONG - ).show() - Log.w(TAG, "Blocked device admin deactivation attempt.") - } - } catch (e: Exception) { - logError("Error blocking device admin deactivation", e) - } - } - - private fun findNodeWithTextContaining( - node: AccessibilityNodeInfo, - text: String - ): AccessibilityNodeInfo? { - return try { - if (node.text?.toString()?.contains(text, ignoreCase = true) == true) { - return node - } - - for (i in 0 until node.childCount) { - val child = node.getChild(i) ?: continue - val result = findNodeWithTextContaining(child, text) - if (result != null) return result - } - null - } catch (e: Exception) { - logError("Error finding node with text: $text", e) - null - } - } - private fun getKeyboardPackageNames(): List { return try { getSystemService()?.enabledInputMethodList?.map { it.packageName } @@ -498,11 +511,7 @@ class AppLockAccessibilityService : AccessibilityService() { isSystemApp && !isOurApp } - systemLauncher?.activityInfo?.packageName?.also { - if (it.isEmpty()) { - Log.w(TAG, "Could not find a clear system launcher package name.") - } - } ?: "" + systemLauncher?.activityInfo?.packageName ?: "" } catch (e: Exception) { logError("Error getting system default launcher package", e) "" @@ -515,17 +524,14 @@ class AppLockAccessibilityService : AccessibilityService() { when (appLockRepository.getBackendImplementation()) { BackendImplementation.SHIZUKU -> { - Log.d(TAG, "Starting Shizuku service as primary backend") startService(Intent(this, ShizukuAppLockService::class.java)) } BackendImplementation.USAGE_STATS -> { - Log.d(TAG, "Starting Experimental service as primary backend") startService(Intent(this, ExperimentalAppLockService::class.java)) } else -> { - Log.d(TAG, "Accessibility service is the primary backend.") } } } catch (e: Exception) { @@ -533,17 +539,67 @@ class AppLockAccessibilityService : AccessibilityService() { } } - override fun onInterrupt() { - try { - LogUtils.d(TAG, "Accessibility service interrupted") - } catch (e: Exception) { - logError("Error in onInterrupt", e) + private fun startForegroundService() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + createNotificationChannel() + val notification = createNotification() + + val type = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + determineForegroundServiceType() + } else 0 + + try { + if (type != 0) { + startForeground(NOTIFICATION_ID, notification, type) + } else { + startForeground(NOTIFICATION_ID, notification) + } + } catch (e: Exception) { + Log.e(TAG, "Failed to start foreground service", e) + } + } + } + + private fun determineForegroundServiceType(): Int { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + val dpm = getSystemService(DevicePolicyManager::class.java) + val component = ComponentName(this, DeviceAdmin::class.java) + + return if (dpm?.isAdminActive(component) == true) { + ServiceInfo.FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED + } else { + ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE + } + } + return 0 + } + + private fun createNotificationChannel() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + val serviceChannel = NotificationChannel( + CHANNEL_ID, + "AppLock Accessibility Service", + NotificationManager.IMPORTANCE_LOW + ) + notificationManager.createNotificationChannel(serviceChannel) } } + private fun createNotification(): Notification { + return NotificationCompat.Builder(this, CHANNEL_ID) + .setContentTitle("App Lock") + .setContentText("Accessibility service is protecting your apps") + .setSmallIcon(R.drawable.baseline_shield_24) + .setPriority(NotificationCompat.PRIORITY_LOW) + .setOngoing(true) + .build() + } + + override fun onInterrupt() { + } + override fun onUnbind(intent: Intent?): Boolean { return try { - Log.d(TAG, "Accessibility service unbound") isServiceRunning = false AppLockManager.startFallbackServices(this, AppLockAccessibilityService::class.java) @@ -562,13 +618,10 @@ class AppLockAccessibilityService : AccessibilityService() { try { super.onDestroy() isServiceRunning = false - LogUtils.d(TAG, "Accessibility service destroyed") try { unregisterReceiver(screenStateReceiver) } catch (_: IllegalArgumentException) { - // Ignore if not registered - Log.w(TAG, "Receiver not registered or already unregistered") } AppLockManager.isLockScreenShown.set(false) @@ -578,10 +631,6 @@ class AppLockAccessibilityService : AccessibilityService() { } } - /** - * Logs errors silently without crashing the service. - * Only logs to debug level to avoid unnecessary noise in production. - */ private fun logError(message: String, throwable: Throwable? = null) { Log.e(TAG, message, throwable) } diff --git a/app/src/main/java/dev/pranav/applock/services/AppLockManager.kt b/app/src/main/java/dev/pranav/applock/services/AppLockManager.kt index f34af00..dc6c816 100644 --- a/app/src/main/java/dev/pranav/applock/services/AppLockManager.kt +++ b/app/src/main/java/dev/pranav/applock/services/AppLockManager.kt @@ -1,6 +1,5 @@ package dev.pranav.applock.services -import android.app.ActivityManager import android.app.KeyguardManager import android.content.Context import android.content.Intent @@ -19,6 +18,8 @@ object AppLockConstants { "com.android.quickstep.RecentsActivity", "com.android.systemui.recents.RecentsView", "com.android.systemui.recents.RecentsPanelView", + "com.sec.android.app.launcher.recents.RecentsActivity", + "com.google.android.apps.nexuslauncher.RecentsActivity" ) val EXCLUDED_APPS = setOf( @@ -36,7 +37,51 @@ object AppLockConstants { "com.android.settings.accessibility.AccessibilitySettings", "com.android.settings.accessibility.AccessibilityMenuActivity", "com.android.settings.accessibility.AccessibilityShortcutActivity", - "com.android.settings.Settings\$AccessibilitySettingsActivity" + "com.android.settings.Settings\$AccessibilitySettingsActivity", + "com.android.settings.Settings\$AccessibilitySettings", + // Samsung specific + "com.samsung.android.settings.accessibility.AccessibilitySettings", + "com.samsung.android.settings.accessibility.AccessibilityShortcutActivity", + "com.samsung.android.settings.accessibility.AccessibilityMenuActivity", + "com.samsung.android.settings.accessibility.home.AccessibilitySettings", + "com.samsung.android.settings.accessibility.AccessibilityDetailsSettings", + "com.samsung.android.settings.accessibility.InstalledAppsActivity", + "com.samsung.android.settings.accessibility.ListServiceAccessibilitySettings", + "com.samsung.android.settings.accessibility.advanced.AdvancedSettingsActivity", + "com.samsung.android.settings.Settings\$AccessibilitySettingsActivity", + "com.samsung.android.settings.Settings\$AccessibilitySettings" + ) + + val DEVICE_ADMIN_SETTINGS_CLASSES = setOf( + "com.android.settings.Settings\$DeviceAdminSettingsActivity", + "com.android.settings.DeviceAdminSettings", + "com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminSettings", + "com.android.settings.DeviceAdminAdd", + // Samsung specific + "com.samsung.android.settings.deviceadmin.DeviceAdminSettings", + "com.samsung.android.settings.deviceadmin.DeviceAdminAdd", + "com.samsung.android.settings.Settings\$DeviceAdminSettingsActivity" + ) + + val USAGE_ACCESS_SETTINGS_CLASSES = setOf( + "com.android.settings.Settings\$UsageAccessSettingsActivity", + "com.android.settings.applications.specialaccess.usageaccess.UsageAccessSettings", + "com.android.settings.UsageAccessSettings", + // Samsung specific + "com.samsung.android.settings.usageaccess.UsageAccessSettings", + "com.samsung.android.settings.Settings\$UsageAccessSettingsActivity" + ) + + val OVERLAY_SETTINGS_CLASSES = setOf( + "com.android.settings.Settings\$OverlaySettingsActivity", + "com.android.settings.Settings\$DrawOverlayDetailsActivity", + "com.android.settings.applications.specialaccess.drawoverlay.DrawOverlayDetails", + "com.android.settings.DrawOverlayDetails", + // Samsung specific + "com.samsung.android.settings.applications.specialaccess.drawoverlay.DrawOverlayDetails", + "com.samsung.android.settings.applications.specialaccess.drawoverlay.OverlaySettings", + "com.samsung.android.settings.Settings\$OverlaySettingsActivity", + "com.samsung.android.settings.Settings\$DrawOverlayDetailsActivity" ) const val MAX_RESTART_ATTEMPTS = 3 @@ -49,11 +94,13 @@ fun Context.isDeviceLocked(): Boolean { return keyguardManager?.isKeyguardLocked ?: false } -@Suppress("DEPRECATION") fun Context.isServiceRunning(serviceClass: Class<*>): Boolean { - val manager = getSystemService(ActivityManager::class.java) ?: return false - return manager.getRunningServices(Int.MAX_VALUE) - .any { serviceClass.name == it.service.className } + return when (serviceClass) { + AppLockAccessibilityService::class.java -> AppLockAccessibilityService.isServiceRunning + ShizukuAppLockService::class.java -> ShizukuAppLockService.isServiceRunning + ExperimentalAppLockService::class.java -> ExperimentalAppLockService.isServiceRunning + else -> false + } } object AppLockManager { diff --git a/app/src/main/java/dev/pranav/applock/services/ExperimentalAppLockService.kt b/app/src/main/java/dev/pranav/applock/services/ExperimentalAppLockService.kt index aa38e00..e9410c4 100644 --- a/app/src/main/java/dev/pranav/applock/services/ExperimentalAppLockService.kt +++ b/app/src/main/java/dev/pranav/applock/services/ExperimentalAppLockService.kt @@ -42,6 +42,11 @@ class ExperimentalAppLockService : Service() { private var timer: Timer? = null private var previousForegroundPackage = "" + companion object { + @Volatile + var isServiceRunning = false + } + private val screenStateReceiver = object: android.content.BroadcastReceiver() { override fun onReceive(context: android.content.Context?, intent: Intent?) { if (intent?.action == Intent.ACTION_SCREEN_OFF) { @@ -64,6 +69,7 @@ class ExperimentalAppLockService : Service() { return START_NOT_STICKY } + isServiceRunning = true AppLockManager.resetRestartAttempts(TAG) appLockRepository.setActiveBackend(BackendImplementation.USAGE_STATS) AppLockManager.stopAllOtherServices(this, this::class.java) @@ -82,6 +88,7 @@ class ExperimentalAppLockService : Service() { } override fun onDestroy() { + isServiceRunning = false timer?.cancel() LogUtils.d(TAG, "Service destroyed. Checking for fallback.") diff --git a/app/src/main/res/xml/accessibility_service_config.xml b/app/src/main/res/xml/accessibility_service_config.xml index 7d4e056..e3ee6ca 100644 --- a/app/src/main/res/xml/accessibility_service_config.xml +++ b/app/src/main/res/xml/accessibility_service_config.xml @@ -1,10 +1,9 @@ - From 43a1803593e63b62bfd0035970ed9f76e8da9ad3 Mon Sep 17 00:00:00 2001 From: AP Date: Sun, 8 Mar 2026 15:26:28 +0530 Subject: [PATCH 2/9] Enhance anti-uninstall protection and improve lock screen security - **Anti-Uninstall Improvements**: - Introduced granular settings to protect Device Admin, Usage Stats, Accessibility, and Overlay settings from being tampered with. - Implemented recursive node inspection in `AppLockAccessibilityService` to detect and block access to AppLock's "App Info" and uninstallation pages. - Added extensive class name mappings for Samsung and stock Android settings pages to improve detection reliability. - Updated `AdminDisableActivity` to explicitly remove active admin status upon verified deactivation. - **Lock Screen & Security**: - Improved `PasswordOverlayActivity` to block Home and Recents button bypasses by listening for system dialog closures. - Added display of the locked app's icon and a "Continue to [App Name]" header on the lock screen for better UX. - Enhanced immersive mode settings to hide system UI and disable gestures while the lock screen is active. - Implemented a more robust `isServiceRunning` check across different backend implementations. - **UI & UX**: - Refactored `AppIntroScreen` to require both Accessibility and Usage Stats permissions regardless of the selected locking method to ensure anti-uninstall features work correctly. - Updated `SettingsScreen` to sync state with the repository on resume and pre-fetch string resources. - Improved the toggling behavior of setting items using the `toggleable` modifier for better accessibility. - **Technical Changes**: - Updated `AppLockAccessibilityService` to run as a foreground service with `systemExempted` type where applicable. - Switched `SharedPreferences` operations to use `commit = true` for immediate data persistence in critical settings. - Expanded accessibility event types to include `typeWindowContentChanged` and `typeWindowsChanged` for better UI monitoring. --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ddf443b..7d7d9ec 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -18,8 +18,8 @@ android { minSdk = 26 targetSdk = 36 // targetSdkPreview = "CANARY" - versionCode = 223 - versionName = "2.2.3" + versionCode = 22301 + versionName = "2.2.3.01(08-03-26)" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } From 245a9db5eab8ed3b8db5f0ee7ce12f04a008fc4a Mon Sep 17 00:00:00 2001 From: AP Date: Sun, 8 Mar 2026 15:34:16 +0530 Subject: [PATCH 3/9] Update app name string - Rename `app_name` from "App Lock" to "AppLock-alod0-by-AP" in `strings.xml` --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 87a4760..052b355 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,5 @@ - App Lock + AppLock-alod0-by-AP Prevents unauthorized people from uninstalling the app. Allows App Lock to detect when protected apps are opened and show password verification. From c559178f35032333e9a1f4d0838efde607c3168f Mon Sep 17 00:00:00 2001 From: ap0803apap-sketch Date: Sun, 8 Mar 2026 20:49:25 +0530 Subject: [PATCH 4/9] Add AMOLED mode toggle to lock screen customization --- .../data/repository/AppLockRepository.kt | 2 ++ .../data/repository/PreferencesRepository.kt | 9 ++++++++ .../features/settings/ui/SettingsScreen.kt | 13 +++++++++++ .../java/dev/pranav/applock/ui/theme/Theme.kt | 22 ++++++++++++++++--- app/src/main/res/values/strings.xml | 2 ++ 5 files changed, 45 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt b/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt index 2bc3b3e..245c991 100644 --- a/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt +++ b/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt @@ -60,6 +60,8 @@ class AppLockRepository(private val context: Context) { fun setUseMaxBrightness(enabled: Boolean) = preferencesRepository.setUseMaxBrightness(enabled) fun shouldUseMaxBrightness(): Boolean = preferencesRepository.shouldUseMaxBrightness() + fun setAmoledModeEnabled(enabled: Boolean) = preferencesRepository.setAmoledModeEnabled(enabled) + fun isAmoledModeEnabled(): Boolean = preferencesRepository.isAmoledModeEnabled() fun setDisableHaptics(enabled: Boolean) = preferencesRepository.setDisableHaptics(enabled) fun shouldDisableHaptics(): Boolean = preferencesRepository.shouldDisableHaptics() fun setShowSystemApps(enabled: Boolean) = preferencesRepository.setShowSystemApps(enabled) diff --git a/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt b/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt index 7d1a584..9aa4311 100644 --- a/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt +++ b/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt @@ -66,6 +66,14 @@ class PreferencesRepository(context: Context) { return settingsPrefs.getBoolean(KEY_USE_MAX_BRIGHTNESS, false) } + fun setAmoledModeEnabled(enabled: Boolean) { + settingsPrefs.edit { putBoolean(KEY_AMOLED_MODE_ENABLED, enabled) } + } + + fun isAmoledModeEnabled(): Boolean { + return settingsPrefs.getBoolean(KEY_AMOLED_MODE_ENABLED, false) + } + fun setDisableHaptics(enabled: Boolean) { settingsPrefs.edit { putBoolean(KEY_DISABLE_HAPTICS, enabled) } } @@ -195,6 +203,7 @@ class PreferencesRepository(context: Context) { private const val KEY_BIOMETRIC_AUTH_ENABLED = "use_biometric_auth" private const val KEY_DISABLE_HAPTICS = "disable_haptics" private const val KEY_USE_MAX_BRIGHTNESS = "use_max_brightness" + private const val KEY_AMOLED_MODE_ENABLED = "amoled_mode_enabled" private const val KEY_ANTI_UNINSTALL = "anti_uninstall" private const val KEY_ANTI_UNINSTALL_ADMIN_SETTINGS = "anti_uninstall_admin_settings" private const val KEY_ANTI_UNINSTALL_USAGE_STATS = "anti_uninstall_usage_stats" diff --git a/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt b/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt index 3805e25..84bdd3f 100644 --- a/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt @@ -91,6 +91,7 @@ fun SettingsScreen( var autoUnlock by remember { mutableStateOf(appLockRepository.isAutoUnlockEnabled()) } var useMaxBrightness by remember { mutableStateOf(appLockRepository.shouldUseMaxBrightness()) } + var amoledModeEnabled by remember { mutableStateOf(appLockRepository.isAmoledModeEnabled()) } var useBiometricAuth by remember { mutableStateOf(appLockRepository.isBiometricAuthEnabled()) } var unlockTimeDuration by remember { mutableIntStateOf(appLockRepository.getUnlockTimeDuration()) } var antiUninstallEnabled by remember { mutableStateOf(appLockRepository.isAntiUninstallEnabled()) } @@ -113,6 +114,7 @@ fun SettingsScreen( if (event == Lifecycle.Event.ON_RESUME) { autoUnlock = appLockRepository.isAutoUnlockEnabled() useMaxBrightness = appLockRepository.shouldUseMaxBrightness() + amoledModeEnabled = appLockRepository.isAmoledModeEnabled() useBiometricAuth = appLockRepository.isBiometricAuthEnabled() unlockTimeDuration = appLockRepository.getUnlockTimeDuration() antiUninstallEnabled = appLockRepository.isAntiUninstallEnabled() @@ -312,6 +314,17 @@ fun SettingsScreen( appLockRepository.setUseMaxBrightness(isChecked) } ), + ToggleSettingItem( + icon = Icons.Default.DarkMode, + title = stringResource(R.string.settings_screen_amoled_mode_title), + subtitle = stringResource(R.string.settings_screen_amoled_mode_desc), + checked = amoledModeEnabled, + enabled = true, + onCheckedChange = { isChecked -> + amoledModeEnabled = isChecked + appLockRepository.setAmoledModeEnabled(isChecked) + } + ), ToggleSettingItem( icon = if (useBiometricAuth) Fingerprint else FingerprintOff, title = stringResource(R.string.settings_screen_biometric_auth_title), diff --git a/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt b/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt index c795e35..85f3174 100644 --- a/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt +++ b/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt @@ -12,8 +12,11 @@ import androidx.compose.material3.dynamicDarkColorScheme import androidx.compose.material3.dynamicLightColorScheme import androidx.compose.material3.expressiveLightColorScheme import androidx.compose.runtime.Composable +import androidx.compose.runtime.remember +import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp +import dev.pranav.applock.data.repository.AppLockRepository @OptIn(ExperimentalMaterial3ExpressiveApi::class) @Composable @@ -23,13 +26,26 @@ fun AppLockTheme( dynamicColor: Boolean = true, content: @Composable () -> Unit ) { + val context = LocalContext.current + val appLockRepository = remember(context) { AppLockRepository(context) } + val amoledModeEnabled = appLockRepository.isAmoledModeEnabled() + val colorScheme = when { dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { - val context = LocalContext.current - if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + if (darkTheme) { + dynamicDarkColorScheme(context).run { + if (amoledModeEnabled) copy(primary = Color.Black) else this + } + } else { + dynamicLightColorScheme(context) + } } - darkTheme -> darkColorScheme() + darkTheme -> { + darkColorScheme().run { + if (amoledModeEnabled) copy(primary = Color.Black) else this + } + } else -> expressiveLightColorScheme() } val shapes = Shapes(largeIncreased = RoundedCornerShape(36.0.dp)) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 052b355..44f744f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -131,6 +131,8 @@ Make sure you have Shizuku installed and enabled via ADB. Tap \'Next\' to grant Lock Screen Customization Maximum Brightness Display lock screen at maximum brightness for clarity + AMOLED Mode + Use pure black as the primary color in dark mode Biometric Authentication Use fingerprint or face unlock if available Biometric authentication is not available on this device. From ee65dd3ea70d92798b9f92c42e9d3c34104a30b4 Mon Sep 17 00:00:00 2001 From: ap0803apap-sketch Date: Mon, 9 Mar 2026 17:40:30 +0530 Subject: [PATCH 5/9] Update settings UI links and add app theme controls --- .../data/repository/AppLockRepository.kt | 2 + .../data/repository/PreferencesRepository.kt | 20 ++ .../features/settings/ui/SettingsScreen.kt | 176 +++++++++++++----- .../java/dev/pranav/applock/ui/theme/Theme.kt | 20 +- app/src/main/res/values/strings.xml | 11 +- 5 files changed, 173 insertions(+), 56 deletions(-) diff --git a/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt b/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt index 245c991..1c26c40 100644 --- a/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt +++ b/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt @@ -62,6 +62,8 @@ class AppLockRepository(private val context: Context) { fun shouldUseMaxBrightness(): Boolean = preferencesRepository.shouldUseMaxBrightness() fun setAmoledModeEnabled(enabled: Boolean) = preferencesRepository.setAmoledModeEnabled(enabled) fun isAmoledModeEnabled(): Boolean = preferencesRepository.isAmoledModeEnabled() + fun setAppThemeMode(themeMode: AppThemeMode) = preferencesRepository.setAppThemeMode(themeMode) + fun getAppThemeMode(): AppThemeMode = preferencesRepository.getAppThemeMode() fun setDisableHaptics(enabled: Boolean) = preferencesRepository.setDisableHaptics(enabled) fun shouldDisableHaptics(): Boolean = preferencesRepository.shouldDisableHaptics() fun setShowSystemApps(enabled: Boolean) = preferencesRepository.setShowSystemApps(enabled) diff --git a/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt b/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt index 9aa4311..e0dfa4d 100644 --- a/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt +++ b/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt @@ -74,6 +74,19 @@ class PreferencesRepository(context: Context) { return settingsPrefs.getBoolean(KEY_AMOLED_MODE_ENABLED, false) } + fun setAppThemeMode(themeMode: AppThemeMode) { + settingsPrefs.edit { putString(KEY_APP_THEME_MODE, themeMode.name) } + } + + fun getAppThemeMode(): AppThemeMode { + val mode = settingsPrefs.getString(KEY_APP_THEME_MODE, AppThemeMode.SYSTEM.name) + return try { + AppThemeMode.valueOf(mode ?: AppThemeMode.SYSTEM.name) + } catch (_: IllegalArgumentException) { + AppThemeMode.SYSTEM + } + } + fun setDisableHaptics(enabled: Boolean) { settingsPrefs.edit { putBoolean(KEY_DISABLE_HAPTICS, enabled) } } @@ -204,6 +217,7 @@ class PreferencesRepository(context: Context) { private const val KEY_DISABLE_HAPTICS = "disable_haptics" private const val KEY_USE_MAX_BRIGHTNESS = "use_max_brightness" private const val KEY_AMOLED_MODE_ENABLED = "amoled_mode_enabled" + private const val KEY_APP_THEME_MODE = "app_theme_mode" private const val KEY_ANTI_UNINSTALL = "anti_uninstall" private const val KEY_ANTI_UNINSTALL_ADMIN_SETTINGS = "anti_uninstall_admin_settings" private const val KEY_ANTI_UNINSTALL_USAGE_STATS = "anti_uninstall_usage_stats" @@ -227,3 +241,9 @@ class PreferencesRepository(context: Context) { const val LOCK_TYPE_PATTERN = "pattern" } } + +enum class AppThemeMode { + SYSTEM, + LIGHT, + DARK +} diff --git a/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt b/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt index 84bdd3f..e22976c 100644 --- a/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt @@ -15,6 +15,8 @@ import androidx.compose.animation.core.spring import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.selection.selectable +import androidx.compose.foundation.selection.selectableGroup import androidx.compose.foundation.selection.toggleable import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons @@ -22,7 +24,6 @@ import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material.icons.automirrored.rounded.KeyboardArrowRight import androidx.compose.material.icons.filled.* import androidx.compose.material.icons.outlined.BugReport -import androidx.compose.material.icons.outlined.Code import androidx.compose.material.icons.outlined.Security import androidx.compose.material3.* import androidx.compose.runtime.* @@ -49,11 +50,11 @@ import dev.pranav.applock.core.utils.hasUsagePermission import dev.pranav.applock.core.utils.isAccessibilityServiceEnabled import dev.pranav.applock.core.utils.openAccessibilitySettings import dev.pranav.applock.data.repository.AppLockRepository +import dev.pranav.applock.data.repository.AppThemeMode import dev.pranav.applock.data.repository.BackendImplementation import dev.pranav.applock.features.admin.AdminDisableActivity import dev.pranav.applock.services.ExperimentalAppLockService import dev.pranav.applock.services.ShizukuAppLockService -import dev.pranav.applock.ui.components.DonateButton import dev.pranav.applock.ui.icons.* import rikka.shizuku.Shizuku import rikka.shizuku.ShizukuProvider @@ -92,6 +93,7 @@ fun SettingsScreen( var autoUnlock by remember { mutableStateOf(appLockRepository.isAutoUnlockEnabled()) } var useMaxBrightness by remember { mutableStateOf(appLockRepository.shouldUseMaxBrightness()) } var amoledModeEnabled by remember { mutableStateOf(appLockRepository.isAmoledModeEnabled()) } + var appThemeMode by remember { mutableStateOf(appLockRepository.getAppThemeMode()) } var useBiometricAuth by remember { mutableStateOf(appLockRepository.isBiometricAuthEnabled()) } var unlockTimeDuration by remember { mutableIntStateOf(appLockRepository.getUnlockTimeDuration()) } var antiUninstallEnabled by remember { mutableStateOf(appLockRepository.isAntiUninstallEnabled()) } @@ -115,6 +117,7 @@ fun SettingsScreen( autoUnlock = appLockRepository.isAutoUnlockEnabled() useMaxBrightness = appLockRepository.shouldUseMaxBrightness() amoledModeEnabled = appLockRepository.isAmoledModeEnabled() + appThemeMode = appLockRepository.getAppThemeMode() useBiometricAuth = appLockRepository.isBiometricAuthEnabled() unlockTimeDuration = appLockRepository.getUnlockTimeDuration() antiUninstallEnabled = appLockRepository.isAntiUninstallEnabled() @@ -292,8 +295,37 @@ fun SettingsScreen( ) } + item { - DonateButton() + SectionTitle(text = stringResource(R.string.settings_screen_app_theme_title)) + } + + item { + AppThemeModeCard( + selectedThemeMode = appThemeMode, + onThemeModeSelected = { selectedMode -> + appThemeMode = selectedMode + appLockRepository.setAppThemeMode(selectedMode) + } + ) + } + + item { + SettingsGroup( + items = listOf( + ToggleSettingItem( + icon = Icons.Default.DarkMode, + title = stringResource(R.string.settings_screen_amoled_mode_title), + subtitle = stringResource(R.string.settings_screen_amoled_mode_desc), + checked = amoledModeEnabled, + enabled = true, + onCheckedChange = { isChecked -> + amoledModeEnabled = isChecked + appLockRepository.setAmoledModeEnabled(isChecked) + } + ) + ) + ) } item { @@ -314,17 +346,6 @@ fun SettingsScreen( appLockRepository.setUseMaxBrightness(isChecked) } ), - ToggleSettingItem( - icon = Icons.Default.DarkMode, - title = stringResource(R.string.settings_screen_amoled_mode_title), - subtitle = stringResource(R.string.settings_screen_amoled_mode_desc), - checked = amoledModeEnabled, - enabled = true, - onCheckedChange = { isChecked -> - amoledModeEnabled = isChecked - appLockRepository.setAmoledModeEnabled(isChecked) - } - ), ToggleSettingItem( icon = if (useBiometricAuth) Fingerprint else FingerprintOff, title = stringResource(R.string.settings_screen_biometric_auth_title), @@ -761,11 +782,11 @@ fun ActionSettingRow( icon: ImageVector, title: String, subtitle: String, - onClick: () -> Unit + onClick: (() -> Unit)? ) { ListItem( modifier = Modifier - .clickable(onClick = onClick) + .then(if (onClick != null) Modifier.clickable(onClick = onClick) else Modifier) .padding(vertical = 2.dp, horizontal = 4.dp), headlineContent = { Text( @@ -792,16 +813,18 @@ fun ActionSettingRow( ) } }, - trailingContent = { - Box( - contentAlignment = Alignment.Center - ) { - Icon( - imageVector = Icons.AutoMirrored.Rounded.KeyboardArrowRight, - contentDescription = null - ) + trailingContent = if (onClick != null) { + { + Box( + contentAlignment = Alignment.Center + ) { + Icon( + imageVector = Icons.AutoMirrored.Rounded.KeyboardArrowRight, + contentDescription = null + ) + } } - }, + } else null, colors = ListItemDefaults.colors( containerColor = Color.Transparent ) @@ -960,7 +983,7 @@ fun BackendSelectionCard( fun BackendSelectionItem( backend: BackendImplementation, isSelected: Boolean, - onClick: () -> Unit + onClick: (() -> Unit)? ) { ListItem( modifier = Modifier @@ -1052,6 +1075,51 @@ private fun getBackendIcon(backend: BackendImplementation): ImageVector { } } + +@Composable +fun AppThemeModeCard( + selectedThemeMode: AppThemeMode, + onThemeModeSelected: (AppThemeMode) -> Unit +) { + val modes = listOf( + AppThemeMode.SYSTEM to stringResource(R.string.settings_screen_theme_mode_system), + AppThemeMode.LIGHT to stringResource(R.string.settings_screen_theme_mode_light), + AppThemeMode.DARK to stringResource(R.string.settings_screen_theme_mode_dark) + ) + + SettingsCard(index = 0, listSize = 1) { + Column( + modifier = Modifier + .fillMaxWidth() + .selectableGroup() + ) { + modes.forEach { (mode, label) -> + Row( + modifier = Modifier + .fillMaxWidth() + .selectable( + selected = selectedThemeMode == mode, + onClick = { onThemeModeSelected(mode) }, + role = Role.RadioButton + ) + .padding(horizontal = 20.dp, vertical = 12.dp), + verticalAlignment = Alignment.CenterVertically + ) { + RadioButton( + selected = selectedThemeMode == mode, + onClick = null + ) + Spacer(modifier = Modifier.width(12.dp)) + Text( + text = label, + style = MaterialTheme.typography.bodyLarge + ) + } + } + } + } +} + @Composable fun PermissionRequiredDialog( onDismiss: () -> Unit, @@ -1139,45 +1207,53 @@ fun LinksSection() { val context = LocalContext.current Column { - SectionTitle(text = "Links") + SectionTitle(text = stringResource(R.string.settings_screen_developer_info_title)) Column { - SettingsCard(index = 0, listSize = 3) { + SettingsCard(index = 0, listSize = 4) { + LinkItem( + title = stringResource(R.string.settings_screen_developer_name_ap), + icon = Icons.Default.Person, + onClick = null + ) + } + + SettingsCard(index = 1, listSize = 4) { LinkItem( - title = "Discord Community", - icon = Discord, + title = stringResource(R.string.settings_screen_developer_email_ap), + icon = Icons.Default.Email, onClick = { val intent = Intent( - Intent.ACTION_VIEW, - "https://discord.gg/46wCMRVAre".toUri() + Intent.ACTION_SENDTO, + "mailto:ap0803apap@gmail.com".toUri() ) context.startActivity(intent) } ) } - SettingsCard(index = 1, listSize = 3) { + SettingsCard(index = 2, listSize = 4) { LinkItem( - title = "Source Code", + title = stringResource(R.string.settings_screen_source_code), icon = Icons.Outlined.Code, onClick = { val intent = Intent( Intent.ACTION_VIEW, - "https://github.com/aload0/AppLock".toUri() + "https://github.com/ap0803apap-sketch".toUri() ) context.startActivity(intent) } ) } - SettingsCard(index = 2, listSize = 3) { + SettingsCard(index = 3, listSize = 4) { LinkItem( - title = "Report Issue", + title = stringResource(R.string.settings_screen_report_issue), icon = Icons.Outlined.BugReport, onClick = { val intent = Intent( Intent.ACTION_VIEW, - "https://github.com/aload0/AppLock/issues".toUri() + "https://github.com/ap0803apap-sketch".toUri() ) context.startActivity(intent) } @@ -1191,11 +1267,11 @@ fun LinksSection() { fun LinkItem( title: String, icon: ImageVector, - onClick: () -> Unit + onClick: (() -> Unit)? ) { ListItem( modifier = Modifier - .clickable(onClick = onClick) + .then(if (onClick != null) Modifier.clickable(onClick = onClick) else Modifier) .padding(vertical = 2.dp, horizontal = 4.dp), headlineContent = { Text( @@ -1216,16 +1292,18 @@ fun LinkItem( ) } }, - trailingContent = { - Box( - contentAlignment = Alignment.Center - ) { - Icon( - imageVector = Icons.AutoMirrored.Rounded.KeyboardArrowRight, - contentDescription = null - ) + trailingContent = if (onClick != null) { + { + Box( + contentAlignment = Alignment.Center + ) { + Icon( + imageVector = Icons.AutoMirrored.Rounded.KeyboardArrowRight, + contentDescription = null + ) + } } - }, + } else null, colors = ListItemDefaults.colors( containerColor = Color.Transparent ) diff --git a/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt b/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt index 85f3174..3407eae 100644 --- a/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt +++ b/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt @@ -17,6 +17,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp import dev.pranav.applock.data.repository.AppLockRepository +import dev.pranav.applock.data.repository.AppThemeMode @OptIn(ExperimentalMaterial3ExpressiveApi::class) @Composable @@ -28,24 +29,31 @@ fun AppLockTheme( ) { val context = LocalContext.current val appLockRepository = remember(context) { AppLockRepository(context) } + + val themeMode = appLockRepository.getAppThemeMode() + val resolvedDarkTheme = when (themeMode) { + AppThemeMode.SYSTEM -> darkTheme + AppThemeMode.LIGHT -> false + AppThemeMode.DARK -> true + } + val amoledModeEnabled = appLockRepository.isAmoledModeEnabled() val colorScheme = when { - dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { - if (darkTheme) { - dynamicDarkColorScheme(context).run { - if (amoledModeEnabled) copy(primary = Color.Black) else this - } + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && !amoledModeEnabled -> { + if (resolvedDarkTheme) { + dynamicDarkColorScheme(context) } else { dynamicLightColorScheme(context) } } - darkTheme -> { + resolvedDarkTheme -> { darkColorScheme().run { if (amoledModeEnabled) copy(primary = Color.Black) else this } } + else -> expressiveLightColorScheme() } val shapes = Shapes(largeIncreased = RoundedCornerShape(36.0.dp)) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 44f744f..698a9ce 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -128,11 +128,20 @@ Make sure you have Shizuku installed and enabled via ADB. Tap \'Next\' to grant Accessibility Service Permission App Lock also needs Accessibility Service permission to monitor app uninstallation attempts and re-activate Device Administrator if disabled. This ensures the Anti-Uninstall feature remains effective. Please enable the Accessibility Service for App Lock in the settings. Open Settings + App Theme + System + Light + Dark + Developer Info + Developer Name: AP + Email: ap0803apap@gmail.com + Source Code + Report Issue Lock Screen Customization Maximum Brightness Display lock screen at maximum brightness for clarity AMOLED Mode - Use pure black as the primary color in dark mode + When off (default), dynamic colors are used in lock screen customization. When on, dark mode primary color becomes AMOLED black across the app. Biometric Authentication Use fingerprint or face unlock if available Biometric authentication is not available on this device. From 148da17cbf4202b2c4d87bb0bd77feb5b744451a Mon Sep 17 00:00:00 2001 From: AP Date: Mon, 9 Mar 2026 20:08:47 +0530 Subject: [PATCH 6/9] Summarize the following changes: **Core & UI** - **Enhanced Theme Engine:** Implemented a custom Purple/Lavender palette for light and dark modes. Integrated reactive `Flow` states for AMOLED and Theme modes to ensure UI consistency across the app. - **Settings Screen Refactor:** Completely redesigned the `SettingsScreen` with a more modular `SettingsCard` and `SwitchItem` architecture. Improved permission handling flows for Anti-Uninstall features. - **App Branding:** Updated the application name to "APP Lock by AP" and refreshed launcher icons with adaptive and monochrome support. **Security & Protection** - **Anti-Uninstall Improvements:** Strengthened protection by adding blocking for system settings related to Device Admin, Usage Stats, Accessibility, and Overlay permissions. - **Improved Detection Logic:** Refined `AppLockAccessibilityService` to better handle Launcher transitions and Recents screen interactions. - **Grace Period Adjustment:** Increased the navigation grace period to 2000ms for improved stability during app switching. **Technical Improvements** - **Flow-based Preferences:** Added `callbackFlow` observers to `PreferencesRepository` for real-time setting updates. - **Service Stability:** Optimized `AppLockAccessibilityService` by reducing unnecessary event processing and improving launcher package detection. - **Project Configuration:** Updated `versionCode` to 22302 and added JitPack repository support. --- app/build.gradle.kts | 4 +- app/src/main/AndroidManifest.xml | 17 +- app/src/main/ic_launcher-playstore.png | Bin 163717 -> 357192 bytes .../applock/core/navigation/AppNavigator.kt | 2 +- .../data/repository/AppLockRepository.kt | 5 + .../data/repository/PreferencesRepository.kt | 28 + .../features/settings/ui/SettingsScreen.kt | 991 +++++++----------- .../services/AppLockAccessibilityService.kt | 173 ++- .../pranav/applock/services/AppLockManager.kt | 15 +- .../services/ExperimentalAppLockService.kt | 4 +- .../applock/services/ShizukuAppLockService.kt | 4 +- .../java/dev/pranav/applock/ui/theme/Theme.kt | 92 +- .../res/mipmap-anydpi-v26/ic_launcher.xml | 7 +- .../mipmap-anydpi-v26/ic_launcher_round.xml | 7 +- app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 4650 bytes .../mipmap-hdpi/ic_launcher_foreground.webp | Bin 6506 -> 12342 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 4754 -> 7030 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 2502 bytes .../mipmap-mdpi/ic_launcher_foreground.webp | Bin 3696 -> 6428 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 2816 -> 3830 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 7380 bytes .../mipmap-xhdpi/ic_launcher_foreground.webp | Bin 9910 -> 19378 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 6998 -> 10954 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 14122 bytes .../mipmap-xxhdpi/ic_launcher_foreground.webp | Bin 17210 -> 37536 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 12264 -> 20284 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 22320 bytes .../ic_launcher_foreground.webp | Bin 26036 -> 62264 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 18222 -> 31758 bytes .../res/values/ic_launcher_background.xml | 4 + app/src/main/res/values/strings.xml | 62 +- settings.gradle.kts | 3 +- 32 files changed, 638 insertions(+), 780 deletions(-) create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/values/ic_launcher_background.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 7d7d9ec..a189cdc 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -18,8 +18,8 @@ android { minSdk = 26 targetSdk = 36 // targetSdkPreview = "CANARY" - versionCode = 22301 - versionName = "2.2.3.01(08-03-26)" + versionCode = 22302 + versionName = "2.2.3.02(09-03-26)" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 846d210..9794ec1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -27,7 +27,8 @@ - + + android:label="@string/app_name" + android:theme="@style/Theme.AppLock" + tools:ignore="RedundantLabel"> @@ -57,13 +61,17 @@ android:configChanges="orientation|screenSize|screenLayout|keyboardHidden" android:excludeFromRecents="true" android:exported="false" + android:label="@string/app_name" android:taskAffinity="" - android:theme="@android:style/Theme.Material.NoActionBar.TranslucentDecor" /> + android:theme="@android:style/Theme.Material.NoActionBar.TranslucentDecor" + tools:ignore="RedundantLabel" /> + android:label="@string/app_name" + android:theme="@style/Theme.AppLock" + tools:ignore="RedundantLabel" /> diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png index bd75f7ebf2b414352ebb9428942190ccfcd5b56d..edd97274634d3604778bf1c98ae1f287ebc634b4 100644 GIT binary patch literal 357192 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

KZYBMq44C!<9vk) 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⁡gy&o=K9$DdBn3`L5iRQrBC| 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 z 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 literal 163717 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 = preferencesRepository.amoledModeFlow() + fun setAppThemeMode(themeMode: AppThemeMode) = preferencesRepository.setAppThemeMode(themeMode) fun getAppThemeMode(): AppThemeMode = preferencesRepository.getAppThemeMode() + fun appThemeModeFlow(): Flow = preferencesRepository.appThemeModeFlow() + fun setDisableHaptics(enabled: Boolean) = preferencesRepository.setDisableHaptics(enabled) fun shouldDisableHaptics(): Boolean = preferencesRepository.shouldDisableHaptics() fun setShowSystemApps(enabled: Boolean) = preferencesRepository.setShowSystemApps(enabled) diff --git a/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt b/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt index e0dfa4d..b3f7a10 100644 --- a/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt +++ b/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt @@ -3,6 +3,10 @@ package dev.pranav.applock.data.repository import android.content.Context import android.content.SharedPreferences import androidx.core.content.edit +import kotlinx.coroutines.channels.awaitClose +import kotlinx.coroutines.flow.Flow +import kotlinx.coroutines.flow.callbackFlow +import kotlinx.coroutines.flow.onStart /** * Repository for managing application preferences and settings. @@ -74,6 +78,18 @@ class PreferencesRepository(context: Context) { return settingsPrefs.getBoolean(KEY_AMOLED_MODE_ENABLED, false) } + fun amoledModeFlow(): Flow = callbackFlow { + val listener = object : SharedPreferences.OnSharedPreferenceChangeListener { + override fun onSharedPreferenceChanged(prefs: SharedPreferences?, key: String?) { + if (key == KEY_AMOLED_MODE_ENABLED) { + trySend(isAmoledModeEnabled()) + } + } + } + settingsPrefs.registerOnSharedPreferenceChangeListener(listener) + awaitClose { settingsPrefs.unregisterOnSharedPreferenceChangeListener(listener) } + }.onStart { emit(isAmoledModeEnabled()) } + fun setAppThemeMode(themeMode: AppThemeMode) { settingsPrefs.edit { putString(KEY_APP_THEME_MODE, themeMode.name) } } @@ -87,6 +103,18 @@ class PreferencesRepository(context: Context) { } } + fun appThemeModeFlow(): Flow = callbackFlow { + val listener = object : SharedPreferences.OnSharedPreferenceChangeListener { + override fun onSharedPreferenceChanged(prefs: SharedPreferences?, key: String?) { + if (key == KEY_APP_THEME_MODE) { + trySend(getAppThemeMode()) + } + } + } + settingsPrefs.registerOnSharedPreferenceChangeListener(listener) + awaitClose { settingsPrefs.unregisterOnSharedPreferenceChangeListener(listener) } + }.onStart { emit(getAppThemeMode()) } + fun setDisableHaptics(enabled: Boolean) { settingsPrefs.edit { putBoolean(KEY_DISABLE_HAPTICS, enabled) } } diff --git a/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt b/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt index e22976c..5008f9e 100644 --- a/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt @@ -77,7 +77,6 @@ fun SettingsScreen( val shizukuNotRunningMsg = stringResource(R.string.settings_screen_shizuku_not_running_toast) val usagePermissionMsg = stringResource(R.string.settings_screen_usage_permission_toast) - var showDialog by remember { mutableStateOf(false) } var showUnlockTimeDialog by remember { mutableStateOf(false) } val shizukuPermissionLauncher = rememberLauncherForActivityResult( @@ -90,12 +89,16 @@ fun SettingsScreen( } } + // Reactive states from repository flows + val amoledModeEnabled by appLockRepository.amoledModeFlow() + .collectAsState(initial = appLockRepository.isAmoledModeEnabled()) + val appThemeMode by appLockRepository.appThemeModeFlow() + .collectAsState(initial = appLockRepository.getAppThemeMode()) + var autoUnlock by remember { mutableStateOf(appLockRepository.isAutoUnlockEnabled()) } var useMaxBrightness by remember { mutableStateOf(appLockRepository.shouldUseMaxBrightness()) } - var amoledModeEnabled by remember { mutableStateOf(appLockRepository.isAmoledModeEnabled()) } - var appThemeMode by remember { mutableStateOf(appLockRepository.getAppThemeMode()) } var useBiometricAuth by remember { mutableStateOf(appLockRepository.isBiometricAuthEnabled()) } - var unlockTimeDuration by remember { mutableIntStateOf(appLockRepository.getUnlockTimeDuration()) } + var unlockTimeDuration by remember { mutableStateOf(appLockRepository.getUnlockTimeDuration()) } var antiUninstallEnabled by remember { mutableStateOf(appLockRepository.isAntiUninstallEnabled()) } var antiUninstallAdminSettings by remember { mutableStateOf(appLockRepository.isAntiUninstallAdminSettingsEnabled()) } @@ -110,14 +113,12 @@ fun SettingsScreen( var showDeviceAdminDialog by remember { mutableStateOf(false) } var showAccessibilityDialog by remember { mutableStateOf(false) } - // Sync state with repository on resume (e.g. after returning from AdminDisableActivity) + // Sync other states with repository on resume (non-flow states) DisposableEffect(lifecycleOwner) { val observer = LifecycleEventObserver { _, event -> if (event == Lifecycle.Event.ON_RESUME) { autoUnlock = appLockRepository.isAutoUnlockEnabled() useMaxBrightness = appLockRepository.shouldUseMaxBrightness() - amoledModeEnabled = appLockRepository.isAmoledModeEnabled() - appThemeMode = appLockRepository.getAppThemeMode() useBiometricAuth = appLockRepository.isBiometricAuthEnabled() unlockTimeDuration = appLockRepository.getUnlockTimeDuration() antiUninstallEnabled = appLockRepository.isAntiUninstallEnabled() @@ -157,35 +158,6 @@ fun SettingsScreen( } } - if (showDialog) { - AlertDialog( - onDismissRequest = { showDialog = false }, - title = { Text(stringResource(R.string.settings_screen_support_development_dialog_title)) }, - text = { Text(stringResource(R.string.support_development_text)) }, - confirmButton = { - FilledTonalButton( - onClick = { - context.startActivity( - Intent( - Intent.ACTION_VIEW, - "https://pranavpurwar.github.io/donate.html".toUri() - ) - ) - showDialog = false - } - ) { - Text(stringResource(R.string.settings_screen_support_development_donate_button)) - } - }, - dismissButton = { - TextButton(onClick = { showDialog = false }) { - Text(stringResource(R.string.cancel_button)) - } - }, - containerColor = MaterialTheme.colorScheme.surface - ) - } - if (showUnlockTimeDialog) { UnlockTimeDurationDialog( currentDuration = unlockTimeDuration, @@ -259,323 +231,205 @@ fun SettingsScreen( ) } }, - scrollBehavior = scrollBehavior, - colors = TopAppBarDefaults.topAppBarColors( - containerColor = MaterialTheme.colorScheme.surface, - scrolledContainerColor = MaterialTheme.colorScheme.surface - ) + scrollBehavior = scrollBehavior ) - }, - containerColor = MaterialTheme.colorScheme.surface - ) { innerPadding -> + } + ) { padding -> LazyColumn( - modifier = Modifier.fillMaxSize(), - contentPadding = PaddingValues( - start = 16.dp, - end = 16.dp, - top = innerPadding.calculateTopPadding(), - bottom = innerPadding.calculateBottomPadding() + 24.dp - ), - verticalArrangement = Arrangement.spacedBy(8.dp) + modifier = Modifier + .fillMaxSize() + .padding(padding) ) { item { - val packageInfo = remember { - try { - context.packageManager.getPackageInfo(context.packageName, 0) - } catch (_: Exception) { - null - } - } - val versionName = packageInfo?.versionName ?: "Unknown" - Text( - text = stringResource(R.string.settings_screen_version_template, versionName), - style = MaterialTheme.typography.bodyMedium, - color = MaterialTheme.colorScheme.onSurfaceVariant, - modifier = Modifier.padding(start = 16.dp, top = 8.dp, bottom = 8.dp) - ) - } + SectionTitle(text = stringResource(R.string.settings_screen_security_title)) + SettingsCard(index = 0, listSize = 2) { + SwitchItem( + title = stringResource(R.string.settings_screen_auto_unlock_title), + summary = stringResource(R.string.settings_screen_auto_unlock_desc), + icon = Icons.Default.LockOpen, + checked = autoUnlock, + onCheckedChange = { + autoUnlock = it + appLockRepository.setAutoUnlockEnabled(it) + } + ) + } - item { - SectionTitle(text = stringResource(R.string.settings_screen_app_theme_title)) - } + SettingsCard(index = 1, listSize = 2) { + SwitchItem( + title = stringResource(R.string.settings_screen_biometric_auth_title), + summary = stringResource(R.string.settings_screen_biometric_auth_desc), + icon = Icons.Default.Fingerprint, + checked = useBiometricAuth, + enabled = isBiometricAvailable, + onCheckedChange = { + useBiometricAuth = it + appLockRepository.setBiometricAuthEnabled(it) + } + ) + } - item { - AppThemeModeCard( - selectedThemeMode = appThemeMode, - onThemeModeSelected = { selectedMode -> - appThemeMode = selectedMode - appLockRepository.setAppThemeMode(selectedMode) - } - ) - } + SectionTitle(text = stringResource(R.string.settings_screen_anti_uninstall_title)) + + SettingsCard(index = 0, listSize = 5) { + SwitchItem( + title = stringResource(R.string.settings_screen_anti_uninstall_title), + summary = stringResource(R.string.settings_screen_anti_uninstall_desc), + icon = Icons.Outlined.Security, + checked = antiUninstallEnabled, + onCheckedChange = { + antiUninstallEnabled = it + appLockRepository.setAntiUninstallEnabled(it) + } + ) + } - item { - SettingsGroup( - items = listOf( - ToggleSettingItem( - icon = Icons.Default.DarkMode, - title = stringResource(R.string.settings_screen_amoled_mode_title), - subtitle = stringResource(R.string.settings_screen_amoled_mode_desc), - checked = amoledModeEnabled, - enabled = true, - onCheckedChange = { isChecked -> - amoledModeEnabled = isChecked - appLockRepository.setAmoledModeEnabled(isChecked) + SettingsCard(index = 1, listSize = 5) { + SwitchItem( + title = stringResource(R.string.permission_warning_device_admin_title), + summary = stringResource(R.string.permission_warning_device_admin_desc), + icon = Icons.Default.AdminPanelSettings, + checked = antiUninstallAdminSettings, + enabled = antiUninstallEnabled, + onCheckedChange = { + if (it) { + val dpm = + context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager + val component = ComponentName(context, DeviceAdmin::class.java) + if (!dpm.isAdminActive(component)) { + showPermissionDialog = true + return@SwitchItem + } } - ) + antiUninstallAdminSettings = it + appLockRepository.setAntiUninstallAdminSettingsEnabled(it) + } ) - ) - } - - item { - SectionTitle(text = stringResource(R.string.settings_screen_lock_screen_customization_title)) - } + } - item { - SettingsGroup( - items = listOf( - ToggleSettingItem( - icon = BrightnessHigh, - title = stringResource(R.string.settings_screen_max_brightness_title), - subtitle = stringResource(R.string.settings_screen_max_brightness_desc), - checked = useMaxBrightness, - enabled = true, - onCheckedChange = { isChecked -> - useMaxBrightness = isChecked - appLockRepository.setUseMaxBrightness(isChecked) + SettingsCard(index = 2, listSize = 5) { + SwitchItem( + title = stringResource(R.string.permission_warning_usage_stats_title), + summary = stringResource(R.string.permission_warning_usage_stats_desc), + icon = Icons.Default.QueryStats, + checked = antiUninstallUsageStats, + enabled = antiUninstallEnabled, + onCheckedChange = { + if (it && !context.hasUsagePermission()) { + val intent = + Intent(android.provider.Settings.ACTION_USAGE_ACCESS_SETTINGS) + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + context.startActivity(intent) + return@SwitchItem } - ), - ToggleSettingItem( - icon = if (useBiometricAuth) Fingerprint else FingerprintOff, - title = stringResource(R.string.settings_screen_biometric_auth_title), - subtitle = if (isBiometricAvailable) - stringResource(R.string.settings_screen_biometric_auth_desc_available) - else - stringResource(R.string.settings_screen_biometric_auth_desc_unavailable), - checked = useBiometricAuth && isBiometricAvailable, - enabled = isBiometricAvailable, - onCheckedChange = { isChecked -> - useBiometricAuth = isChecked - appLockRepository.setBiometricAuthEnabled(isChecked) - } - ), - ToggleSettingItem( - icon = Icons.Default.Vibration, - title = stringResource(R.string.settings_screen_haptic_feedback_title), - subtitle = stringResource(R.string.settings_screen_haptic_feedback_desc), - checked = disableHapticFeedback, - enabled = true, - onCheckedChange = { isChecked -> - disableHapticFeedback = isChecked - appLockRepository.setDisableHaptics(isChecked) - } - ), - ToggleSettingItem( - icon = Icons.Default.ShieldMoon, - title = stringResource(R.string.settings_screen_auto_unlock_title), - subtitle = stringResource(R.string.settings_screen_auto_unlock_desc), - checked = autoUnlock, - enabled = true, - onCheckedChange = { isChecked -> - autoUnlock = isChecked - appLockRepository.setAutoUnlockEnabled(isChecked) + antiUninstallUsageStats = it + appLockRepository.setAntiUninstallUsageStatsEnabled(it) + } + ) + } + + SettingsCard(index = 3, listSize = 5) { + SwitchItem( + title = stringResource(R.string.permission_warning_accessibility_title), + summary = stringResource(R.string.permission_warning_accessibility_desc), + icon = Icons.Default.Accessibility, + checked = antiUninstallAccessibility, + enabled = antiUninstallEnabled, + onCheckedChange = { + if (it && !context.isAccessibilityServiceEnabled()) { + showAccessibilityDialog = true + return@SwitchItem } - ) + antiUninstallAccessibility = it + appLockRepository.setAntiUninstallAccessibilityEnabled(it) + } ) - ) - } + } - item { - SectionTitle(text = stringResource(R.string.settings_screen_security_title)) - } + SettingsCard(index = 4, listSize = 5) { + SwitchItem( + title = stringResource(R.string.permission_warning_overlay_title), + summary = stringResource(R.string.permission_warning_overlay_desc), + icon = Icons.Default.Layers, + checked = antiUninstallOverlay, + enabled = antiUninstallEnabled, + onCheckedChange = { + antiUninstallOverlay = it + appLockRepository.setAntiUninstallOverlayEnabled(it) + } + ) + } - item { - SettingsGroup( - items = listOf( - ActionSettingItem( - icon = Icons.Default.Lock, - title = stringResource(R.string.settings_screen_change_pin_title), - subtitle = stringResource(R.string.settings_screen_change_pin_desc), - onClick = { navController.navigate(Screen.ChangePassword.route) } - ), - ActionSettingItem( - icon = Timer, - title = stringResource(R.string.settings_screen_unlock_duration_title), - subtitle = if (unlockTimeDuration > 0) { - if (unlockTimeDuration > 10_000) "Until screen off" - else stringResource( - R.string.settings_screen_unlock_duration_summary_minutes, - unlockTimeDuration - ) - } else stringResource(R.string.settings_screen_unlock_duration_summary_immediate), - onClick = { showUnlockTimeDialog = true } - ), - ToggleSettingItem( - icon = Icons.Default.Lock, - title = stringResource(R.string.settings_screen_anti_uninstall_title), - subtitle = stringResource(R.string.settings_screen_anti_uninstall_desc), - checked = antiUninstallEnabled, - enabled = true, - onCheckedChange = { isChecked -> - if (isChecked) { - val dpm = - context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager - val component = ComponentName(context, DeviceAdmin::class.java) - val hasDeviceAdmin = dpm.isAdminActive(component) - val hasAccessibility = context.isAccessibilityServiceEnabled() + SectionTitle(text = stringResource(R.string.settings_screen_lock_screen_customization_title)) - when { - !hasAccessibility -> { - showAccessibilityDialog = true - } - !hasDeviceAdmin -> { - showDeviceAdminDialog = true - } - else -> { - antiUninstallEnabled = true - appLockRepository.setAntiUninstallEnabled(true) - } - } - } else { - context.startActivity( - Intent(context, AdminDisableActivity::class.java) - ) - } - } - ) + SettingsCard(index = 0, listSize = 4) { + SwitchItem( + title = stringResource(R.string.settings_screen_max_brightness_title), + summary = stringResource(R.string.settings_screen_max_brightness_desc), + icon = Icons.Default.BrightnessHigh, + checked = useMaxBrightness, + onCheckedChange = { + useMaxBrightness = it + appLockRepository.setUseMaxBrightness(it) + } ) - ) - } - - if (antiUninstallEnabled) { - item { - SectionTitle(text = "Anti-Uninstall Settings") } - item { - SettingsGroup( - items = listOf( - ToggleSettingItem( - icon = Icons.Default.AdminPanelSettings, - title = "Protect Device Admin", - subtitle = "Prevent access to device admin settings", - checked = antiUninstallAdminSettings, - enabled = antiUninstallEnabled, - onCheckedChange = { isChecked -> - antiUninstallAdminSettings = isChecked - appLockRepository.setAntiUninstallAdminSettingsEnabled(isChecked) - } - ), - ToggleSettingItem( - icon = Icons.Default.QueryStats, - title = "Protect Usage Stats", - subtitle = "Prevent access to usage stats settings", - checked = antiUninstallUsageStats, - enabled = antiUninstallEnabled, - onCheckedChange = { isChecked -> - antiUninstallUsageStats = isChecked - appLockRepository.setAntiUninstallUsageStatsEnabled(isChecked) - } - ), - ToggleSettingItem( - icon = Accessibility, - title = "Protect Accessibility", - subtitle = "Prevent access to accessibility settings", - checked = antiUninstallAccessibility, - enabled = antiUninstallEnabled, - onCheckedChange = { isChecked -> - antiUninstallAccessibility = isChecked - appLockRepository.setAntiUninstallAccessibilityEnabled(isChecked) - } - ), - ToggleSettingItem( - icon = Display, - title = "Protect Overlay Settings", - subtitle = "Prevent access to appear on top settings", - checked = antiUninstallOverlay, - enabled = antiUninstallEnabled, - onCheckedChange = { isChecked -> - antiUninstallOverlay = isChecked - appLockRepository.setAntiUninstallOverlayEnabled(isChecked) - } - ) - ) + + SettingsCard(index = 1, listSize = 4) { + SwitchItem( + title = stringResource(R.string.settings_screen_amoled_mode_title), + summary = stringResource(R.string.settings_screen_amoled_mode_desc), + icon = Icons.Default.DarkMode, + checked = amoledModeEnabled, + onCheckedChange = { + appLockRepository.setAmoledModeEnabled(it) + } ) } - } - item { - SectionTitle(text = stringResource(R.string.settings_screen_advanced_title)) - } + SettingsCard(index = 2, listSize = 4) { + SwitchItem( + title = stringResource(R.string.settings_screen_haptic_feedback_title), + summary = stringResource(R.string.settings_screen_haptic_feedback_desc), + icon = Icons.Default.Vibration, + checked = disableHapticFeedback, + onCheckedChange = { + disableHapticFeedback = it + appLockRepository.setDisableHaptics(it) + } + ) + } - item { - SettingsGroup( - items = listOf( - ActionSettingItem( - icon = Icons.Outlined.Security, - title = stringResource(R.string.settings_Screen_export_audit), - subtitle = stringResource(R.string.settings_screen_export_audit_desc), - onClick = { - val uri = LogUtils.exportAuditLogs() - if (uri != null) { - val shareIntent = Intent(Intent.ACTION_SEND).apply { - type = "text/plain" - putExtra(Intent.EXTRA_STREAM, uri) - addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) - } - context.startActivity( - Intent.createChooser(shareIntent, "Share audit logs") - ) - } else { - Toast.makeText( - context, - exportLogsError, - Toast.LENGTH_SHORT - ).show() - } - } - ), - ActionSettingItem( - icon = Icons.Outlined.BugReport, - title = stringResource(R.string.settings_screen_export_logs_title), - subtitle = stringResource(R.string.settings_screen_export_logs_desc), - onClick = { - val uri = LogUtils.exportLogs() - if (uri != null) { - val shareIntent = Intent(Intent.ACTION_SEND).apply { - type = "text/plain" - putExtra(Intent.EXTRA_STREAM, uri) - addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) - } - context.startActivity( - Intent.createChooser(shareIntent, "Share logs") - ) - } else { - Toast.makeText( - context, - exportLogsError, - Toast.LENGTH_SHORT - ).show() - } - } - ), - ToggleSettingItem( - icon = Icons.Default.Troubleshoot, - title = "Logging", - subtitle = "Enable debug logging for troubleshooting", - checked = loggingEnabled, - enabled = true, - onCheckedChange = { isChecked -> - loggingEnabled = isChecked - appLockRepository.setLoggingEnabled(isChecked) - LogUtils.setLoggingEnabled(isChecked) - } - ) + SettingsCard(index = 3, listSize = 4) { + ClickableItem( + title = stringResource(R.string.settings_screen_unlock_duration_title), + summary = when (unlockTimeDuration) { + 0 -> stringResource(R.string.settings_screen_unlock_duration_dialog_option_immediate) + 1 -> stringResource( + R.string.settings_screen_unlock_duration_dialog_option_minute, + unlockTimeDuration + ) + 60 -> stringResource(R.string.settings_screen_unlock_duration_dialog_option_hour) + Integer.MAX_VALUE -> "Until Screen Off" + else -> stringResource( + R.string.settings_screen_unlock_duration_summary_minutes, + unlockTimeDuration + ) + }, + icon = Icons.Default.Timer, + onClick = { showUnlockTimeDialog = true } ) + } + + SectionTitle(text = stringResource(R.string.settings_screen_app_theme_title)) + AppThemeModeCard( + selectedThemeMode = appThemeMode, + onThemeModeSelected = { + appLockRepository.setAppThemeMode(it) + } ) - } - item { BackendSelectionCard( appLockRepository = appLockRepository, context = context, @@ -583,10 +437,83 @@ fun SettingsScreen( shizukuNotRunningMsg = shizukuNotRunningMsg, usagePermissionMsg = usagePermissionMsg ) - } - item { - LinksSection() + SectionTitle(text = "App Details") + + SettingsCard(index = 0, listSize = 2) { + ClickableItem( + title = "App Version", + summary = try { + context.packageManager.getPackageInfo( + context.packageName, + 0 + ).versionName ?: "Unknown" + } catch (e: Exception) { + "Unknown" + }, + icon = Icons.Default.Info, + onClick = {} + ) + } + + SettingsCard(index = 1, listSize = 2) { + SwitchItem( + title = stringResource(R.string.settings_screen_logging_title), + summary = stringResource(R.string.settings_screen_logging_summary), + icon = Icons.Outlined.BugReport, + checked = loggingEnabled, + onCheckedChange = { + loggingEnabled = it + appLockRepository.setLoggingEnabled(it) + } + ) + } + + SectionTitle(text = stringResource(R.string.settings_screen_links_section)) + + SettingsCard(index = 0, listSize = 3) { + LinkItem( + title = stringResource(R.string.settings_screen_developer_email_ap), + icon = Icons.Default.Email, + onClick = { + val intent = Intent( + Intent.ACTION_SENDTO, + "mailto:ap0803apap@gmail.com".toUri() + ) + context.startActivity(intent) + } + ) + } + + SettingsCard(index = 1, listSize = 3) { + LinkItem( + title = stringResource(R.string.settings_screen_source_code), + icon = Icons.Default.Code, + onClick = { + val intent = Intent( + Intent.ACTION_VIEW, + "https://github.com/ap0803apap-sketch".toUri() + ) + context.startActivity(intent) + } + ) + } + + SettingsCard(index = 2, listSize = 3) { + LinkItem( + title = stringResource(R.string.settings_screen_report_issue), + icon = Icons.Default.BugReport, + onClick = { + val intent = Intent( + Intent.ACTION_VIEW, + "https://github.com/ap0803apap-sketch".toUri() + ) + context.startActivity(intent) + } + ) + } + + Spacer(modifier = Modifier.height(24.dp)) } } } @@ -596,80 +523,12 @@ fun SettingsScreen( fun SectionTitle(text: String) { Text( text = text, - style = MaterialTheme.typography.titleSmall, - fontWeight = FontWeight.SemiBold, + style = MaterialTheme.typography.labelLarge, color = MaterialTheme.colorScheme.primary, - modifier = Modifier.padding(start = 16.dp, bottom = 4.dp, top = 4.dp) + modifier = Modifier.padding(horizontal = 24.dp, vertical = 16.dp) ) } -sealed class SettingItemType { - data class Toggle( - val icon: ImageVector, - val title: String, - val subtitle: String, - val checked: Boolean, - val enabled: Boolean, - val onCheckedChange: (Boolean) -> Unit - ): SettingItemType() - - data class Action( - val icon: ImageVector, - val title: String, - val subtitle: String, - val onClick: () -> Unit - ): SettingItemType() -} - -data class ToggleSettingItem( - val icon: ImageVector, - val title: String, - val subtitle: String, - val checked: Boolean, - val enabled: Boolean, - val onCheckedChange: (Boolean) -> Unit -) - -data class ActionSettingItem( - val icon: ImageVector, - val title: String, - val subtitle: String, - val onClick: () -> Unit -) - -@Composable -fun SettingsGroup( - items: List -) { - Column { - items.forEachIndexed { index, item -> - SettingsCard(index = index, listSize = items.size) { - when (item) { - is ToggleSettingItem -> { - ToggleSettingRow( - icon = item.icon, - title = item.title, - subtitle = item.subtitle, - checked = item.checked, - enabled = item.enabled, - onCheckedChange = item.onCheckedChange - ) - } - - is ActionSettingItem -> { - ActionSettingRow( - icon = item.icon, - title = item.title, - subtitle = item.subtitle, - onClick = item.onClick - ) - } - } - } - } - } -} - @Composable fun SettingsCard( index: Int, @@ -678,98 +537,67 @@ fun SettingsCard( ) { val shape = when { listSize == 1 -> RoundedCornerShape(24.dp) - index == 0 -> RoundedCornerShape( - topStart = 24.dp, - topEnd = 24.dp, - bottomStart = 6.dp, - bottomEnd = 6.dp - ) - - index == listSize - 1 -> RoundedCornerShape( - topStart = 6.dp, - topEnd = 6.dp, - bottomStart = 24.dp, - bottomEnd = 24.dp - ) - - else -> RoundedCornerShape(6.dp) + index == 0 -> RoundedCornerShape(topStart = 24.dp, topEnd = 24.dp, bottomStart = 4.dp, bottomEnd = 4.dp) + index == listSize - 1 -> RoundedCornerShape(topStart = 4.dp, topEnd = 4.dp, bottomStart = 24.dp, bottomEnd = 24.dp) + else -> RoundedCornerShape(4.dp) } - AnimatedVisibility( - visible = true, - enter = fadeIn() + scaleIn( - initialScale = 0.95f, - animationSpec = spring(dampingRatio = Spring.DampingRatioMediumBouncy) - ), - exit = fadeOut() + shrinkVertically() + Card( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 2.dp), + shape = shape, + colors = CardDefaults.cardColors( + containerColor = MaterialTheme.colorScheme.surfaceContainerHigh + ) ) { - Card( - modifier = Modifier - .fillMaxWidth() - .padding(vertical = 1.dp), - colors = CardDefaults.cardColors( - containerColor = MaterialTheme.colorScheme.surfaceContainer - ), - shape = shape - ) { - content() - } + content() } } @Composable -fun ToggleSettingRow( - icon: ImageVector, +fun SwitchItem( title: String, - subtitle: String, + summary: String, + icon: ImageVector, checked: Boolean, - enabled: Boolean, + enabled: Boolean = true, onCheckedChange: (Boolean) -> Unit ) { ListItem( - modifier = Modifier - .toggleable( - value = checked, - enabled = enabled, - role = Role.Switch, - onValueChange = { onCheckedChange(it) } - ) - .padding(vertical = 2.dp, horizontal = 4.dp), + modifier = Modifier.toggleable( + value = checked, + enabled = enabled, + role = Role.Switch, + onValueChange = onCheckedChange + ), headlineContent = { Text( text = title, - style = MaterialTheme.typography.titleMedium + style = MaterialTheme.typography.titleMedium, + color = if (enabled) MaterialTheme.colorScheme.onSurface else MaterialTheme.colorScheme.onSurface.copy(alpha = 0.38f) ) }, supportingContent = { Text( - text = subtitle, - style = MaterialTheme.typography.bodySmall + text = summary, + style = MaterialTheme.typography.bodySmall, + color = if (enabled) MaterialTheme.colorScheme.onSurfaceVariant else MaterialTheme.colorScheme.onSurfaceVariant.copy(alpha = 0.38f) ) }, leadingContent = { - Box( - modifier = Modifier.size(24.dp), - contentAlignment = Alignment.Center - ) { - Icon( - imageVector = icon, - contentDescription = null, - modifier = Modifier.size(24.dp), - tint = MaterialTheme.colorScheme.secondary - ) - } + Icon( + imageVector = icon, + contentDescription = null, + tint = if (enabled) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.primary.copy(alpha = 0.38f) + ) }, trailingContent = { - Box( - contentAlignment = Alignment.Center - ) { - Switch( - checked = checked, - onCheckedChange = null, - enabled = enabled - ) - } + Switch( + checked = checked, + onCheckedChange = null, + enabled = enabled + ) }, colors = ListItemDefaults.colors( containerColor = Color.Transparent @@ -778,16 +606,14 @@ fun ToggleSettingRow( } @Composable -fun ActionSettingRow( - icon: ImageVector, +fun ClickableItem( title: String, - subtitle: String, - onClick: (() -> Unit)? + summary: String, + icon: ImageVector, + onClick: () -> Unit ) { ListItem( - modifier = Modifier - .then(if (onClick != null) Modifier.clickable(onClick = onClick) else Modifier) - .padding(vertical = 2.dp, horizontal = 4.dp), + modifier = Modifier.clickable(onClick = onClick), headlineContent = { Text( text = title, @@ -796,35 +622,58 @@ fun ActionSettingRow( }, supportingContent = { Text( - text = subtitle, + text = summary, style = MaterialTheme.typography.bodySmall ) }, leadingContent = { - Box( - modifier = Modifier.size(24.dp), - contentAlignment = Alignment.Center - ) { - Icon( - imageVector = icon, - contentDescription = null, - modifier = Modifier.size(24.dp), - tint = MaterialTheme.colorScheme.secondary - ) - } + Icon( + imageVector = icon, + contentDescription = null, + tint = MaterialTheme.colorScheme.primary + ) + }, + trailingContent = { + Icon( + imageVector = Icons.AutoMirrored.Rounded.KeyboardArrowRight, + contentDescription = null, + tint = MaterialTheme.colorScheme.onSurfaceVariant + ) + }, + colors = ListItemDefaults.colors( + containerColor = Color.Transparent + ) + ) +} + +@Composable +fun LinkItem( + title: String, + icon: ImageVector, + onClick: () -> Unit +) { + ListItem( + modifier = Modifier.clickable(onClick = onClick), + headlineContent = { + Text( + text = title, + style = MaterialTheme.typography.titleMedium + ) + }, + leadingContent = { + Icon( + imageVector = icon, + contentDescription = null, + tint = MaterialTheme.colorScheme.primary + ) + }, + trailingContent = { + Icon( + imageVector = Icons.AutoMirrored.Rounded.KeyboardArrowRight, + contentDescription = null, + tint = MaterialTheme.colorScheme.onSurfaceVariant + ) }, - trailingContent = if (onClick != null) { - { - Box( - contentAlignment = Alignment.Center - ) { - Icon( - imageVector = Icons.AutoMirrored.Rounded.KeyboardArrowRight, - contentDescription = null - ) - } - } - } else null, colors = ListItemDefaults.colors( containerColor = Color.Transparent ) @@ -837,30 +686,33 @@ fun UnlockTimeDurationDialog( onDismiss: () -> Unit, onConfirm: (Int) -> Unit ) { - val durations = listOf(0, 1, 5, 15, 30, 60, Integer.MAX_VALUE) + val durations = listOf(0, 1, 5, 10, 30, 60, Integer.MAX_VALUE) var selectedDuration by remember { mutableIntStateOf(currentDuration) } - if (!durations.contains(selectedDuration)) { - selectedDuration = durations.minByOrNull { abs(it - currentDuration) } ?: 0 - } - AlertDialog( onDismissRequest = onDismiss, title = { Text(stringResource(R.string.settings_screen_unlock_duration_dialog_title)) }, text = { - Column { - Text(stringResource(R.string.settings_screen_unlock_duration_dialog_description_new)) + Column( + modifier = Modifier + .fillMaxWidth() + .selectableGroup() + ) { durations.forEach { duration -> Row( modifier = Modifier .fillMaxWidth() - .clickable { selectedDuration = duration } - .padding(vertical = 8.dp), + .selectable( + selected = selectedDuration == duration, + onClick = { selectedDuration = duration }, + role = Role.RadioButton + ) + .padding(vertical = 12.dp), verticalAlignment = Alignment.CenterVertically ) { RadioButton( selected = selectedDuration == duration, - onClick = { selectedDuration = duration } + onClick = null ) Text( text = when (duration) { @@ -987,7 +839,7 @@ fun BackendSelectionItem( ) { ListItem( modifier = Modifier - .clickable { onClick() } + .clickable { onClick?.invoke() } .padding(vertical = 2.dp, horizontal = 4.dp), headlineContent = { Row( @@ -1157,13 +1009,12 @@ fun DeviceAdminDialog( title = { Text(stringResource(R.string.settings_screen_device_admin_dialog_title)) }, text = { Column { - Text(stringResource(R.string.settings_screen_device_admin_dialog_text_1)) - Text(stringResource(R.string.settings_screen_device_admin_dialog_text_2)) + Text(stringResource(R.string.settings_screen_device_admin_dialog_text)) } }, confirmButton = { TextButton(onClick = onConfirm) { - Text(stringResource(R.string.enable_button)) + Text(stringResource(R.string.grant_permission_button)) } }, dismissButton = { @@ -1184,14 +1035,12 @@ fun AccessibilityDialog( title = { Text(stringResource(R.string.settings_screen_accessibility_dialog_title)) }, text = { Column { - Text(stringResource(R.string.settings_screen_accessibility_dialog_text_1)) - Text(stringResource(R.string.settings_screen_accessibility_dialog_text_2)) - Text(stringResource(R.string.settings_screen_accessibility_dialog_text_3)) + Text(stringResource(R.string.settings_screen_accessibility_dialog_text)) } }, confirmButton = { TextButton(onClick = onConfirm) { - Text(stringResource(R.string.enable_button)) + Text(stringResource(R.string.grant_permission_button)) } }, dismissButton = { @@ -1201,111 +1050,3 @@ fun AccessibilityDialog( } ) } - -@Composable -fun LinksSection() { - val context = LocalContext.current - - Column { - SectionTitle(text = stringResource(R.string.settings_screen_developer_info_title)) - - Column { - SettingsCard(index = 0, listSize = 4) { - LinkItem( - title = stringResource(R.string.settings_screen_developer_name_ap), - icon = Icons.Default.Person, - onClick = null - ) - } - - SettingsCard(index = 1, listSize = 4) { - LinkItem( - title = stringResource(R.string.settings_screen_developer_email_ap), - icon = Icons.Default.Email, - onClick = { - val intent = Intent( - Intent.ACTION_SENDTO, - "mailto:ap0803apap@gmail.com".toUri() - ) - context.startActivity(intent) - } - ) - } - - SettingsCard(index = 2, listSize = 4) { - LinkItem( - title = stringResource(R.string.settings_screen_source_code), - icon = Icons.Outlined.Code, - onClick = { - val intent = Intent( - Intent.ACTION_VIEW, - "https://github.com/ap0803apap-sketch".toUri() - ) - context.startActivity(intent) - } - ) - } - - SettingsCard(index = 3, listSize = 4) { - LinkItem( - title = stringResource(R.string.settings_screen_report_issue), - icon = Icons.Outlined.BugReport, - onClick = { - val intent = Intent( - Intent.ACTION_VIEW, - "https://github.com/ap0803apap-sketch".toUri() - ) - context.startActivity(intent) - } - ) - } - } - } -} - -@Composable -fun LinkItem( - title: String, - icon: ImageVector, - onClick: (() -> Unit)? -) { - ListItem( - modifier = Modifier - .then(if (onClick != null) Modifier.clickable(onClick = onClick) else Modifier) - .padding(vertical = 2.dp, horizontal = 4.dp), - headlineContent = { - Text( - text = title, - style = MaterialTheme.typography.titleMedium - ) - }, - leadingContent = { - Box( - modifier = Modifier.size(24.dp), - contentAlignment = Alignment.Center - ) { - Icon( - imageVector = icon, - contentDescription = null, - modifier = Modifier.size(24.dp), - tint = MaterialTheme.colorScheme.secondary - ) - } - }, - trailingContent = if (onClick != null) { - { - Box( - contentAlignment = Alignment.Center - ) { - Icon( - imageVector = Icons.AutoMirrored.Rounded.KeyboardArrowRight, - contentDescription = null - ) - } - } - } else null, - colors = ListItemDefaults.colors( - containerColor = Color.Transparent - ) - ) -} diff --git a/app/src/main/java/dev/pranav/applock/services/AppLockAccessibilityService.kt b/app/src/main/java/dev/pranav/applock/services/AppLockAccessibilityService.kt index b895f48..1264b9d 100644 --- a/app/src/main/java/dev/pranav/applock/services/AppLockAccessibilityService.kt +++ b/app/src/main/java/dev/pranav/applock/services/AppLockAccessibilityService.kt @@ -39,6 +39,7 @@ import rikka.shizuku.Shizuku class AppLockAccessibilityService : AccessibilityService() { private val appLockRepository: AppLockRepository by lazy { applicationContext.appLockRepository() } private val keyboardPackages: List by lazy { getKeyboardPackageNames() } + private var launcherPackages: Set = emptySet() private var recentsOpen = false private var lastForegroundPackage = "" @@ -82,6 +83,7 @@ class AppLockAccessibilityService : AccessibilityService() { AppLockManager.isLockScreenShown.set(false) startPrimaryBackendService() startForegroundService() + updateLauncherPackages() val filter = android.content.IntentFilter().apply { addAction(Intent.ACTION_SCREEN_OFF) @@ -103,7 +105,6 @@ class AppLockAccessibilityService : AccessibilityService() { try { serviceInfo = serviceInfo.apply { eventTypes = AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED or - AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED or AccessibilityEvent.TYPE_WINDOWS_CHANGED feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC packageNames = null @@ -113,18 +114,30 @@ class AppLockAccessibilityService : AccessibilityService() { AppLockManager.resetRestartAttempts(TAG) appLockRepository.setActiveBackend(BackendImplementation.ACCESSIBILITY) startForegroundService() + updateLauncherPackages() } catch (e: Exception) { logError("Error in onServiceConnected", e) } } + private fun updateLauncherPackages() { + try { + val intent = Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME) + launcherPackages = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY) + .map { it.activityInfo.packageName } + .toSet() + Log.d(TAG, "Launcher packages updated: $launcherPackages") + } catch (e: Exception) { + logError("Error updating launcher packages", e) + } + } + override fun onAccessibilityEvent(event: AccessibilityEvent) { try { // Block Recents button if lock screen is active if (AppLockManager.isLockScreenShown.get()) { if (isRecentsEvent(event)) { LogUtils.d(TAG, "Blocking Recents access while lock screen is active. Triggering BACK action to stay on overlay.") - // Performing BACK when recents panel is opening will dismiss it, making the button feel "dead". performGlobalAction(GLOBAL_ACTION_BACK) return } @@ -141,7 +154,6 @@ class AppLockAccessibilityService : AccessibilityService() { val className = event.className?.toString() ?: "" val text = event.text.toString().lowercase() - // Don't block if it's our own app's event if (packageName == applicationContext.packageName) return false return className in AppLockConstants.KNOWN_RECENTS_CLASSES || @@ -159,36 +171,50 @@ class AppLockAccessibilityService : AccessibilityService() { return } + // Only react to major window state changes to avoid triggering on notifications or keyboards if (event.eventType == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) { - try { - handleWindowStateChanged(event) - } catch (e: Exception) { - logError("Error handling window state change", e) + val eventPackage = event.packageName?.toString() ?: return + + // 1. Get the current actual active package from the window manager if possible + val activePackageName = rootInActiveWindow?.packageName?.toString() ?: eventPackage + + // 2. Detect if we are on any Launcher/Home screen + if (launcherPackages.contains(eventPackage) || launcherPackages.contains(activePackageName)) { + val unlockedApp = AppLockManager.temporarilyUnlockedApp + if (unlockedApp.isNotEmpty()) { + // Record that we left this app to handle stray exit events via grace period + AppLockManager.setRecentlyLeftApp(unlockedApp) + AppLockManager.clearTemporarilyUnlockedApp() + } + recentsOpen = false + lastForegroundPackage = if (launcherPackages.contains(activePackageName)) activePackageName else eventPackage return } - } - if (recentsOpen) { - return - } + // 3. Handle Recents and focus transitions + handleWindowStateChanged(event) - val packageName = event.packageName?.toString() ?: return + if (recentsOpen) { + return + } - if (!isValidPackageForLocking(packageName)) { - return - } + // 4. Check if it's a valid app package for locking + if (!isValidPackageForLocking(eventPackage)) { + return + } - try { - processPackageLocking(packageName) - } catch (e: Exception) { - logError("Error processing package locking for $packageName", e) + // 5. Process locking logic + try { + processPackageLocking(eventPackage) + } catch (e: Exception) { + logError("Error processing package locking for $eventPackage", e) + } } } private fun handleAntiUninstallBlocking(event: AccessibilityEvent) { val packageName = event.packageName?.toString() ?: return - // Broadly check for settings or package installer val isSettings = packageName.contains("settings") || packageName.contains("packageinstaller") || packageName.contains("permissioncontroller") || @@ -199,17 +225,15 @@ class AppLockAccessibilityService : AccessibilityService() { val className = event.className?.toString() ?: "" val root = rootInActiveWindow - // 1. Protect AppLock's own App Info and Uninstallation - if (root != null && (containsTextRecursive(root, "dev.pranav.applock") || containsTextRecursive(root, "App Lock"))) { + if (root != null && (containsTextRecursive(root, "dev.pranav.applock") || containsTextRecursive(root, "APP Lock by AP"))) { if (className.contains("AppDetails") || className.contains("InstalledAppDetails") || className.contains("Uninstaller") || className.contains("PackageInstaller") || className.contains("Settings\$AppDetailsActivity")) { - blockAccess("App Lock protection is active.") + blockAccess("APP Lock by AP protection is active.") return } } - // Sub switch 1: Device Admin Settings if (appLockRepository.isAntiUninstallAdminSettingsEnabled()) { if (className in DEVICE_ADMIN_SETTINGS_CLASSES || className.contains("DeviceAdminSettings") || @@ -225,7 +249,6 @@ class AppLockAccessibilityService : AccessibilityService() { } } - // Sub switch 2: Usage Stats Screen if (appLockRepository.isAntiUninstallUsageStatsEnabled()) { if (className in USAGE_ACCESS_SETTINGS_CLASSES || className.contains("UsageAccessSettings") || @@ -241,7 +264,6 @@ class AppLockAccessibilityService : AccessibilityService() { } } - // Sub switch 3: Accessibility Settings if (appLockRepository.isAntiUninstallAccessibilityEnabled()) { if (className in ACCESSIBILITY_SETTINGS_CLASSES || className.contains("AccessibilitySettings") || @@ -252,15 +274,13 @@ class AppLockAccessibilityService : AccessibilityService() { val accessibilityKeywords = listOf("Accessibility", "Installed apps", "Downloaded apps", "Installed services", "Downloaded services") if (root != null && accessibilityKeywords.any { containsTextRecursive(root, it) }) { - // If we see "App Lock" in an accessibility-related screen, block it. - if (containsTextRecursive(root, "App Lock")) { - blockAccess("Accessibility settings for App Lock are protected.") + if (containsTextRecursive(root, "APP Lock by AP")) { + blockAccess("Accessibility settings for APP Lock by AP are protected.") return } } } - // Sub switch 4: Overlay (Appear on top) Settings if (appLockRepository.isAntiUninstallOverlayEnabled()) { if (className in OVERLAY_SETTINGS_CLASSES || className.contains("DrawOverlayDetails") || @@ -302,52 +322,25 @@ class AppLockAccessibilityService : AccessibilityService() { } private fun handleWindowStateChanged(event: AccessibilityEvent) { - val isRecentlyOpened = isRecentlyOpened(event) - val isHomeScreen = isHomeScreen(event) - - when { - isRecentlyOpened -> { - recentsOpen = true - } - - isHomeScreenTransition(event) && recentsOpen -> { - recentsOpen = false - clearTemporarilyUnlockedAppIfNeeded() - } - - isHomeScreen -> { - recentsOpen = false - clearTemporarilyUnlockedAppIfNeeded() - } - - isAppSwitchedFromRecents(event) -> { - recentsOpen = false - clearTemporarilyUnlockedAppIfNeeded(event.packageName?.toString()) - } + if (isRecentlyOpened(event)) { + recentsOpen = true + } else if (isAppSwitchedFromRecents(event)) { + recentsOpen = false + clearTemporarilyUnlockedAppIfNeeded(event.packageName?.toString()) } } @SuppressLint("InlinedApi") private fun isRecentlyOpened(event: AccessibilityEvent): Boolean { - return (event.packageName == getSystemDefaultLauncherPackageName() && + val packageName = event.packageName?.toString() ?: "" + return (launcherPackages.contains(packageName) && event.contentChangeTypes == AccessibilityEvent.CONTENT_CHANGE_TYPE_PANE_APPEARED) || (event.text.toString().lowercase().contains("recent apps")) } - private fun isHomeScreen(event: AccessibilityEvent): Boolean { - return event.packageName == getSystemDefaultLauncherPackageName() && - event.className == "com.android.launcher3.uioverrides.QuickstepLauncher" && - event.text.toString().lowercase().contains("home screen") - } - - @SuppressLint("InlinedApi") - private fun isHomeScreenTransition(event: AccessibilityEvent): Boolean { - return event.contentChangeTypes == AccessibilityEvent.CONTENT_CHANGE_TYPE_PANE_DISAPPEARED && - event.packageName == getSystemDefaultLauncherPackageName() - } - private fun isAppSwitchedFromRecents(event: AccessibilityEvent): Boolean { - return event.packageName != getSystemDefaultLauncherPackageName() && recentsOpen + val packageName = event.packageName?.toString() ?: "" + return !launcherPackages.contains(packageName) && recentsOpen } private fun clearTemporarilyUnlockedAppIfNeeded(newPackage: String? = null) { @@ -371,9 +364,11 @@ class AppLockAccessibilityService : AccessibilityService() { return false } - if (packageName == APP_PACKAGE_PREFIX || + // Don't lock our own app, keyboards, system apps, or launchers + if (packageName == applicationContext.packageName || packageName in keyboardPackages || - packageName in EXCLUDED_APPS + packageName in EXCLUDED_APPS || + launcherPackages.contains(packageName) ) { return false } @@ -383,9 +378,20 @@ class AppLockAccessibilityService : AccessibilityService() { private fun processPackageLocking(packageName: String) { val currentForegroundPackage = packageName + + // Attempt to restore state during transitions (handles stray "exit" events) + if (AppLockManager.checkAndRestoreRecentlyLeftApp(currentForegroundPackage)) { + LogUtils.d(TAG, "Restored state for $currentForegroundPackage via grace period") + } + val triggeringPackage = lastForegroundPackage lastForegroundPackage = currentForegroundPackage + // "One-way" Entry-based Detection: Only trigger if the package actually changed + if (currentForegroundPackage == triggeringPackage) { + return + } + if (triggeringPackage in appLockRepository.getTriggerExcludedApps()) { return } @@ -491,33 +497,6 @@ class AppLockAccessibilityService : AccessibilityService() { } } - fun getSystemDefaultLauncherPackageName(): String { - return try { - val packageManager = packageManager - val homeIntent = Intent(Intent.ACTION_MAIN).apply { - addCategory(Intent.CATEGORY_HOME) - } - - val resolveInfoList: List = packageManager.queryIntentActivities( - homeIntent, - PackageManager.MATCH_DEFAULT_ONLY - ) - - val systemLauncher = resolveInfoList.find { resolveInfo -> - val isSystemApp = (resolveInfo.activityInfo.applicationInfo.flags and - android.content.pm.ApplicationInfo.FLAG_SYSTEM) != 0 - val isOurApp = resolveInfo.activityInfo.packageName == packageName - - isSystemApp && !isOurApp - } - - systemLauncher?.activityInfo?.packageName ?: "" - } catch (e: Exception) { - logError("Error getting system default launcher package", e) - "" - } - } - private fun startPrimaryBackendService() { try { AppLockManager.stopAllOtherServices(this, AppLockAccessibilityService::class.java) @@ -578,7 +557,7 @@ class AppLockAccessibilityService : AccessibilityService() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { val serviceChannel = NotificationChannel( CHANNEL_ID, - "AppLock Accessibility Service", + "APP Lock by AP Accessibility Service", NotificationManager.IMPORTANCE_LOW ) notificationManager.createNotificationChannel(serviceChannel) @@ -587,7 +566,7 @@ class AppLockAccessibilityService : AccessibilityService() { private fun createNotification(): Notification { return NotificationCompat.Builder(this, CHANNEL_ID) - .setContentTitle("App Lock") + .setContentTitle("APP Lock by AP") .setContentText("Accessibility service is protecting your apps") .setSmallIcon(R.drawable.baseline_shield_24) .setPriority(NotificationCompat.PRIORITY_LOW) diff --git a/app/src/main/java/dev/pranav/applock/services/AppLockManager.kt b/app/src/main/java/dev/pranav/applock/services/AppLockManager.kt index dc6c816..e6715b2 100644 --- a/app/src/main/java/dev/pranav/applock/services/AppLockManager.kt +++ b/app/src/main/java/dev/pranav/applock/services/AppLockManager.kt @@ -30,7 +30,16 @@ object AppLockConstants { "com.google.android.googlequicksearchbox", "android", "com.google.android.gms", - "com.google.android.webview" + "com.google.android.webview", + "com.google.android.packageinstaller", + "com.android.packageinstaller", + "com.samsung.android.incallui", + "com.android.incallui", + "com.google.android.apps.nexuslauncher", + "com.sec.android.app.launcher", + "com.miui.home", + "com.huawei.android.launcher", + "com.oppo.launcher" ) val ACCESSIBILITY_SETTINGS_CLASSES = setOf( @@ -69,7 +78,7 @@ object AppLockConstants { "com.android.settings.UsageAccessSettings", // Samsung specific "com.samsung.android.settings.usageaccess.UsageAccessSettings", - "com.samsung.android.settings.Settings\$UsageAccessSettingsActivity" + "com.android.settings.Settings\$UsageAccessSettingsActivity" ) val OVERLAY_SETTINGS_CLASSES = setOf( @@ -114,7 +123,7 @@ object AppLockManager { // Grace period tracking private var recentlyLeftApp: String = "" private var recentlyLeftTime: Long = 0L - private const val GRACE_PERIOD_MS = 300L + private const val GRACE_PERIOD_MS = 2000L // Increased to 2 seconds for better navigation stability fun setRecentlyLeftApp(packageName: String) { recentlyLeftApp = packageName diff --git a/app/src/main/java/dev/pranav/applock/services/ExperimentalAppLockService.kt b/app/src/main/java/dev/pranav/applock/services/ExperimentalAppLockService.kt index e9410c4..9af87f3 100644 --- a/app/src/main/java/dev/pranav/applock/services/ExperimentalAppLockService.kt +++ b/app/src/main/java/dev/pranav/applock/services/ExperimentalAppLockService.kt @@ -269,7 +269,7 @@ class ExperimentalAppLockService : Service() { private fun createNotificationChannel() { val serviceChannel = NotificationChannel( CHANNEL_ID, - "AppLock Service (Usage Stats)", + "APP Lock by AP Service (Usage Stats)", NotificationManager.IMPORTANCE_DEFAULT ) notificationManager.createNotificationChannel(serviceChannel) @@ -277,7 +277,7 @@ class ExperimentalAppLockService : Service() { private fun createNotification(): Notification { return NotificationCompat.Builder(this, CHANNEL_ID) - .setContentTitle("App Lock") + .setContentTitle("APP Lock by AP") .setContentText("Protecting your apps") .setSmallIcon(R.drawable.baseline_shield_24) .setPriority(NotificationCompat.PRIORITY_MIN) diff --git a/app/src/main/java/dev/pranav/applock/services/ShizukuAppLockService.kt b/app/src/main/java/dev/pranav/applock/services/ShizukuAppLockService.kt index 7fd0534..a1cd292 100644 --- a/app/src/main/java/dev/pranav/applock/services/ShizukuAppLockService.kt +++ b/app/src/main/java/dev/pranav/applock/services/ShizukuAppLockService.kt @@ -142,7 +142,7 @@ class ShizukuAppLockService : Service() { private fun createNotificationChannel() { val serviceChannel = NotificationChannel( CHANNEL_ID, - "AppLock Service", + "APP Lock by AP Service", NotificationManager.IMPORTANCE_DEFAULT ) notificationManager.createNotificationChannel(serviceChannel) @@ -150,7 +150,7 @@ class ShizukuAppLockService : Service() { private fun createNotification(): Notification { return NotificationCompat.Builder(this, CHANNEL_ID) - .setContentTitle("AppLock") + .setContentTitle("APP Lock by AP") .setContentText("Protecting your apps with Shizuku") .setSmallIcon(R.drawable.baseline_shield_24) .setPriority(NotificationCompat.PRIORITY_MIN) diff --git a/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt b/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt index 3407eae..ba3f894 100644 --- a/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt +++ b/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt @@ -10,8 +10,10 @@ import androidx.compose.material3.Shapes import androidx.compose.material3.darkColorScheme import androidx.compose.material3.dynamicDarkColorScheme import androidx.compose.material3.dynamicLightColorScheme -import androidx.compose.material3.expressiveLightColorScheme +import androidx.compose.material3.lightColorScheme import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext @@ -19,26 +21,91 @@ import androidx.compose.ui.unit.dp import dev.pranav.applock.data.repository.AppLockRepository import dev.pranav.applock.data.repository.AppThemeMode +// Purple/Lavender Palette +private val PurplePrimary = Color(0xFF7B50A1) +private val PurpleOnPrimary = Color(0xFFFFFFFF) +private val PurplePrimaryContainer = Color(0xFFF3E8FF) +private val PurpleOnPrimaryContainer = Color(0xFF2D0050) +private val PurpleSecondary = Color(0xFF655A70) +private val PurpleOnSecondary = Color(0xFFFFFFFF) +private val PurpleSecondaryContainer = Color(0xFFEBDFF7) +private val PurpleOnSecondaryContainer = Color(0xFF20182B) +private val PurpleBackground = Color(0xFFFFF7FF) +private val PurpleOnBackground = Color(0xFF1D1B1F) +private val PurpleSurface = Color(0xFFFFF7FF) +private val PurpleOnSurface = Color(0xFF1D1B1F) + +private val PurplePrimaryDark = Color(0xFFE1B6FF) +private val PurpleOnPrimaryDark = Color(0xFF491E6F) +private val PurplePrimaryContainerDark = Color(0xFF613787) +private val PurpleOnPrimaryContainerDark = Color(0xFFF3E8FF) +private val PurpleSecondaryDark = Color(0xFFD0C1DA) +private val PurpleOnSecondaryDark = Color(0xFF362D3F) +private val PurpleSecondaryContainerDark = Color(0xFF4D4357) +private val PurpleOnSecondaryContainerDark = Color(0xFFEBDFF7) +private val PurpleBackgroundDark = Color(0xFF1D1B1F) +private val PurpleOnBackgroundDark = Color(0xFFE6E1E6) +private val PurpleSurfaceDark = Color(0xFF1D1B1F) +private val PurpleOnSurfaceDark = Color(0xFFE6E1E6) + +private val CustomLightColorScheme = lightColorScheme( + primary = PurplePrimary, + onPrimary = PurpleOnPrimary, + primaryContainer = PurplePrimaryContainer, + onPrimaryContainer = PurpleOnPrimaryContainer, + secondary = PurpleSecondary, + onSecondary = PurpleOnSecondary, + secondaryContainer = PurpleSecondaryContainer, + onSecondaryContainer = PurpleOnSecondaryContainer, + background = PurpleBackground, + onBackground = PurpleOnBackground, + surface = PurpleSurface, + onSurface = PurpleOnSurface, + surfaceContainer = Color(0xFFF7F2FA), + surfaceContainerLow = Color(0xFFF3EDF7), + surfaceContainerHigh = Color(0xFFECE6F0), +) + +private val CustomDarkColorScheme = darkColorScheme( + primary = PurplePrimaryDark, + onPrimary = PurpleOnPrimaryDark, + primaryContainer = PurplePrimaryContainerDark, + onPrimaryContainer = PurpleOnPrimaryContainerDark, + secondary = PurpleSecondaryDark, + onSecondary = PurpleOnSecondaryDark, + secondaryContainer = PurpleSecondaryContainerDark, + onSecondaryContainer = PurpleOnSecondaryContainerDark, + background = PurpleBackgroundDark, + onBackground = PurpleOnBackgroundDark, + surface = PurpleSurfaceDark, + onSurface = PurpleOnSurfaceDark, + surfaceContainer = Color(0xFF211F26), + surfaceContainerLow = Color(0xFF1D1B20), + surfaceContainerHigh = Color(0xFF2B2930), +) + @OptIn(ExperimentalMaterial3ExpressiveApi::class) @Composable fun AppLockTheme( darkTheme: Boolean = isSystemInDarkTheme(), // Dynamic color is available on Android 12+ - dynamicColor: Boolean = true, + dynamicColor: Boolean = false, // Set to false to prioritize our custom palette content: @Composable () -> Unit ) { val context = LocalContext.current val appLockRepository = remember(context) { AppLockRepository(context) } - val themeMode = appLockRepository.getAppThemeMode() + val themeMode by appLockRepository.appThemeModeFlow() + .collectAsState(initial = appLockRepository.getAppThemeMode()) + val amoledModeEnabled by appLockRepository.amoledModeFlow() + .collectAsState(initial = appLockRepository.isAmoledModeEnabled()) + val resolvedDarkTheme = when (themeMode) { AppThemeMode.SYSTEM -> darkTheme AppThemeMode.LIGHT -> false AppThemeMode.DARK -> true } - val amoledModeEnabled = appLockRepository.isAmoledModeEnabled() - val colorScheme = when { dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && !amoledModeEnabled -> { if (resolvedDarkTheme) { @@ -49,12 +116,21 @@ fun AppLockTheme( } resolvedDarkTheme -> { - darkColorScheme().run { - if (amoledModeEnabled) copy(primary = Color.Black) else this + if (amoledModeEnabled) { + CustomDarkColorScheme.copy( + background = Color.Black, + surface = Color.Black, + surfaceVariant = Color(0xFF121212), + surfaceContainer = Color(0xFF0F0F0F), + surfaceContainerLow = Color(0xFF080808), + surfaceContainerHigh = Color(0xFF252525), // Increased contrast for cards + ) + } else { + CustomDarkColorScheme } } - else -> expressiveLightColorScheme() + else -> CustomLightColorScheme } val shapes = Shapes(largeIncreased = RoundedCornerShape(36.0.dp)) diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index 3ba4e35..65291b9 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,5 +1,6 @@ - - - + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index 3ba4e35..65291b9 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -1,5 +1,6 @@ - - - + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..208569cf35efb65002e6d829b0b07b7d29416f1c GIT binary patch literal 4650 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 literal 6506 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 U!Ym|X2vkw_r>LX68inW4vX8~HA^-pY literal 4754 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 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..dff7d2815edb0e145e75563b557ea4a851cdde70 GIT binary patch literal 2502 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 Oo7?jBD(6N(e7Rv^;r0gr diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp index 8e420dbc0c52c4e14059e5758b6b84a3f73731b0..fd3ea8f215db962a3e64a0b83592ee0ccccfc5ee 100644 GIT binary patch literal 3830 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 literal 2816 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 S<`}=uWHaLhM%U7iuwDRkx-T>U diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..0e230dcad00612d024df69b1c04acc7bdd087848 GIT binary patch literal 7380 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 literal 9910 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 literal 6998 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 o{DqhQxiz5uh)1TQlw0I4BnC;$Ke literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp index f4ab3cafde77533ca006b281e800e872f0323a35..7d185a747c3cb5a3f56fed1a6caf7c897dcc9625 100644 GIT binary patch literal 37536 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 M|K0!J{r?{Y0k{`-ssI20 literal 17210 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 NRp@8`|Lp(&mT-sy?AQPR diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp index 0771c88f01e5c3d2fada9f5a6da70beebc1e72e1..3a71eec77a17e45db8bdaa77bf1e3cc76f9ab66f 100644 GIT binary patch literal 20284 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 literal 12264 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 bp0^a5i2Qtexg+x0=&m^NC2*YaRR;$E;#PbD literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp index 5eeec77ad113b167fe75f0124806a04eac066a3b..4fb732e44e84eba0cca8442bd22c0cc5654cc2c0 100644 GIT binary patch literal 62264 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%0AfHzutwwv1GkF(bzVJ-t8jBRvRhO&*D>}riZ;A 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 + + #FCFCFC + \ 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 698a9ce..41b576d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,31 +1,31 @@ - AppLock-alod0-by-AP + APP Lock by AP Prevents unauthorized people from uninstalling the app. - Allows App Lock to detect when protected apps are opened and show password verification. + Allows APP Lock by AP to detect when protected apps are opened and show password verification. Enter your password to disable admin permission. Incorrect PIN. Please try again. Password verified, you can now disable admin permission Choose App Detection Method - Select how you want AppLock to detect when protected apps are launched. + Select how you want APP Lock by AP to detect when protected apps are launched. Notification Permission - AppLock needs permission to show notifications to keep you informed and keep running in background properly. Tap \'Next\' to grant permission. + APP Lock by AP needs permission to show notifications to keep you informed and keep running in background properly. Tap \'Next\' to grant permission. Notification permission is automatically granted on your Android version. - Welcome to AppLock - Protect your apps and privacy with AppLock. We\'ll guide you through a quick setup. + Welcome to APP Lock by AP + Protect your apps and privacy with APP Lock by AP. We\'ll guide you through a quick setup. Secure Your Apps Keep your private apps protected with advanced locking mechanisms Display Over Other Apps - AppLock needs permission to display over other apps to show the lock screen. Tap \'Next\' and enable the permission. + APP Lock by AP needs permission to display over other apps to show the lock screen. Tap \'Next\' and enable the permission. - Notification permission is required for AppLock to function properly. + Notification permission is required for APP Lock by AP to function properly. Shizuku permission granted Shizuku permission is required for advanced features. - Please allow AppLock to display over other apps. + Please allow APP Lock by AP to display over other apps. Disable Battery Optimization - To ensure AppLock runs reliably in the background, please disable battery optimizations for the app. Tap \'Next\' to open settings. + To ensure APP Lock by AP runs reliably in the background, please disable battery optimizations for the app. Tap \'Next\' to open settings. Accessibility Service Standard method that works on most devices. Requires accessibility permission. May have slight delays on some OEMs. Usage Stats @@ -34,9 +34,9 @@ Advanced method with better performance and superior experience. Requires Shizuku app installed and enabled via ADB. You can change this later in settings -Accessibility service is required for AppLock to function properly. +Accessibility service is required for APP Lock by AP to function properly. -If you get the message \"Restricted Setting\", please manually go to Settings > Apps > App Lock > Upper Right menu, and press \"Allow restricted settings\". +If you get the message \"Restricted Setting\", please manually go to Settings > Apps > APP Lock by AP > Upper Right menu, and press \"Allow restricted settings\". Tap \'Next\' to enable it. @@ -44,7 +44,7 @@ Tap \'Next\' to enable it. This permission is required to detect when locked apps are launched. -If you get the message \"Restricted Setting\", please manually go to Settings > Apps > App Lock > Upper Right menu, and press \"Allow restricted settings\". +If you get the message \"Restricted Setting\", please manually go to Settings > Apps > APP Lock by AP > Upper Right menu, and press \"Allow restricted settings\". Tap \'Next\' to enable it. @@ -53,7 +53,7 @@ Shizuku provides advanced features like locking system apps and more. Make sure you have Shizuku installed and enabled via ADB. Tap \'Next\' to grant permission. Complete Privacy - Your data never leaves your device. AppLock protects your privacy at all times. + Your data never leaves your device. APP Lock by AP protects your privacy at all times. All permissions are required to proceed. Next Get Started @@ -98,7 +98,7 @@ Make sure you have Shizuku installed and enabled via ADB. Tap \'Next\' to grant Please grant the app permission to draw overlays in settings. This is required to allow app to show lock screen. Open Settings Please grant Shizuku permission manually - App Lock requires Device Admin permission to prevent uninstallation. It will not affect your device\'s functionality. + APP Lock by AP requires Device Admin permission to prevent uninstallation. It will not affect your device\'s functionality. Join the Community Join our discord community for updates and support. Join Discord @@ -117,16 +117,16 @@ Make sure you have Shizuku installed and enabled via ADB. Tap \'Next\' to grant Settings Back Support Development - Hi, I\'m Pranav, the developer of App Lock. I\'m a student developer passionate about creating useful apps. If you find it helpful, please consider supporting its development with a small donation. Any amount is greatly appreciated and helps me continue to improve the app and work on new features. Thank you for your support! + Hi, I\'m Pranav, the developer of APP Lock by AP. I\'m a student developer passionate about creating useful apps. If you find it helpful, please consider supporting its development with a small donation. Any amount is greatly appreciated and helps me continue to improve the app and work on new features. Thank you for your support! Donate Permission Required - To enable Anti-Uninstall, App Lock requires two permissions: Device Administrator and Accessibility Service. These are necessary to prevent unauthorized uninstallation and ensure robust protection. Would you like to proceed with granting these permissions? + To enable Anti-Uninstall, APP Lock by AP requires two permissions: Device Administrator and Accessibility Service. These are necessary to prevent unauthorized uninstallation and ensure robust protection. Would you like to proceed with granting these permissions? Proceed Device Administrator Permission - App Lock needs Device Administrator permission to prevent unauthorized uninstallation. Please grant this permission in the next screen. This will not affect your device\'s normal functionality. + APP Lock by AP needs Device Administrator permission to prevent unauthorized uninstallation. Please grant this permission in the next screen. This will not affect your device\'s normal functionality. Grant Permission Accessibility Service Permission - App Lock also needs Accessibility Service permission to monitor app uninstallation attempts and re-activate Device Administrator if disabled. This ensures the Anti-Uninstall feature remains effective. Please enable the Accessibility Service for App Lock in the settings. + APP Lock by AP also needs Accessibility Service permission to monitor app uninstallation attempts and re-activate Device Administrator if disabled. This ensures the Anti-Uninstall feature remains effective. Please enable the Accessibility Service for APP Lock by AP in the settings. Open Settings App Theme System @@ -163,11 +163,11 @@ Make sure you have Shizuku installed and enabled via ADB. Tap \'Next\' to grant Change PIN Update your current PIN Anti-Uninstall Protection - Prevent unauthorized uninstallation of App Lock + Prevent unauthorized uninstallation of APP Lock by AP Haptic Feedback Disable haptic feedback on key presses Backend Implementation - Select the method AppLock uses to detect foreground apps + Select the method APP Lock by AP uses to detect foreground apps Accessibility Service Standard method, may have slight delays on some OEMs. Usage Stats @@ -185,6 +185,10 @@ Make sure you have Shizuku installed and enabled via ADB. Tap \'Next\' to grant Support Development Help support the development of this app + App Logging + Enable internal logging for debugging purposes + Links & Social + Please allow our app to ignore battery optimizations. Could not find specific settings. Please remove app from battery restrictions. @@ -216,7 +220,7 @@ Make sure you have Shizuku installed and enabled via ADB. Tap \'Next\' to grant Enable Accessibility Service - App Lock needs accessibility permission to detect when protected apps are launched. + APP Lock by AP needs accessibility permission to detect when protected apps are launched. Please follow these steps: 1. Tap \'Open Settings\' below\n @@ -245,20 +249,20 @@ Make sure you have Shizuku installed and enabled via ADB. Tap \'Next\' to grant %1$d minute 1 hour To enable Anti-Uninstall - protection, App Lock needs two permissions: + protection, APP Lock by AP needs two permissions: 1. Device Administrator - Prevents uninstallation\n2. Accessibility Service - Monitors app usage\n\nThese permissions help protect the app from being removed without your knowledge. - App Lock needs Device Administrator + APP Lock by AP needs Device Administrator permission to prevent uninstallation. This permission allows the app to:\n• Prevent itself from being uninstalled\n• Protect your app lock settings\n\nIt will not affect your device\'s normal functionality. - App Lock needs Accessibility Service permission to monitor app usage. + APP Lock by AP needs Accessibility Service permission to monitor app usage. This permission allows the app to:\n• Detect when apps are opened\n• Show lock screen when needed\n• Provide seamless app @@ -296,7 +300,7 @@ Make sure you have Shizuku installed and enabled via ADB. Tap \'Next\' to grant Shizuku Permission Securely detects when protected apps are launched. Device Admin - Prevents AppLock from being uninstalled. + Prevents APP Lock by AP from being uninstalled. Required Join Community @@ -305,12 +309,12 @@ Make sure you have Shizuku installed and enabled via ADB. Tap \'Next\' to grant Maybe Later Donate - Keep AppLock free and ad-free forever + Keep APP Lock by AP free and ad-free forever Support Development - Hi, I’m Pranav. I’m a student developer building AppLock in my spare time to keep it private and ad-free for everyone. + Hi, I’m Pranav. I’m a student developer building APP Lock by AP in my spare time to keep it private and ad-free for everyone. Juggling this project with my studies is a challenge, but your support makes it possible. - If AppLock has helped you, please consider a small donation—any amount means the world to me and keeps this project alive. + If APP Lock by AP has helped you, please consider a small donation—any amount means the world to me and keeps this project alive. Thank you for believing in my work! diff --git a/settings.gradle.kts b/settings.gradle.kts index a456f82..1e9637d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -16,10 +16,11 @@ dependencyResolutionManagement { repositories { google() mavenCentral() + maven { url = uri("https://jitpack.io") } } } -rootProject.name = "App Lock" +rootProject.name = "APP Lock by AP" include(":app") include(":appintro") include(":hidden-api") From b25d335d6df84fa473b2bd80c808b9084d4c646e Mon Sep 17 00:00:00 2001 From: AP Date: Wed, 11 Mar 2026 00:16:11 +0530 Subject: [PATCH 7/9] **Core & UI** - **Intruder Selfie Feature:** Integrated a new security feature that captures a photo via the front camera after a configurable number of failed unlock attempts. - **New Intruder Screen:** Added a dedicated `IntruderSelfieScreen` to view, manage, and delete captured intruder photos with timestamps. - **Dynamic Theming:** Implemented support for Material You dynamic colors on Android 12+. - **AMOLED Mode Refinement:** Enhanced AMOLED dark mode consistency across the UI, ensuring true black backgrounds for surfaces, cards, and containers. - **UI Improvements:** Refactored the `MainScreen` and `SettingsScreen` with improved spacing, confirmation dialogs for unlocking apps, and better visual states for disabled items. **Security & Functionality** - **Lock Screen Enhancements:** Updated the PIN and Pattern overlay screens with improved keypad layouts, larger biometric icons, and better error handling for system navigation events (Home/Recents). - **Log Management:** Added a utility to export application logs to the device's Downloads folder for easier debugging. - **Navigation Updates:** Added a "Change Lock" option in settings to allow users to update their PIN or Pattern directly. **Technical Improvements** - **State Management:** Optimized `PreferencesRepository` by replacing `callbackFlow` observers with static `MutableStateFlow` instances to ensure consistent state across the application. - **Camera Integration:** Implemented `IntruderSelfieManager` using the Camera2 API for background "silent" photo capture. - **Project Configuration:** Updated `versionCode` to 22303, `versionName` to 3.0.0.00, and upgraded Gradle distribution to 9.3.1. - **Permissions:** Added `CAMERA` permission and hardware feature requirements to the Manifest. --- app/build.gradle.kts | 4 +- app/src/main/AndroidManifest.xml | 4 + .../applock/core/navigation/AppNavigator.kt | 34 ++- .../pranav/applock/core/navigation/Screen.kt | 1 + .../core/utils/IntruderSelfieManager.kt | 113 ++++++++ .../dev/pranav/applock/core/utils/LogUtils.kt | 55 ++++ .../data/repository/AppLockRepository.kt | 13 +- .../data/repository/PreferencesRepository.kt | 78 ++++-- .../features/admin/AdminDisableActivity.kt | 2 +- .../applock/features/applist/ui/MainScreen.kt | 247 ++++++++++-------- .../intruderselfie/ui/IntruderSelfieScreen.kt | 163 ++++++++++++ .../lockscreen/ui/PasswordOverlayScreen.kt | 140 ++++++---- .../lockscreen/ui/PatternLockScreen.kt | 66 +++-- .../features/settings/ui/SettingsScreen.kt | 220 +++++++++++++++- .../java/dev/pranav/applock/ui/theme/Theme.kt | 39 ++- gradle/libs.versions.toml | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 17 files changed, 936 insertions(+), 247 deletions(-) create mode 100644 app/src/main/java/dev/pranav/applock/core/utils/IntruderSelfieManager.kt create mode 100644 app/src/main/java/dev/pranav/applock/features/intruderselfie/ui/IntruderSelfieScreen.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a189cdc..99aef48 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -18,8 +18,8 @@ android { minSdk = 26 targetSdk = 36 // targetSdkPreview = "CANARY" - versionCode = 22302 - versionName = "2.2.3.02(09-03-26)" + versionCode = 22303 + versionName = "3.0.0.00(10-03-26)" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9794ec1..8567ce4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -14,6 +14,10 @@ + + + + val isValid = application.appLockRepository.validatePattern(pattern) if (isValid) { + IntruderSelfieManager.resetFailedAttempts() handleAuthenticationSuccess(navController) + } else { + IntruderSelfieManager.recordFailedAttempt(context) } isValid }, onBiometricAuth = { - handleBiometricAuthentication(context, navController) + handleBiometricAuthentication(activity, navController) } ) } @@ -93,10 +99,27 @@ fun AppNavHost(navController: NavHostController, startDestination: String) { showBiometricButton = application.appLockRepository.isBiometricAuthEnabled(), fromMainActivity = true, onBiometricAuth = { - handleBiometricAuthentication(context, navController) + handleBiometricAuthentication(activity, navController) }, onAuthSuccess = { + IntruderSelfieManager.resetFailedAttempts() handleAuthenticationSuccess(navController) + }, + onPinAttempt = { pin, isFinal -> + val correctPassword = application.appLockRepository.getPassword() ?: "" + val isValid = pin == correctPassword + if (isValid) { + IntruderSelfieManager.resetFailedAttempts() + handleAuthenticationSuccess(navController) + } else { + // Proper failed attempt count for PIN: + // 1. If it's a "Proceed" button click (isFinal = true), always record. + // 2. If it's an auto-unlock check, only record if length matches. + if (isFinal || (pin.length >= correctPassword.length && correctPassword.isNotEmpty())) { + IntruderSelfieManager.recordFailedAttempt(context) + } + } + isValid } ) } @@ -114,6 +137,10 @@ fun AppNavHost(navController: NavHostController, startDestination: String) { composable(Screen.AntiUninstall.route) { AntiUninstallScreen(navController) } + + composable(Screen.IntruderSelfies.route) { + IntruderSelfieScreen(navController) + } } } @@ -135,6 +162,7 @@ private fun handleBiometricAuthentication( override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) { super.onAuthenticationSucceeded(result) LogUtils.d(TAG, "Biometric authentication succeeded") + IntruderSelfieManager.resetFailedAttempts() navigateToMain(navController) } diff --git a/app/src/main/java/dev/pranav/applock/core/navigation/Screen.kt b/app/src/main/java/dev/pranav/applock/core/navigation/Screen.kt index 1043033..b199c90 100644 --- a/app/src/main/java/dev/pranav/applock/core/navigation/Screen.kt +++ b/app/src/main/java/dev/pranav/applock/core/navigation/Screen.kt @@ -10,4 +10,5 @@ sealed class Screen(val route: String) { object Settings : Screen("settings") object TriggerExclusions : Screen("trigger_exclusions") object AntiUninstall: Screen("anti_uninstall") + object IntruderSelfies: Screen("intruder_selfies") } diff --git a/app/src/main/java/dev/pranav/applock/core/utils/IntruderSelfieManager.kt b/app/src/main/java/dev/pranav/applock/core/utils/IntruderSelfieManager.kt new file mode 100644 index 0000000..cfbd522 --- /dev/null +++ b/app/src/main/java/dev/pranav/applock/core/utils/IntruderSelfieManager.kt @@ -0,0 +1,113 @@ +package dev.pranav.applock.core.utils + +import android.annotation.SuppressLint +import android.content.Context +import android.graphics.ImageFormat +import android.hardware.camera2.* +import android.media.ImageReader +import android.os.Handler +import android.os.HandlerThread +import android.util.Log +import java.io.File +import java.io.FileOutputStream +import java.text.SimpleDateFormat +import java.util.* + +object IntruderSelfieManager { + private const val TAG = "IntruderSelfieManager" + private var failedAttempts = 0 + + fun recordFailedAttempt(context: Context) { + val repository = context.appLockRepository() + if (!repository.isIntruderSelfieEnabled()) return + + failedAttempts++ + val requiredAttempts = repository.getIntruderSelfieAttempts() + + if (failedAttempts >= requiredAttempts) { + captureSelfie(context) + failedAttempts = 0 // Reset after capture + } + } + + fun resetFailedAttempts() { + failedAttempts = 0 + } + + @SuppressLint("MissingPermission") + private fun captureSelfie(context: Context) { + val cameraManager = context.getSystemService(Context.CAMERA_SERVICE) as CameraManager + try { + val cameraId = cameraManager.cameraIdList.find { id -> + cameraManager.getCameraCharacteristics(id) + .get(CameraCharacteristics.LENS_FACING) == CameraCharacteristics.LENS_FACING_FRONT + } ?: return + + val handlerThread = HandlerThread("CameraBackground").apply { start() } + val handler = Handler(handlerThread.looper) + + val imageReader = ImageReader.newInstance(640, 480, ImageFormat.JPEG, 1) + imageReader.setOnImageAvailableListener({ reader -> + val image = reader.acquireLatestImage() + val buffer = image.planes[0].buffer + val bytes = ByteArray(buffer.remaining()) + buffer.get(bytes) + saveSelfie(context, bytes) + image.close() + // Done capturing, we can stop the thread later or here + }, handler) + + cameraManager.openCamera(cameraId, object : CameraDevice.StateCallback() { + override fun onOpened(camera: CameraDevice) { + val captureBuilder = camera.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE) + captureBuilder.addTarget(imageReader.surface) + + // On some devices, we might need a preview surface too, but we try without it first for "silent" capture + camera.createCaptureSession(listOf(imageReader.surface), object : CameraCaptureSession.StateCallback() { + override fun onConfigured(session: CameraCaptureSession) { + session.capture(captureBuilder.build(), object : CameraCaptureSession.CaptureCallback() { + override fun onCaptureCompleted(session: CameraCaptureSession, request: CaptureRequest, result: TotalCaptureResult) { + camera.close() + handlerThread.quitSafely() + } + }, handler) + } + override fun onConfigureFailed(session: CameraCaptureSession) { + camera.close() + handlerThread.quitSafely() + } + }, handler) + } + + override fun onDisconnected(camera: CameraDevice) { + camera.close() + handlerThread.quitSafely() + } + + override fun onError(camera: CameraDevice, error: Int) { + camera.close() + handlerThread.quitSafely() + } + }, handler) + + } catch (e: Exception) { + Log.e(TAG, "Error capturing selfie", e) + } + } + + private fun saveSelfie(context: Context, data: ByteArray) { + try { + val selfieDir = File(context.filesDir, "intruder_selfies") + if (!selfieDir.exists()) selfieDir.mkdirs() + + val timeStamp = SimpleDateFormat("HHmmss_ddMMyyyy", Locale.getDefault()).format(Date()) + val fileName = "Intruder_$timeStamp.jpg" + val file = File(selfieDir, fileName) + + FileOutputStream(file).use { it.write(data) } + Log.d(TAG, "Selfie saved: ${file.absolutePath}") + } catch (e: Exception) { + Log.e(TAG, "Error saving selfie", e) + } + } +} diff --git a/app/src/main/java/dev/pranav/applock/core/utils/LogUtils.kt b/app/src/main/java/dev/pranav/applock/core/utils/LogUtils.kt index 8f0afe5..cac2995 100644 --- a/app/src/main/java/dev/pranav/applock/core/utils/LogUtils.kt +++ b/app/src/main/java/dev/pranav/applock/core/utils/LogUtils.kt @@ -1,14 +1,20 @@ package dev.pranav.applock.core.utils import android.annotation.SuppressLint +import android.content.ContentValues import android.content.Context import android.net.Uri import android.os.Build +import android.os.Environment +import android.provider.MediaStore import android.util.Log import androidx.core.content.FileProvider import java.io.File +import java.text.SimpleDateFormat import java.time.Instant import java.time.temporal.ChronoUnit +import java.util.Date +import java.util.Locale import kotlin.concurrent.thread @SuppressLint("StaticFieldLeak") @@ -88,6 +94,55 @@ object LogUtils { } } + /** + * Export logs to the default Downloads directory in a subfolder with the app name. + * The filename format is "Logs+Time of export(hhmmss)+app name". + */ + fun exportLogsToDownloads(appName: String): String? { + val timeStamp = SimpleDateFormat("HHmmss", Locale.getDefault()).format(Date()) + val fileName = "Logs+${timeStamp}+$appName.txt" + + return try { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + val resolver = context.contentResolver + val contentValues = ContentValues().apply { + put(MediaStore.MediaColumns.DISPLAY_NAME, fileName) + put(MediaStore.MediaColumns.MIME_TYPE, "text/plain") + put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DOWNLOADS + "/" + appName) + } + + val uri = resolver.insert(MediaStore.Downloads.EXTERNAL_CONTENT_URI, contentValues) + uri?.let { + resolver.openOutputStream(it)?.use { outputStream -> + val process = Runtime.getRuntime().exec("logcat -d") + process.inputStream.use { inputStream -> + inputStream.copyTo(outputStream) + } + } + "${Environment.DIRECTORY_DOWNLOADS}/$appName/$fileName" + } + } else { + // Fallback for older Android versions + val downloadsDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + val appDir = File(downloadsDir, appName) + if (!appDir.exists()) { + appDir.mkdirs() + } + val targetFile = File(appDir, fileName) + targetFile.outputStream().use { outputStream -> + val process = Runtime.getRuntime().exec("logcat -d") + process.inputStream.use { inputStream -> + inputStream.copyTo(outputStream) + } + } + "${Environment.DIRECTORY_DOWNLOADS}/$appName/$fileName" + } + } catch (e: Exception) { + Log.e(TAG, "Error exporting logs to downloads", e) + null + } + } + /** * Clear all security and audit logs. * Called when the app is updated. diff --git a/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt b/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt index 4ac6542..616586c 100644 --- a/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt +++ b/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt @@ -63,11 +63,15 @@ class AppLockRepository(private val context: Context) { fun shouldUseMaxBrightness(): Boolean = preferencesRepository.shouldUseMaxBrightness() fun setAmoledModeEnabled(enabled: Boolean) = preferencesRepository.setAmoledModeEnabled(enabled) fun isAmoledModeEnabled(): Boolean = preferencesRepository.isAmoledModeEnabled() - fun amoledModeFlow(): Flow = preferencesRepository.amoledModeFlow() + fun amoledModeFlow(): Flow = preferencesRepository.amoledModeFlow + + fun setDynamicColorEnabled(enabled: Boolean) = preferencesRepository.setDynamicColorEnabled(enabled) + fun isDynamicColorEnabled(): Boolean = preferencesRepository.isDynamicColorEnabled() + fun dynamicColorFlow(): Flow = preferencesRepository.dynamicColorFlow fun setAppThemeMode(themeMode: AppThemeMode) = preferencesRepository.setAppThemeMode(themeMode) fun getAppThemeMode(): AppThemeMode = preferencesRepository.getAppThemeMode() - fun appThemeModeFlow(): Flow = preferencesRepository.appThemeModeFlow() + fun appThemeModeFlow(): Flow = preferencesRepository.appThemeModeFlow fun setDisableHaptics(enabled: Boolean) = preferencesRepository.setDisableHaptics(enabled) fun shouldDisableHaptics(): Boolean = preferencesRepository.shouldDisableHaptics() @@ -125,6 +129,11 @@ class AppLockRepository(private val context: Context) { fun isLoggingEnabled(): Boolean = preferencesRepository.isLoggingEnabled() fun setLoggingEnabled(enabled: Boolean) = preferencesRepository.setLoggingEnabled(enabled) + fun setIntruderSelfieEnabled(enabled: Boolean) = preferencesRepository.setIntruderSelfieEnabled(enabled) + fun isIntruderSelfieEnabled(): Boolean = preferencesRepository.isIntruderSelfieEnabled() + fun setIntruderSelfieAttempts(attempts: Int) = preferencesRepository.setIntruderSelfieAttempts(attempts) + fun getIntruderSelfieAttempts(): Int = preferencesRepository.getIntruderSelfieAttempts() + fun setActiveBackend(backend: BackendImplementation) = backendServiceManager.setActiveBackend(backend) diff --git a/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt b/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt index b3f7a10..47a3460 100644 --- a/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt +++ b/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt @@ -3,10 +3,9 @@ package dev.pranav.applock.data.repository import android.content.Context import android.content.SharedPreferences import androidx.core.content.edit -import kotlinx.coroutines.channels.awaitClose import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.callbackFlow -import kotlinx.coroutines.flow.onStart +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.asStateFlow /** * Repository for managing application preferences and settings. @@ -72,26 +71,29 @@ class PreferencesRepository(context: Context) { fun setAmoledModeEnabled(enabled: Boolean) { settingsPrefs.edit { putBoolean(KEY_AMOLED_MODE_ENABLED, enabled) } + _amoledModeFlow.value = enabled } fun isAmoledModeEnabled(): Boolean { return settingsPrefs.getBoolean(KEY_AMOLED_MODE_ENABLED, false) } - fun amoledModeFlow(): Flow = callbackFlow { - val listener = object : SharedPreferences.OnSharedPreferenceChangeListener { - override fun onSharedPreferenceChanged(prefs: SharedPreferences?, key: String?) { - if (key == KEY_AMOLED_MODE_ENABLED) { - trySend(isAmoledModeEnabled()) - } - } - } - settingsPrefs.registerOnSharedPreferenceChangeListener(listener) - awaitClose { settingsPrefs.unregisterOnSharedPreferenceChangeListener(listener) } - }.onStart { emit(isAmoledModeEnabled()) } + val amoledModeFlow: Flow = _amoledModeFlow.asStateFlow() + + fun setDynamicColorEnabled(enabled: Boolean) { + settingsPrefs.edit { putBoolean(KEY_DYNAMIC_COLOR, enabled) } + _dynamicColorFlow.value = enabled + } + + fun isDynamicColorEnabled(): Boolean { + return settingsPrefs.getBoolean(KEY_DYNAMIC_COLOR, false) + } + + val dynamicColorFlow: Flow = _dynamicColorFlow.asStateFlow() fun setAppThemeMode(themeMode: AppThemeMode) { settingsPrefs.edit { putString(KEY_APP_THEME_MODE, themeMode.name) } + _appThemeModeFlow.value = themeMode } fun getAppThemeMode(): AppThemeMode { @@ -103,17 +105,7 @@ class PreferencesRepository(context: Context) { } } - fun appThemeModeFlow(): Flow = callbackFlow { - val listener = object : SharedPreferences.OnSharedPreferenceChangeListener { - override fun onSharedPreferenceChanged(prefs: SharedPreferences?, key: String?) { - if (key == KEY_APP_THEME_MODE) { - trySend(getAppThemeMode()) - } - } - } - settingsPrefs.registerOnSharedPreferenceChangeListener(listener) - awaitClose { settingsPrefs.unregisterOnSharedPreferenceChangeListener(listener) } - }.onStart { emit(getAppThemeMode()) } + val appThemeModeFlow: Flow = _appThemeModeFlow.asStateFlow() fun setDisableHaptics(enabled: Boolean) { settingsPrefs.edit { putBoolean(KEY_DISABLE_HAPTICS, enabled) } @@ -235,6 +227,22 @@ class PreferencesRepository(context: Context) { settingsPrefs.edit { putBoolean(KEY_LOGGING_ENABLED, enabled) } } + fun setIntruderSelfieEnabled(enabled: Boolean) { + settingsPrefs.edit { putBoolean(KEY_INTRUDER_SELFIE_ENABLED, enabled) } + } + + fun isIntruderSelfieEnabled(): Boolean { + return settingsPrefs.getBoolean(KEY_INTRUDER_SELFIE_ENABLED, false) + } + + fun setIntruderSelfieAttempts(attempts: Int) { + settingsPrefs.edit { putInt(KEY_INTRUDER_SELFIE_ATTEMPTS, attempts) } + } + + fun getIntruderSelfieAttempts(): Int { + return settingsPrefs.getInt(KEY_INTRUDER_SELFIE_ATTEMPTS, 3) + } + companion object { private const val PREFS_NAME_APP_LOCK = "app_lock_prefs" private const val PREFS_NAME_SETTINGS = "app_lock_settings" @@ -245,6 +253,7 @@ class PreferencesRepository(context: Context) { private const val KEY_DISABLE_HAPTICS = "disable_haptics" private const val KEY_USE_MAX_BRIGHTNESS = "use_max_brightness" private const val KEY_AMOLED_MODE_ENABLED = "amoled_mode_enabled" + private const val KEY_DYNAMIC_COLOR = "dynamic_color" private const val KEY_APP_THEME_MODE = "app_theme_mode" private const val KEY_ANTI_UNINSTALL = "anti_uninstall" private const val KEY_ANTI_UNINSTALL_ADMIN_SETTINGS = "anti_uninstall_admin_settings" @@ -261,12 +270,31 @@ class PreferencesRepository(context: Context) { private const val KEY_AUTO_UNLOCK = "auto_unlock" private const val KEY_SHOW_SYSTEM_APPS = "show_system_apps" private const val KEY_LOCK_TYPE = "lock_type" + private const val KEY_INTRUDER_SELFIE_ENABLED = "intruder_selfie_enabled" + private const val KEY_INTRUDER_SELFIE_ATTEMPTS = "intruder_selfie_attempts" private const val DEFAULT_PROTECT_ENABLED = true private const val DEFAULT_UNLOCK_DURATION = 0 const val LOCK_TYPE_PIN = "pin" const val LOCK_TYPE_PATTERN = "pattern" + + // Static flows to ensure all repository instances share the same state + private val _amoledModeFlow = MutableStateFlow(false) + private val _dynamicColorFlow = MutableStateFlow(false) + private val _appThemeModeFlow = MutableStateFlow(AppThemeMode.SYSTEM) + + // Initialize static flows with actual values on first creation + private var initialized = false + } + + init { + if (!initialized) { + _amoledModeFlow.value = isAmoledModeEnabled() + _dynamicColorFlow.value = isDynamicColorEnabled() + _appThemeModeFlow.value = getAppThemeMode() + initialized = true + } } } diff --git a/app/src/main/java/dev/pranav/applock/features/admin/AdminDisableActivity.kt b/app/src/main/java/dev/pranav/applock/features/admin/AdminDisableActivity.kt index 3eed7d4..123f4f4 100644 --- a/app/src/main/java/dev/pranav/applock/features/admin/AdminDisableActivity.kt +++ b/app/src/main/java/dev/pranav/applock/features/admin/AdminDisableActivity.kt @@ -200,7 +200,7 @@ fun AdminDisableScreen( fromMainActivity = false, onBiometricAuth = {}, onAuthSuccess = {}, - onPinAttempt = { pin -> + onPinAttempt = { pin, _ -> val isValid = validatePassword(pin) if (isValid) { onPasswordVerified() diff --git a/app/src/main/java/dev/pranav/applock/features/applist/ui/MainScreen.kt b/app/src/main/java/dev/pranav/applock/features/applist/ui/MainScreen.kt index d92116d..7705b8e 100644 --- a/app/src/main/java/dev/pranav/applock/features/applist/ui/MainScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/applist/ui/MainScreen.kt @@ -35,6 +35,7 @@ import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.core.net.toUri @@ -147,7 +148,7 @@ fun MainScreen( modifier = Modifier .fillMaxSize() .nestedScroll(scrollBehavior.nestedScrollConnection), - containerColor = MaterialTheme.colorScheme.surfaceContainer, + containerColor = MaterialTheme.colorScheme.background, topBar = { MediumFlexibleTopAppBar( title = { @@ -228,7 +229,7 @@ fun MainScreen( }, scrollBehavior = scrollBehavior, colors = TopAppBarDefaults.topAppBarColors( - containerColor = MaterialTheme.colorScheme.surfaceContainer + containerColor = MaterialTheme.colorScheme.background ) ) }, @@ -401,8 +402,8 @@ private fun ProtectedAppsDashboard( } else { LazyColumn( modifier = modifier, - contentPadding = PaddingValues(bottom = 88.dp, top = 8.dp), // Extra padding for FAB - verticalArrangement = Arrangement.spacedBy(4.dp) + contentPadding = PaddingValues(bottom = 88.dp, top = 8.dp, start = 16.dp, end = 16.dp), // Extra padding for FAB and sides + verticalArrangement = Arrangement.spacedBy(12.dp) ) { items(lockedApps, key = { it.packageName }) { appInfo -> ProtectedAppItem( @@ -438,7 +439,7 @@ private fun EmptyDashboardState(modifier: Modifier = Modifier) { text = "Tap the + button to selectively secure your apps.", style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onSurfaceVariant, - textAlign = androidx.compose.ui.text.style.TextAlign.Center, + textAlign = TextAlign.Center, modifier = Modifier.padding(horizontal = 32.dp) ) } @@ -568,6 +569,7 @@ private fun ProtectedAppItem( var appName by remember(appInfo) { mutableStateOf(null) } var icon by remember(appInfo) { mutableStateOf(null) } + var showConfirmation by remember { mutableStateOf(false) } LaunchedEffect(appInfo) { withContext(Dispatchers.IO) { @@ -576,64 +578,89 @@ private fun ProtectedAppItem( } } - ListItem( - headlineContent = { - if (appName != null) { + if (showConfirmation) { + AlertDialog( + onDismissRequest = { showConfirmation = false }, + title = { Text("Remove Protection?") }, + text = { Text("Are you sure you want to remove protection from ${appName ?: "this app"}?") }, + confirmButton = { + TextButton(onClick = { + showConfirmation = false + onUnlock() + }) { + Text("Remove", color = MaterialTheme.colorScheme.error) + } + }, + dismissButton = { + TextButton(onClick = { showConfirmation = false }) { + Text("Cancel") + } + } + ) + } + + Surface( + modifier = Modifier + .fillMaxWidth() + .clip(RoundedCornerShape(16.dp)), + color = MaterialTheme.colorScheme.surfaceContainer, + shape = RoundedCornerShape(16.dp) + ) { + ListItem( + headlineContent = { + if (appName != null) { + Text( + text = appName!!, + style = MaterialTheme.typography.bodyLarge, + fontWeight = FontWeight.Medium, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + }, + supportingContent = { Text( - text = appName!!, - style = MaterialTheme.typography.bodyLarge, - fontWeight = FontWeight.Medium, + text = "Protected", + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.primary, maxLines = 1, overflow = TextOverflow.Ellipsis ) - } - }, - supportingContent = { - Text( - text = "Protected", - style = MaterialTheme.typography.bodySmall, - color = MaterialTheme.colorScheme.primary, - maxLines = 1, - overflow = TextOverflow.Ellipsis - ) - }, - leadingContent = { - Surface( - modifier = Modifier.size(48.dp), - shape = RoundedCornerShape(12.dp), - color = MaterialTheme.colorScheme.surfaceContainerHigh - ) { - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center + }, + leadingContent = { + Surface( + modifier = Modifier.size(48.dp), + shape = RoundedCornerShape(12.dp), + color = MaterialTheme.colorScheme.surfaceContainerHigh ) { - if (icon != null) { - Image( - bitmap = icon!!, - contentDescription = appName, - modifier = Modifier.size(32.dp) - ) + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center + ) { + if (icon != null) { + Image( + bitmap = icon!!, + contentDescription = appName, + modifier = Modifier.size(32.dp) + ) + } } } - } - }, - trailingContent = { - IconButton(onClick = onUnlock) { - Icon( - imageVector = Icons.Outlined.LockOpen, - contentDescription = "Unlock ${appName ?: "app"}", - tint = MaterialTheme.colorScheme.onSurfaceVariant - ) - } - }, - colors = ListItemDefaults.colors( - containerColor = MaterialTheme.colorScheme.surfaceContainer - ), - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp, vertical = 4.dp) - .clip(RoundedCornerShape(16.dp)) - ) + }, + trailingContent = { + IconButton(onClick = { showConfirmation = true }) { + Icon( + imageVector = Icons.Outlined.LockOpen, + contentDescription = "Unlock ${appName ?: "app"}", + tint = MaterialTheme.colorScheme.onSurfaceVariant + ) + } + }, + colors = ListItemDefaults.colors( + containerColor = androidx.compose.ui.graphics.Color.Transparent + ) + ) + } } @Composable @@ -654,64 +681,72 @@ private fun SelectableAppItem( } } - ListItem( - headlineContent = { - if (appName != null) { + Surface( + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp, vertical = 4.dp) + .clip(RoundedCornerShape(16.dp)) + .clickable(onClick = onClick), + color = MaterialTheme.colorScheme.surfaceContainer, + shape = RoundedCornerShape(16.dp) + ) { + ListItem( + headlineContent = { + if (appName != null) { + Text( + text = appName!!, + style = MaterialTheme.typography.bodyLarge, + fontWeight = FontWeight.Medium, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + } + }, + supportingContent = { Text( - text = appName!!, - style = MaterialTheme.typography.bodyLarge, - fontWeight = FontWeight.Medium, + text = appInfo.packageName, + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant, maxLines = 1, overflow = TextOverflow.Ellipsis ) - } - }, - supportingContent = { - Text( - text = appInfo.packageName, - style = MaterialTheme.typography.bodySmall, - color = MaterialTheme.colorScheme.onSurfaceVariant, - maxLines = 1, - overflow = TextOverflow.Ellipsis - ) - }, - leadingContent = { - Surface( - modifier = Modifier.size(42.dp), - shape = RoundedCornerShape(8.dp), - color = MaterialTheme.colorScheme.surfaceContainerHigh - ) { - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center + }, + leadingContent = { + Surface( + modifier = Modifier.size(42.dp), + shape = RoundedCornerShape(8.dp), + color = MaterialTheme.colorScheme.surfaceContainerHigh ) { - if (icon != null) { - Image( - bitmap = icon!!, - contentDescription = appName, - modifier = Modifier.size(28.dp) - ) - } else { - CircularProgressIndicator( - modifier = Modifier.size(16.dp), - strokeWidth = 2.dp - ) + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.Center + ) { + if (icon != null) { + Image( + bitmap = icon!!, + contentDescription = appName, + modifier = Modifier.size(28.dp) + ) + } else { + CircularProgressIndicator( + modifier = Modifier.size(16.dp), + strokeWidth = 2.dp + ) + } } } - } - }, - trailingContent = { - Checkbox( - checked = isSelected, - onCheckedChange = null + }, + trailingContent = { + Checkbox( + checked = isSelected, + onCheckedChange = null + ) + }, + colors = ListItemDefaults.colors( + containerColor = androidx.compose.ui.graphics.Color.Transparent ) - }, - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp, vertical = 4.dp) - .clip(RoundedCornerShape(16.dp)) - .clickable(onClick = onClick) - ) + ) + } } @Composable diff --git a/app/src/main/java/dev/pranav/applock/features/intruderselfie/ui/IntruderSelfieScreen.kt b/app/src/main/java/dev/pranav/applock/features/intruderselfie/ui/IntruderSelfieScreen.kt new file mode 100644 index 0000000..442aec3 --- /dev/null +++ b/app/src/main/java/dev/pranav/applock/features/intruderselfie/ui/IntruderSelfieScreen.kt @@ -0,0 +1,163 @@ +package dev.pranav.applock.features.intruderselfie.ui + +import android.graphics.BitmapFactory +import androidx.compose.foundation.Image +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ArrowBack +import androidx.compose.material.icons.filled.Delete +import androidx.compose.material3.* +import androidx.compose.runtime.* +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.asImageBitmap +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import java.io.File +import java.text.SimpleDateFormat +import java.util.* + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun IntruderSelfieScreen(navController: NavController) { + val context = LocalContext.current + var selfies by remember { mutableStateOf(listOf()) } + var selfieToDelete by remember { mutableStateOf(null) } + + fun loadSelfies() { + val selfieDir = File(context.filesDir, "intruder_selfies") + if (selfieDir.exists()) { + selfies = selfieDir.listFiles()?.filter { it.extension == "jpg" }?.sortedByDescending { it.lastModified() } ?: emptyList() + } + } + + LaunchedEffect(Unit) { + loadSelfies() + } + + Scaffold( + topBar = { + TopAppBar( + title = { Text("Intruder Selfies") }, + navigationIcon = { + IconButton(onClick = { navController.popBackStack() }) { + Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") + } + } + ) + } + ) { padding -> + if (selfies.isEmpty()) { + Box(modifier = Modifier.fillMaxSize().padding(padding), contentAlignment = Alignment.Center) { + Text("No intruder selfies captured yet.", style = MaterialTheme.typography.bodyLarge) + } + } else { + LazyColumn( + modifier = Modifier.fillMaxSize().padding(padding), + contentPadding = PaddingValues(16.dp), + verticalArrangement = Arrangement.spacedBy(16.dp) + ) { + items(selfies) { selfie -> + SelfieCard( + file = selfie, + onDelete = { selfieToDelete = selfie } + ) + } + } + } + } + + if (selfieToDelete != null) { + AlertDialog( + onDismissRequest = { selfieToDelete = null }, + title = { Text("Delete Selfie") }, + text = { Text("Are you sure you want to delete this intruder selfie?") }, + confirmButton = { + TextButton( + onClick = { + selfieToDelete?.delete() + selfieToDelete = null + loadSelfies() + } + ) { + Text("Delete", color = MaterialTheme.colorScheme.error) + } + }, + dismissButton = { + TextButton(onClick = { selfieToDelete = null }) { + Text("Cancel") + } + } + ) + } +} + +@Composable +fun SelfieCard(file: File, onDelete: () -> Unit) { + val bitmap = remember(file) { + BitmapFactory.decodeFile(file.absolutePath) + } + + val timestamp = remember(file) { + val date = Date(file.lastModified()) + val sdf = SimpleDateFormat("HH:mm:ss dd/MM/yyyy", Locale.getDefault()) + sdf.format(date) + } + + Card( + modifier = Modifier.fillMaxWidth(), + shape = RoundedCornerShape(16.dp), + colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.surfaceContainerHigh) + ) { + Column { + if (bitmap != null) { + Image( + bitmap = bitmap.asImageBitmap(), + contentDescription = "Intruder Selfie", + modifier = Modifier + .fillMaxWidth() + .height(250.dp) + .clip(RoundedCornerShape(topStart = 16.dp, topEnd = 16.dp)), + contentScale = ContentScale.Crop + ) + } + + Row( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically + ) { + Column { + Text( + text = "Intruder Detected", + style = MaterialTheme.typography.titleMedium, + fontWeight = FontWeight.Bold + ) + Text( + text = timestamp, + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant + ) + } + + IconButton(onClick = onDelete) { + Icon( + imageVector = Icons.Default.Delete, + contentDescription = "Delete", + tint = MaterialTheme.colorScheme.error + ) + } + } + } + } +} diff --git a/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt b/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt index 2245103..5c3cd01 100644 --- a/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt @@ -60,6 +60,7 @@ import androidx.lifecycle.lifecycleScope import dev.pranav.applock.R import dev.pranav.applock.core.broadcast.DeviceAdmin import dev.pranav.applock.core.ui.shapes +import dev.pranav.applock.core.utils.IntruderSelfieManager import dev.pranav.applock.core.utils.appLockRepository import dev.pranav.applock.core.utils.vibrate import dev.pranav.applock.data.repository.AppLockRepository @@ -72,6 +73,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.util.concurrent.Executor +import java.util.concurrent.atomic.AtomicBoolean class PasswordOverlayActivity : FragmentActivity() { private lateinit var executor: Executor @@ -83,6 +85,8 @@ class PasswordOverlayActivity : FragmentActivity() { private var isBiometricPromptShowingLocal = false private var movedToBackground = false + private val isGoingHome = AtomicBoolean(false) + private var appName by mutableStateOf("") private var appIcon by mutableStateOf(null) @@ -94,17 +98,10 @@ class PasswordOverlayActivity : FragmentActivity() { val reason = intent.getStringExtra("reason") // Handle button presses when (reason) { - "recentapps" -> { - // Recents button pressed - trigger HOME action - Log.d(TAG, "Recents button pressed - triggering HOME action") + "recentapps", "homekey" -> { + // Home or Recents button pressed - trigger HOME action + Log.d(TAG, "System dialog action detected ($reason) - triggering HOME action") goHome() - return - } - "homekey" -> { - // Home button pressed - trigger HOME action - Log.d(TAG, "Home button pressed - triggering HOME action") - goHome() - return } } } @@ -145,13 +142,12 @@ class PasswordOverlayActivity : FragmentActivity() { } private fun goHome() { - try { - val dpm = getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager - val adminComponent = ComponentName(this, DeviceAdmin::class.java) + if (isGoingHome.getAndSet(true)) return // Prevent multiple calls - if (appLockRepository.isAntiUninstallEnabled() && dpm.isAdminActive(adminComponent)) { - // If device admin is active, we can also lock the device as requested for better security - // dpm.lockNow() // Uncomment if immediate lock is preferred over just going home + try { + // Record that we are leaving the locked app to ensure grace period triggers correctly + lockedPackageNameFromIntent?.let { + AppLockManager.setRecentlyLeftApp(it) } val intent = Intent(Intent.ACTION_MAIN).apply { @@ -159,8 +155,12 @@ class PasswordOverlayActivity : FragmentActivity() { flags = Intent.FLAG_ACTIVITY_NEW_TASK } startActivity(intent) + + // Finish activity after starting home intent to clear overlay + finish() } catch (e: Exception) { Log.e(TAG, "Error going home: ${e.message}") + isGoingHome.set(false) } } @@ -219,6 +219,7 @@ class PasswordOverlayActivity : FragmentActivity() { // Immersive mode to hide system UI if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { + @Suppress("DEPRECATION") window.decorView.systemUiVisibility = ( android.view.View.SYSTEM_UI_FLAG_LAYOUT_STABLE or android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or @@ -250,14 +251,23 @@ class PasswordOverlayActivity : FragmentActivity() { } private fun setupUI() { - val onPinAttemptCallback = { pin: String -> - val isValid = appLockRepository.validatePassword(pin) + val onPinAttemptCallback = { pin: String, isFinal: Boolean -> + val correctPassword = appLockRepository.getPassword() ?: "" + val isValid = pin == correctPassword + if (isValid) { + IntruderSelfieManager.resetFailedAttempts() lockedPackageNameFromIntent?.let { pkgName -> AppLockManager.unlockApp(pkgName) - finishAfterTransition() } + } else { + // Proper failed attempt count: + // 1. If it's a "Proceed" button click, it's always a failed attempt. + // 2. If it's an auto-unlock check, only count if the length matches or exceeds the correct password length. + if (isFinal || (pin.length >= correctPassword.length && correctPassword.isNotEmpty())) { + IntruderSelfieManager.recordFailedAttempt(this@PasswordOverlayActivity) + } } isValid } @@ -265,11 +275,14 @@ class PasswordOverlayActivity : FragmentActivity() { val onPatternAttemptCallback = { pattern: String -> val isValid = appLockRepository.validatePattern(pattern) if (isValid) { + IntruderSelfieManager.resetFailedAttempts() lockedPackageNameFromIntent?.let { pkgName -> AppLockManager.unlockApp(pkgName) finishAfterTransition() } + } else { + IntruderSelfieManager.recordFailedAttempt(this@PasswordOverlayActivity) } isValid } @@ -278,7 +291,8 @@ class PasswordOverlayActivity : FragmentActivity() { AppLockTheme { Scaffold( modifier = Modifier.fillMaxSize(), - contentColor = MaterialTheme.colorScheme.primaryContainer + containerColor = MaterialTheme.colorScheme.background, + contentColor = MaterialTheme.colorScheme.onBackground ) { innerPadding -> val lockType = remember { appLockRepository.getLockType() } when (lockType) { @@ -289,7 +303,8 @@ class PasswordOverlayActivity : FragmentActivity() { lockedAppName = appName, lockedAppIcon = appIcon, triggeringPackageName = triggeringPackageNameFromIntent, - onPatternAttempt = onPatternAttemptCallback + onPatternAttempt = onPatternAttemptCallback, + onBiometricAuth = { triggerBiometricPrompt() } ) } @@ -299,7 +314,7 @@ class PasswordOverlayActivity : FragmentActivity() { showBiometricButton = appLockRepository.isBiometricAuthEnabled(), fromMainActivity = false, onBiometricAuth = { triggerBiometricPrompt() }, - onAuthSuccess = {}, + onAuthSuccess = { IntruderSelfieManager.resetFailedAttempts() }, lockedAppName = appName, lockedAppIcon = appIcon, triggeringPackageName = triggeringPackageNameFromIntent, @@ -336,12 +351,19 @@ class PasswordOverlayActivity : FragmentActivity() { super.onAuthenticationError(errorCode, errString) isBiometricPromptShowingLocal = false AppLockManager.reportBiometricAuthFinished() - Log.w(TAG, "Authentication error: $errString ($errorCode)") + + // Only log unexpected errors, ignore cancellation during navigation + if (errorCode != BiometricPrompt.ERROR_CANCELED && + errorCode != BiometricPrompt.ERROR_USER_CANCELED && + errorCode != BiometricPrompt.ERROR_NEGATIVE_BUTTON) { + Log.w(TAG, "Authentication error: $errString ($errorCode)") + } } override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) { super.onAuthenticationSucceeded(result) isBiometricPromptShowingLocal = false + IntruderSelfieManager.resetFailedAttempts() lockedPackageNameFromIntent?.let { pkgName -> AppLockManager.temporarilyUnlockAppWithBiometrics(pkgName) } @@ -352,6 +374,7 @@ class PasswordOverlayActivity : FragmentActivity() { override fun onResume() { super.onResume() movedToBackground = false + isGoingHome.set(false) AppLockManager.isLockScreenShown.set(true) lifecycleScope.launch { applyUserPreferences() @@ -370,7 +393,7 @@ class PasswordOverlayActivity : FragmentActivity() { } fun triggerBiometricPrompt() { - if (appLockRepository.isBiometricAuthEnabled()) { + if (appLockRepository.isBiometricAuthEnabled() && !isGoingHome.get()) { AppLockManager.reportBiometricAuthStarted() isBiometricPromptShowingLocal = true try { @@ -392,7 +415,7 @@ class PasswordOverlayActivity : FragmentActivity() { override fun onPause() { super.onPause() - if (!isChangingConfigurations() && !isBiometricPromptShowingLocal && !movedToBackground) { + if (!isChangingConfigurations() && !isBiometricPromptShowingLocal && !movedToBackground && !isGoingHome.get()) { AppLockManager.isLockScreenShown.set(false) AppLockManager.reportBiometricAuthFinished() finish() @@ -439,7 +462,7 @@ fun PasswordOverlayScreen( lockedAppName: String? = null, lockedAppIcon: Drawable? = null, triggeringPackageName: String? = null, - onPinAttempt: ((pin: String) -> Boolean)? = null + onPinAttempt: ((pin: String, isFinal: Boolean) -> Boolean)? = null ) { val appLockRepository = LocalContext.current.appLockRepository() val windowInfo = LocalWindowInfo.current @@ -453,7 +476,7 @@ fun PasswordOverlayScreen( Surface( modifier = modifier.fillMaxSize(), - color = MaterialTheme.colorScheme.surfaceContainer + color = MaterialTheme.colorScheme.background ) { val passwordState = remember { mutableStateOf("") } var showError by remember { mutableStateOf(false) } @@ -513,7 +536,7 @@ fun PasswordOverlayScreen( showError = false if (appLockRepository.isAutoUnlockEnabled()) { - onPinAttempt?.invoke(passwordState.value) + onPinAttempt?.invoke(passwordState.value, false) } }, onPinIncorrect = { showError = true } @@ -571,7 +594,7 @@ fun PasswordOverlayScreen( showError = false if (appLockRepository.isAutoUnlockEnabled()) { - onPinAttempt?.invoke(passwordState.value) + onPinAttempt?.invoke(passwordState.value, false) } }, onPinIncorrect = { showError = true } @@ -705,7 +728,7 @@ fun PasswordIndicators( ) { LazyRow( state = lazyListState, - contentPadding = androidx.compose.foundation.layout.PaddingValues(horizontal = 16.dp), + contentPadding = PaddingValues(horizontal = 16.dp), horizontalArrangement = Arrangement.spacedBy( indicatorSpacing, Alignment.CenterHorizontally @@ -797,7 +820,7 @@ fun KeypadSection( fromMainActivity: Boolean = false, onBiometricAuth: () -> Unit, onAuthSuccess: () -> Unit, - onPinAttempt: ((pin: String) -> Boolean)? = null, + onPinAttempt: ((pin: String, isFinal: Boolean) -> Boolean)? = null, onPasswordChange: () -> Unit, onPinIncorrect: () -> Unit ) { @@ -840,10 +863,11 @@ fun KeypadSection( horizontalPadding, showBiometricButton ) { + val rows = if (showBiometricButton) 5f else 4f if (isLandscape) { val availableLandscapeHeight = screenHeightDp * 0.8f - val totalVerticalSpacing = buttonSpacing * 3 - val heightBasedSize = (availableLandscapeHeight - totalVerticalSpacing) / 4f + val totalVerticalSpacing = buttonSpacing * (rows - 1) + val heightBasedSize = (availableLandscapeHeight - totalVerticalSpacing) / rows val availableWidth = (screenWidthDp * 0.45f) val totalHorizontalSpacing = buttonSpacing * 2 @@ -855,10 +879,9 @@ fun KeypadSection( val totalHorizontalSpacing = buttonSpacing * 2 val widthBasedSize = (availableWidth - totalHorizontalSpacing) / 3.5f - val totalVerticalSpacing = buttonSpacing * 3 - val biometricAllowance = if (showBiometricButton) 60.dp else 0.dp + val totalVerticalSpacing = buttonSpacing * (rows - 1) val heightBasedSize = - (availableHeight - totalVerticalSpacing - biometricAllowance) / 4f + (availableHeight - totalVerticalSpacing) / rows minOf(widthBasedSize, heightBasedSize) } @@ -915,22 +938,6 @@ fun KeypadSection( .padding(bottom = 8.dp) } ) { - if (showBiometricButton) { - FilledTonalIconButton( - onClick = onBiometricAuth, - modifier = Modifier.size(44.dp), - shape = RoundedCornerShape(40), - ) { - Icon( - imageVector = Fingerprint, - modifier = Modifier - .fillMaxSize() - .padding(10.dp), - contentDescription = stringResource(R.string.biometric_authentication_cd), - tint = MaterialTheme.colorScheme.surfaceTint - ) - } - } KeypadRow( disableHaptics = disableHaptics, keys = listOf("1", "2", "3"), @@ -960,6 +967,26 @@ fun KeypadSection( buttonSize = buttonSize, buttonSpacing = buttonSpacing ) + + if (showBiometricButton) { + FilledTonalIconButton( + onClick = onBiometricAuth, + modifier = Modifier.size(buttonSize), + shape = CircleShape, + colors = IconButtonDefaults.filledTonalIconButtonColors( + containerColor = MaterialTheme.colorScheme.secondaryContainer + ) + ) { + Icon( + imageVector = Fingerprint, + modifier = Modifier + .fillMaxSize() + .padding(buttonSize * 0.25f), + contentDescription = stringResource(R.string.biometric_authentication_cd), + tint = MaterialTheme.colorScheme.onSecondaryContainer + ) + } + } } } @@ -978,7 +1005,7 @@ private fun handleKeypadSpecialButtonLogic( minLength: Int, fromMainActivity: Boolean, onAuthSuccess: () -> Unit, - onPinAttempt: ((pin: String) -> Boolean)?, + onPinAttempt: ((pin: String, isFinal: Boolean) -> Boolean)?, context: Context, onPasswordChange: () -> Unit, onPinIncorrect: () -> Unit @@ -1004,9 +1031,12 @@ private fun handleKeypadSpecialButtonLogic( } if (passwordState.value.length >= minLength) { if (fromMainActivity) { - if (appLockRepository.validatePassword(passwordState.value)) { + val correctPassword = appLockRepository.getPassword() ?: "" + if (passwordState.value == correctPassword) { + IntruderSelfieManager.resetFailedAttempts() onAuthSuccess() } else { + IntruderSelfieManager.recordFailedAttempt(context) passwordState.value = "" if (!appLockRepository.shouldDisableHaptics()) { vibrate(context, 100) @@ -1015,7 +1045,7 @@ private fun handleKeypadSpecialButtonLogic( } } else { onPinAttempt?.let { attempt -> - val pinWasCorrectAndProcessed = attempt(passwordState.value) + val pinWasCorrectAndProcessed = attempt(passwordState.value, true) if (!pinWasCorrectAndProcessed) { passwordState.value = "" if (!appLockRepository.shouldDisableHaptics()) { diff --git a/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PatternLockScreen.kt b/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PatternLockScreen.kt index d187a82..b58e8b8 100644 --- a/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PatternLockScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PatternLockScreen.kt @@ -16,10 +16,12 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.statusBarsPadding +import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.material3.FilledTonalIconButton import androidx.compose.material3.Icon +import androidx.compose.material3.IconButtonDefaults import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text @@ -41,6 +43,7 @@ import com.mrhwsn.composelock.Dot import com.mrhwsn.composelock.LockCallback import com.mrhwsn.composelock.PatternLock import dev.pranav.applock.R +import dev.pranav.applock.core.utils.IntruderSelfieManager import dev.pranav.applock.core.utils.appLockRepository import dev.pranav.applock.core.utils.vibrate import dev.pranav.applock.ui.icons.Fingerprint @@ -66,7 +69,7 @@ fun PatternLockScreen( Surface( modifier = modifier.fillMaxSize(), - color = MaterialTheme.colorScheme.surface + color = MaterialTheme.colorScheme.background ) { var showError by remember { mutableStateOf(false) } @@ -103,6 +106,9 @@ fun PatternLockScreen( if (!isValid) { showError = true errorShakeOffset = 10f + // recordFailedAttempt is already handled in PasswordOverlayActivity's onPatternAttemptCallback + } else { + IntruderSelfieManager.resetFailedAttempts() } } } @@ -141,19 +147,22 @@ fun PatternLockScreen( } if (appLockRepository.isBiometricAuthEnabled() && onBiometricAuth != null) { - Spacer(modifier = Modifier.height(16.dp)) + Spacer(modifier = Modifier.height(24.dp)) FilledTonalIconButton( onClick = { onBiometricAuth() }, - modifier = Modifier.size(44.dp), - shape = RoundedCornerShape(40), + modifier = Modifier.size(64.dp), + shape = CircleShape, + colors = IconButtonDefaults.filledTonalIconButtonColors( + containerColor = MaterialTheme.colorScheme.secondaryContainer + ) ) { Icon( imageVector = Fingerprint, modifier = Modifier .fillMaxSize() - .padding(10.dp), + .padding(16.dp), contentDescription = stringResource(R.string.biometric_authentication_cd), - tint = MaterialTheme.colorScheme.surfaceTint + tint = MaterialTheme.colorScheme.onSecondaryContainer ) } } @@ -211,27 +220,10 @@ fun PatternLockScreen( } Column( - horizontalAlignment = Alignment.CenterHorizontally + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + modifier = Modifier.weight(1f) ) { - if (appLockRepository.isBiometricAuthEnabled() && onBiometricAuth != null) { - FilledTonalIconButton( - onClick = { onBiometricAuth() }, - modifier = Modifier.size(44.dp), - shape = RoundedCornerShape(40), - ) { - Icon( - imageVector = Fingerprint, - modifier = Modifier - .fillMaxSize() - .padding(10.dp), - contentDescription = stringResource(R.string.biometric_authentication_cd), - tint = MaterialTheme.colorScheme.surfaceTint - ) - } - - Spacer(modifier = Modifier.height(16.dp)) - } - PatternLock( modifier = Modifier .fillMaxWidth() @@ -246,6 +238,28 @@ fun PatternLockScreen( animationDuration = 120, callback = lockCallback ) + + if (appLockRepository.isBiometricAuthEnabled() && onBiometricAuth != null) { + Spacer(modifier = Modifier.height(32.dp)) + + FilledTonalIconButton( + onClick = { onBiometricAuth() }, + modifier = Modifier.size(72.dp), + shape = CircleShape, + colors = IconButtonDefaults.filledTonalIconButtonColors( + containerColor = MaterialTheme.colorScheme.secondaryContainer + ) + ) { + Icon( + imageVector = Fingerprint, + modifier = Modifier + .fillMaxSize() + .padding(18.dp), + contentDescription = stringResource(R.string.biometric_authentication_cd), + tint = MaterialTheme.colorScheme.onSecondaryContainer + ) + } + } } } } diff --git a/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt b/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt index 5008f9e..a53182b 100644 --- a/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt @@ -1,10 +1,13 @@ package dev.pranav.applock.features.settings.ui +import android.Manifest +import android.annotation.SuppressLint import android.app.admin.DevicePolicyManager import android.content.ComponentName import android.content.Context import android.content.Intent import android.content.pm.PackageManager +import android.os.Build import android.widget.Toast import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.contract.ActivityResultContracts @@ -15,10 +18,12 @@ import androidx.compose.animation.core.spring import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.selection.selectable import androidx.compose.foundation.selection.selectableGroup import androidx.compose.foundation.selection.toggleable import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material.icons.automirrored.rounded.KeyboardArrowRight @@ -38,6 +43,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.Role import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp +import androidx.core.content.ContextCompat import androidx.core.net.toUri import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver @@ -52,14 +58,17 @@ import dev.pranav.applock.core.utils.openAccessibilitySettings import dev.pranav.applock.data.repository.AppLockRepository import dev.pranav.applock.data.repository.AppThemeMode import dev.pranav.applock.data.repository.BackendImplementation +import dev.pranav.applock.data.repository.PreferencesRepository import dev.pranav.applock.features.admin.AdminDisableActivity import dev.pranav.applock.services.ExperimentalAppLockService import dev.pranav.applock.services.ShizukuAppLockService import dev.pranav.applock.ui.icons.* import rikka.shizuku.Shizuku import rikka.shizuku.ShizukuProvider +import java.io.File import kotlin.math.abs +@SuppressLint("LocalContextGetResourceValueCall") @OptIn(ExperimentalMaterial3Api::class) @Composable fun SettingsScreen( @@ -89,9 +98,32 @@ fun SettingsScreen( } } + // Intruder Selfie states + var intruderSelfieEnabled by remember { mutableStateOf(appLockRepository.isIntruderSelfieEnabled()) } + var intruderSelfieAttempts by remember { mutableIntStateOf(appLockRepository.getIntruderSelfieAttempts()) } + var hasSelfies by remember { mutableStateOf(false) } + + LaunchedEffect(Unit) { + val selfieDir = File(context.filesDir, "intruder_selfies") + hasSelfies = selfieDir.exists() && (selfieDir.listFiles()?.isNotEmpty() ?: false) + } + + val cameraPermissionLauncher = rememberLauncherForActivityResult( + ActivityResultContracts.RequestPermission() + ) { isGranted -> + if (isGranted) { + intruderSelfieEnabled = true + appLockRepository.setIntruderSelfieEnabled(true) + } else { + Toast.makeText(context, "Camera permission is required for Intruder Selfie", Toast.LENGTH_SHORT).show() + } + } + // Reactive states from repository flows val amoledModeEnabled by appLockRepository.amoledModeFlow() .collectAsState(initial = appLockRepository.isAmoledModeEnabled()) + val dynamicColorEnabled by appLockRepository.dynamicColorFlow() + .collectAsState(initial = appLockRepository.isDynamicColorEnabled()) val appThemeMode by appLockRepository.appThemeModeFlow() .collectAsState(initial = appLockRepository.getAppThemeMode()) @@ -128,6 +160,11 @@ fun SettingsScreen( antiUninstallOverlay = appLockRepository.isAntiUninstallOverlayEnabled() disableHapticFeedback = appLockRepository.shouldDisableHaptics() loggingEnabled = appLockRepository.isLoggingEnabled() + intruderSelfieEnabled = appLockRepository.isIntruderSelfieEnabled() + intruderSelfieAttempts = appLockRepository.getIntruderSelfieAttempts() + + val selfieDir = File(context.filesDir, "intruder_selfies") + hasSelfies = selfieDir.exists() && (selfieDir.listFiles()?.isNotEmpty() ?: false) } } lifecycleOwner.lifecycle.addObserver(observer) @@ -243,7 +280,7 @@ fun SettingsScreen( item { SectionTitle(text = stringResource(R.string.settings_screen_security_title)) - SettingsCard(index = 0, listSize = 2) { + SettingsCard(index = 0, listSize = 3) { SwitchItem( title = stringResource(R.string.settings_screen_auto_unlock_title), summary = stringResource(R.string.settings_screen_auto_unlock_desc), @@ -256,7 +293,7 @@ fun SettingsScreen( ) } - SettingsCard(index = 1, listSize = 2) { + SettingsCard(index = 1, listSize = 3) { SwitchItem( title = stringResource(R.string.settings_screen_biometric_auth_title), summary = stringResource(R.string.settings_screen_biometric_auth_desc), @@ -270,6 +307,66 @@ fun SettingsScreen( ) } + SettingsCard(index = 2, listSize = 3) { + ClickableItem( + title = "Change Lock", + summary = if (appLockRepository.getLockType() == PreferencesRepository.LOCK_TYPE_PATTERN) + "Update your unlock pattern" else "Update your unlock PIN", + icon = Icons.Default.Lock, + onClick = { + navController.navigate(Screen.ChangePassword.route) + } + ) + } + + SectionTitle(text = "Intruder Selfie") + + SettingsCard(index = 0, listSize = 3) { + SwitchItem( + title = "Enable Intruder Selfie", + summary = "Capture a photo after failed unlock attempts", + icon = Icons.Default.CameraAlt, + checked = intruderSelfieEnabled, + onCheckedChange = { enabled -> + if (enabled) { + val permissionCheck = ContextCompat.checkSelfPermission(context, Manifest.permission.CAMERA) + if (permissionCheck == PackageManager.PERMISSION_GRANTED) { + intruderSelfieEnabled = true + appLockRepository.setIntruderSelfieEnabled(true) + } else { + cameraPermissionLauncher.launch(Manifest.permission.CAMERA) + } + } else { + intruderSelfieEnabled = false + appLockRepository.setIntruderSelfieEnabled(false) + } + } + ) + } + + SettingsCard(index = 1, listSize = 3) { + FailedAttemptsSpinnerItem( + selectedAttempts = intruderSelfieAttempts, + enabled = intruderSelfieEnabled, + onAttemptsSelected = { attempts -> + intruderSelfieAttempts = attempts + appLockRepository.setIntruderSelfieAttempts(attempts) + } + ) + } + + SettingsCard(index = 2, listSize = 3) { + ClickableItem( + title = "Show Intruder Selfies", + summary = "View captured photos of intruders", + icon = Icons.Default.PhotoLibrary, + enabled = hasSelfies, + onClick = { + navController.navigate(Screen.IntruderSelfies.route) + } + ) + } + SectionTitle(text = stringResource(R.string.settings_screen_anti_uninstall_title)) SettingsCard(index = 0, listSize = 5) { @@ -363,7 +460,7 @@ fun SettingsScreen( SectionTitle(text = stringResource(R.string.settings_screen_lock_screen_customization_title)) - SettingsCard(index = 0, listSize = 4) { + SettingsCard(index = 0, listSize = 5) { SwitchItem( title = stringResource(R.string.settings_screen_max_brightness_title), summary = stringResource(R.string.settings_screen_max_brightness_desc), @@ -376,7 +473,7 @@ fun SettingsScreen( ) } - SettingsCard(index = 1, listSize = 4) { + SettingsCard(index = 1, listSize = 5) { SwitchItem( title = stringResource(R.string.settings_screen_amoled_mode_title), summary = stringResource(R.string.settings_screen_amoled_mode_desc), @@ -388,7 +485,20 @@ fun SettingsScreen( ) } - SettingsCard(index = 2, listSize = 4) { + SettingsCard(index = 2, listSize = 5) { + SwitchItem( + title = "Use Dynamic Theme", + summary = "Apply dynamic colors from your wallpaper (Android 12+)", + icon = Icons.Default.Palette, + checked = dynamicColorEnabled, + enabled = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S, + onCheckedChange = { + appLockRepository.setDynamicColorEnabled(it) + } + ) + } + + SettingsCard(index = 3, listSize = 5) { SwitchItem( title = stringResource(R.string.settings_screen_haptic_feedback_title), summary = stringResource(R.string.settings_screen_haptic_feedback_desc), @@ -401,7 +511,7 @@ fun SettingsScreen( ) } - SettingsCard(index = 3, listSize = 4) { + SettingsCard(index = 4, listSize = 5) { ClickableItem( title = stringResource(R.string.settings_screen_unlock_duration_title), summary = when (unlockTimeDuration) { @@ -440,7 +550,7 @@ fun SettingsScreen( SectionTitle(text = "App Details") - SettingsCard(index = 0, listSize = 2) { + SettingsCard(index = 0, listSize = 3) { ClickableItem( title = "App Version", summary = try { @@ -456,7 +566,7 @@ fun SettingsScreen( ) } - SettingsCard(index = 1, listSize = 2) { + SettingsCard(index = 1, listSize = 3) { SwitchItem( title = stringResource(R.string.settings_screen_logging_title), summary = stringResource(R.string.settings_screen_logging_summary), @@ -469,6 +579,23 @@ fun SettingsScreen( ) } + SettingsCard(index = 2, listSize = 3) { + ClickableItem( + title = "Export Logs", + summary = "Save app logs to your Downloads folder", + icon = Icons.Default.Download, + onClick = { + val appName = context.getString(R.string.app_name) + val exportedFile = LogUtils.exportLogsToDownloads(appName) + if (exportedFile != null) { + Toast.makeText(context, "Logs exported: $exportedFile", Toast.LENGTH_LONG).show() + } else { + Toast.makeText(context, exportLogsError, Toast.LENGTH_SHORT).show() + } + } + ) + } + SectionTitle(text = stringResource(R.string.settings_screen_links_section)) SettingsCard(index = 0, listSize = 3) { @@ -610,34 +737,37 @@ fun ClickableItem( title: String, summary: String, icon: ImageVector, + enabled: Boolean = true, onClick: () -> Unit ) { ListItem( - modifier = Modifier.clickable(onClick = onClick), + modifier = Modifier.clickable(enabled = enabled, onClick = onClick), headlineContent = { Text( text = title, - style = MaterialTheme.typography.titleMedium + style = MaterialTheme.typography.titleMedium, + color = if (enabled) MaterialTheme.colorScheme.onSurface else MaterialTheme.colorScheme.onSurface.copy(alpha = 0.38f) ) }, supportingContent = { Text( text = summary, - style = MaterialTheme.typography.bodySmall + style = MaterialTheme.typography.bodySmall, + color = if (enabled) MaterialTheme.colorScheme.onSurfaceVariant else MaterialTheme.colorScheme.onSurfaceVariant.copy(alpha = 0.38f) ) }, leadingContent = { Icon( imageVector = icon, contentDescription = null, - tint = MaterialTheme.colorScheme.primary + tint = if (enabled) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.primary.copy(alpha = 0.38f) ) }, trailingContent = { Icon( imageVector = Icons.AutoMirrored.Rounded.KeyboardArrowRight, contentDescription = null, - tint = MaterialTheme.colorScheme.onSurfaceVariant + tint = if (enabled) MaterialTheme.colorScheme.onSurfaceVariant else MaterialTheme.colorScheme.onSurfaceVariant.copy(alpha = 0.38f) ) }, colors = ListItemDefaults.colors( @@ -646,6 +776,68 @@ fun ClickableItem( ) } +@Composable +fun FailedAttemptsSpinnerItem( + selectedAttempts: Int, + enabled: Boolean, + onAttemptsSelected: (Int) -> Unit +) { + var expanded by remember { mutableStateOf(false) } + val attemptsOptions = listOf(1, 2, 3, 4, 5) + + Box { + ListItem( + modifier = Modifier.clickable(enabled = enabled) { expanded = true }, + headlineContent = { + Text( + text = "Failed attempts", + style = MaterialTheme.typography.titleMedium, + color = if (enabled) MaterialTheme.colorScheme.onSurface else MaterialTheme.colorScheme.onSurface.copy(alpha = 0.38f) + ) + }, + supportingContent = { + Text( + text = "Take photo after $selectedAttempts failed attempt(s)", + style = MaterialTheme.typography.bodySmall, + color = if (enabled) MaterialTheme.colorScheme.onSurfaceVariant else MaterialTheme.colorScheme.onSurfaceVariant.copy(alpha = 0.38f) + ) + }, + leadingContent = { + Icon( + imageVector = Icons.Default.Warning, + contentDescription = null, + tint = if (enabled) MaterialTheme.colorScheme.primary else MaterialTheme.colorScheme.primary.copy(alpha = 0.38f) + ) + }, + trailingContent = { + Icon( + imageVector = Icons.Default.ArrowDropDown, + contentDescription = null, + tint = if (enabled) MaterialTheme.colorScheme.onSurfaceVariant else MaterialTheme.colorScheme.onSurfaceVariant.copy(alpha = 0.38f) + ) + }, + colors = ListItemDefaults.colors( + containerColor = Color.Transparent + ) + ) + + DropdownMenu( + expanded = expanded, + onDismissRequest = { expanded = false } + ) { + attemptsOptions.forEach { option -> + DropdownMenuItem( + text = { Text("$option attempt(s)") }, + onClick = { + onAttemptsSelected(option) + expanded = false + } + ) + } + } + } +} + @Composable fun LinkItem( title: String, @@ -693,9 +885,11 @@ fun UnlockTimeDurationDialog( onDismissRequest = onDismiss, title = { Text(stringResource(R.string.settings_screen_unlock_duration_dialog_title)) }, text = { + val durationsScrollState = rememberScrollState() Column( modifier = Modifier .fillMaxWidth() + .verticalScroll(durationsScrollState) .selectableGroup() ) { durations.forEach { duration -> diff --git a/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt b/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt index ba3f894..3e0a2f7 100644 --- a/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt +++ b/app/src/main/java/dev/pranav/applock/ui/theme/Theme.kt @@ -88,8 +88,6 @@ private val CustomDarkColorScheme = darkColorScheme( @Composable fun AppLockTheme( darkTheme: Boolean = isSystemInDarkTheme(), - // Dynamic color is available on Android 12+ - dynamicColor: Boolean = false, // Set to false to prioritize our custom palette content: @Composable () -> Unit ) { val context = LocalContext.current @@ -99,6 +97,8 @@ fun AppLockTheme( .collectAsState(initial = appLockRepository.getAppThemeMode()) val amoledModeEnabled by appLockRepository.amoledModeFlow() .collectAsState(initial = appLockRepository.isAmoledModeEnabled()) + val dynamicColorEnabled by appLockRepository.dynamicColorFlow() + .collectAsState(initial = appLockRepository.isDynamicColorEnabled()) val resolvedDarkTheme = when (themeMode) { AppThemeMode.SYSTEM -> darkTheme @@ -107,12 +107,20 @@ fun AppLockTheme( } val colorScheme = when { - dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && !amoledModeEnabled -> { - if (resolvedDarkTheme) { - dynamicDarkColorScheme(context) - } else { - dynamicLightColorScheme(context) - } + dynamicColorEnabled && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { + val base = if (resolvedDarkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + if (resolvedDarkTheme && amoledModeEnabled) { + base.copy( + background = Color.Black, + surface = Color.Black, + surfaceVariant = Color.Black, + surfaceContainer = Color.Black, + surfaceContainerLow = Color.Black, + surfaceContainerHigh = Color(0xFF121212), + surfaceContainerLowest = Color.Black, + surfaceContainerHighest = Color(0xFF1A1A1A), + ) + } else base } resolvedDarkTheme -> { @@ -120,10 +128,17 @@ fun AppLockTheme( CustomDarkColorScheme.copy( background = Color.Black, surface = Color.Black, - surfaceVariant = Color(0xFF121212), - surfaceContainer = Color(0xFF0F0F0F), - surfaceContainerLow = Color(0xFF080808), - surfaceContainerHigh = Color(0xFF252525), // Increased contrast for cards + surfaceVariant = Color.Black, + surfaceContainer = Color.Black, + surfaceContainerLow = Color.Black, + surfaceContainerHigh = Color(0xFF121212), // Slightly lighter for cards in amoled + surfaceContainerLowest = Color.Black, + surfaceContainerHighest = Color(0xFF1A1A1A), + onBackground = Color.White, + onSurface = Color.White, + onSurfaceVariant = Color(0xFFE0E0E0), + secondaryContainer = Color(0xFF121212), + onSecondaryContainer = Color.White, ) } else { CustomDarkColorScheme diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8d533d6..83e9f4e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "9.0.1" +agp = "9.1.0" annotation = "1.9.1" refine = "4.4.0" hiddenapibypass = "6.1" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f70ea9e..8f63698 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Sat Aug 02 11:42:34 IST 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 6a4ed52ed97a7bd233ce7a5c4a48ca51d24443b8 Mon Sep 17 00:00:00 2001 From: ap0803apap-sketch Date: Wed, 18 Mar 2026 15:44:17 +0530 Subject: [PATCH 8/9] Add password lock and recovery key flows --- .../java/dev/pranav/applock/MainActivity.kt | 32 ++-- .../applock/core/navigation/AppNavigator.kt | 60 +++++++- .../pranav/applock/core/navigation/Screen.kt | 4 + .../applock/core/utils/BiometricUtils.kt | 27 ++++ .../applock/core/utils/RecoveryKeyManager.kt | 44 ++++++ .../data/repository/AppLockRepository.kt | 11 ++ .../data/repository/PreferencesRepository.kt | 24 +++ .../lockscreen/ui/PasswordOverlayScreen.kt | 89 ++++++++++- .../lockscreen/ui/PatternLockScreen.kt | 8 +- .../ui/PatternSetPasswordScreen.kt | 43 +++++- .../setpassword/ui/RecoveryKeyComponents.kt | 115 ++++++++++++++ .../setpassword/ui/SetPasswordScreen.kt | 59 +++++--- .../setpassword/ui/SetPasswordTextScreen.kt | 143 ++++++++++++++++++ .../features/settings/ui/SettingsScreen.kt | 65 +++++++- .../services/AppLockAccessibilityService.kt | 7 + 15 files changed, 679 insertions(+), 52 deletions(-) create mode 100644 app/src/main/java/dev/pranav/applock/core/utils/BiometricUtils.kt create mode 100644 app/src/main/java/dev/pranav/applock/core/utils/RecoveryKeyManager.kt create mode 100644 app/src/main/java/dev/pranav/applock/features/setpassword/ui/RecoveryKeyComponents.kt create mode 100644 app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordTextScreen.kt diff --git a/app/src/main/java/dev/pranav/applock/MainActivity.kt b/app/src/main/java/dev/pranav/applock/MainActivity.kt index f85cd6f..66a5414 100644 --- a/app/src/main/java/dev/pranav/applock/MainActivity.kt +++ b/app/src/main/java/dev/pranav/applock/MainActivity.kt @@ -3,7 +3,14 @@ package dev.pranav.applock import android.os.Bundle import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge +import androidx.compose.material3.Text +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier import androidx.fragment.app.FragmentActivity +import dev.pranav.applock.core.utils.BiometricStatus +import dev.pranav.applock.core.utils.getBiometricStatus import androidx.lifecycle.Lifecycle import androidx.lifecycle.compose.LifecycleEventEffect import androidx.navigation.compose.rememberNavController @@ -22,18 +29,25 @@ class MainActivity : FragmentActivity() { navigationManager = NavigationManager(this) + val biometricStatus = getBiometricStatus(this) setContent { AppLockTheme { - val navController = rememberNavController() - val startDestination = navigationManager.determineStartDestination() + if (biometricStatus is BiometricStatus.Unavailable) { + Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { + Text(biometricStatus.message) + } + } else { + val navController = rememberNavController() + val startDestination = navigationManager.determineStartDestination() - AppNavHost( - navController = navController, - startDestination = startDestination - ) + AppNavHost( + navController = navController, + startDestination = startDestination + ) - LifecycleEventEffect(Lifecycle.Event.ON_RESUME) { - handleOnResume(navController) + LifecycleEventEffect(Lifecycle.Event.ON_RESUME) { + handleOnResume(navController) + } } } } @@ -46,7 +60,7 @@ class MainActivity : FragmentActivity() { return } - if (currentRoute != Screen.PasswordOverlay.route && currentRoute != Screen.SetPassword.route && currentRoute != Screen.SetPasswordPattern.route) { + if (currentRoute != Screen.PasswordOverlay.route && currentRoute != Screen.SetPassword.route && currentRoute != Screen.SetPasswordPattern.route && currentRoute != Screen.SetPasswordText.route) { navController.navigate(Screen.PasswordOverlay.route) } } diff --git a/app/src/main/java/dev/pranav/applock/core/navigation/AppNavigator.kt b/app/src/main/java/dev/pranav/applock/core/navigation/AppNavigator.kt index f8112e3..31c4602 100644 --- a/app/src/main/java/dev/pranav/applock/core/navigation/AppNavigator.kt +++ b/app/src/main/java/dev/pranav/applock/core/navigation/AppNavigator.kt @@ -26,6 +26,7 @@ import dev.pranav.applock.features.lockscreen.ui.PasswordOverlayScreen import dev.pranav.applock.features.lockscreen.ui.PatternLockScreen import dev.pranav.applock.features.setpassword.ui.PatternSetPasswordScreen import dev.pranav.applock.features.setpassword.ui.SetPasswordScreen +import dev.pranav.applock.features.setpassword.ui.SetPasswordTextScreen import dev.pranav.applock.features.settings.ui.SettingsScreen import dev.pranav.applock.features.triggerexclusions.ui.TriggerExclusionsScreen @@ -55,17 +56,33 @@ fun AppNavHost(navController: NavHostController, startDestination: String) { } composable(Screen.ChangePassword.route) { - if (application.appLockRepository.getLockType() == PreferencesRepository.LOCK_TYPE_PATTERN) { - PatternSetPasswordScreen(navController, false) - } else { - SetPasswordScreen(navController, isFirstTimeSetup = false) + when (application.appLockRepository.getLockType()) { + PreferencesRepository.LOCK_TYPE_PATTERN -> PatternSetPasswordScreen(navController, false) + PreferencesRepository.LOCK_TYPE_PASSWORD -> SetPasswordTextScreen(navController, false) + else -> SetPasswordScreen(navController, isFirstTimeSetup = false) } } + composable(Screen.ChangePasswordPin.route) { + SetPasswordScreen(navController, isFirstTimeSetup = false) + } + + composable(Screen.ChangePasswordPattern.route) { + PatternSetPasswordScreen(navController, false) + } + + composable(Screen.ChangePasswordText.route) { + SetPasswordTextScreen(navController, false) + } + composable(Screen.SetPasswordPattern.route) { PatternSetPasswordScreen(navController, isFirstTimeSetup = true) } + composable(Screen.SetPasswordText.route) { + SetPasswordTextScreen(navController, isFirstTimeSetup = true) + } + composable(Screen.Main.route) { MainScreen(navController) } @@ -90,6 +107,38 @@ fun AppNavHost(navController: NavHostController, startDestination: String) { }, onBiometricAuth = { handleBiometricAuthentication(activity, navController) + }, + onForgotPasscodeReset = { + navController.navigate(Screen.ChangePasswordPattern.route) + } + ) + } + + PreferencesRepository.LOCK_TYPE_PASSWORD -> { + PasswordOverlayScreen( + showBiometricButton = application.appLockRepository.isBiometricAuthEnabled(), + fromMainActivity = true, + useTextPassword = true, + onBiometricAuth = { + handleBiometricAuthentication(activity, navController) + }, + onAuthSuccess = { + IntruderSelfieManager.resetFailedAttempts() + handleAuthenticationSuccess(navController) + }, + onForgotPasscodeReset = { + navController.navigate(Screen.ChangePasswordText.route) + }, + onPinAttempt = { pin, isFinal -> + val correctPassword = application.appLockRepository.getPassword() ?: "" + val isValid = pin == correctPassword + if (isValid) { + IntruderSelfieManager.resetFailedAttempts() + handleAuthenticationSuccess(navController) + } else if (isFinal) { + IntruderSelfieManager.recordFailedAttempt(context) + } + isValid } ) } @@ -105,6 +154,9 @@ fun AppNavHost(navController: NavHostController, startDestination: String) { IntruderSelfieManager.resetFailedAttempts() handleAuthenticationSuccess(navController) }, + onForgotPasscodeReset = { + navController.navigate(Screen.ChangePasswordPin.route) + }, onPinAttempt = { pin, isFinal -> val correctPassword = application.appLockRepository.getPassword() ?: "" val isValid = pin == correctPassword diff --git a/app/src/main/java/dev/pranav/applock/core/navigation/Screen.kt b/app/src/main/java/dev/pranav/applock/core/navigation/Screen.kt index b199c90..980f9c1 100644 --- a/app/src/main/java/dev/pranav/applock/core/navigation/Screen.kt +++ b/app/src/main/java/dev/pranav/applock/core/navigation/Screen.kt @@ -4,7 +4,11 @@ sealed class Screen(val route: String) { object AppIntro : Screen("app_intro") object SetPassword : Screen("set_password") object SetPasswordPattern : Screen("set_password_pattern") + object SetPasswordText : Screen("set_password_text") object ChangePassword : Screen("change_password") + object ChangePasswordPin : Screen("change_password_pin") + object ChangePasswordPattern : Screen("change_password_pattern") + object ChangePasswordText : Screen("change_password_text") object Main : Screen("main") object PasswordOverlay : Screen("password_overlay") object Settings : Screen("settings") diff --git a/app/src/main/java/dev/pranav/applock/core/utils/BiometricUtils.kt b/app/src/main/java/dev/pranav/applock/core/utils/BiometricUtils.kt new file mode 100644 index 0000000..6e1554e --- /dev/null +++ b/app/src/main/java/dev/pranav/applock/core/utils/BiometricUtils.kt @@ -0,0 +1,27 @@ +package dev.pranav.applock.core.utils + +import android.content.Context +import androidx.biometric.BiometricManager + +sealed class BiometricStatus { + data object Available : BiometricStatus() + data class Unavailable(val message: String) : BiometricStatus() +} + +fun getBiometricStatus(context: Context): BiometricStatus { + val biometricManager = BiometricManager.from(context) + return when ( + biometricManager.canAuthenticate(BiometricManager.Authenticators.BIOMETRIC_STRONG) + ) { + BiometricManager.BIOMETRIC_SUCCESS -> BiometricStatus.Available + BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE -> BiometricStatus.Unavailable( + "Sorry this app cant run on this device because of security limitation: no biometric hardware." + ) + BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED -> BiometricStatus.Unavailable( + "Sorry this app cant run on this device because of security limitation: biometric not enabled." + ) + else -> BiometricStatus.Unavailable( + "Sorry this app cant run on this device because of security limitation: biometric authentication unavailable." + ) + } +} diff --git a/app/src/main/java/dev/pranav/applock/core/utils/RecoveryKeyManager.kt b/app/src/main/java/dev/pranav/applock/core/utils/RecoveryKeyManager.kt new file mode 100644 index 0000000..2d0958c --- /dev/null +++ b/app/src/main/java/dev/pranav/applock/core/utils/RecoveryKeyManager.kt @@ -0,0 +1,44 @@ +package dev.pranav.applock.core.utils + +import android.content.ContentValues +import android.content.Context +import android.os.Build +import android.os.Environment +import android.provider.MediaStore +import java.io.File +import java.security.SecureRandom + +object RecoveryKeyManager { + private const val APP_FOLDER = "APP Lock by AP" + private const val FILE_PREFIX = "recovery-key-" + private const val CHARSET = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" + private val random = SecureRandom() + + fun generateRecoveryKey(length: Int = 64): String = buildString(length) { + repeat(length) { + append(CHARSET[random.nextInt(CHARSET.length)]) + } + } + + fun saveRecoveryKeyToDownloads(context: Context, recoveryKey: String): Result = runCatching { + val fileName = "$FILE_PREFIX${System.currentTimeMillis()}.txt" + val body = "Recovery key for APP Lock by AP\n\n$recoveryKey\n" + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + val values = ContentValues().apply { + put(MediaStore.Downloads.DISPLAY_NAME, fileName) + put(MediaStore.Downloads.MIME_TYPE, "text/plain") + put(MediaStore.Downloads.RELATIVE_PATH, "${Environment.DIRECTORY_DOWNLOADS}/$APP_FOLDER") + } + val resolver = context.contentResolver + val uri = resolver.insert(MediaStore.Downloads.EXTERNAL_CONTENT_URI, values) + ?: error("Could not create download file") + resolver.openOutputStream(uri)?.bufferedWriter()?.use { it.write(body) } + ?: error("Could not open download output stream") + } else { + val downloads = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + val dir = File(downloads, APP_FOLDER).apply { mkdirs() } + File(dir, fileName).writeText(body) + } + "Downloads/$APP_FOLDER/$fileName" + } +} diff --git a/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt b/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt index 616586c..a8698a1 100644 --- a/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt +++ b/app/src/main/java/dev/pranav/applock/data/repository/AppLockRepository.kt @@ -51,6 +51,11 @@ class AppLockRepository(private val context: Context) { fun validatePattern(inputPattern: String): Boolean = preferencesRepository.validatePattern(inputPattern) + fun setRecoveryKey(recoveryKey: String) = preferencesRepository.setRecoveryKey(recoveryKey) + fun getRecoveryKey(): String? = preferencesRepository.getRecoveryKey() + fun validateRecoveryKey(inputRecoveryKey: String): Boolean = + preferencesRepository.validateRecoveryKey(inputRecoveryKey) + fun setLockType(lockType: String) = preferencesRepository.setLockType(lockType) fun getLockType(): String = preferencesRepository.getLockType() @@ -107,6 +112,12 @@ class AppLockRepository(private val context: Context) { fun isAntiUninstallOverlayEnabled(): Boolean = preferencesRepository.isAntiUninstallOverlayEnabled() + fun setPreventAllAppUninstallEnabled(enabled: Boolean) = + preferencesRepository.setPreventAllAppUninstallEnabled(enabled) + + fun isPreventAllAppUninstallEnabled(): Boolean = + preferencesRepository.isPreventAllAppUninstallEnabled() + fun setProtectEnabled(enabled: Boolean) = preferencesRepository.setProtectEnabled(enabled) fun isProtectEnabled(): Boolean = preferencesRepository.isProtectEnabled() diff --git a/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt b/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt index 47a3460..99a6189 100644 --- a/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt +++ b/app/src/main/java/dev/pranav/applock/data/repository/PreferencesRepository.kt @@ -36,6 +36,19 @@ class PreferencesRepository(context: Context) { appLockPrefs.edit(commit = true) { putString(KEY_PATTERN, pattern) } } + fun setRecoveryKey(recoveryKey: String) { + appLockPrefs.edit(commit = true) { putString(KEY_RECOVERY_KEY, recoveryKey) } + } + + fun getRecoveryKey(): String? { + return appLockPrefs.getString(KEY_RECOVERY_KEY, null) + } + + fun validateRecoveryKey(inputRecoveryKey: String): Boolean { + val storedRecoveryKey = getRecoveryKey() + return storedRecoveryKey != null && inputRecoveryKey == storedRecoveryKey + } + fun getPattern(): String? { return appLockPrefs.getString(KEY_PATTERN, null) } @@ -163,6 +176,14 @@ class PreferencesRepository(context: Context) { return settingsPrefs.getBoolean(KEY_ANTI_UNINSTALL_OVERLAY, false) } + fun setPreventAllAppUninstallEnabled(enabled: Boolean) { + settingsPrefs.edit(commit = true) { putBoolean(KEY_PREVENT_ALL_APP_UNINSTALL, enabled) } + } + + fun isPreventAllAppUninstallEnabled(): Boolean { + return settingsPrefs.getBoolean(KEY_PREVENT_ALL_APP_UNINSTALL, false) + } + fun setProtectEnabled(enabled: Boolean) { settingsPrefs.edit(commit = true) { putBoolean(KEY_APPLOCK_ENABLED, enabled) } } @@ -249,6 +270,7 @@ class PreferencesRepository(context: Context) { private const val KEY_PASSWORD = "password" private const val KEY_PATTERN = "pattern" + private const val KEY_RECOVERY_KEY = "recovery_key" private const val KEY_BIOMETRIC_AUTH_ENABLED = "use_biometric_auth" private const val KEY_DISABLE_HAPTICS = "disable_haptics" private const val KEY_USE_MAX_BRIGHTNESS = "use_max_brightness" @@ -260,6 +282,7 @@ class PreferencesRepository(context: Context) { private const val KEY_ANTI_UNINSTALL_USAGE_STATS = "anti_uninstall_usage_stats" private const val KEY_ANTI_UNINSTALL_ACCESSIBILITY = "anti_uninstall_accessibility" private const val KEY_ANTI_UNINSTALL_OVERLAY = "anti_uninstall_overlay" + private const val KEY_PREVENT_ALL_APP_UNINSTALL = "prevent_all_app_uninstall" private const val KEY_UNLOCK_TIME_DURATION = "unlock_time_duration" private const val KEY_BACKEND_IMPLEMENTATION = "backend_implementation" private const val KEY_COMMUNITY_LINK_SHOWN = "community_link_shown" @@ -278,6 +301,7 @@ class PreferencesRepository(context: Context) { const val LOCK_TYPE_PIN = "pin" const val LOCK_TYPE_PATTERN = "pattern" + const val LOCK_TYPE_PASSWORD = "password" // Static flows to ensure all repository instances share the same state private val _amoledModeFlow = MutableStateFlow(false) diff --git a/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt b/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt index 5c3cd01..990413a 100644 --- a/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt @@ -38,6 +38,7 @@ import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.rounded.KeyboardArrowRight import androidx.compose.material3.* +import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -69,6 +70,7 @@ import dev.pranav.applock.services.AppLockManager import dev.pranav.applock.ui.icons.Backspace import dev.pranav.applock.ui.icons.Fingerprint import dev.pranav.applock.ui.theme.AppLockTheme +import dev.pranav.applock.features.setpassword.ui.RecoveryKeyDialog import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -304,7 +306,24 @@ class PasswordOverlayActivity : FragmentActivity() { lockedAppIcon = appIcon, triggeringPackageName = triggeringPackageNameFromIntent, onPatternAttempt = onPatternAttemptCallback, - onBiometricAuth = { triggerBiometricPrompt() } + onBiometricAuth = { triggerBiometricPrompt() }, + onForgotPasscodeReset = { launchResetFlow() } + ) + } + + PreferencesRepository.LOCK_TYPE_PASSWORD -> { + PasswordOverlayScreen( + modifier = Modifier.padding(innerPadding), + showBiometricButton = appLockRepository.isBiometricAuthEnabled(), + fromMainActivity = false, + useTextPassword = true, + onBiometricAuth = { triggerBiometricPrompt() }, + onAuthSuccess = { IntruderSelfieManager.resetFailedAttempts() }, + lockedAppName = appName, + lockedAppIcon = appIcon, + triggeringPackageName = triggeringPackageNameFromIntent, + onForgotPasscodeReset = { launchResetFlow() }, + onPinAttempt = onPinAttemptCallback ) } @@ -318,6 +337,7 @@ class PasswordOverlayActivity : FragmentActivity() { lockedAppName = appName, lockedAppIcon = appIcon, triggeringPackageName = triggeringPackageNameFromIntent, + onForgotPasscodeReset = { launchResetFlow() }, onPinAttempt = onPinAttemptCallback ) } @@ -327,6 +347,13 @@ class PasswordOverlayActivity : FragmentActivity() { } } + private fun launchResetFlow() { + startActivity(Intent(this, dev.pranav.applock.MainActivity::class.java).apply { + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP) + }) + finish() + } + private fun setupBiometricPromptInternal() { executor = ContextCompat.getMainExecutor(this) biometricPrompt = @@ -462,6 +489,8 @@ fun PasswordOverlayScreen( lockedAppName: String? = null, lockedAppIcon: Drawable? = null, triggeringPackageName: String? = null, + useTextPassword: Boolean = false, + onForgotPasscodeReset: (() -> Unit)? = null, onPinAttempt: ((pin: String, isFinal: Boolean) -> Boolean)? = null ) { val appLockRepository = LocalContext.current.appLockRepository() @@ -480,9 +509,62 @@ fun PasswordOverlayScreen( ) { val passwordState = remember { mutableStateOf("") } var showError by remember { mutableStateOf(false) } + var showRecoveryDialog by remember { mutableStateOf(false) } val minLength = 4 - if (isLandscape) { + if (showRecoveryDialog) { + RecoveryKeyDialog( + onDismiss = { showRecoveryDialog = false }, + onValidated = { onForgotPasscodeReset?.invoke() } + ) + } + + if (useTextPassword) { + Column( + modifier = Modifier + .fillMaxSize() + .padding(24.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center + ) { + AppHeader( + fromMainActivity = fromMainActivity, + lockedAppName = lockedAppName, + lockedAppIcon = lockedAppIcon, + style = MaterialTheme.typography.headlineSmall + ) + Spacer(modifier = Modifier.height(24.dp)) + OutlinedTextField( + value = passwordState.value, + onValueChange = { + passwordState.value = it + showError = false + }, + label = { Text("Password") }, + visualTransformation = PasswordVisualTransformation(), + singleLine = true, + modifier = Modifier.fillMaxWidth() + ) + if (showError) { + Spacer(modifier = Modifier.height(8.dp)) + Text(stringResource(R.string.incorrect_password_error), color = MaterialTheme.colorScheme.error) + } + Spacer(modifier = Modifier.height(16.dp)) + Button(onClick = { + val valid = onPinAttempt?.invoke(passwordState.value, true) ?: false + if (valid) { + onAuthSuccess() + } else { + showError = true + passwordState.value = "" + } + }, modifier = Modifier.fillMaxWidth()) { Text("Unlock") } + TextButton(onClick = { showRecoveryDialog = true }) { Text("Forgot passcode?") } + if (showBiometricButton) { + TextButton(onClick = onBiometricAuth) { Text("Use biometric") } + } + } + } else if (isLandscape) { Row( modifier = Modifier .fillMaxSize() @@ -541,6 +623,7 @@ fun PasswordOverlayScreen( }, onPinIncorrect = { showError = true } ) + TextButton(onClick = { showRecoveryDialog = true }) { Text("Forgot passcode?") } } } } else { @@ -599,6 +682,7 @@ fun PasswordOverlayScreen( }, onPinIncorrect = { showError = true } ) + TextButton(onClick = { showRecoveryDialog = true }) { Text("Forgot passcode?") } } } } @@ -1137,6 +1221,7 @@ fun KeypadRow( } else { Text( text = key, + color = contentColor, style = MaterialTheme.typography.headlineLargeEmphasized.copy( fontSize = animatedFontSize.sp ), diff --git a/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PatternLockScreen.kt b/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PatternLockScreen.kt index b58e8b8..d4c337c 100644 --- a/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PatternLockScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PatternLockScreen.kt @@ -25,6 +25,7 @@ import androidx.compose.material3.IconButtonDefaults import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text +import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue @@ -57,7 +58,8 @@ fun PatternLockScreen( lockedAppIcon: Drawable? = null, triggeringPackageName: String? = null, onPatternAttempt: ((pattern: String) -> Boolean)? = null, - onBiometricAuth: (() -> Unit)? = null + onBiometricAuth: (() -> Unit)? = null, + onForgotPasscodeReset: (() -> Unit)? = null ) { val appLockRepository = LocalContext.current.appLockRepository() val context = LocalContext.current @@ -146,6 +148,8 @@ fun PatternLockScreen( ) } + TextButton(onClick = { onForgotPasscodeReset?.invoke() }) { Text("Forgot passcode?") } + if (appLockRepository.isBiometricAuthEnabled() && onBiometricAuth != null) { Spacer(modifier = Modifier.height(24.dp)) FilledTonalIconButton( @@ -239,6 +243,8 @@ fun PatternLockScreen( callback = lockCallback ) + TextButton(onClick = { onForgotPasscodeReset?.invoke() }) { Text("Forgot passcode?") } + if (appLockRepository.isBiometricAuthEnabled() && onBiometricAuth != null) { Spacer(modifier = Modifier.height(32.dp)) diff --git a/app/src/main/java/dev/pranav/applock/features/setpassword/ui/PatternSetPasswordScreen.kt b/app/src/main/java/dev/pranav/applock/features/setpassword/ui/PatternSetPasswordScreen.kt index c14d1a9..8d45555 100644 --- a/app/src/main/java/dev/pranav/applock/features/setpassword/ui/PatternSetPasswordScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/setpassword/ui/PatternSetPasswordScreen.kt @@ -44,6 +44,7 @@ import com.mrhwsn.composelock.PatternLock import dev.pranav.applock.AppLockApplication import dev.pranav.applock.R import dev.pranav.applock.core.navigation.Screen +import dev.pranav.applock.core.utils.RecoveryKeyManager import dev.pranav.applock.core.utils.vibrate import dev.pranav.applock.data.repository.PreferencesRepository @@ -61,6 +62,8 @@ fun PatternSetPasswordScreen( var showMismatchError by remember { mutableStateOf(false) } var showMinLengthError by remember { mutableStateOf(false) } var showInvalidOldPasswordError by remember { mutableStateOf(false) } + var showRecoveryDialog by remember { mutableStateOf(false) } + var generatedRecoveryKey by remember { mutableStateOf("") } val minLength = 4 val context = LocalContext.current @@ -162,12 +165,9 @@ fun PatternSetPasswordScreen( Toast.LENGTH_SHORT ).show() - navController.navigate(Screen.Main.route) { - popUpTo(Screen.SetPassword.route) { inclusive = true } - if (isFirstTimeSetup) { - popUpTo(Screen.AppIntro.route) { inclusive = true } - } - } + generatedRecoveryKey = RecoveryKeyManager.generateRecoveryKey() + appLockRepository?.setRecoveryKey(generatedRecoveryKey) + showRecoveryDialog = true } else { showMismatchError = true confirmPatternState = "" @@ -176,6 +176,21 @@ fun PatternSetPasswordScreen( } } + if (showRecoveryDialog) { + RecoveryKeyGeneratedDialog( + recoveryKey = generatedRecoveryKey, + onDismiss = { + showRecoveryDialog = false + navController.navigate(Screen.Main.route) { + popUpTo(Screen.SetPasswordPattern.route) { inclusive = true } + if (isFirstTimeSetup) { + popUpTo(Screen.AppIntro.route) { inclusive = true } + } + } + } + ) + } + Scaffold( containerColor = MaterialTheme.colorScheme.surfaceContainer, topBar = { @@ -268,7 +283,14 @@ fun PatternSetPasswordScreen( if (isFirstTimeSetup && !isVerifyOldPasswordMode && !isConfirmationMode) { TextButton(onClick = { switchToPinMethod() }) { - Text("Use PIN Instead") + Text("Use PIN") + } + TextButton(onClick = { + navController.navigate(Screen.SetPasswordText.route) { + popUpTo(Screen.SetPasswordPattern.route) { inclusive = true } + } + }) { + Text("Use Password") } } @@ -449,7 +471,12 @@ fun PatternSetPasswordScreen( if (!isVerifyOldPasswordMode && !isConfirmationMode) { TextButton(onClick = { switchToPinMethod() }) { - Text("Use PIN Instead") + Text("Use PIN") + } + TextButton(onClick = { + navController.navigate(Screen.SetPasswordText.route) + }) { + Text("Use Password") } } diff --git a/app/src/main/java/dev/pranav/applock/features/setpassword/ui/RecoveryKeyComponents.kt b/app/src/main/java/dev/pranav/applock/features/setpassword/ui/RecoveryKeyComponents.kt new file mode 100644 index 0000000..c4d385c --- /dev/null +++ b/app/src/main/java/dev/pranav/applock/features/setpassword/ui/RecoveryKeyComponents.kt @@ -0,0 +1,115 @@ +package dev.pranav.applock.features.setpassword.ui + +import android.widget.Toast +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.AlertDialog +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalClipboardManager +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.text.AnnotatedString +import androidx.compose.ui.unit.dp +import dev.pranav.applock.core.utils.RecoveryKeyManager +import dev.pranav.applock.core.utils.appLockRepository + +@Composable +fun RecoveryKeyDialog( + onDismiss: () -> Unit, + onValidated: () -> Unit +) { + val context = LocalContext.current + val repo = context.appLockRepository() + val recoveryKey = remember { mutableStateOf("") } + val error = remember { mutableStateOf(null) } + + AlertDialog( + onDismissRequest = onDismiss, + title = { Text("Forgot passcode") }, + text = { + Column { + Text("Enter your recovery key to reset your current lock.") + Spacer(Modifier.height(12.dp)) + OutlinedTextField( + value = recoveryKey.value, + onValueChange = { + recoveryKey.value = it + error.value = null + }, + modifier = Modifier.fillMaxWidth(), + singleLine = true, + label = { Text("Recovery key") }, + supportingText = { + error.value?.let { Text(it, color = MaterialTheme.colorScheme.error) } + } + ) + } + }, + confirmButton = { + TextButton(onClick = { + if (repo.validateRecoveryKey(recoveryKey.value.trim())) { + onValidated() + onDismiss() + } else { + error.value = "Invalid recovery key" + } + }) { Text("Reset lock") } + }, + dismissButton = { + TextButton(onClick = onDismiss) { Text("Cancel") } + } + ) +} + +@Composable +fun RecoveryKeyGeneratedDialog( + recoveryKey: String, + onDismiss: () -> Unit +) { + val context = LocalContext.current + val clipboardManager = LocalClipboardManager.current + + AlertDialog( + onDismissRequest = {}, + title = { Text("Save your recovery key") }, + text = { + Column(verticalArrangement = Arrangement.spacedBy(12.dp)) { + Text("This key is shown only once. Save it now to reset your lock later if you forget your passcode.") + Text( + text = recoveryKey, + style = MaterialTheme.typography.bodyMedium, + modifier = Modifier.padding(vertical = 4.dp) + ) + } + }, + confirmButton = { + TextButton(onClick = { + val result = RecoveryKeyManager.saveRecoveryKeyToDownloads(context, recoveryKey) + result.onSuccess { + Toast.makeText(context, "Recovery key saved to $it", Toast.LENGTH_LONG).show() + }.onFailure { + Toast.makeText(context, it.message ?: "Failed to save recovery key", Toast.LENGTH_LONG).show() + } + }) { Text("Save as TXT") } + }, + dismissButton = { + Column { + TextButton(onClick = { + clipboardManager.setText(AnnotatedString(recoveryKey)) + Toast.makeText(context, "Recovery key copied", Toast.LENGTH_SHORT).show() + }) { Text("Copy") } + TextButton(onClick = onDismiss) { Text("Continue") } + } + } + ) +} diff --git a/app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordScreen.kt b/app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordScreen.kt index 85fb9c5..3fec954 100644 --- a/app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordScreen.kt @@ -43,6 +43,7 @@ import androidx.navigation.NavController import dev.pranav.applock.AppLockApplication import dev.pranav.applock.R import dev.pranav.applock.core.navigation.Screen +import dev.pranav.applock.core.utils.RecoveryKeyManager import dev.pranav.applock.data.repository.PreferencesRepository import dev.pranav.applock.features.lockscreen.ui.KeypadRow import dev.pranav.applock.features.lockscreen.ui.PasswordIndicators @@ -66,6 +67,8 @@ fun SetPasswordScreen( var showMismatchError by remember { mutableStateOf(false) } var showLengthError by remember { mutableStateOf(false) } var showInvalidOldPasswordError by remember { mutableStateOf(false) } + var showRecoveryDialog by remember { mutableStateOf(false) } + var generatedRecoveryKey by remember { mutableStateOf("") } val minLength = 4 val context = LocalContext.current @@ -158,6 +161,21 @@ fun SetPasswordScreen( biometricPrompt.authenticate(promptInfo) } + if (showRecoveryDialog) { + RecoveryKeyGeneratedDialog( + recoveryKey = generatedRecoveryKey, + onDismiss = { + showRecoveryDialog = false + navController.navigate(Screen.Main.route) { + popUpTo(Screen.SetPassword.route) { inclusive = true } + if (isFirstTimeSetup) { + popUpTo(Screen.AppIntro.route) { inclusive = true } + } + } + } + ) + } + Scaffold( containerColor = MaterialTheme.colorScheme.surfaceContainer, topBar = { @@ -349,22 +367,15 @@ fun SetPasswordScreen( else -> { if (passwordState == confirmPasswordState) { appLockRepository?.setPassword(passwordState) + appLockRepository?.setLockType(PreferencesRepository.LOCK_TYPE_PIN) + generatedRecoveryKey = RecoveryKeyManager.generateRecoveryKey() + appLockRepository?.setRecoveryKey(generatedRecoveryKey) Toast.makeText( context, context.getString(R.string.password_set_successfully_toast), Toast.LENGTH_SHORT ).show() - - navController.navigate(Screen.Main.route) { - popUpTo(Screen.SetPassword.route) { - inclusive = true - } - if (isFirstTimeSetup) { - popUpTo(Screen.AppIntro.route) { - inclusive = true - } - } - } + showRecoveryDialog = true } else { showMismatchError = true confirmPasswordState = "" @@ -533,9 +544,15 @@ fun SetPasswordScreen( }, modifier = Modifier.padding(bottom = 16.dp) ) { - Text( - stringResource(R.string.use_pattern_button) - ) + Text(stringResource(R.string.use_pattern_button)) + } + TextButton( + onClick = { + navController.navigate(Screen.SetPasswordText.route) + }, + modifier = Modifier.padding(bottom = 16.dp) + ) { + Text("Use Password") } Column( @@ -592,22 +609,14 @@ fun SetPasswordScreen( if (passwordState == confirmPasswordState) { appLockRepository?.setLockType(PreferencesRepository.LOCK_TYPE_PIN) appLockRepository?.setPassword(passwordState) + generatedRecoveryKey = RecoveryKeyManager.generateRecoveryKey() + appLockRepository?.setRecoveryKey(generatedRecoveryKey) Toast.makeText( context, context.getString(R.string.password_set_successfully_toast), Toast.LENGTH_SHORT ).show() - - navController.navigate(Screen.Main.route) { - popUpTo(Screen.SetPassword.route) { - inclusive = true - } - if (isFirstTimeSetup) { - popUpTo(Screen.AppIntro.route) { - inclusive = true - } - } - } + showRecoveryDialog = true } else { showMismatchError = true confirmPasswordState = "" diff --git a/app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordTextScreen.kt b/app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordTextScreen.kt new file mode 100644 index 0000000..af4f508 --- /dev/null +++ b/app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordTextScreen.kt @@ -0,0 +1,143 @@ +package dev.pranav.applock.features.setpassword.ui + +import android.widget.Toast +import androidx.activity.ComponentActivity +import androidx.activity.compose.BackHandler +import androidx.activity.compose.LocalActivity +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Button +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.TextButton +import androidx.compose.material3.TopAppBar +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.unit.dp +import androidx.navigation.NavController +import dev.pranav.applock.AppLockApplication +import dev.pranav.applock.R +import dev.pranav.applock.core.navigation.Screen +import dev.pranav.applock.core.utils.RecoveryKeyManager +import dev.pranav.applock.data.repository.PreferencesRepository + +private fun isStrongPassword(password: String): Boolean { + return password.length >= 8 && + password.any { it.isUpperCase() } && + password.any { it.isLowerCase() } && + password.any { it.isDigit() } && + password.any { !it.isLetterOrDigit() } +} + +@Composable +fun SetPasswordTextScreen(navController: NavController, isFirstTimeSetup: Boolean) { + val context = LocalContext.current + val activity = LocalActivity.current as? ComponentActivity + val repo = remember { (context.applicationContext as? AppLockApplication)?.appLockRepository } + + var currentPassword by remember { mutableStateOf("") } + var newPassword by remember { mutableStateOf("") } + var confirmPassword by remember { mutableStateOf("") } + var error by remember { mutableStateOf(null) } + var showRecoveryDialog by remember { mutableStateOf(false) } + + BackHandler { + if (isFirstTimeSetup) { + Toast.makeText(context, R.string.set_pin_to_continue_toast, Toast.LENGTH_SHORT).show() + } else if (navController.previousBackStackEntry != null) { + navController.popBackStack() + } else { + activity?.finish() + } + } + + if (showRecoveryDialog) { + RecoveryKeyGeneratedDialog( + recoveryKey = repo?.getRecoveryKey().orEmpty(), + onDismiss = { + showRecoveryDialog = false + navController.navigate(Screen.Main.route) { + popUpTo(Screen.SetPasswordText.route) { inclusive = true } + if (isFirstTimeSetup) { + popUpTo(Screen.AppIntro.route) { inclusive = true } + } + } + } + ) + } + + Scaffold(topBar = { TopAppBar(title = { Text(if (isFirstTimeSetup) "Set Password" else "Change Password") }) }) { padding -> + Column( + modifier = Modifier + .fillMaxSize() + .padding(padding) + .padding(20.dp), + verticalArrangement = Arrangement.spacedBy(12.dp) + ) { + Text("Password must contain at least 8 characters, 1 uppercase, 1 lowercase, 1 number and 1 symbol.") + if (!isFirstTimeSetup) { + OutlinedTextField( + value = currentPassword, + onValueChange = { currentPassword = it; error = null }, + label = { Text("Current passcode") }, + visualTransformation = PasswordVisualTransformation(), + modifier = Modifier.fillMaxWidth(), + singleLine = true + ) + } + OutlinedTextField( + value = newPassword, + onValueChange = { newPassword = it; error = null }, + label = { Text("New password") }, + visualTransformation = PasswordVisualTransformation(), + modifier = Modifier.fillMaxWidth(), + singleLine = true + ) + OutlinedTextField( + value = confirmPassword, + onValueChange = { confirmPassword = it; error = null }, + label = { Text("Confirm password") }, + visualTransformation = PasswordVisualTransformation(), + modifier = Modifier.fillMaxWidth(), + singleLine = true + ) + error?.let { Text(it, color = MaterialTheme.colorScheme.error) } + Spacer(Modifier.height(8.dp)) + Button(onClick = { + when { + !isFirstTimeSetup && !(repo?.validatePassword(currentPassword) ?: false) -> error = "Current passcode is incorrect" + !isStrongPassword(newPassword) -> error = "Password does not meet complexity requirements" + newPassword != confirmPassword -> error = "Passwords do not match" + else -> { + repo?.setLockType(PreferencesRepository.LOCK_TYPE_PASSWORD) + repo?.setPassword(newPassword) + val recoveryKey = RecoveryKeyManager.generateRecoveryKey() + repo?.setRecoveryKey(recoveryKey) + showRecoveryDialog = true + } + } + }, modifier = Modifier.fillMaxWidth()) { + Text("Save password") + } + TextButton(onClick = { + navController.navigate(if (isFirstTimeSetup) Screen.SetPassword.route else Screen.ChangePasswordPin.route) + }) { Text("Use PIN") } + TextButton(onClick = { + navController.navigate(if (isFirstTimeSetup) Screen.SetPasswordPattern.route else Screen.ChangePasswordPattern.route) + }) { Text("Use Pattern") } + } + } +} diff --git a/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt b/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt index a53182b..2c4220f 100644 --- a/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/settings/ui/SettingsScreen.kt @@ -12,6 +12,7 @@ import android.widget.Toast import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.contract.ActivityResultContracts import androidx.biometric.BiometricManager +import androidx.biometric.BiometricPrompt import androidx.compose.animation.* import androidx.compose.animation.core.Spring import androidx.compose.animation.core.spring @@ -51,7 +52,9 @@ import androidx.navigation.NavController import dev.pranav.applock.R import dev.pranav.applock.core.broadcast.DeviceAdmin import dev.pranav.applock.core.navigation.Screen +import dev.pranav.applock.core.utils.BiometricStatus import dev.pranav.applock.core.utils.LogUtils +import dev.pranav.applock.core.utils.getBiometricStatus import dev.pranav.applock.core.utils.hasUsagePermission import dev.pranav.applock.core.utils.isAccessibilityServiceEnabled import dev.pranav.applock.core.utils.openAccessibilitySettings @@ -137,6 +140,7 @@ fun SettingsScreen( var antiUninstallUsageStats by remember { mutableStateOf(appLockRepository.isAntiUninstallUsageStatsEnabled()) } var antiUninstallAccessibility by remember { mutableStateOf(appLockRepository.isAntiUninstallAccessibilityEnabled()) } var antiUninstallOverlay by remember { mutableStateOf(appLockRepository.isAntiUninstallOverlayEnabled()) } + var preventAllAppUninstall by remember { mutableStateOf(appLockRepository.isPreventAllAppUninstallEnabled()) } var disableHapticFeedback by remember { mutableStateOf(appLockRepository.shouldDisableHaptics()) } var loggingEnabled by remember { mutableStateOf(appLockRepository.isLoggingEnabled()) } @@ -158,6 +162,7 @@ fun SettingsScreen( antiUninstallUsageStats = appLockRepository.isAntiUninstallUsageStatsEnabled() antiUninstallAccessibility = appLockRepository.isAntiUninstallAccessibilityEnabled() antiUninstallOverlay = appLockRepository.isAntiUninstallOverlayEnabled() + preventAllAppUninstall = appLockRepository.isPreventAllAppUninstallEnabled() disableHapticFeedback = appLockRepository.shouldDisableHaptics() loggingEnabled = appLockRepository.isLoggingEnabled() intruderSelfieEnabled = appLockRepository.isIntruderSelfieEnabled() @@ -174,6 +179,44 @@ fun SettingsScreen( } val biometricManager = remember { BiometricManager.from(context) } + var isSettingsAuthorized by remember { mutableStateOf(false) } + + LaunchedEffect(Unit) { + when (val biometricStatus = getBiometricStatus(context)) { + BiometricStatus.Available -> { + val activity = context as? androidx.fragment.app.FragmentActivity ?: return@LaunchedEffect + val executor = ContextCompat.getMainExecutor(context) + val prompt = BiometricPrompt(activity, executor, object : BiometricPrompt.AuthenticationCallback() { + override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) { + isSettingsAuthorized = true + } + + override fun onAuthenticationError(errorCode: Int, errString: CharSequence) { + if (!isSettingsAuthorized) navController.popBackStack() + } + }) + val promptInfo = BiometricPrompt.PromptInfo.Builder() + .setTitle("Settings") + .setSubtitle("Biometric authentication required") + .setAllowedAuthenticators(BiometricManager.Authenticators.BIOMETRIC_STRONG) + .setNegativeButtonText("Cancel") + .build() + prompt.authenticate(promptInfo) + } + is BiometricStatus.Unavailable -> { + Toast.makeText(context, biometricStatus.message, Toast.LENGTH_LONG).show() + navController.popBackStack() + } + } + } + + if (!isSettingsAuthorized) { + Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { + Text("Authenticate with biometrics to open Settings") + } + return + } + val isBiometricAvailable = remember { biometricManager.canAuthenticate( BiometricManager.Authenticators.BIOMETRIC_WEAK or @@ -307,11 +350,14 @@ fun SettingsScreen( ) } - SettingsCard(index = 2, listSize = 3) { + SettingsCard(index = 2, listSize = 4) { ClickableItem( title = "Change Lock", - summary = if (appLockRepository.getLockType() == PreferencesRepository.LOCK_TYPE_PATTERN) - "Update your unlock pattern" else "Update your unlock PIN", + summary = when (appLockRepository.getLockType()) { + PreferencesRepository.LOCK_TYPE_PATTERN -> "Update your unlock pattern" + PreferencesRepository.LOCK_TYPE_PASSWORD -> "Update your unlock password" + else -> "Update your unlock PIN" + }, icon = Icons.Default.Lock, onClick = { navController.navigate(Screen.ChangePassword.route) @@ -319,6 +365,19 @@ fun SettingsScreen( ) } + SettingsCard(index = 3, listSize = 4) { + SwitchItem( + title = "Prevent all app uninstall", + summary = "Require protection before any app uninstall attempt", + icon = Icons.Outlined.Security, + checked = preventAllAppUninstall, + onCheckedChange = { + preventAllAppUninstall = it + appLockRepository.setPreventAllAppUninstallEnabled(it) + } + ) + } + SectionTitle(text = "Intruder Selfie") SettingsCard(index = 0, listSize = 3) { diff --git a/app/src/main/java/dev/pranav/applock/services/AppLockAccessibilityService.kt b/app/src/main/java/dev/pranav/applock/services/AppLockAccessibilityService.kt index 1264b9d..cc12009 100644 --- a/app/src/main/java/dev/pranav/applock/services/AppLockAccessibilityService.kt +++ b/app/src/main/java/dev/pranav/applock/services/AppLockAccessibilityService.kt @@ -225,6 +225,13 @@ class AppLockAccessibilityService : AccessibilityService() { val className = event.className?.toString() ?: "" val root = rootInActiveWindow + if (appLockRepository.isPreventAllAppUninstallEnabled()) { + if (className.contains("Uninstaller") || className.contains("PackageInstaller") || containsTextRecursive(root, "Uninstall")) { + blockAccess("App uninstall is protected.") + return + } + } + if (root != null && (containsTextRecursive(root, "dev.pranav.applock") || containsTextRecursive(root, "APP Lock by AP"))) { if (className.contains("AppDetails") || className.contains("InstalledAppDetails") || className.contains("Uninstaller") || className.contains("PackageInstaller") || From 0845f8f81ab5e6f907690bafc86e337a0dfeac17 Mon Sep 17 00:00:00 2001 From: AP Date: Wed, 18 Mar 2026 16:49:46 +0530 Subject: [PATCH 9/9] **Core & Security** - **Simplified Password/Pattern Setup:** Removed the requirement to enter the current PIN, pattern, or password when changing lock settings. - **Enhanced Authentication:** Integrated Biometric/Device Credential authentication as an alternative to reset passwords and patterns when not in first-time setup mode. - **Anti-Uninstall Protections:** Added confirmation dialogs when removing anti-uninstall protection from apps to prevent accidental deactivations. - **Password Complexity:** Updated `SetPasswordTextScreen` to enforce strong password requirements (length, case, numbers, and symbols). **UI & UX** - **Lock Screen Visuals:** Refined the `PasswordOverlayScreen` keypad styling with improved container colors and dynamic content color states for better tactile feedback. - **Improved Navigation:** Reorganized `BackHandler` and "Start Over" logic in setup screens for a more consistent user flow. - **String Resources:** Added new strings for app protection toggles and authentication prompts. **Technical Improvements** - **Version Update:** Incremented `versionCode` to 22304 and `versionName` to 3.1.0.00. - **Dependencies:** Added `ExperimentalMaterial3Api` opt-in for password text screens. --- app/build.gradle.kts | 4 +- .../antiuninstall/ui/AntiUninstallScreen.kt | 69 ++++++++- .../lockscreen/ui/PasswordOverlayScreen.kt | 4 +- .../ui/PatternSetPasswordScreen.kt | 132 ++++------------ .../setpassword/ui/SetPasswordScreen.kt | 142 +----------------- .../setpassword/ui/SetPasswordTextScreen.kt | 51 +++++-- app/src/main/res/values/strings.xml | 3 + 7 files changed, 149 insertions(+), 256 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 99aef48..0bb98b3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -18,8 +18,8 @@ android { minSdk = 26 targetSdk = 36 // targetSdkPreview = "CANARY" - versionCode = 22303 - versionName = "3.0.0.00(10-03-26)" + versionCode = 22304 + versionName = "3.1.0.00(18-03-26)" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/java/dev/pranav/applock/features/antiuninstall/ui/AntiUninstallScreen.kt b/app/src/main/java/dev/pranav/applock/features/antiuninstall/ui/AntiUninstallScreen.kt index 1c429b4..38b9fe0 100644 --- a/app/src/main/java/dev/pranav/applock/features/antiuninstall/ui/AntiUninstallScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/antiuninstall/ui/AntiUninstallScreen.kt @@ -357,11 +357,40 @@ private fun SearchTopBar( @Composable private fun AppProtectionItem(app: AppInfo, isProtected: Boolean, onToggle: () -> Unit) { + var showConfirmation by remember { mutableStateOf(false) } + + if (showConfirmation) { + AlertDialog( + onDismissRequest = { showConfirmation = false }, + title = { Text("Remove Protection?") }, + text = { Text("Are you sure you want to remove anti-uninstall protection from ${app.name}?") }, + confirmButton = { + TextButton(onClick = { + showConfirmation = false + onToggle() + }) { + Text("Remove", color = MaterialTheme.colorScheme.error) + } + }, + dismissButton = { + TextButton(onClick = { showConfirmation = false }) { + Text("Cancel") + } + } + ) + } + Surface( modifier = Modifier .fillMaxWidth() .clip(RoundedCornerShape(12.dp)) - .clickable { onToggle() }, + .clickable { + if (isProtected) { + showConfirmation = true + } else { + onToggle() + } + }, color = MaterialTheme.colorScheme.surfaceContainer, shape = RoundedCornerShape(12.dp) ) { @@ -393,18 +422,50 @@ private fun AppProtectionItem(app: AppInfo, isProtected: Boolean, onToggle: () - overflow = TextOverflow.Ellipsis ) } - Switch(checked = isProtected, onCheckedChange = { onToggle() }) + Switch( + checked = isProtected, + onCheckedChange = { + if (isProtected) { + showConfirmation = true + } else { + onToggle() + } + } + ) } } } @Composable private fun ManualPackageItem(packageName: String, onToggle: () -> Unit) { + var showConfirmation by remember { mutableStateOf(false) } + + if (showConfirmation) { + AlertDialog( + onDismissRequest = { showConfirmation = false }, + title = { Text("Remove Protection?") }, + text = { Text("Are you sure you want to remove anti-uninstall protection from $packageName?") }, + confirmButton = { + TextButton(onClick = { + showConfirmation = false + onToggle() + }) { + Text("Remove", color = MaterialTheme.colorScheme.error) + } + }, + dismissButton = { + TextButton(onClick = { showConfirmation = false }) { + Text("Cancel") + } + } + ) + } + Surface( modifier = Modifier .fillMaxWidth() .clip(RoundedCornerShape(12.dp)) - .clickable { onToggle() }, + .clickable { showConfirmation = true }, color = MaterialTheme.colorScheme.surfaceContainer, shape = RoundedCornerShape(12.dp) ) { @@ -437,7 +498,7 @@ private fun ManualPackageItem(packageName: String, onToggle: () -> Unit) { color = MaterialTheme.colorScheme.onSurfaceVariant ) } - Switch(checked = true, onCheckedChange = { onToggle() }) + Switch(checked = true, onCheckedChange = { showConfirmation = true }) } } } diff --git a/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt b/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt index 990413a..e668f1c 100644 --- a/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/lockscreen/ui/PasswordOverlayScreen.kt @@ -1174,7 +1174,7 @@ fun KeypadRow( val targetColor = if (isPressed) { MaterialTheme.colorScheme.primaryContainer } else { - if (icons.isNotEmpty() && index < icons.size && icons[index] != null) MaterialTheme.colorScheme.secondaryContainer else MaterialTheme.colorScheme.surfaceBright + MaterialTheme.colorScheme.secondaryContainer } val animatedContainerColor by animateColorAsState( @@ -1209,7 +1209,7 @@ fun KeypadRow( ), elevation = ButtonDefaults.filledTonalButtonElevation() ) { - val contentColor = MaterialTheme.colorScheme.onPrimaryContainer + val contentColor = if (isPressed) MaterialTheme.colorScheme.onPrimaryContainer else MaterialTheme.colorScheme.onSecondaryContainer if (icons.isNotEmpty() && index < icons.size && icons[index] != null) { Icon( diff --git a/app/src/main/java/dev/pranav/applock/features/setpassword/ui/PatternSetPasswordScreen.kt b/app/src/main/java/dev/pranav/applock/features/setpassword/ui/PatternSetPasswordScreen.kt index 8d45555..ff19fdc 100644 --- a/app/src/main/java/dev/pranav/applock/features/setpassword/ui/PatternSetPasswordScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/setpassword/ui/PatternSetPasswordScreen.kt @@ -57,11 +57,9 @@ fun PatternSetPasswordScreen( var patternState by remember { mutableStateOf("") } var confirmPatternState by remember { mutableStateOf("") } var isConfirmationMode by remember { mutableStateOf(false) } - var isVerifyOldPasswordMode by remember { mutableStateOf(!isFirstTimeSetup) } var showMismatchError by remember { mutableStateOf(false) } var showMinLengthError by remember { mutableStateOf(false) } - var showInvalidOldPasswordError by remember { mutableStateOf(false) } var showRecoveryDialog by remember { mutableStateOf(false) } var generatedRecoveryKey by remember { mutableStateOf("") } @@ -77,23 +75,6 @@ fun PatternSetPasswordScreen( val screenHeight = windowInfo.containerSize.height val isLandscape = screenWidth > screenHeight - BackHandler { - if (isFirstTimeSetup) { - if (isConfirmationMode) { - isConfirmationMode = false - } else { - Toast.makeText(context, R.string.set_pin_to_continue_toast, Toast.LENGTH_SHORT) - .show() - } - } else { - if (navController.previousBackStackEntry != null) { - navController.popBackStack() - } else { - activity?.finish() - } - } - } - val fragmentActivity = LocalActivity.current as? androidx.fragment.app.FragmentActivity fun launchDeviceCredentialAuth() { @@ -111,15 +92,29 @@ fun PatternSetPasswordScreen( object : BiometricPrompt.AuthenticationCallback() { override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) { super.onAuthenticationSucceeded(result) - isVerifyOldPasswordMode = false - patternState = "" - confirmPatternState = "" - showInvalidOldPasswordError = false + // In this context, we just allow them to set a new pattern } }) biometricPrompt.authenticate(promptInfo) } + BackHandler { + if (isFirstTimeSetup) { + if (isConfirmationMode) { + isConfirmationMode = false + } else { + Toast.makeText(context, R.string.set_pin_to_continue_toast, Toast.LENGTH_SHORT) + .show() + } + } else { + if (navController.previousBackStackEntry != null) { + navController.popBackStack() + } else { + activity?.finish() + } + } + } + fun switchToPinMethod() { navController.navigate(Screen.SetPassword.route) { popUpTo(Screen.SetPasswordPattern.route) { inclusive = true } @@ -128,7 +123,6 @@ fun PatternSetPasswordScreen( fun submitPattern() { val currentPattern = when { - isVerifyOldPasswordMode -> patternState isConfirmationMode -> confirmPatternState else -> patternState } @@ -139,17 +133,6 @@ fun PatternSetPasswordScreen( } when { - isVerifyOldPasswordMode -> { - if (appLockRepository!!.validatePattern(patternState)) { - isVerifyOldPasswordMode = false - patternState = "" - showInvalidOldPasswordError = false - } else { - showInvalidOldPasswordError = true - patternState = "" - } - } - !isConfirmationMode -> { isConfirmationMode = true showMinLengthError = false @@ -199,7 +182,6 @@ fun PatternSetPasswordScreen( title = { Text( text = when { - isVerifyOldPasswordMode -> stringResource(R.string.enter_current_pin_title) isConfirmationMode -> stringResource(R.string.confirm_pin_title) else -> stringResource(R.string.set_new_pin_title) }, @@ -230,7 +212,6 @@ fun PatternSetPasswordScreen( ) { Text( text = when { - isVerifyOldPasswordMode -> "Enter current Pattern" isConfirmationMode -> "Confirm pattern" else -> "Create a pattern" }, @@ -256,14 +237,6 @@ fun PatternSetPasswordScreen( textAlign = TextAlign.Center ) } - if (showInvalidOldPasswordError) { - Text( - text = "Incorrect pattern", - color = MaterialTheme.colorScheme.error, - style = MaterialTheme.typography.bodySmall, - textAlign = TextAlign.Center - ) - } Spacer(modifier = Modifier.height(12.dp)) @@ -274,14 +247,14 @@ fun PatternSetPasswordScreen( textAlign = TextAlign.Center ) - if (isVerifyOldPasswordMode) { + if (!isFirstTimeSetup) { Spacer(modifier = Modifier.height(12.dp)) TextButton(onClick = { launchDeviceCredentialAuth() }) { Text(stringResource(R.string.reset_using_device_password_button)) } } - if (isFirstTimeSetup && !isVerifyOldPasswordMode && !isConfirmationMode) { + if (isFirstTimeSetup && !isConfirmationMode) { TextButton(onClick = { switchToPinMethod() }) { Text("Use PIN") } @@ -294,33 +267,18 @@ fun PatternSetPasswordScreen( } } - if (isVerifyOldPasswordMode || isConfirmationMode) { + if (isConfirmationMode) { Spacer(modifier = Modifier.height(8.dp)) TextButton( onClick = { - if (isVerifyOldPasswordMode) { - if (navController.previousBackStackEntry != null) { - navController.popBackStack() - } else { - activity?.finish() - } - } else { - isConfirmationMode = false - if (!isFirstTimeSetup) { - isVerifyOldPasswordMode = true - } - } + isConfirmationMode = false patternState = "" confirmPatternState = "" showMismatchError = false showMinLengthError = false - showInvalidOldPasswordError = false } ) { - Text( - if (isVerifyOldPasswordMode) stringResource(R.string.cancel_button) - else stringResource(R.string.start_over_button) - ) + Text(stringResource(R.string.start_over_button)) } } } @@ -351,9 +309,7 @@ fun PatternSetPasswordScreen( override fun onResult(result: List) { val patternString = result.joinToString("") { it.id.toString() } - if (isVerifyOldPasswordMode) { - patternState = patternString - } else if (isConfirmationMode) { + if (isConfirmationMode) { confirmPatternState = patternString } else { patternState = patternString @@ -377,7 +333,6 @@ fun PatternSetPasswordScreen( ) { Text( text = when { - isVerifyOldPasswordMode -> stringResource(R.string.enter_current_pin_label) isConfirmationMode -> stringResource(R.string.confirm_new_pin_label) else -> stringResource(R.string.create_new_pin_label) }, @@ -405,16 +360,6 @@ fun PatternSetPasswordScreen( ) } - if (showInvalidOldPasswordError) { - Spacer(modifier = Modifier.height(8.dp)) - Text( - text = "Incorrect pattern", - color = MaterialTheme.colorScheme.error, - style = MaterialTheme.typography.labelLarge, - textAlign = TextAlign.Center - ) - } - Spacer(modifier = Modifier.height(8.dp)) Text( text = stringResource(R.string.enter_pattern_to_continue), @@ -455,9 +400,7 @@ fun PatternSetPasswordScreen( override fun onResult(result: List) { val patternString = result.joinToString("") { it.id.toString() } - if (isVerifyOldPasswordMode) { - patternState = patternString - } else if (isConfirmationMode) { + if (isConfirmationMode) { confirmPatternState = patternString } else { patternState = patternString @@ -469,7 +412,7 @@ fun PatternSetPasswordScreen( Spacer(modifier = Modifier.height(16.dp)) - if (!isVerifyOldPasswordMode && !isConfirmationMode) { + if (!isConfirmationMode) { TextButton(onClick = { switchToPinMethod() }) { Text("Use PIN") } @@ -480,38 +423,23 @@ fun PatternSetPasswordScreen( } } - if (isVerifyOldPasswordMode) { + if (!isFirstTimeSetup) { TextButton(onClick = { launchDeviceCredentialAuth() }) { Text(stringResource(R.string.reset_using_device_password_button)) } } - if (isVerifyOldPasswordMode || isConfirmationMode) { + if (isConfirmationMode) { TextButton( onClick = { - if (isVerifyOldPasswordMode) { - if (navController.previousBackStackEntry != null) { - navController.popBackStack() - } else { - activity?.finish() - } - } else { - isConfirmationMode = false - if (!isFirstTimeSetup) { - isVerifyOldPasswordMode = true - } - } + isConfirmationMode = false patternState = "" confirmPatternState = "" showMismatchError = false showMinLengthError = false - showInvalidOldPasswordError = false } ) { - Text( - if (isVerifyOldPasswordMode) stringResource(R.string.cancel_button) - else stringResource(R.string.start_over_button) - ) + Text(stringResource(R.string.start_over_button)) } } } diff --git a/app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordScreen.kt b/app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordScreen.kt index 3fec954..74aec19 100644 --- a/app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordScreen.kt @@ -62,11 +62,8 @@ fun SetPasswordScreen( var confirmPasswordState by remember { mutableStateOf("") } var isConfirmationMode by remember { mutableStateOf(false) } - var isVerifyOldPasswordMode by remember { mutableStateOf(!isFirstTimeSetup) } - var showMismatchError by remember { mutableStateOf(false) } var showLengthError by remember { mutableStateOf(false) } - var showInvalidOldPasswordError by remember { mutableStateOf(false) } var showRecoveryDialog by remember { mutableStateOf(false) } var generatedRecoveryKey by remember { mutableStateOf("") } val minLength = 4 @@ -134,33 +131,6 @@ fun SetPasswordScreen( } } - val fragmentActivity = LocalActivity.current as? androidx.fragment.app.FragmentActivity - - fun launchDeviceCredentialAuth() { - if (fragmentActivity == null) return - val executor = ContextCompat.getMainExecutor(context) - val promptInfo = BiometricPrompt.PromptInfo.Builder() - .setTitle(context.getString(R.string.authenticate_to_reset_pin_title)) - .setSubtitle(context.getString(R.string.use_device_pin_pattern_password_subtitle)) - .setAllowedAuthenticators( - BiometricManager.Authenticators.BIOMETRIC_STRONG or BiometricManager.Authenticators.DEVICE_CREDENTIAL - ) - .build() - val biometricPrompt = BiometricPrompt( - fragmentActivity, executor, - object : BiometricPrompt.AuthenticationCallback() { - override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) { - super.onAuthenticationSucceeded(result) - isVerifyOldPasswordMode = false - passwordState = "" - confirmPasswordState = "" - showInvalidOldPasswordError = false - } - - }) - biometricPrompt.authenticate(promptInfo) - } - if (showRecoveryDialog) { RecoveryKeyGeneratedDialog( recoveryKey = generatedRecoveryKey, @@ -184,7 +154,6 @@ fun SetPasswordScreen( title = { Text( text = when { - isVerifyOldPasswordMode -> stringResource(R.string.enter_current_pin_title) isConfirmationMode -> stringResource(R.string.confirm_pin_title) else -> stringResource(R.string.set_new_pin_title) }, @@ -217,7 +186,6 @@ fun SetPasswordScreen( ) { Text( text = when { - isVerifyOldPasswordMode -> stringResource(R.string.enter_current_pin_label) isConfirmationMode -> stringResource(R.string.confirm_new_pin_label) else -> stringResource(R.string.create_new_pin_label) }, @@ -243,17 +211,8 @@ fun SetPasswordScreen( modifier = Modifier.padding(8.dp) ) } - if (showInvalidOldPasswordError) { - Text( - text = stringResource(R.string.incorrect_pin_try_again), - color = MaterialTheme.colorScheme.error, - style = MaterialTheme.typography.bodyMedium, - modifier = Modifier.padding(8.dp) - ) - } val currentPassword = when { - isVerifyOldPasswordMode -> passwordState isConfirmationMode -> confirmPasswordState else -> passwordState } @@ -266,7 +225,6 @@ fun SetPasswordScreen( Text( text = when { - isVerifyOldPasswordMode -> stringResource(R.string.enter_current_pin_label) isConfirmationMode -> stringResource(R.string.re_enter_new_pin_confirm_label) else -> stringResource(R.string.tooltip_create_pin_min_length) }, @@ -275,41 +233,18 @@ fun SetPasswordScreen( textAlign = TextAlign.Center ) - if (isVerifyOldPasswordMode) { - Spacer(modifier = Modifier.height(16.dp)) - TextButton(onClick = { launchDeviceCredentialAuth() }) { - Text(stringResource(R.string.reset_using_device_password_button)) - } - } - - if (isVerifyOldPasswordMode || isConfirmationMode) { + if (isConfirmationMode) { Spacer(modifier = Modifier.height(8.dp)) TextButton( onClick = { - if (isVerifyOldPasswordMode) { - if (navController.previousBackStackEntry != null) { - navController.popBackStack() - } else { - activity?.finish() - } - } else { - isConfirmationMode = false - if (!isFirstTimeSetup) { - isVerifyOldPasswordMode = true - } - } + isConfirmationMode = false passwordState = "" confirmPasswordState = "" showMismatchError = false showLengthError = false - showInvalidOldPasswordError = false } ) { - Text( - if (isVerifyOldPasswordMode) stringResource(R.string.cancel_button) else stringResource( - R.string.start_over_button - ) - ) + Text(stringResource(R.string.start_over_button)) } } } @@ -321,12 +256,10 @@ fun SetPasswordScreen( ) { val onKeyClick: (String) -> Unit = { key -> val currentActivePassword = when { - isVerifyOldPasswordMode -> passwordState isConfirmationMode -> confirmPasswordState else -> passwordState } val updatePassword: (String) -> Unit = when { - isVerifyOldPasswordMode -> { newPass -> passwordState = newPass } isConfirmationMode -> { newPass -> confirmPasswordState = newPass } else -> { newPass -> passwordState = newPass } } @@ -342,23 +275,11 @@ fun SetPasswordScreen( } showMismatchError = false showLengthError = false - showInvalidOldPasswordError = false } "proceed" -> { if (currentActivePassword.length >= minLength) { when { - isVerifyOldPasswordMode -> { - if (appLockRepository!!.validatePassword(passwordState)) { - isVerifyOldPasswordMode = false - passwordState = "" - showInvalidOldPasswordError = false - } else { - showInvalidOldPasswordError = true - passwordState = "" - } - } - !isConfirmationMode -> { isConfirmationMode = true showLengthError = false @@ -419,7 +340,7 @@ fun SetPasswordScreen( icons = listOf( Backspace, null, - if (isConfirmationMode || isVerifyOldPasswordMode) Icons.Default.Check else Icons.AutoMirrored.Rounded.KeyboardArrowRight + if (isConfirmationMode) Icons.Default.Check else Icons.AutoMirrored.Rounded.KeyboardArrowRight ), onKeyClick = onKeyClick, buttonSize = buttonSize, @@ -444,7 +365,6 @@ fun SetPasswordScreen( ) { Text( text = when { - isVerifyOldPasswordMode -> stringResource(R.string.enter_current_pin_label) isConfirmationMode -> stringResource(R.string.confirm_new_pin_label) else -> stringResource(R.string.create_new_pin_label) }, @@ -469,17 +389,8 @@ fun SetPasswordScreen( modifier = Modifier.padding(8.dp) ) } - if (showInvalidOldPasswordError) { - Text( - text = stringResource(R.string.incorrect_pin_try_again), - color = MaterialTheme.colorScheme.error, - style = MaterialTheme.typography.bodyMedium, - modifier = Modifier.padding(8.dp) - ) - } val currentPassword = when { - isVerifyOldPasswordMode -> passwordState isConfirmationMode -> confirmPasswordState else -> passwordState } @@ -490,7 +401,6 @@ fun SetPasswordScreen( Text( text = when { - isVerifyOldPasswordMode -> stringResource(R.string.enter_current_pin_label) isConfirmationMode -> stringResource(R.string.re_enter_new_pin_confirm_label) else -> stringResource(R.string.tooltip_create_pin_min_length) }, @@ -501,40 +411,18 @@ fun SetPasswordScreen( Spacer(modifier = Modifier.weight(1f)) - if (isVerifyOldPasswordMode) { - TextButton(onClick = { launchDeviceCredentialAuth() }) { - Text(stringResource(R.string.reset_using_device_password_button)) - } - } - - if (isVerifyOldPasswordMode || isConfirmationMode) { + if (isConfirmationMode) { TextButton( onClick = { - if (isVerifyOldPasswordMode) { - if (navController.previousBackStackEntry != null) { - navController.popBackStack() - } else { - activity?.finish() - } - } else { - isConfirmationMode = false - if (!isFirstTimeSetup) { - isVerifyOldPasswordMode = true - } - } + isConfirmationMode = false passwordState = "" confirmPasswordState = "" showMismatchError = false showLengthError = false - showInvalidOldPasswordError = false }, modifier = Modifier.padding(bottom = 16.dp) ) { - Text( - if (isVerifyOldPasswordMode) stringResource(R.string.cancel_button) else stringResource( - R.string.start_over_button - ) - ) + Text(stringResource(R.string.start_over_button)) } } @@ -562,12 +450,10 @@ fun SetPasswordScreen( ) { val onKeyClick: (String) -> Unit = { key -> val currentActivePassword = when { - isVerifyOldPasswordMode -> passwordState isConfirmationMode -> confirmPasswordState else -> passwordState } val updatePassword: (String) -> Unit = when { - isVerifyOldPasswordMode -> { newPass -> passwordState = newPass } isConfirmationMode -> { newPass -> confirmPasswordState = newPass } else -> { newPass -> passwordState = newPass } } @@ -583,23 +469,11 @@ fun SetPasswordScreen( } showMismatchError = false showLengthError = false - showInvalidOldPasswordError = false } "proceed" -> { if (currentActivePassword.length >= minLength) { when { - isVerifyOldPasswordMode -> { - if (appLockRepository!!.validatePassword(passwordState)) { - isVerifyOldPasswordMode = false - passwordState = "" - showInvalidOldPasswordError = false - } else { - showInvalidOldPasswordError = true - passwordState = "" - } - } - !isConfirmationMode -> { isConfirmationMode = true showLengthError = false @@ -660,7 +534,7 @@ fun SetPasswordScreen( icons = listOf( Backspace, null, - if (isConfirmationMode || isVerifyOldPasswordMode) Icons.Default.Check else Icons.AutoMirrored.Rounded.KeyboardArrowRight + if (isConfirmationMode) Icons.Default.Check else Icons.AutoMirrored.Rounded.KeyboardArrowRight ), onKeyClick = onKeyClick, buttonSize = buttonSize, diff --git a/app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordTextScreen.kt b/app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordTextScreen.kt index af4f508..83be728 100644 --- a/app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordTextScreen.kt +++ b/app/src/main/java/dev/pranav/applock/features/setpassword/ui/SetPasswordTextScreen.kt @@ -1,9 +1,13 @@ +@file:OptIn(ExperimentalMaterial3Api::class) + package dev.pranav.applock.features.setpassword.ui import android.widget.Toast import androidx.activity.ComponentActivity import androidx.activity.compose.BackHandler import androidx.activity.compose.LocalActivity +import androidx.biometric.BiometricManager +import androidx.biometric.BiometricPrompt import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer @@ -12,6 +16,7 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.material3.Button +import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Scaffold @@ -25,8 +30,10 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.unit.dp +import androidx.core.content.ContextCompat import androidx.navigation.NavController import dev.pranav.applock.AppLockApplication import dev.pranav.applock.R @@ -48,12 +55,35 @@ fun SetPasswordTextScreen(navController: NavController, isFirstTimeSetup: Boolea val activity = LocalActivity.current as? ComponentActivity val repo = remember { (context.applicationContext as? AppLockApplication)?.appLockRepository } - var currentPassword by remember { mutableStateOf("") } var newPassword by remember { mutableStateOf("") } var confirmPassword by remember { mutableStateOf("") } var error by remember { mutableStateOf(null) } var showRecoveryDialog by remember { mutableStateOf(false) } + val fragmentActivity = LocalActivity.current as? androidx.fragment.app.FragmentActivity + + fun launchDeviceCredentialAuth() { + if (fragmentActivity == null) return + val executor = ContextCompat.getMainExecutor(context) + val promptInfo = BiometricPrompt.PromptInfo.Builder() + .setTitle(context.getString(R.string.authenticate_to_reset_pin_title)) + .setSubtitle(context.getString(R.string.use_device_pin_pattern_password_subtitle)) + .setAllowedAuthenticators( + BiometricManager.Authenticators.BIOMETRIC_STRONG or BiometricManager.Authenticators.DEVICE_CREDENTIAL + ) + .build() + val biometricPrompt = BiometricPrompt( + fragmentActivity, executor, + object : BiometricPrompt.AuthenticationCallback() { + override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) { + super.onAuthenticationSucceeded(result) + // Reset current password requirement or navigate directly + // In this context, we just allow them to set a new password without current one + } + }) + biometricPrompt.authenticate(promptInfo) + } + BackHandler { if (isFirstTimeSetup) { Toast.makeText(context, R.string.set_pin_to_continue_toast, Toast.LENGTH_SHORT).show() @@ -88,16 +118,7 @@ fun SetPasswordTextScreen(navController: NavController, isFirstTimeSetup: Boolea verticalArrangement = Arrangement.spacedBy(12.dp) ) { Text("Password must contain at least 8 characters, 1 uppercase, 1 lowercase, 1 number and 1 symbol.") - if (!isFirstTimeSetup) { - OutlinedTextField( - value = currentPassword, - onValueChange = { currentPassword = it; error = null }, - label = { Text("Current passcode") }, - visualTransformation = PasswordVisualTransformation(), - modifier = Modifier.fillMaxWidth(), - singleLine = true - ) - } + OutlinedTextField( value = newPassword, onValueChange = { newPassword = it; error = null }, @@ -118,7 +139,6 @@ fun SetPasswordTextScreen(navController: NavController, isFirstTimeSetup: Boolea Spacer(Modifier.height(8.dp)) Button(onClick = { when { - !isFirstTimeSetup && !(repo?.validatePassword(currentPassword) ?: false) -> error = "Current passcode is incorrect" !isStrongPassword(newPassword) -> error = "Password does not meet complexity requirements" newPassword != confirmPassword -> error = "Passwords do not match" else -> { @@ -132,6 +152,13 @@ fun SetPasswordTextScreen(navController: NavController, isFirstTimeSetup: Boolea }, modifier = Modifier.fillMaxWidth()) { Text("Save password") } + + if (!isFirstTimeSetup) { + TextButton(onClick = { launchDeviceCredentialAuth() }, modifier = Modifier.fillMaxWidth()) { + Text(stringResource(R.string.reset_using_device_password_button)) + } + } + TextButton(onClick = { navController.navigate(if (isFirstTimeSetup) Screen.SetPassword.route else Screen.ChangePasswordPin.route) }) { Text("Use PIN") } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 41b576d..59180f7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -112,6 +112,9 @@ Make sure you have Shizuku installed and enabled via ADB. Tap \'Next\' to grant Search No apps found Try adjusting your search + App Protection + Are you sure you want to turn ON app protection? + Are you sure you want to turn OFF app protection? Settings