From ab974305f096b48e11ca45d363f65f7ae8a15ece Mon Sep 17 00:00:00 2001 From: britty04 <22106059@srcas.ac.in> Date: Mon, 9 Feb 2026 16:40:31 +0530 Subject: [PATCH] Refactor drawable resources and update splash screen configuration - Removed unused vector drawable files for Oppo, Samsung, Sony, Vivo, and Xiaomi. - Deleted adaptive icon XML files and replaced them with JPG files for launcher icons across various densities. - Updated splash screen configuration in XML files to use the new launcher icon and reduced animation duration. - Added new feature strings for App Behavior Controller, Smart App Cooldown, Idle App Auto-Action, Action History Timeline, and System State Snapshots. --- .../patchwork/FeatureSettingsActivity.kt | 399 +++++++++++------- .../com/brittytino/patchwork/MainActivity.kt | 89 +--- .../domain/registry/FeatureRegistry.kt | 64 +++ .../domain/registry/PermissionRegistry.kt | 7 + .../ui/components/dialogs/AboutSection.kt | 4 +- .../components/sheets/BugReportBottomSheet.kt | 2 +- .../sheets/InstructionsBottomSheet.kt | 6 +- .../ui/components/sheets/UpdateBottomSheet.kt | 2 +- .../composables/watermark/WatermarkScreen.kt | 11 +- .../patchwork/ui/ime/KeyboardInputView.kt | 8 +- .../patchwork/utils/PermissionUtils.kt | 10 + .../brittytino/patchwork/utils/RootUtils.kt | 26 +- .../patchwork/viewmodels/MainViewModel.kt | 22 +- .../viewmodels/WatermarkViewModel.kt | 18 +- app/src/main/res/drawable/apple.xml | 9 - app/src/main/res/drawable/brand_github.xml | 36 -- app/src/main/res/drawable/brand_telegram.xml | 36 -- app/src/main/res/drawable/cmf.xml | 145 ------- app/src/main/res/drawable/google.xml | 9 - app/src/main/res/drawable/ic_clipboard.xml | 9 - app/src/main/res/drawable/ic_emoji.xml | 9 - app/src/main/res/drawable/ic_undo.xml | 9 - app/src/main/res/drawable/key_shift.xml | 9 - app/src/main/res/drawable/moto.xml | 14 - app/src/main/res/drawable/nothing.xml | 11 - app/src/main/res/drawable/oppo.xml | 10 - app/src/main/res/drawable/samsung.xml | 9 - app/src/main/res/drawable/sony.xml | 10 - app/src/main/res/drawable/vivo.xml | 22 - app/src/main/res/drawable/xiaomi.xml | 9 - .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 - .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 - app/src/main/res/mipmap-hdpi/ic_launcher.jpg | Bin 0 -> 1330 bytes app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 2696 -> 0 bytes .../res/mipmap-hdpi/ic_launcher_round.jpg | Bin 0 -> 1330 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 4708 -> 0 bytes app/src/main/res/mipmap-mdpi/ic_launcher.jpg | Bin 0 -> 971 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 1924 -> 0 bytes .../res/mipmap-mdpi/ic_launcher_round.jpg | Bin 0 -> 971 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 3204 -> 0 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.jpg | Bin 0 -> 1577 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 3582 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher_round.jpg | Bin 0 -> 1577 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 6376 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.jpg | Bin 0 -> 2239 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 5630 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.jpg | Bin 0 -> 2239 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 9626 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.jpg | Bin 0 -> 2971 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 7134 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.jpg | Bin 0 -> 2971 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 13372 -> 0 bytes app/src/main/res/values-night/splash.xml | 2 +- app/src/main/res/values-v31/splash.xml | 4 +- app/src/main/res/values/splash.xml | 4 +- app/src/main/res/values/strings.xml | 17 + 56 files changed, 427 insertions(+), 636 deletions(-) delete mode 100644 app/src/main/res/drawable/apple.xml delete mode 100644 app/src/main/res/drawable/brand_github.xml delete mode 100644 app/src/main/res/drawable/brand_telegram.xml delete mode 100644 app/src/main/res/drawable/cmf.xml delete mode 100644 app/src/main/res/drawable/google.xml delete mode 100644 app/src/main/res/drawable/ic_clipboard.xml delete mode 100644 app/src/main/res/drawable/ic_emoji.xml delete mode 100644 app/src/main/res/drawable/ic_undo.xml delete mode 100644 app/src/main/res/drawable/key_shift.xml delete mode 100644 app/src/main/res/drawable/moto.xml delete mode 100644 app/src/main/res/drawable/nothing.xml delete mode 100644 app/src/main/res/drawable/oppo.xml delete mode 100644 app/src/main/res/drawable/samsung.xml delete mode 100644 app/src/main/res/drawable/sony.xml delete mode 100644 app/src/main/res/drawable/vivo.xml delete mode 100644 app/src/main/res/drawable/xiaomi.xml delete mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml delete mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.jpg delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.jpg delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.jpg delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.jpg delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.jpg delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.jpg delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.jpg delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.jpg delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.jpg delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.jpg delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp diff --git a/app/src/main/java/com/brittytino/patchwork/FeatureSettingsActivity.kt b/app/src/main/java/com/brittytino/patchwork/FeatureSettingsActivity.kt index e3a91e3..dca2866 100644 --- a/app/src/main/java/com/brittytino/patchwork/FeatureSettingsActivity.kt +++ b/app/src/main/java/com/brittytino/patchwork/FeatureSettingsActivity.kt @@ -74,6 +74,11 @@ import com.brittytino.patchwork.ui.composables.configs.ScreenLockedSecuritySetti import com.brittytino.patchwork.ui.composables.configs.KeyboardSettingsUI import com.brittytino.patchwork.utils.HapticUtil import com.brittytino.patchwork.domain.registry.FeatureRegistry +import com.brittytino.patchwork.ui.screens.AppBehaviorScreen +import com.brittytino.patchwork.ui.screens.AppCooldownScreen +import com.brittytino.patchwork.ui.screens.IdleAppScreen +import com.brittytino.patchwork.ui.screens.ActionHistoryScreen +import com.brittytino.patchwork.ui.screens.SystemSnapshotsScreen @OptIn(ExperimentalMaterial3Api::class) class FeatureSettingsActivity : FragmentActivity() { @@ -178,6 +183,7 @@ class FeatureSettingsActivity : FragmentActivity() { val isOverlayPermissionGranted by viewModel.isOverlayPermissionGranted val isNotificationLightingAccessibilityEnabled by viewModel.isNotificationLightingAccessibilityEnabled val isNotificationListenerEnabled by viewModel.isNotificationListenerEnabled + val isUsageStatsPermissionGranted by viewModel.isUsageStatsPermissionGranted // FAB State for Notification Lighting var fabExpanded by remember { mutableStateOf(true) } @@ -190,7 +196,7 @@ class FeatureSettingsActivity : FragmentActivity() { } // Show permission sheet if feature has missing permissions - LaunchedEffect(featureId, isAccessibilityEnabled, isWriteSecureSettingsEnabled, isOverlayPermissionGranted, isNotificationLightingAccessibilityEnabled, isNotificationListenerEnabled) { + LaunchedEffect(featureId, isAccessibilityEnabled, isWriteSecureSettingsEnabled, isOverlayPermissionGranted, isNotificationLightingAccessibilityEnabled, isNotificationListenerEnabled, isUsageStatsPermissionGranted) { val hasMissingPermissions = when (featureId) { "Screen off widget" -> !isAccessibilityEnabled "Statusbar icons" -> !isWriteSecureSettingsEnabled @@ -203,6 +209,13 @@ class FeatureSettingsActivity : FragmentActivity() { "Freeze" -> !com.brittytino.patchwork.utils.ShellUtils.hasPermission(context) "Location reached" -> !viewModel.isLocationPermissionGranted.value || !viewModel.isBackgroundLocationPermissionGranted.value "Quick settings tiles" -> !viewModel.isWriteSettingsEnabled.value + + // New Features Check + "App Behavior Controller" -> !isAccessibilityEnabled + "Smart App Cooldown" -> !isAccessibilityEnabled || !isOverlayPermissionGranted + "Idle App Auto-Action" -> !isUsageStatsPermissionGranted + "System State Snapshots" -> !isWriteSecureSettingsEnabled + else -> false } showPermissionSheet = hasMissingPermissions @@ -290,9 +303,95 @@ class FeatureSettingsActivity : FragmentActivity() { action = { context.startActivity(Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)) }, + isGranted = isAccessibilityEnabled ), + PermissionItem( + iconRes = R.drawable.rounded_security_24, + title = R.string.perm_write_secure_title, + description = R.string.perm_write_secure_desc_night_light, + dependentFeatures = PermissionRegistry.getFeatures("WRITE_SECURE_SETTINGS"), + actionLabel = R.string.perm_action_copy_adb, + action = { + val adbCommand = "adb shell pm grant com.brittytino.patchwork android.permission.WRITE_SECURE_SETTINGS" + val clipboard = context.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager + val clip = ClipData.newPlainText("adb_command", adbCommand) + clipboard.setPrimaryClip(clip) + }, + secondaryActionLabel = R.string.perm_action_check, + secondaryAction = { + viewModel.isWriteSecureSettingsEnabled.value = viewModel.canWriteSecureSettings(context) + }, + isGranted = isWriteSecureSettingsEnabled + ) + ) + "App Behavior Controller" -> listOf( + PermissionItem( + iconRes = R.drawable.rounded_settings_accessibility_24, + title = R.string.perm_accessibility_title, + description = R.string.perm_accessibility_desc_common, + dependentFeatures = PermissionRegistry.getFeatures("ACCESSIBILITY"), + actionLabel = R.string.perm_action_enable, + action = { context.startActivity(Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)) }, isGranted = isAccessibilityEnabled ) ) + "Smart App Cooldown" -> listOf( + PermissionItem( + iconRes = R.drawable.rounded_settings_accessibility_24, + title = R.string.perm_accessibility_title, + description = R.string.perm_accessibility_desc_common, + dependentFeatures = PermissionRegistry.getFeatures("ACCESSIBILITY"), + actionLabel = R.string.perm_action_enable, + action = { context.startActivity(Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS)) }, + isGranted = isAccessibilityEnabled + ), + PermissionItem( + iconRes = R.drawable.rounded_magnify_fullscreen_24, + title = R.string.perm_overlay_title, + description = R.string.perm_overlay_desc, + dependentFeatures = PermissionRegistry.getFeatures("DRAW_OVERLAYS"), + actionLabel = R.string.perm_action_grant, + action = { + val intent = Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:${context.packageName}")) + intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK + context.startActivity(intent) + }, + isGranted = isOverlayPermissionGranted + ) + ) + "Idle App Auto-Action" -> listOf( + PermissionItem( + iconRes = R.drawable.rounded_info_24, + title = R.string.feat_idle_app_title, + description = R.string.feat_idle_app_desc, + dependentFeatures = PermissionRegistry.getFeatures("USAGE_STATS"), + actionLabel = R.string.perm_action_grant, + action = { + val intent = Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS) + intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK + context.startActivity(intent) + }, + isGranted = isUsageStatsPermissionGranted + ) + ) + "System State Snapshots" -> listOf( + PermissionItem( + iconRes = R.drawable.rounded_security_24, + title = R.string.perm_write_secure_title, + description = R.string.perm_write_secure_desc_common, + dependentFeatures = PermissionRegistry.getFeatures("WRITE_SECURE_SETTINGS"), + actionLabel = R.string.perm_action_copy_adb, + action = { + val adbCommand = "adb shell pm grant com.brittytino.patchwork android.permission.WRITE_SECURE_SETTINGS" + val clipboard = context.getSystemService(CLIPBOARD_SERVICE) as ClipboardManager + val clip = ClipData.newPlainText("adb_command", adbCommand) + clipboard.setPrimaryClip(clip) + }, + secondaryActionLabel = R.string.perm_action_check, + secondaryAction = { + viewModel.isWriteSecureSettingsEnabled.value = viewModel.canWriteSecureSettings(context) + }, + isGranted = isWriteSecureSettingsEnabled ) + ) "Dynamic night light" -> listOf( PermissionItem( iconRes = R.drawable.rounded_settings_accessibility_24, @@ -462,150 +561,168 @@ class FeatureSettingsActivity : FragmentActivity() { } val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(rememberTopAppBarState()) - Scaffold( - contentWindowInsets = androidx.compose.foundation.layout.WindowInsets(0, 0, 0, 0), - modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection), - containerColor = MaterialTheme.colorScheme.surfaceContainer, - topBar = { - ReusableTopAppBar( - title = if (featureObj != null) stringResource(featureObj.title) else featureId, - hasBack = true, - hasSearch = false, - onBackClick = { finish() }, - scrollBehavior = scrollBehavior, - subtitle = if (featureObj != null) stringResource(featureObj.description) else "", - isBeta = featureObj?.isBeta ?: false - ) - }, - floatingActionButton = { - if (featureId == "Notification lighting") { - ExtendedFloatingActionButton( - onClick = { - HapticUtil.performVirtualKeyHaptic(view) - viewModel.triggerNotificationLighting(context) - }, - expanded = fabExpanded, - icon = { Icon(painter = painterResource(id = R.drawable.rounded_play_arrow_24), contentDescription = null) }, - text = { Text(stringResource(R.string.action_preview)) }, - modifier = Modifier.height(64.dp) - ) - } + + // Check if this is a full-screen feature that manages its own Scaffold + val isFullScreenFeature = featureId == "App Behavior Controller" || + featureId == "Smart App Cooldown" || + featureId == "Idle App Auto-Action" || + featureId == "Action History Timeline" || + featureId == "System State Snapshots" + + if (isFullScreenFeature) { + when (featureId) { + "App Behavior Controller" -> AppBehaviorScreen() + "Smart App Cooldown" -> AppCooldownScreen() + "Idle App Auto-Action" -> IdleAppScreen() + "Action History Timeline" -> ActionHistoryScreen(onNavigateBack = { finish() }) + "System State Snapshots" -> SystemSnapshotsScreen(onNavigateBack = { finish() }) } - ) { innerPadding -> - val hasScroll = featureId != "Sound mode tile" - Column( - modifier = Modifier - .padding(innerPadding) - .fillMaxSize() - .then(if (hasScroll) Modifier.verticalScroll(rememberScrollState()) else Modifier) - ) { - when (featureId) { - "Screen off widget" -> { - ScreenOffWidgetSettingsUI( - viewModel = viewModel, - selectedHaptic = selectedHaptic, - onHapticSelected = { type -> selectedHaptic = type }, - vibrator = vibrator, - prefs = prefs, - modifier = Modifier.padding(top = 16.dp), - highlightSetting = highlightSetting - ) - } - "Statusbar icons" -> { - StatusBarIconSettingsUI( - viewModel = statusBarViewModel, - modifier = Modifier.padding(top = 16.dp), - highlightSetting = highlightSetting - ) - } - "Caffeinate" -> { - CaffeinateSettingsUI( - viewModel = caffeinateViewModel, - modifier = Modifier.padding(top = 16.dp), - highlightSetting = highlightSetting - ) - } - "Notification lighting" -> { - NotificationLightingSettingsUI( - viewModel = viewModel, - modifier = Modifier.padding(top = 16.dp), - highlightSetting = highlightSetting - ) - } - "Sound mode tile" -> { - SoundModeTileSettingsUI( - modifier = Modifier.padding(top = 16.dp), - highlightSetting = highlightSetting - ) - } - "Button remap" -> { - ButtonRemapSettingsUI( - viewModel = viewModel, - modifier = Modifier.padding(top = 16.dp), - highlightSetting = highlightSetting - ) - } - "Dynamic night light" -> { - DynamicNightLightSettingsUI( - viewModel = viewModel, - modifier = Modifier.padding(top = 16.dp), - highlightSetting = highlightSetting - ) - } - "Snooze system notifications" -> { - SnoozeNotificationsSettingsUI( - viewModel = viewModel, - modifier = Modifier.padding(top = 16.dp), - highlightSetting = highlightSetting - ) - } - "Screen locked security" -> { - ScreenLockedSecuritySettingsUI( - viewModel = viewModel, - modifier = Modifier.padding(top = 16.dp), - highlightSetting = highlightSetting - ) - } - "App lock" -> { - AppLockSettingsUI( - viewModel = viewModel, - highlightKey = highlightSetting - ) - } - "Freeze" -> { - com.brittytino.patchwork.ui.composables.configs.FreezeSettingsUI( - viewModel = viewModel, - modifier = Modifier.padding(top = 16.dp), - highlightKey = highlightSetting - ) - } - "Quick settings tiles" -> { - QuickSettingsTilesSettingsUI( - modifier = Modifier.padding(top = 16.dp), - highlightSetting = highlightSetting - ) - } - "Location reached" -> { - LocationReachedSettingsUI( - mainViewModel = viewModel, - modifier = Modifier.padding(top = 16.dp), - highlightSetting = highlightSetting - ) - } - "System Keyboard" -> { - KeyboardSettingsUI( - viewModel = viewModel, - modifier = Modifier.padding(top = 16.dp), - highlightSetting = highlightSetting + } else { + Scaffold( + contentWindowInsets = androidx.compose.foundation.layout.WindowInsets(0, 0, 0, 0), + modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection), + containerColor = MaterialTheme.colorScheme.surfaceContainer, + topBar = { + ReusableTopAppBar( + title = if (featureObj != null) stringResource(featureObj.title) else featureId, + hasBack = true, + hasSearch = false, + onBackClick = { finish() }, + scrollBehavior = scrollBehavior, + subtitle = if (featureObj != null) stringResource(featureObj.description) else "", + isBeta = featureObj?.isBeta ?: false + ) + }, + floatingActionButton = { + if (featureId == "Notification lighting") { + ExtendedFloatingActionButton( + onClick = { + HapticUtil.performVirtualKeyHaptic(view) + viewModel.triggerNotificationLighting(context) + }, + expanded = fabExpanded, + icon = { Icon(painter = painterResource(id = R.drawable.rounded_play_arrow_24), contentDescription = null) }, + text = { Text(stringResource(R.string.action_preview)) }, + modifier = Modifier.height(64.dp) ) } - "Batteries" -> { - BatteriesSettingsUI( - viewModel = viewModel, - modifier = Modifier.padding(top = 16.dp) - ) + } + ) { innerPadding -> + val hasScroll = featureId != "Sound mode tile" + Column( + modifier = Modifier + .padding(innerPadding) + .fillMaxSize() + .then(if (hasScroll) Modifier.verticalScroll(rememberScrollState()) else Modifier) + ) { + when (featureId) { + "Screen off widget" -> { + ScreenOffWidgetSettingsUI( + viewModel = viewModel, + selectedHaptic = selectedHaptic, + onHapticSelected = { type -> selectedHaptic = type }, + vibrator = vibrator, + prefs = prefs, + modifier = Modifier.padding(top = 16.dp), + highlightSetting = highlightSetting + ) + } + "Statusbar icons" -> { + StatusBarIconSettingsUI( + viewModel = statusBarViewModel, + modifier = Modifier.padding(top = 16.dp), + highlightSetting = highlightSetting + ) + } + "Caffeinate" -> { + CaffeinateSettingsUI( + viewModel = caffeinateViewModel, + modifier = Modifier.padding(top = 16.dp), + highlightSetting = highlightSetting + ) + } + "Notification lighting" -> { + NotificationLightingSettingsUI( + viewModel = viewModel, + modifier = Modifier.padding(top = 16.dp), + highlightSetting = highlightSetting + ) + } + "Sound mode tile" -> { + SoundModeTileSettingsUI( + modifier = Modifier.padding(top = 16.dp), + highlightSetting = highlightSetting + ) + } + "Button remap" -> { + ButtonRemapSettingsUI( + viewModel = viewModel, + modifier = Modifier.padding(top = 16.dp), + highlightSetting = highlightSetting + ) + } + "Dynamic night light" -> { + DynamicNightLightSettingsUI( + viewModel = viewModel, + modifier = Modifier.padding(top = 16.dp), + highlightSetting = highlightSetting + ) + } + "Snooze system notifications" -> { + SnoozeNotificationsSettingsUI( + viewModel = viewModel, + modifier = Modifier.padding(top = 16.dp), + highlightSetting = highlightSetting + ) + } + "Screen locked security" -> { + ScreenLockedSecuritySettingsUI( + viewModel = viewModel, + modifier = Modifier.padding(top = 16.dp), + highlightSetting = highlightSetting + ) + } + "App lock" -> { + AppLockSettingsUI( + viewModel = viewModel, + highlightKey = highlightSetting + ) + } + "Freeze" -> { + com.brittytino.patchwork.ui.composables.configs.FreezeSettingsUI( + viewModel = viewModel, + modifier = Modifier.padding(top = 16.dp), + highlightKey = highlightSetting + ) + } + "Quick settings tiles" -> { + QuickSettingsTilesSettingsUI( + modifier = Modifier.padding(top = 16.dp), + highlightSetting = highlightSetting + ) + } + "Location reached" -> { + LocationReachedSettingsUI( + mainViewModel = viewModel, + modifier = Modifier.padding(top = 16.dp), + highlightSetting = highlightSetting + ) + } + "System Keyboard" -> { + KeyboardSettingsUI( + viewModel = viewModel, + modifier = Modifier.padding(top = 16.dp), + highlightSetting = highlightSetting + ) + } + "Batteries" -> { + BatteriesSettingsUI( + viewModel = viewModel, + modifier = Modifier.padding(top = 16.dp) + ) + } + // else -> default UI (optional cleanup) } - // else -> default UI (optional cleanup) } } } diff --git a/app/src/main/java/com/brittytino/patchwork/MainActivity.kt b/app/src/main/java/com/brittytino/patchwork/MainActivity.kt index 3357659..27ed6b5 100644 --- a/app/src/main/java/com/brittytino/patchwork/MainActivity.kt +++ b/app/src/main/java/com/brittytino/patchwork/MainActivity.kt @@ -64,6 +64,11 @@ class MainActivity : FragmentActivity() { override fun onCreate(savedInstanceState: Bundle?) { // Install and configure the splash screen val splashScreen = installSplashScreen() + + // Force splash screen to dismiss after 2 seconds no matter what + // to prevent getting stuck if Compose has an issue on this device/OS + window.decorView.postDelayed({ isAppReady = true }, 2000) + splashScreen.setKeepOnScreenCondition { !isAppReady } WindowCompat.setDecorFitsSystemWindows(window, false) super.onCreate(savedInstanceState) @@ -73,74 +78,6 @@ class MainActivity : FragmentActivity() { window.isNavigationBarContrastEnforced = false } - // Keep splash screen visible while app is loading - splashScreen.setKeepOnScreenCondition { !isAppReady } - - // Customize the exit animation - scale up and fade out - // Safe implementation for OEM devices that may not provide iconView - splashScreen.setOnExitAnimationListener { splashScreenViewProvider -> - try { - val splashScreenView = splashScreenViewProvider.view - val splashIcon = try { splashScreenViewProvider.iconView } catch (e: Exception) { null } - - // Animate the splash screen view fade out - val fadeOut = ObjectAnimator.ofFloat(splashScreenView, "alpha", 1f, 0f).apply { - interpolator = AnticipateInterpolator() - duration = 750 - } - fadeOut.doOnEnd { - splashScreenViewProvider.remove() - // Re-apply edge to edge AFTER the splash screen view is removed - // to ensure it's not overridden by splash screen cleanup - enableEdgeToEdge() - } - - // Safely animate the icon if it exists - // Known issue: Some OEM devices (Samsung One UI 8, Xiaomi on Android 16) - // may not provide iconView, causing NullPointerException - try { - @Suppress("SENSELESS_COMPARISON") - if (splashIcon != null) { - // Scale down animation - val scaleUp = ObjectAnimator.ofFloat(splashIcon, "scaleX", 1f, 0.5f).apply { - interpolator = AnticipateInterpolator() - duration = 750 - } - - val scaleUpY = ObjectAnimator.ofFloat(splashIcon, "scaleY", 1f, 0.5f).apply { - interpolator = AnticipateInterpolator() - duration = 750 - } - - // rotate - val rotate360 = ObjectAnimator.ofFloat(splashIcon, "rotation", 0f, -90f).apply { - interpolator = AnticipateInterpolator() - duration = 750 - } - - scaleUp.start() - scaleUpY.start() - rotate360.start() - } else { - Log.w("SplashScreen", "iconView is null - OEM device detected") - } - } catch (e: NullPointerException) { - // Handle the edge case where iconView becomes null between check and animation - Log.w("SplashScreen", "NullPointerException on iconView animation - likely OEM device", e) - } - - fadeOut.start() - } catch (e: Exception) { - // Fallback for any unexpected exceptions during animation - Log.e("SplashScreen", "Exception during splash screen animation", e) - try { - splashScreenViewProvider.remove() - } catch (e2: Exception) { - Log.e("SplashScreen", "Exception during splash screen removal", e2) - } - } - } - Log.d("MainActivity", "onCreate with action: ${intent?.action}") handleLocationIntent(intent) @@ -148,9 +85,17 @@ class MainActivity : FragmentActivity() { HapticUtil.initialize(this) // initialize permission registry initPermissionRegistry() - // Initialize viewModel state early for correct initial composition + + // viewModel.check is also called in LaunchedEffect inside setContent. viewModel.check(this) + setContent { + // Confirm composition started and mark app as ready + LaunchedEffect(Unit) { + isAppReady = true + Log.d("MainActivity", "Composition started") + } + val isPitchBlackThemeEnabled by viewModel.isPitchBlackThemeEnabled PatchworkTheme(pitchBlackTheme = isPitchBlackThemeEnabled) { val context = LocalContext.current @@ -286,12 +231,6 @@ class MainActivity : FragmentActivity() { } } } - - - // Mark app as ready after composing (happens very quickly) - LaunchedEffect(Unit) { - isAppReady = true - } } } } diff --git a/app/src/main/java/com/brittytino/patchwork/domain/registry/FeatureRegistry.kt b/app/src/main/java/com/brittytino/patchwork/domain/registry/FeatureRegistry.kt index eee2256..5b709f0 100644 --- a/app/src/main/java/com/brittytino/patchwork/domain/registry/FeatureRegistry.kt +++ b/app/src/main/java/com/brittytino/patchwork/domain/registry/FeatureRegistry.kt @@ -520,6 +520,70 @@ object FeatureRegistry { override fun onToggle(viewModel: MainViewModel, context: Context, enabled: Boolean) {} }, + object : Feature( + id = "App Behavior Controller", + title = R.string.feat_app_behavior_title, + iconRes = R.drawable.rounded_settings_accessibility_24, + category = R.string.cat_tools, + description = R.string.feat_app_behavior_desc, + permissionKeys = listOf("ACCESSIBILITY"), + showToggle = false + ) { + override fun isEnabled(viewModel: MainViewModel) = true + override fun onToggle(viewModel: MainViewModel, context: Context, enabled: Boolean) {} + }, + + object : Feature( + id = "Smart App Cooldown", + title = R.string.feat_app_cooldown_title, + iconRes = R.drawable.rounded_timer_24, + category = R.string.cat_tools, + description = R.string.feat_app_cooldown_desc, + permissionKeys = listOf("ACCESSIBILITY", "DRAW_OVERLAYS"), + showToggle = false + ) { + override fun isEnabled(viewModel: MainViewModel) = true + override fun onToggle(viewModel: MainViewModel, context: Context, enabled: Boolean) {} + }, + + object : Feature( + id = "Idle App Auto-Action", + title = R.string.feat_idle_app_title, + iconRes = R.drawable.rounded_av_timer_24, + category = R.string.cat_tools, + description = R.string.feat_idle_app_desc, + permissionKeys = listOf("USAGE_STATS"), + showToggle = false + ) { + override fun isEnabled(viewModel: MainViewModel) = true + override fun onToggle(viewModel: MainViewModel, context: Context, enabled: Boolean) {} + }, + + object : Feature( + id = "Action History Timeline", + title = R.string.feat_action_history_title, + iconRes = R.drawable.rounded_fiber_smart_record_24, + category = R.string.cat_tools, + description = R.string.feat_action_history_desc, + showToggle = false + ) { + override fun isEnabled(viewModel: MainViewModel) = true + override fun onToggle(viewModel: MainViewModel, context: Context, enabled: Boolean) {} + }, + + object : Feature( + id = "System State Snapshots", + title = R.string.feat_system_snapshots_title, + iconRes = R.drawable.rounded_save_24, + category = R.string.cat_tools, + description = R.string.feat_system_snapshots_desc, + permissionKeys = listOf("WRITE_SECURE_SETTINGS"), + showToggle = false + ) { + override fun isEnabled(viewModel: MainViewModel) = true + override fun onToggle(viewModel: MainViewModel, context: Context, enabled: Boolean) {} + }, + object : Feature( id = "Watermarks", title = R.string.feat_watermark_title, diff --git a/app/src/main/java/com/brittytino/patchwork/domain/registry/PermissionRegistry.kt b/app/src/main/java/com/brittytino/patchwork/domain/registry/PermissionRegistry.kt index f89ffb9..a85992b 100644 --- a/app/src/main/java/com/brittytino/patchwork/domain/registry/PermissionRegistry.kt +++ b/app/src/main/java/com/brittytino/patchwork/domain/registry/PermissionRegistry.kt @@ -68,4 +68,11 @@ fun initPermissionRegistry() { // Modify system settings permission PermissionRegistry.register("WRITE_SETTINGS", R.string.feat_qs_tiles_title) + + // New Features + PermissionRegistry.register("USAGE_STATS", R.string.feat_idle_app_title) + PermissionRegistry.register("ACCESSIBILITY", R.string.feat_app_behavior_title) + PermissionRegistry.register("ACCESSIBILITY", R.string.feat_app_cooldown_title) + PermissionRegistry.register("DRAW_OVERLAYS", R.string.feat_app_cooldown_title) + PermissionRegistry.register("WRITE_SECURE_SETTINGS", R.string.feat_system_snapshots_title) } \ No newline at end of file diff --git a/app/src/main/java/com/brittytino/patchwork/ui/components/dialogs/AboutSection.kt b/app/src/main/java/com/brittytino/patchwork/ui/components/dialogs/AboutSection.kt index 167b1d9..8026ccc 100644 --- a/app/src/main/java/com/brittytino/patchwork/ui/components/dialogs/AboutSection.kt +++ b/app/src/main/java/com/brittytino/patchwork/ui/components/dialogs/AboutSection.kt @@ -119,7 +119,7 @@ fun AboutSection( modifier = Modifier.padding(horizontal = 4.dp) ) { Icon( - painter = painterResource(id = R.drawable.brand_github), + painter = painterResource(id = R.drawable.rounded_globe_24), contentDescription = null, modifier = Modifier.size(18.dp) ) @@ -161,7 +161,7 @@ fun AboutSection( modifier = Modifier.padding(horizontal = 4.dp) ) { Icon( - painter = painterResource(id = R.drawable.brand_telegram), + painter = painterResource(id = R.drawable.rounded_globe_24), contentDescription = null, modifier = Modifier.size(18.dp) ) diff --git a/app/src/main/java/com/brittytino/patchwork/ui/components/sheets/BugReportBottomSheet.kt b/app/src/main/java/com/brittytino/patchwork/ui/components/sheets/BugReportBottomSheet.kt index 8034bc1..4a35357 100644 --- a/app/src/main/java/com/brittytino/patchwork/ui/components/sheets/BugReportBottomSheet.kt +++ b/app/src/main/java/com/brittytino/patchwork/ui/components/sheets/BugReportBottomSheet.kt @@ -224,7 +224,7 @@ fun BugReportBottomSheet( }, modifier = Modifier.fillMaxWidth() ) { - Icon(painter = painterResource(R.drawable.brand_github), contentDescription = null, modifier = Modifier.size(18.dp)) + Icon(painter = painterResource(R.drawable.rounded_globe_24), contentDescription = null, modifier = Modifier.size(18.dp)) Spacer(modifier = Modifier.width(8.dp)) Text(stringResource(R.string.action_report_github)) } diff --git a/app/src/main/java/com/brittytino/patchwork/ui/components/sheets/InstructionsBottomSheet.kt b/app/src/main/java/com/brittytino/patchwork/ui/components/sheets/InstructionsBottomSheet.kt index 71caf58..90fd06e 100644 --- a/app/src/main/java/com/brittytino/patchwork/ui/components/sheets/InstructionsBottomSheet.kt +++ b/app/src/main/java/com/brittytino/patchwork/ui/components/sheets/InstructionsBottomSheet.kt @@ -182,7 +182,7 @@ fun InstructionsBottomSheet( modifier = Modifier.padding(horizontal = 4.dp) ) { Icon( - painter = painterResource(id = R.drawable.brand_github), + painter = painterResource(id = R.drawable.rounded_globe_24), contentDescription = null, modifier = Modifier.size(18.dp) ) @@ -222,7 +222,7 @@ fun InstructionsBottomSheet( modifier = Modifier.padding(horizontal = 4.dp) ) { Icon( - painter = painterResource(id = R.drawable.brand_telegram), + painter = painterResource(id = R.drawable.rounded_globe_24), contentDescription = null, modifier = Modifier.size(18.dp) ) @@ -336,7 +336,7 @@ fun ExpandableGuideSection(section: InstructionSection) { shape = RoundedCornerShape(12.dp) ) { Icon( - painter = painterResource(id = R.drawable.brand_github), + painter = painterResource(id = R.drawable.rounded_globe_24), contentDescription = null, modifier = Modifier.size(18.dp) ) diff --git a/app/src/main/java/com/brittytino/patchwork/ui/components/sheets/UpdateBottomSheet.kt b/app/src/main/java/com/brittytino/patchwork/ui/components/sheets/UpdateBottomSheet.kt index f2f95cf..0d33b83 100644 --- a/app/src/main/java/com/brittytino/patchwork/ui/components/sheets/UpdateBottomSheet.kt +++ b/app/src/main/java/com/brittytino/patchwork/ui/components/sheets/UpdateBottomSheet.kt @@ -157,7 +157,7 @@ fun UpdateBottomSheet( modifier = Modifier.fillMaxWidth() ) { Icon( - painter = painterResource(id = R.drawable.brand_github), + painter = painterResource(id = R.drawable.rounded_globe_24), contentDescription = null, modifier = Modifier.size(18.dp) ) diff --git a/app/src/main/java/com/brittytino/patchwork/ui/composables/watermark/WatermarkScreen.kt b/app/src/main/java/com/brittytino/patchwork/ui/composables/watermark/WatermarkScreen.kt index dd29d80..57bdc13 100644 --- a/app/src/main/java/com/brittytino/patchwork/ui/composables/watermark/WatermarkScreen.kt +++ b/app/src/main/java/com/brittytino/patchwork/ui/composables/watermark/WatermarkScreen.kt @@ -967,16 +967,7 @@ private fun LogoCarouselPicker( modifier: Modifier = Modifier ) { val logos = listOf( - R.drawable.apple, - R.drawable.cmf, - R.drawable.google, - R.drawable.moto, - R.drawable.nothing, - R.drawable.oppo, - R.drawable.samsung, - R.drawable.sony, - R.drawable.vivo, - R.drawable.xiaomi + R.mipmap.ic_launcher ) val carouselState = androidx.compose.material3.carousel.rememberCarouselState { logos.size } diff --git a/app/src/main/java/com/brittytino/patchwork/ui/ime/KeyboardInputView.kt b/app/src/main/java/com/brittytino/patchwork/ui/ime/KeyboardInputView.kt index 666d132..eb5f417 100644 --- a/app/src/main/java/com/brittytino/patchwork/ui/ime/KeyboardInputView.kt +++ b/app/src/main/java/com/brittytino/patchwork/ui/ime/KeyboardInputView.kt @@ -402,11 +402,11 @@ fun KeyboardInputView( content = { val functions = remember(isClipboardEnabled) { val list = mutableListOf( - R.drawable.ic_emoji to "Emoji", - R.drawable.ic_undo to "Undo" + R.drawable.rounded_heart_smile_24 to "Emoji", + R.drawable.rounded_arrow_back_24 to "Undo" ) if (isClipboardEnabled) { - list.add(1, R.drawable.ic_clipboard to "Clipboard") + list.add(1, R.drawable.rounded_content_paste_24 to "Clipboard") } list } @@ -644,7 +644,7 @@ fun KeyboardInputView( .fillMaxHeight() ) { Icon( - painter = painterResource(id = R.drawable.key_shift), + painter = painterResource(id = R.drawable.rounded_keyboard_arrow_up_24), contentDescription = "Shift", modifier = Modifier.size(24.dp), tint = if (shiftState != ShiftState.OFF) MaterialTheme.colorScheme.onPrimary diff --git a/app/src/main/java/com/brittytino/patchwork/utils/PermissionUtils.kt b/app/src/main/java/com/brittytino/patchwork/utils/PermissionUtils.kt index 23ca9cd..4d62cd8 100644 --- a/app/src/main/java/com/brittytino/patchwork/utils/PermissionUtils.kt +++ b/app/src/main/java/com/brittytino/patchwork/utils/PermissionUtils.kt @@ -51,6 +51,16 @@ object PermissionUtils { } } + fun hasUsageStatsPermission(context: Context): Boolean { + val appOps = context.getSystemService(Context.APP_OPS_SERVICE) as android.app.AppOpsManager + val mode = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + appOps.unsafeCheckOpNoThrow(android.app.AppOpsManager.OPSTR_GET_USAGE_STATS, android.os.Process.myUid(), context.packageName) + } else { + appOps.checkOpNoThrow(android.app.AppOpsManager.OPSTR_GET_USAGE_STATS, android.os.Process.myUid(), context.packageName) + } + return mode == android.app.AppOpsManager.MODE_ALLOWED + } + fun isDeviceAdminActive(context: Context): Boolean { val dpm = context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager val adminComponent = ComponentName(context, SecurityDeviceAdminReceiver::class.java) diff --git a/app/src/main/java/com/brittytino/patchwork/utils/RootUtils.kt b/app/src/main/java/com/brittytino/patchwork/utils/RootUtils.kt index fdb8578..6c374e8 100644 --- a/app/src/main/java/com/brittytino/patchwork/utils/RootUtils.kt +++ b/app/src/main/java/com/brittytino/patchwork/utils/RootUtils.kt @@ -8,8 +8,18 @@ object RootUtils { fun isRootAvailable(): Boolean { return try { val process = Runtime.getRuntime().exec(arrayOf("sh", "-c", "which su")) - val exitCode = process.waitFor() - exitCode == 0 + // Add a short timeout to prevent hanging the app on problematic devices + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { + if (!process.waitFor(2, java.util.concurrent.TimeUnit.SECONDS)) { + process.destroyForcibly() + return false + } + } else { + // Fallback for older versions (unlikely to be used here but for safety) + val exitCode = process.waitFor() + return exitCode == 0 + } + process.exitValue() == 0 } catch (e: Exception) { false } @@ -19,8 +29,16 @@ object RootUtils { // In many root managers, 'su -c id' will return 0 if granted return try { val process = Runtime.getRuntime().exec(arrayOf("su", "-c", "id")) - val exitCode = process.waitFor() - exitCode == 0 + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { + if (!process.waitFor(2, java.util.concurrent.TimeUnit.SECONDS)) { + process.destroyForcibly() + return false + } + } else { + val exitCode = process.waitFor() + return exitCode == 0 + } + process.exitValue() == 0 } catch (e: Exception) { false } diff --git a/app/src/main/java/com/brittytino/patchwork/viewmodels/MainViewModel.kt b/app/src/main/java/com/brittytino/patchwork/viewmodels/MainViewModel.kt index dc7141b..4516a5f 100644 --- a/app/src/main/java/com/brittytino/patchwork/viewmodels/MainViewModel.kt +++ b/app/src/main/java/com/brittytino/patchwork/viewmodels/MainViewModel.kt @@ -86,6 +86,7 @@ class MainViewModel : ViewModel() { val isBackgroundLocationPermissionGranted = mutableStateOf(false) val isFullScreenIntentPermissionGranted = mutableStateOf(false) val isBluetoothPermissionGranted = mutableStateOf(false) + val isUsageStatsPermissionGranted = mutableStateOf(false) val isBluetoothDevicesEnabled = mutableStateOf(false) @@ -241,6 +242,7 @@ class MainViewModel : ViewModel() { isWriteSettingsEnabled.value = PermissionUtils.canWriteSystemSettings(context) isBluetoothPermissionGranted.value = PermissionUtils.hasBluetoothPermission(context) + isUsageStatsPermissionGranted.value = PermissionUtils.hasUsageStatsPermission(context) settingsRepository.registerOnSharedPreferenceChangeListener(preferenceChangeListener) @@ -263,12 +265,20 @@ class MainViewModel : ViewModel() { notificationLightingIndicatorY.value = settingsRepository.getFloat(SettingsRepository.KEY_EDGE_LIGHTING_INDICATOR_Y, 2f) isRootEnabled.value = settingsRepository.getBoolean(SettingsRepository.KEY_USE_ROOT) - if (isRootEnabled.value) { - isRootAvailable.value = com.brittytino.patchwork.utils.RootUtils.isRootAvailable() - isRootPermissionGranted.value = com.brittytino.patchwork.utils.RootUtils.isRootPermissionGranted() - } else { - isRootAvailable.value = false - isRootPermissionGranted.value = false + viewModelScope.launch(Dispatchers.IO) { + if (isRootEnabled.value) { + val available = com.brittytino.patchwork.utils.RootUtils.isRootAvailable() + val granted = com.brittytino.patchwork.utils.RootUtils.isRootPermissionGranted() + withContext(Dispatchers.Main) { + isRootAvailable.value = available + isRootPermissionGranted.value = granted + } + } else { + withContext(Dispatchers.Main) { + isRootAvailable.value = false + isRootPermissionGranted.value = false + } + } } notificationLightingIndicatorScale.value = settingsRepository.getFloat(SettingsRepository.KEY_EDGE_LIGHTING_INDICATOR_SCALE, 1.0f) diff --git a/app/src/main/java/com/brittytino/patchwork/viewmodels/WatermarkViewModel.kt b/app/src/main/java/com/brittytino/patchwork/viewmodels/WatermarkViewModel.kt index e7e2181..7a62624 100644 --- a/app/src/main/java/com/brittytino/patchwork/viewmodels/WatermarkViewModel.kt +++ b/app/src/main/java/com/brittytino/patchwork/viewmodels/WatermarkViewModel.kt @@ -80,22 +80,8 @@ class WatermarkViewModel( } private fun detectOemLogo(exif: ExifData): Int? { - val make = exif.make?.lowercase() ?: "" - val model = exif.model?.lowercase() ?: "" - - return when { - make.contains("apple") || model.contains("iphone") -> R.drawable.apple - make.contains("google") || model.contains("pixel") -> R.drawable.google - make.contains("samsung") -> R.drawable.samsung - make.contains("xiaomi") || make.contains("redmi") || make.contains("poco") -> R.drawable.xiaomi - make.contains("oppo") -> R.drawable.oppo - make.contains("vivo") -> R.drawable.vivo - make.contains("sony") -> R.drawable.sony - make.contains("nothing") -> R.drawable.nothing - make.contains("cmf") -> R.drawable.cmf - make.contains("motorola") || make.contains("moto") -> R.drawable.moto - else -> null - } + // Updated to use the new app logo for all watermarks as requested + return R.mipmap.ic_launcher } fun loadPreview(uri: Uri) { diff --git a/app/src/main/res/drawable/apple.xml b/app/src/main/res/drawable/apple.xml deleted file mode 100644 index 1c20b80..0000000 --- a/app/src/main/res/drawable/apple.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/brand_github.xml b/app/src/main/res/drawable/brand_github.xml deleted file mode 100644 index e26e25c..0000000 --- a/app/src/main/res/drawable/brand_github.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/brand_telegram.xml b/app/src/main/res/drawable/brand_telegram.xml deleted file mode 100644 index 6c3318e..0000000 --- a/app/src/main/res/drawable/brand_telegram.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/cmf.xml b/app/src/main/res/drawable/cmf.xml deleted file mode 100644 index 464772b..0000000 --- a/app/src/main/res/drawable/cmf.xml +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/google.xml b/app/src/main/res/drawable/google.xml deleted file mode 100644 index c0496e4..0000000 --- a/app/src/main/res/drawable/google.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_clipboard.xml b/app/src/main/res/drawable/ic_clipboard.xml deleted file mode 100644 index 2fc6497..0000000 --- a/app/src/main/res/drawable/ic_clipboard.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_emoji.xml b/app/src/main/res/drawable/ic_emoji.xml deleted file mode 100644 index 7c66b44..0000000 --- a/app/src/main/res/drawable/ic_emoji.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_undo.xml b/app/src/main/res/drawable/ic_undo.xml deleted file mode 100644 index c7e9edd..0000000 --- a/app/src/main/res/drawable/ic_undo.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/key_shift.xml b/app/src/main/res/drawable/key_shift.xml deleted file mode 100644 index 0294fd9..0000000 --- a/app/src/main/res/drawable/key_shift.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/moto.xml b/app/src/main/res/drawable/moto.xml deleted file mode 100644 index e568364..0000000 --- a/app/src/main/res/drawable/moto.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/nothing.xml b/app/src/main/res/drawable/nothing.xml deleted file mode 100644 index b4153c1..0000000 --- a/app/src/main/res/drawable/nothing.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/oppo.xml b/app/src/main/res/drawable/oppo.xml deleted file mode 100644 index 1875ee4..0000000 --- a/app/src/main/res/drawable/oppo.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/samsung.xml b/app/src/main/res/drawable/samsung.xml deleted file mode 100644 index 7fc874f..0000000 --- a/app/src/main/res/drawable/samsung.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/sony.xml b/app/src/main/res/drawable/sony.xml deleted file mode 100644 index cded39a..0000000 --- a/app/src/main/res/drawable/sony.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/vivo.xml b/app/src/main/res/drawable/vivo.xml deleted file mode 100644 index 8d6174f..0000000 --- a/app/src/main/res/drawable/vivo.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/xiaomi.xml b/app/src/main/res/drawable/xiaomi.xml deleted file mode 100644 index 95cd9fc..0000000 --- a/app/src/main/res/drawable/xiaomi.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml deleted file mode 100644 index 50ec886..0000000 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ 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 deleted file mode 100644 index 50ec886..0000000 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.jpg b/app/src/main/res/mipmap-hdpi/ic_launcher.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1d5815e66b62f4baf81daa09cdbb9bd97bdb05a7 GIT binary patch literal 1330 zcmex=``2_j6xdp@o1cgOJMMZh|#U;coyG6VInuyV4pa*FVB^NNrR z{vTivwh= zDOELf4NWZ*Q!{f5ODks=S2uSLPp{yR(6I1`$f)F$)U@=B%&g*)(z5c3%Btp;*0%PJ z&aO$5r%atTea6gLixw|gx@`H1m8&*w-m-Pu_8mKS9XfpE=&|D`PM*4S`O4L6*Kgds z_3+W-Cr_U}fAR9w$4{TXeEs(Q$Io9Ne=#yJL%ap|8JfQYf&OA*VPR%r2lxYE z#}NLy#lXYN2#h>tK?Zw~G|_+@VRv3Z==Y%G_(n%JqUm%p}aar&Z-|JdJe{BYyB=<_KIfvzHO z9RB+LA7SR8ztfVpZD>DSI6J@lOk-NU_>8l!Pq?4aiT)dR=Q)#&XaC-LTYqwfo8;OD zTrJJ^wpF|J>~rv}Q11+##pyGjoIfQPKI!Jmz6|DH-5vYyHj9fU=Kh2Fr@ay`s_P0*|<78YMf9sW<<`2`lS+Zv`z6)0*2Tz@K^}uO)rQ~Tn zj~CfJ{m+o;T6TY50;lQ1j9$!s0dM#BId0aRtT{d*j zRmK#Z$Ly+wTmC+MwEw5**8X3gXa8q#Fk$?&4aKYP*8dT@{UE=wM)$W#h57Ma_3gUC z$D-bd^H;C++LwBou}~*baJF4kt}AOW!&ghwAEEIV+W!bA|MTg7nE$sbw*FkReZha{?hEbX`EmJBeM)SVG;h_pd(kKMTxmZS?PA1wg0Cr|CImp|YaxsR0acSQ(0^1iCVa zK(Xj=&i@Q7SO4y@6VKew{zvsg|B+iWKTPlVGIiQL?zMqUk@1z2_jC#6b===`?E107 zgDQ{q%e`2@f93rTJ?k}-|464QPC346g5wEgv#CFmWA!`gR4bMr-6wvb#(Hh`^;_$@ r7yR6RvuygLnPMlrH=l_(`84Eb=BMY(GK`aBuEN~_a|<$E|NkZc=MNhD literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp deleted file mode 100644 index f2874b5e449212318dd931db636c227b8e181a1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2696 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 CCl*5h diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.jpg b/app/src/main/res/mipmap-hdpi/ic_launcher_round.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1d5815e66b62f4baf81daa09cdbb9bd97bdb05a7 GIT binary patch literal 1330 zcmex=``2_j6xdp@o1cgOJMMZh|#U;coyG6VInuyV4pa*FVB^NNrR z{vTivwh= zDOELf4NWZ*Q!{f5ODks=S2uSLPp{yR(6I1`$f)F$)U@=B%&g*)(z5c3%Btp;*0%PJ z&aO$5r%atTea6gLixw|gx@`H1m8&*w-m-Pu_8mKS9XfpE=&|D`PM*4S`O4L6*Kgds z_3+W-Cr_U}fAR9w$4{TXeEs(Q$Io9Ne=#yJL%ap|8JfQYf&OA*VPR%r2lxYE z#}NLy#lXYN2#h>tK?Zw~G|_+@VRv3Z==Y%G_(n%JqUm%p}aar&Z-|JdJe{BYyB=<_KIfvzHO z9RB+LA7SR8ztfVpZD>DSI6J@lOk-NU_>8l!Pq?4aiT)dR=Q)#&XaC-LTYqwfo8;OD zTrJJ^wpF|J>~rv}Q11+##pyGjoIfQPKI!Jmz6|DH-5vYyHj9fU=Kh2Fr@ay`s_P0*|<78YMf9sW<<`2`lS+Zv`z6)0*2Tz@K^}uO)rQ~Tn zj~CfJ{m+o;T6TY50;lQ1j9$!s0dM#BId0aRtT{d*j zRmK#Z$Ly+wTmC+MwEw5**8X3gXa8q#Fk$?&4aKYP*8dT@{UE=wM)$W#h57Ma_3gUC z$D-bd^H;C++LwBou}~*baJF4kt}AOW!&ghwAEEIV+W!bA|MTg7nE$sbw*FkReZha{?hEbX`EmJBeM)SVG;h_pd(kKMTxmZS?PA1wg0Cr|CImp|YaxsR0acSQ(0^1iCVa zK(Xj=&i@Q7SO4y@6VKew{zvsg|B+iWKTPlVGIiQL?zMqUk@1z2_jC#6b===`?E107 zgDQ{q%e`2@f93rTJ?k}-|464QPC346g5wEgv#CFmWA!`gR4bMr-6wvb#(Hh`^;_$@ r7yR6RvuygLnPMlrH=l_(`84Eb=BMY(GK`aBuEN~_a|<$E|NkZc=MNhD literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp deleted file mode 100644 index 18eec59d7f4503f5c0525018dc9aeee1ed570f6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4708 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 Kwn>&`s008nVX^W6 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.jpg b/app/src/main/res/mipmap-mdpi/ic_launcher_round.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d68b1b6e82a2426f112c0359d7e882ccb3ca24bc GIT binary patch literal 971 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 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.jpg b/app/src/main/res/mipmap-xhdpi/ic_launcher.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aeecb36783aee0832f50d6105ccd978c5cfa8c37 GIT binary patch literal 1577 zcmbV}c~DbV6vl7fOLz$ZLP8QDf*>HE*0B&H0?J|<2-*$>7Zj8zsE7{G@1@+jv<|DNTJfGnk5)m{RWF8;BW-0E>V~Ip9_5i$asw@7-J3~G6p7N&>CP0 z00yUat1ZcsqX=njHArAb<;BN-j0~>quRxv z65%aY->Rhfw8$)(fe{G=ZTcKTBgO(NYnz3Oma&%GuW)c=f5UP2;CilEw|>J$-%XqS zf_CiO6}&rSPh?c|{+QSU2NRQ$kER?uo_hMsPiHf;&SmH1UCb}Ibool*)nAHl-zh1* zTXwIix~8_SzTwx#XU|`}eAU|4-qF+B_on~tz~IpE*!aYUN%@rGZfK9l`} zi>&5?uvi$2Xt*#?j9M@mi<@t&MRD^+w(m1Aw~NP9SDzBysw7x2ePp!2h!$hNGPZ~>pL=B3(zF919!m0m!xNBk%U1xX(y$$n>&Jy}Xt$XAm_piY_XZ|6SnQfxNx z)-9e_=*Sm^UfWc8C@505|3VdE{@v1(p2o-A*^Bk?7I$+=1Eq4ID&gTmzPOax9m)un zPbDP=E~SLnJo5(!30b47C8LMSq)gu@ER}axC;LG7k_R=OD=DIMZvOX;!|r%9nVZSA zi3xc*3KG0yiS^U_i+Uv~lv=5&el<1AXQ(0hwm2{M7G&Fmm5yigO-=3-@isHa>;_L_(?v=E1LbKZIrdB^d^; zlHKL?+0jvz{13(UO#_`POpZ`Nb9+kPnMr5K=c)fN6IV?4qF|bkOG+0=bGny4{e&nX1#ipPyrN*ypge|gzBx|dSWOLj zUmU&5EDl-M@sO{&?jpTOkM!Harz)72mkfWK5$2K_y@{JvXlT^|C&XHltX#TQg-%#+ z9veM2DbyJXFnsW8^oPSv7w=!cJmh7oWEFGYjfhQMo0@7$n9W;!SN%OWb%>_7U1VHg zdI0Xc)Fh>P|JZ^H6(`;=9T}PHQ5L>vbI<|%#hh{|z%kh}EdudVPR#}#7l%c%&Nlhd z$M4S}uQ=@x7~!>D_?o?;TQb4`)tmE03DEZ60Pkgv=l}o! literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp deleted file mode 100644 index 4413e812453fd6c850e44052256fcfc993668c2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3582 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 E02#^2c>n+a diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.jpg b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aeecb36783aee0832f50d6105ccd978c5cfa8c37 GIT binary patch literal 1577 zcmbV}c~DbV6vl7fOLz$ZLP8QDf*>HE*0B&H0?J|<2-*$>7Zj8zsE7{G@1@+jv<|DNTJfGnk5)m{RWF8;BW-0E>V~Ip9_5i$asw@7-J3~G6p7N&>CP0 z00yUat1ZcsqX=njHArAb<;BN-j0~>quRxv z65%aY->Rhfw8$)(fe{G=ZTcKTBgO(NYnz3Oma&%GuW)c=f5UP2;CilEw|>J$-%XqS zf_CiO6}&rSPh?c|{+QSU2NRQ$kER?uo_hMsPiHf;&SmH1UCb}Ibool*)nAHl-zh1* zTXwIix~8_SzTwx#XU|`}eAU|4-qF+B_on~tz~IpE*!aYUN%@rGZfK9l`} zi>&5?uvi$2Xt*#?j9M@mi<@t&MRD^+w(m1Aw~NP9SDzBysw7x2ePp!2h!$hNGPZ~>pL=B3(zF919!m0m!xNBk%U1xX(y$$n>&Jy}Xt$XAm_piY_XZ|6SnQfxNx z)-9e_=*Sm^UfWc8C@505|3VdE{@v1(p2o-A*^Bk?7I$+=1Eq4ID&gTmzPOax9m)un zPbDP=E~SLnJo5(!30b47C8LMSq)gu@ER}axC;LG7k_R=OD=DIMZvOX;!|r%9nVZSA zi3xc*3KG0yiS^U_i+Uv~lv=5&el<1AXQ(0hwm2{M7G&Fmm5yigO-=3-@isHa>;_L_(?v=E1LbKZIrdB^d^; zlHKL?+0jvz{13(UO#_`POpZ`Nb9+kPnMr5K=c)fN6IV?4qF|bkOG+0=bGny4{e&nX1#ipPyrN*ypge|gzBx|dSWOLj zUmU&5EDl-M@sO{&?jpTOkM!Harz)72mkfWK5$2K_y@{JvXlT^|C&XHltX#TQg-%#+ z9veM2DbyJXFnsW8^oPSv7w=!cJmh7oWEFGYjfhQMo0@7$n9W;!SN%OWb%>_7U1VHg zdI0Xc)Fh>P|JZ^H6(`;=9T}PHQ5L>vbI<|%#hh{|z%kh}EdudVPR#}#7l%c%&Nlhd z$M4S}uQ=@x7~!>D_?o?;TQb4`)tmE03DEZ60Pkgv=l}o! literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp deleted file mode 100644 index 3d814ddb88059919db5b44ff747e68cb987d6fde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6376 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 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.jpg b/app/src/main/res/mipmap-xxhdpi/ic_launcher.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ec9b73e2d065f89caa6f2437de80271366168127 GIT binary patch literal 2239 zcmbW0c~sL^7RO&U0wEd#2|{H+2&Sq4y;2nYyhDN7Y(iL44ZlOnq!5f`==SyVQG zgvC~*8d0DiMFO%ZEdfy>P<9Z@8Wcmw_G{?O>CBm_=ZtgT`~LIZeeZlf@7@OuLz6(k z#nIUjz+fsFa!dQL~Oa1W}lbt10)`$sJYixM#()8 ztrbNuNy#mjCE3-s5j_UD+NMEgF3Mq)cc`d-qNA&)Z?N0U{4W-kR{QJ^IygEVa(40b z`r_y@Z=d7AA)#R>PlZQB$Hd0PCnTP|bookZT6#ui-nHvD@(T)!iYqFsZhiCZ?dm%Z z9@f=2eBapgsQpPtXIFR6(`U~IU%Y%ZG|U;9nx2`Rdp-Z=mxZ;r@7CY*Hu#%@EiM>9 z`~&NEvj5=1OS#}kBm#-v;)22Br9$A5D9ybxini|Pz$hgxlN4EkU2b`8n;gm1gG&rL zGk{UnHk;B}+d}(|?0*Bh_yM_>MV7VpdPu^T+Hr!4a}BQNs=}0Cn;d}eXTweX@D4kM~u0?m4>eO{! zV9q(E18U0z_XDU8NFy}4SA%<4BZFS2@Zgomb|)Xv7LCfKzSnmfS(&l4y7=>Cj%`o; zNTb!xN5>YsmsW+OBvWx=Okm_>i;UTeQn-I)L1VFGeki6YsYcR{qC|)y#0BKZ$_YYi z7{@TCiR#-`hP5Ns*#v}zU9mBIJy*e_6p=Zr6z0T3x8){oGq1AtDjB;7f6@_X;g=BY zwTHNrpc?d5iA$xh$L;Z8Cpfp9IMK!AY_K%yj8c8=*XGjVQ|zDjZ{cPs=pL_9P6btxGgzxn`h=P)k6Tk@W^sNrFOb4Ol8!h1omzlD<<%O27B%UkBjmitl!h3E*TfJFGTJcjaRgf{+s62LnUWa zy%lWLD{6*3xf4^=uab@UWfM;xW4Ypu^!G)Q<@&E3GOsQzZ@4?f1%Z`Qh!r-6BEf7- zv%$?Hi0S1ziCKRE{$4Y+E+TGmahIhJYhy&*YvCfM@Lksm+US3>CZRKaz%fS_1qaiD zo&SC)fdUHW>{GK?q`4EgUF%w{f2D;n`6OQU)Dg3Uf*HewNI}(?bp!m9pWVpsQ4;lJ=iugiqp(Sxv=L7rHh>trB;RW$;+c6bMYF zLEx=hvH@+_gAD-(XUaD*FgG6v7r{IJETkM?;vonB_`g&nB(gj6}8)z zs;H`+e-x9>2&vV(09Gkjg554+QwHYjzxnSr8piR) zxwxe)p%s6?+Ll)u+_53iOk6UPM|C{ZOx7QGXxmL5}yzVcu#mzUNlrj5yw-atre^KT_f0Pwf93~^$+d3Dobji z8Jhe?Dl_0f0PY_aY@NC^C`?THTwF{DFAlf`0Xg(#HIv?{pZrH$W05BcefO8!NIdJx Y?nKU8$({_dM9zlgWdi+*j~B%G6&o1k3;+NC literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp deleted file mode 100644 index b03744e76651d2dc72cb5e252bae6253dd7acff9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5630 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 Y?nKU8$({_dM9zlgWdi+*j~B%G6&o1k3;+NC literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp deleted file mode 100644 index 5fbbcffb624a95c8accd33f7188132185d095947..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9626 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp deleted file mode 100644 index dd7c598713ace4060baf3cbfa31836f7c9ff47c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7134 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 UmRaJQp1Rx3$zDJ*`KJQ`0H#8Z_W%F@ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.jpg b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4bdb92cf669c36473213756eb536ae1f4faf9bdd GIT binary patch literal 2971 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp deleted file mode 100644 index f9eec8490adca2fd187c4b4614fdac5ad81baf49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13372 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 Su&S$ZYFsst#g$RcsJj5<2Wf8r diff --git a/app/src/main/res/values-night/splash.xml b/app/src/main/res/values-night/splash.xml index f97eb2e..b6ce686 100644 --- a/app/src/main/res/values-night/splash.xml +++ b/app/src/main/res/values-night/splash.xml @@ -7,7 +7,7 @@ false @color/app_window_background @mipmap/ic_launcher - 2000 + 1000 @style/Theme.Patchwork diff --git a/app/src/main/res/values-v31/splash.xml b/app/src/main/res/values-v31/splash.xml index b23ad4b..5400b74 100644 --- a/app/src/main/res/values-v31/splash.xml +++ b/app/src/main/res/values-v31/splash.xml @@ -5,8 +5,8 @@ false true false - @drawable/ic_launcher_foreground_light - 3000 + @mipmap/ic_launcher + 1000 @style/Theme.Patchwork diff --git a/app/src/main/res/values/splash.xml b/app/src/main/res/values/splash.xml index b0c1e72..b6ce686 100644 --- a/app/src/main/res/values/splash.xml +++ b/app/src/main/res/values/splash.xml @@ -6,8 +6,8 @@ true false @color/app_window_background - @drawable/ic_launcher_foreground_light - 3000 + @mipmap/ic_launcher + 1000 @style/Theme.Patchwork diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8a03472..0cd3a7d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -319,6 +319,23 @@ View all Button remap Remap hardware button actions + + + App Behavior Controller + Define per-app rules for volume, screen, etc. + + Smart App Cooldown + Prevent compulsive app reopening with delays + + Idle App Auto-Action + Auto-freeze or notify for unused apps + + Action History Timeline + View log of all Patchwork actions + + System State Snapshots + Save and restore system profiles + Dynamic night light Toggle night light based on app Screen locked security