diff --git a/app/src/main/java/com/sameerasw/essentials/MainActivity.kt b/app/src/main/java/com/sameerasw/essentials/MainActivity.kt index 8b2d317fb..cdce9726d 100644 --- a/app/src/main/java/com/sameerasw/essentials/MainActivity.kt +++ b/app/src/main/java/com/sameerasw/essentials/MainActivity.kt @@ -229,12 +229,10 @@ class MainActivity : FragmentActivity() { updatesViewModel.loadTrackedRepos(context) } - val isDeveloperModeEnabled by viewModel.isDeveloperModeEnabled + // Dynamic tabs configuration - val tabs = remember(isDeveloperModeEnabled) { - if (isDeveloperModeEnabled) DIYTabs.entries else listOf(DIYTabs.ESSENTIALS, DIYTabs.FREEZE, DIYTabs.DIY) - } + val tabs = remember { DIYTabs.entries } val defaultTab by viewModel.defaultTab val initialPage = remember(tabs) { diff --git a/app/src/main/java/com/sameerasw/essentials/SettingsActivity.kt b/app/src/main/java/com/sameerasw/essentials/SettingsActivity.kt index 2099a156e..83b174c0e 100644 --- a/app/src/main/java/com/sameerasw/essentials/SettingsActivity.kt +++ b/app/src/main/java/com/sameerasw/essentials/SettingsActivity.kt @@ -305,9 +305,7 @@ fun SettingsContent(viewModel: MainViewModel, modifier: Modifier = Modifier) { val defaultTab by viewModel.defaultTab RoundedCardContainer { - val availableTabs = remember(isDeveloperModeEnabled) { - if (isDeveloperModeEnabled) DIYTabs.entries else listOf(DIYTabs.ESSENTIALS, DIYTabs.FREEZE, DIYTabs.DIY) - } + val availableTabs = remember { DIYTabs.entries } DefaultTabPicker( selectedTab = defaultTab, onTabSelected = { viewModel.setDefaultTab(it, context) }, diff --git a/app/src/main/java/com/sameerasw/essentials/services/handlers/ButtonRemapHandler.kt b/app/src/main/java/com/sameerasw/essentials/services/handlers/ButtonRemapHandler.kt index e9780282b..1bf039777 100644 --- a/app/src/main/java/com/sameerasw/essentials/services/handlers/ButtonRemapHandler.kt +++ b/app/src/main/java/com/sameerasw/essentials/services/handlers/ButtonRemapHandler.kt @@ -49,24 +49,11 @@ class ButtonRemapHandler( val powerManager = service.getSystemService(Context.POWER_SERVICE) as PowerManager val isScreenInteractive = try { powerManager.isInteractive } catch(e: Exception) { false } - // This usually requires import of the isAod method or similar logic. - // Typically AOD check is: Display.STATE_DOZE or STATE_DOZE_SUSPEND val isAod = isAodShowing() val shellReady = com.sameerasw.essentials.utils.ShellUtils.isAvailable(service) && com.sameerasw.essentials.utils.ShellUtils.hasPermission(service) val devicePathDetected = !prefs.getString("shizuku_detected_device_path", null).isNullOrEmpty() - // If using Shizuku and screen off, verify if we should INTERCEPT or let Shizuku handle it? - // Original logic: returns true (consumes event) if isMapped or isTorchControl. - // Wait, if returns true here, the accessibility service consumes it, so it DOES NOT reach the app? - // Actually, accessibility service `onKeyEvent` returning true means "I handled this, don't pass it to the system/app". - // The original logic checks: "if ... return true". - // It seems this block is to prevent system volume change if we are going to handle it via Shizuku service separately? - // OR, the original logic meant: "If handled by Shizuku InputEventListenerService, we also consume it here so system volume doesn't change?" - // But InputEventListenerService is a separate service. - // The check `if (isButtonRemapUseShizuku ...)` suggests we might skip handling here because Shizuku service handles it? - // NO, the return true means "CONSUME". So if Shizuku is handling it, we consume it here to prevent default volume action? - // Let's stick to the original logic flow. val useShell = isButtonRemapUseShizuku || com.sameerasw.essentials.utils.ShellUtils.isRootEnabled(service) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index aa63dd9e1..9929ca323 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -836,7 +836,7 @@ You are up to date This is a pre-release version and might be unstable. - Release Notes %1$s + Release Notes v%1$s View on GitHub Download APK diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index a1217b60f..8b8515a0b 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -836,7 +836,7 @@ Vous êtes à jour Ceci est une version bêta qui peut être instable. - Release Notes %1$s + Notes de mise à jour v%1$s Voir sur GitHub Télécharger l\'APK diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 8902ce8d2..b06afe91f 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -12,7 +12,7 @@ Lege schermuitzetwidget Apps bevriezen Zaklamppuls - Checken voor voorversies + Checken voor vooruitgaven Kunnen instabiel zijn Beveiliging @@ -345,8 +345,8 @@ Schakel weinig gebruikte apps uit Watermerk EXIF-data en logo\'s toevoegen aan foto\'s - Calendar Sync - Sync events to your watch + Kalenders synchroniseren + Gebeurtenissen synchroniseren naar je horloge Stijl Overlay Kader @@ -522,34 +522,34 @@ Apps Uitgeschakelde apps Doe-het-zelf - Find and manage apps - App Updates - App Updates - Add Repository - Edit Repository - Enter GitHub Repository URL or owner/repo - Track - Invalid repository URL or format - No APK found in the latest release - Repository not found - Latest Release - View README - %d Stars - Installed app - Not installed - Pick app - Select app - Untrack - Pending - Up-to-date - Track and download the latest releases for your favorite apps directly from GitHub. - Invalid format. Use owner/repo or GitHub URL - An error occurred during search - Auto - Options - Check for pre-releases - Notifications - GitHub rate limit exceeded. Please try again later. + Vind en beheer apps + Appupdates + Appupdates + Repository toevoegen + Repository bewerken + Voer de URL van de GitHub-repository of eigenaar/repository + Volgen + Ongeldige repository-URL of formaat + Geen APK gevonden in de laatste versie + Repository niet gevonden + Laatste versie + README bekijken + %d sterren + Geïnstalleerde app + Niet geïnstalleerd + Kies app + Selecteer app + Niet meer volgen + In behandeling + Actuele versie + Volg en download de laatste versies van je favoriete apps direct vanaf GitHub. + Incorrect formaat. Gebruik eigenaar/repository of de GitHub-URL + Er was een fout tijdens het zoeken + Automatisch + Opties + Checken voor vooruitgaven + Meldingen + De limiet voor aanvragen van GitHub is bereikt. Probeer het later opnieuw. Toetsenbord instellen In de instellingen inschakelen diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 593e30b73..08fef7f3c 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -2,56 +2,56 @@ Essentials BETA - Essentials Accessibility Service\n\nThis service is required for the following advanced features:\n\n• Physical Button Remapping:\nDetects volume button presses even when the screen is off to trigger actions like the Flashlight.\n\n• Per-App Settings:\nMonitors the currently active app to apply specific profiles for Dynamic Night Light, Notification Lighting Colors, and App Lock.\n\n• Screen Control:\nAllows the app to lock the screen (e.g. via Double Tap or Widgets) and detect screen state changes.\n\n• Security:\nPrevents unauthorized changes by detecting window content when the device is locked.\n\nNo input text or sensitive user data is collected or transmitted. - App icon - App Freezing - Disable apps that are rarely used - App Freezing - Open App Freezing - Frozen App - Empty screen off widget - App Freezing - Flashlight Pulse - Check for pre-releases - Might be unstable + Essentials 无障碍服务\n\n此服务被应用于以下增强型功能:\n\n• 物理按键映射:\n在屏幕熄灭状态下检测音量键状态以触发如手电筒等功能.\n\n• 独立应用设置:\n检测当前活动的应用以应用动态夜间光效, 通知闪光和应用锁等功能\n\n• 屏幕控制:\n允许应用通过双击或点击小部件以锁定屏幕或检测屏幕状态变化.\n\n• 安全:\n通过在设备锁定时检测窗口内容来避免未经授权的更改.\n\n输入内容和敏感用户数据不会被收集和上传. + 应用图标 + 应用冻结 + 禁用不常用的应用 + 已冻结的应用 + 打开冻结的应用 + 冻结应用 + 无熄屏小组件 + 已冻结的应用 + 闪光灯脉冲 + 检查预览版更新 + 可能不稳定 - Security - Enable app lock - App Lock Security - Authenticate to enable app lock - Authenticate to disable app lock - Select locked apps - Choose which apps require authentication - Secure your apps with biometric authentication. Locked apps will require authentication when launching, Stays unlocked until the screen turns off. - Beware that this is not a robust solution as this is only a 3rd party application. If you need strong security, consider using Private Space or other such features. - Another note, the biometric authentication prompt only lets you use STRONG secure class methods. Face unlock security methods in WEAK class in devices such as Pixel 7 will only be able to utilize the available other STRONG auth methods such as fingerprint or pin. + 安全性 + 启用应用锁 + 应用锁安全 + 认证身份以启用应用锁 + 认证身份以禁用应用锁 + 选择需要锁定的应用 + 选择哪些应用需要验证 + 通过生物识别保护你的应用。被锁定的应用在启动时需要身份认证,并在屏幕关闭前保持解锁 + 请注意这并不是一个稳妥的解决方案,应为本应用是第三方应用。如果你需要更高的安全性,请考虑使用隐私空间或其他相似功能。 + 另外,生物识别认证提示只能让你使用 STRONG 类的安全方法。在Pixel 7等设备上,WEAK 类的人脸解锁安全方法只能使用其他STRONG认证方法,如指纹或PIN码。 - Enable Button Remap - Use Shizuku - Works with screen off (Recommended) - Shizuku is not running - Detected %1$s - Status: %1$s - Open Shizuku - Flashlight - Flashlight options - Adjust fading and other settings - Pitch black theme - Use pure black background in dark mode - Haptic Feedback - Remap Long Press - Screen Off - Screen On - Volume Up - Volume Down - Toggle flashlight - Media play/pause - Media next - Media previous - Toggle vibrate - Toggle mute - AI assistant - Take screenshot + 启用按键重映射 + 使用 Shizuku 或 Root 权限 + 在屏幕熄灭时启用(推荐) + Shizuku 未运行 + 检测到 %1$s + 状态 %1$s + 打开 Shizuku + 闪光灯 + 闪光灯选项 + 调整渐变和其他设置 + 纯黑色主题 + 在深色模式下使用纯黑色背景 + 触觉反馈 + 重映射长按 + 关闭屏幕 + 开启屏幕 + 音量上 + 音量下 + 闪光灯开关 + 媒体播放/暂停 + 媒体下一首 + 媒体上一首 + 开关振动 + 开关静音 + AI 助理 + 屏幕截图 Cycle sound modes Like current song Like song settings