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