diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c86aac728..69d2cf91d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -29,8 +29,8 @@ android { applicationId = "com.sameerasw.essentials" minSdk = 26 targetSdk = 37 - versionCode = 44 - versionName = "15.0" + versionCode = 45 + versionName = "15.1" val whatsNewCounter = 2 buildConfigField("int", "WHATS_NEW_COUNTER", whatsNewCounter.toString()) diff --git a/app/src/main/java/com/sameerasw/essentials/FeatureSettingsActivity.kt b/app/src/main/java/com/sameerasw/essentials/FeatureSettingsActivity.kt index fe3618f1d..2dbd2aea8 100644 --- a/app/src/main/java/com/sameerasw/essentials/FeatureSettingsActivity.kt +++ b/app/src/main/java/com/sameerasw/essentials/FeatureSettingsActivity.kt @@ -560,7 +560,9 @@ class FeatureSettingsActivity : AppCompatActivity() { vibrator = vibrator, prefs = prefs, modifier = Modifier.padding(top = 16.dp), - highlightSetting = highlightSetting + highlightSetting = highlightSetting, + onShowPermissionSheet = { showPermissionSheet = it }, + onSetChildFeatureForPermissions = { childFeatureForPermissions = it } ) } diff --git a/app/src/main/java/com/sameerasw/essentials/domain/ScreenOffMethod.kt b/app/src/main/java/com/sameerasw/essentials/domain/ScreenOffMethod.kt new file mode 100644 index 000000000..c16d0ac45 --- /dev/null +++ b/app/src/main/java/com/sameerasw/essentials/domain/ScreenOffMethod.kt @@ -0,0 +1,6 @@ +package com.sameerasw.essentials.domain + +enum class ScreenOffMethod { + ACCESSIBILITY, + INPUT +} diff --git a/app/src/main/java/com/sameerasw/essentials/services/ScreenOffWidgetProvider.kt b/app/src/main/java/com/sameerasw/essentials/services/ScreenOffWidgetProvider.kt index 39f162a7d..4513ac321 100644 --- a/app/src/main/java/com/sameerasw/essentials/services/ScreenOffWidgetProvider.kt +++ b/app/src/main/java/com/sameerasw/essentials/services/ScreenOffWidgetProvider.kt @@ -5,14 +5,30 @@ import android.appwidget.AppWidgetManager import android.appwidget.AppWidgetProvider import android.content.Context import android.content.Intent +import android.os.Build +import android.os.PowerManager +import android.os.SystemClock +import android.os.Vibrator +import android.os.VibratorManager import android.provider.Settings +import android.view.KeyEvent import android.widget.RemoteViews import android.widget.Toast +import androidx.core.content.getSystemService import com.sameerasw.essentials.R +import com.sameerasw.essentials.domain.HapticFeedbackType +import com.sameerasw.essentials.domain.ScreenOffMethod import com.sameerasw.essentials.services.tiles.ScreenOffAccessibilityService +import com.sameerasw.essentials.utils.HapticUtil +import com.sameerasw.essentials.utils.ShellUtils +import com.sameerasw.essentials.utils.performHapticFeedback class ScreenOffWidgetProvider : AppWidgetProvider() { + companion object { + private const val DOUBLE_TAP_TIMEOUT = 500L // 500ms + } + override fun onUpdate( context: Context, appWidgetManager: AppWidgetManager, @@ -26,15 +42,85 @@ class ScreenOffWidgetProvider : AppWidgetProvider() { override fun onReceive(context: Context, intent: Intent) { super.onReceive(context, intent) if (intent.action == "WIDGET_CLICK") { - if (isAccessibilityEnabled(context)) { - val serviceIntent = - Intent(context, ScreenOffAccessibilityService::class.java).apply { - action = "LOCK_SCREEN" + val prefs = context.getSharedPreferences("essentials_prefs", Context.MODE_PRIVATE) + val isDoubleTapRequired = prefs.getBoolean("screen_off_double_tap", false) + + if (isDoubleTapRequired) { + val lastTapTime = prefs.getLong("screen_off_last_tap_time", 0) + val currentTime = SystemClock.elapsedRealtime() + + if (currentTime - lastTapTime < DOUBLE_TAP_TIMEOUT) { + // Double tap detected + prefs.edit().putLong("screen_off_last_tap_time", 0).apply() + triggerScreenOff(context) + } else { + // First tap + prefs.edit().putLong("screen_off_last_tap_time", currentTime).apply() + + val vibrator = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + context.getSystemService(VibratorManager::class.java)?.defaultVibrator + } else { + @Suppress("DEPRECATION") + context.getSystemService(Context.VIBRATOR_SERVICE) as? Vibrator + } + if (vibrator != null) { + performHapticFeedback(vibrator, HapticFeedbackType.TICK) } - context.startService(serviceIntent) + } } else { - Toast.makeText(context, "Missing permissions, Check the app", Toast.LENGTH_SHORT) - .show() + // Double tap not required, trigger immediately + triggerScreenOff(context) + } + } + } + + private fun triggerScreenOff(context: Context) { + val prefs = context.getSharedPreferences("essentials_prefs", Context.MODE_PRIVATE) + val selectedScreenOffMethod = try { + ScreenOffMethod.valueOf(prefs.getString("screen_off_method", ScreenOffMethod.ACCESSIBILITY.name) ?: ScreenOffMethod.ACCESSIBILITY.name) + } catch (e: IllegalArgumentException) { + ScreenOffMethod.ACCESSIBILITY + } + + val hapticFeedbackType = try { + HapticFeedbackType.valueOf(prefs.getString("haptic_feedback_type", HapticFeedbackType.NONE.name) ?: HapticFeedbackType.NONE.name) + } catch (e: IllegalArgumentException) { + HapticFeedbackType.NONE + } + + val vibrator = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + context.getSystemService(VibratorManager::class.java)?.defaultVibrator + } else { + @Suppress("DEPRECATION") + context.getSystemService(Context.VIBRATOR_SERVICE) as? Vibrator + } + + if (vibrator != null) { + performHapticFeedback(vibrator, hapticFeedbackType) + } + + when (selectedScreenOffMethod) { + ScreenOffMethod.ACCESSIBILITY -> { + if (isAccessibilityEnabled(context)) { + val serviceIntent = + Intent(context, ScreenOffAccessibilityService::class.java).apply { + action = "LOCK_SCREEN" + } + context.startService(serviceIntent) + } else { + Toast.makeText(context, "Missing Accessibility permission, Check the app", Toast.LENGTH_SHORT) + .show() + } + } + ScreenOffMethod.INPUT -> { + if (ShellUtils.hasPermission(context)) { + // Simulate power button press using input keyevent + // Requires root or Shizuku, which ShellUtils handles + ShellUtils.runCommand(context, "input keyevent ${KeyEvent.KEYCODE_POWER}") + } else { + Toast.makeText(context, "Missing Shizuku/Root permission for Input method, Check the app", Toast.LENGTH_SHORT) + .show() + } } } } diff --git a/app/src/main/java/com/sameerasw/essentials/ui/components/pickers/ScreenOffMethodPicker.kt b/app/src/main/java/com/sameerasw/essentials/ui/components/pickers/ScreenOffMethodPicker.kt new file mode 100644 index 000000000..ed5ab646a --- /dev/null +++ b/app/src/main/java/com/sameerasw/essentials/ui/components/pickers/ScreenOffMethodPicker.kt @@ -0,0 +1,79 @@ +package com.sameerasw.essentials.ui.components.pickers + +import androidx.compose.foundation.background +import androidx.compose.foundation.basicMarquee +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.ButtonGroupDefaults +import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.material3.ToggleButton +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.res.dimensionResource +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.semantics.Role +import androidx.compose.ui.semantics.role +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.sameerasw.essentials.R +import com.sameerasw.essentials.domain.ScreenOffMethod +import com.sameerasw.essentials.utils.HapticUtil + +@OptIn(ExperimentalMaterial3ExpressiveApi::class) +@Composable +fun ScreenOffMethodPicker( + selectedMethod: ScreenOffMethod, + onMethodSelected: (ScreenOffMethod) -> Unit, + modifier: Modifier = Modifier, + options: List> = listOf( + R.string.screen_off_method_accessibility to ScreenOffMethod.ACCESSIBILITY, + R.string.screen_off_method_input to ScreenOffMethod.INPUT + ) +) { + val labels = options.map { it.first } + val types = options.map { it.second } + + val selectedIndex = types.indexOf(selectedMethod).coerceAtLeast(0) + val view = LocalView.current // Get the current View for haptic feedback + + Row( + modifier = modifier + .background( + color = MaterialTheme.colorScheme.surfaceBright, + shape = RoundedCornerShape(MaterialTheme.shapes.extraSmall.bottomEnd) + ) + .padding(10.dp), + horizontalArrangement = Arrangement.spacedBy(ButtonGroupDefaults.ConnectedSpaceBetween), + ) { + val modifiers = List(labels.size) { Modifier.weight(1f) } + + labels.forEachIndexed { index, label -> + ToggleButton( + checked = selectedIndex == index, + onCheckedChange = { + onMethodSelected(types[index]) + HapticUtil.performLightHaptic(view) // Trigger haptic feedback + }, + modifier = modifiers[index].semantics { role = Role.RadioButton }, + shapes = when (index) { + 0 -> ButtonGroupDefaults.connectedLeadingButtonShapes() + labels.lastIndex -> ButtonGroupDefaults.connectedTrailingButtonShapes() + else -> ButtonGroupDefaults.connectedMiddleButtonShapes() + }, + ) { + Text( + stringResource(label), + fontSize = dimensionResource(R.dimen.font_small).value.sp, + modifier = Modifier.basicMarquee(), + maxLines = 1 + ) + } + } + } +} diff --git a/app/src/main/java/com/sameerasw/essentials/ui/components/text/SimpleMarkdown.kt b/app/src/main/java/com/sameerasw/essentials/ui/components/text/SimpleMarkdown.kt index 20a883d6a..61f9425a7 100644 --- a/app/src/main/java/com/sameerasw/essentials/ui/components/text/SimpleMarkdown.kt +++ b/app/src/main/java/com/sameerasw/essentials/ui/components/text/SimpleMarkdown.kt @@ -449,27 +449,26 @@ private fun parseMarkdown(text: String): AnnotatedString { } when { - matchValue.startsWith("**") && matchValue.endsWith("**") -> { + matchValue.startsWith("**") && matchValue.endsWith("**") && matchValue.length >= 4 -> { withStyle(style = SpanStyle(fontWeight = FontWeight.Bold)) { append(matchValue.substring(2, matchValue.length - 2)) } } - (matchValue.startsWith("*") && matchValue.endsWith("*") && !matchValue.startsWith("**")) || (matchValue.startsWith( - "_" - ) && matchValue.endsWith("_")) -> { + ((matchValue.startsWith("*") && matchValue.endsWith("*") && !matchValue.startsWith("**")) || + (matchValue.startsWith("_") && matchValue.endsWith("_"))) && matchValue.length >= 2 -> { withStyle(style = SpanStyle(fontStyle = FontStyle.Italic)) { append(matchValue.substring(1, matchValue.length - 1)) } } - matchValue.startsWith("") && matchValue.endsWith("") -> { + matchValue.startsWith("") && matchValue.endsWith("") && matchValue.length >= 7 -> { withStyle(style = SpanStyle(textDecoration = TextDecoration.Underline)) { append(matchValue.substring(3, matchValue.length - 4)) } } - matchValue.startsWith("`") && matchValue.endsWith("`") -> { + matchValue.startsWith("`") && matchValue.endsWith("`") && matchValue.length >= 2 -> { withStyle( style = SpanStyle( fontFamily = FontFamily.Monospace, @@ -481,7 +480,7 @@ private fun parseMarkdown(text: String): AnnotatedString { } } - matchValue.startsWith("[") && matchValue.contains("](") -> { + matchValue.startsWith("[") && matchValue.contains("](") && matchValue.endsWith(")") -> { val title = matchValue.substringAfter("[").substringBefore("](") val url = matchValue.substringAfter("](").substringBefore(")") withLink( diff --git a/app/src/main/java/com/sameerasw/essentials/ui/composables/configs/ScreenOffWidgetSettingsUI.kt b/app/src/main/java/com/sameerasw/essentials/ui/composables/configs/ScreenOffWidgetSettingsUI.kt index 64befef91..be9e10ae1 100644 --- a/app/src/main/java/com/sameerasw/essentials/ui/composables/configs/ScreenOffWidgetSettingsUI.kt +++ b/app/src/main/java/com/sameerasw/essentials/ui/composables/configs/ScreenOffWidgetSettingsUI.kt @@ -9,6 +9,10 @@ import androidx.compose.foundation.layout.padding import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text 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.res.stringResource @@ -16,8 +20,12 @@ import androidx.compose.ui.unit.dp import androidx.core.content.edit import com.sameerasw.essentials.R import com.sameerasw.essentials.domain.HapticFeedbackType +import com.sameerasw.essentials.domain.ScreenOffMethod +import com.sameerasw.essentials.ui.components.cards.FeatureCard +import com.sameerasw.essentials.ui.components.cards.IconToggleItem import com.sameerasw.essentials.ui.components.containers.RoundedCardContainer import com.sameerasw.essentials.ui.components.pickers.HapticFeedbackPicker +import com.sameerasw.essentials.ui.components.pickers.ScreenOffMethodPicker import com.sameerasw.essentials.ui.modifiers.highlight import com.sameerasw.essentials.utils.performHapticFeedback import com.sameerasw.essentials.viewmodels.MainViewModel @@ -30,9 +38,28 @@ fun ScreenOffWidgetSettingsUI( vibrator: Vibrator?, prefs: SharedPreferences, modifier: Modifier = Modifier, - highlightSetting: String? = null + highlightSetting: String? = null, + onShowPermissionSheet: (Boolean) -> Unit, + onSetChildFeatureForPermissions: (String?) -> Unit ) { val context = LocalContext.current + val isShizukuPermissionGranted by viewModel.isShizukuPermissionGranted + + var selectedScreenOffMethod by remember { + val name = + prefs.getString("screen_off_method", ScreenOffMethod.ACCESSIBILITY.name) + mutableStateOf( + try { + ScreenOffMethod.valueOf(name ?: ScreenOffMethod.ACCESSIBILITY.name) + } catch (@Suppress("UNUSED_PARAMETER") e: Exception) { + ScreenOffMethod.ACCESSIBILITY + } + ) + } + + var isDoubleTapRequired by remember { + mutableStateOf(prefs.getBoolean("screen_off_double_tap", false)) + } Column( modifier = modifier @@ -40,6 +67,57 @@ fun ScreenOffWidgetSettingsUI( .padding(16.dp), verticalArrangement = Arrangement.spacedBy(4.dp) ) { + // Screen Off Method Category + Text( + text = stringResource(R.string.screen_off_method_title), + style = MaterialTheme.typography.titleMedium, + modifier = Modifier.padding(start = 16.dp, top = 16.dp, bottom = 8.dp), + color = MaterialTheme.colorScheme.onSurfaceVariant + ) + + RoundedCardContainer( + modifier = Modifier, + spacing = 8.dp, + cornerRadius = 24.dp + ) { + ScreenOffMethodPicker( + selectedMethod = selectedScreenOffMethod, + onMethodSelected = { type -> + if (type == ScreenOffMethod.INPUT && !isShizukuPermissionGranted) { + onSetChildFeatureForPermissions(context.getString(R.string.screen_off_widget_input_permission_id)) + onShowPermissionSheet(true) + } else { + prefs.edit { + putString("screen_off_method", type.name) + } + selectedScreenOffMethod = type + } + }, + modifier = Modifier.highlight(highlightSetting == "screen_off_method_picker") + ) + } + + // Double Tap Toggle + RoundedCardContainer( + modifier = Modifier.padding(top = 16.dp), + spacing = 8.dp, + cornerRadius = 24.dp + ) { + IconToggleItem( + title = stringResource(R.string.require_double_tap_title), + description = stringResource(R.string.require_double_tap_desc), + iconRes = R.drawable.rounded_touch_app_24, + isChecked = isDoubleTapRequired, + onCheckedChange = { + isDoubleTapRequired = it + prefs.edit { + putBoolean("screen_off_double_tap", it) + } + }, + showToggle = true + ) + } + // Haptic Feedback Category Text( text = stringResource(R.string.settings_section_haptic), diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 6b6ba9c0e..952c80d55 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -1427,10 +1427,10 @@ Cuando llegue un mensaje o alerta de una aplicación seleccionada, la Pantalla s Metro Superposición de números El tiempo - Seleccionar estilo de reloj + Seleccionar estilo del reloj Actual Aplicar - Estilo de reloj aplicado + Estilo del reloj aplicado Se requiere el permiso WRITE_SECURE_SETTINGS Predeterminado Grosor diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml index a64867aba..ffb1723e0 100644 --- a/app/src/main/res/values-fr-rFR/strings.xml +++ b/app/src/main/res/values-fr-rFR/strings.xml @@ -1,14 +1,14 @@ - Customization + Personnalisation BÊTA - Attempt Shizuku restart - Shizuku Restart Warning - Since wireless debugging was toggled, Shizuku services might not have started automatically causing freezing to not function. Consider turning on attempt shizuku restart as well + Essayer de redémarrer de Shizuku + Avertissement du redémarrage de Shizuku + Comme le débogage sans fil a été activé, les services Shizuku n\'ont peut-être pas démarré automatiquement ce qui empêche la fonctionnalité de gel de fonctionner. Envisagez d\'activer la tentative de redémarrage de Shizuku également Service d\'accessibilité Essentials\n\nCe service est requis pour les fonctionnalités suivantes :\n\n• Réattribution d\'un bouton physique :\nDétecte les appuis sur le bouton volume même si l\'écran est éteint pour déclencher des actions comme allumer la lampe-torche.\n\n• Réglage par appli :\nSurveille les applications actives pour appliquer des profils spécifiques pour le mode éclairage nocturne dynamique, le réglage de couleurs des notifications lumineuses et le verrouillage d\'applis.\n\n• Contrôler l\'écran :\nAutorise l\'application à verrouiller l\'écran (par exemple en utilisant le Double Tap ou les Widgets) et détecter le changement d\'état de l\'écran.\n\n• Sécurité :\nPrévenir les changements non autorisé en détectant le contenu des fenêtres lorsque l\'appareil est verrouillé.\n\nAucun texte saisi ou de données utilisateur sensibles sont collectées ou transmises. Gel d\'applis Désactiver les applis rarement utilisées - Gel d\'applis + Applis gelées Ouvrir le gel d\'applis Application gelée Widget de verrouillage invisible @@ -65,18 +65,18 @@ Afficher un message toast Afficher en superposition sur le mode Always-on Essentials On Display - Glance at media and info on AOD - Docked mode - Keep the overlay visible indefinitely while music is playing on AOD - Respect new notifications - Briefly disable for new notifications - Random shapes - Use various Material 3 shapes for the album art - Album art - Clock - Always use while charging - Force Fill mode when the device is plugged in regardless of the selected mode - Size + Aperçu du média joué et informations sur l\'écran Always-On + Mode docké + Aucun délai + Respecter les nouvelles notifications + Désactiver brièvement pour les nouvelles notifications + Formes aléatoires + Utiliser des formes Material You aléatoires + Couverture d\'album + Horloge + Toujours utiliser pendant la recharge + Forcer le mode remplissage quand l\'appareil est branché indépendamment du mode sélectionné + Taille Aperçu des notifications Garder le mode Always-on tant qu\'il y a des notifications Mêmes applis que les notifications lumineuses @@ -146,8 +146,8 @@ Importer la liste d\'applis gelées Choisir les applis à geler Choisir quelles applis peuvent être gelées - Show in launcher - Add a launcher shortcut for easier access + Afficher dans le lanceur + Ajouter un raccourci sur le lanceur pour un accès plus facile Automatisation Geler au verrouillage Délai avant de geler @@ -235,8 +235,8 @@ Inactif Options pour les développeurs Activez/désactivez facilement les Options pour les développeurs depuis un bloc dans les Réglages rapides. Cela peut réinitialiser certains paramètres développeurs que vous avez modifiés. - Refresh Rate - Cycle between the system default and preset refresh rates directly from a Quick Settings tile using Shizuku. + Fréquence de rafraîchissement + Intervertir entre les paramètres par défaut du système et des fréquences de rafraîchissement prédéfinies directement depuis un bloc de réglages rapides en utilisant Shizuku. NFC DNS Privé Auto @@ -359,8 +359,8 @@ Afficher la barre de gestes de manière dynamique uniquement sur l\'écran d\'accueil Geste « Entourez pour rechercher » Appuyez longuement sur la zone inférieure pour lancer la fonction « Entourez pour rechercher » - Gesture zone height - Adjust the height of the touch area at the bottom + Hauteur de la zone de gesture + Régler la hauteur de la zone de toucher en bas Autres personnalisations Autres améliorations et modifications du système Veuillez noter que l\'implémentation de ces options peut dépendre du constructeur et certaines peuvent ne pas fonctionner du tout. @@ -427,9 +427,9 @@ Écran de verrouillage Verrouillage d\'applis Protégez les applis avec la biométrie - Auto lock delay - After leaving the app - None + Délai de verrouillage automatique + Après la fermeture de l\'appli + Aucun 1 minute 5 minutes 10 minutes @@ -442,15 +442,15 @@ Mode Always-on Afficher l\'heure et des infos quand l\'écran est éteint Synchronisation des calendriers - Sync your phone calendar to your watch - Lock from Watch - Lock your phone remotely - Lock Mode - Screen off - Lock - Using device admin lock will disable biometrics - Connected - Unknown Watch + Synchroniser le calendrier de votre téléphone sur votre montre + Verrouiller depuis la montre + Verrouillez votre téléphone à distance + Mode verrouillage + Écran éteint + Verrouiller + L\'utilisation de l\'administration de l\'appareil va désactiver le déverrouillage biométrique + Connectée + Montre inconnue Superposition Cadre Marque de l\'appareil @@ -551,8 +551,8 @@ Changer le mode de DNS privé (Désactivé/Auto/Nom d\'hôte) Débogage USB Activer/désactiver le débogage USB - Refresh Rate - Cycle between the system default and preset screen refresh rates + Fréquence de rafraîchissement + Basculez entre la fréquence de rafraîchissement par défaut du système et les fréquences prédéfinies Activer la réattribution de boutons Basculer globalement la réattribution du bouton volume Reconfigurer le retour haptique @@ -592,7 +592,7 @@ Navigateur par défaut Requis pour gérer les liens efficacement Requis pour intercepter les appuis sur les boutons physiques - Required to intercept volume key events while the screen is off to trigger the Essentials On Display overlay. + Requis pour intercepter les appuis sur le bouton volume quand l\'écran est éteint pour déclencher la superposition Essentials On Display. Requis pour surveiller les applications en avant-plan. Modifier les paramètres de sécurité Requise pour les icônes de la barre d\'état et la protection de l\'écran de verrouillage @@ -608,7 +608,7 @@ Vérifier Activer dans les paramètres Comment accorder - Granted + Accordée Optimisation de la batterie Assure que le service ne soit pas fermé par le système pour économise de l\'énergie. @@ -716,7 +716,7 @@ Qu\'est-ce que c\'est ? Mise à jour disponible Jetez un coup d\'œil aux spécifications matérielles et logicielles détaillées de votre appareil. Ces informations sont obtenues GSMArena et des propriétés système pour vous fournir un aperçu complet sur votre appareil Android. - Essentials On Display shows a Now Playing overlay on your lock screen when music is playing and playback changes. \n\nIf your device does not support overlays over AOD, you can opt for the Ambience screensaver added in your Android settings as an alternative while charging. + Essentials On Display affiche une fenêtre contextuelle « En cours de lecture » sur votre écran de verrouillage lorsque de la musique est en cours de lecture et que la lecture change. \n\nSi votre appareil ne prend pas en charge les fenêtres contextuelles sur le mode Always-on, vous pouvez opter pour l\'économiseur d\'écran « Ambience », disponible dans les paramètres Android, comme alternative pendant la recharge. La fonctionnalité Notifications lumineuses ajoute un bel effet d\'éclairage des coins de l\'écran quand vous recevez une notification.\n\nYou pouvez personnaliser le style de l\'animation, les couleurs et le comportement. Cela marche même quand l\'écran est éteint (en fonction du constructeur de votre appareil) ou par dessus les applications actives. Choisissez des applis, des priorités de notifications, ou quoi que ce soit qui devrait la déclencher depuis les contrôles donnés. Si votre constructeur ne supporte pas les superpositions sur le mode Always-On, activez l\'option d\'éclairage ambiant trouvable ci-dessous. Éteignez facilement l\'écran avec un appui sur un widget transparent redimensionnable qui n\'ajoute aucune icône ou indice sur votre écran d\'accueil. Prenez les pleins pouvoirs sur vos icônes de la barre d\'état.\n\nCachez des icônes spécifiques comme le Wi-Fi, le Bluetooth, ou les données mobiles pour garder votre barre d\'état épurée. Vous pouvez aussi personnaliser le format de l\'horloge et l\'indicateur de batterie avec des contrôles intelligents également. Ceci sont la liste des contrôles disponibles dans AOSP donc le système d\'exploitation de votre appareil peut ne pas respecter tous ces contrôles. @@ -746,7 +746,7 @@ Partagez les coordonnées (Repère placé) depuis Google Maps vers Essentials pour enregistrer une destination.\n\nLa distance affichée est la distance à vol d\'oiseau vers la destination, pas la distance de trajet par les routes.\n\nPrenez tous les calculs de temps et de distance avec des pincettes car ils ne sont pas toujours corrects. On est arrivés ? Pause - Resume + Reprendre Rayon : %1$dm Distance de la destination : %1$s Dernier : %1$s @@ -857,9 +857,9 @@ Shizuku (Rikka) Shizuku (TuoZi) Rechercher - Recent Searches - No recent searches - Clear all + Recherches récentes + Aucune recherche récente + Tout effacer Requis pour forcer le verrouillage de l\'appareil quand un changement des paramètres réseaux non autorisé est tenté sur l\'écran de verrouillage. Authentifiez-vous pour accéder aux paramètres Paramètres de \"%1$s\" @@ -1121,7 +1121,7 @@ Traitement de la position… DISTANCE RESTANTE Calcul… - Arrêter le traçage + Arrêter Destination prête Démarrer le traçage Voir la carte @@ -1132,7 +1132,7 @@ Requise pour réveiller votre appareil à l\'arrivée. Appuyez pour autoriser. %1$d m %1$.1f km - Alarme de trajet active + Trajet vers %1$s %1$s restant (%2$d%) Progrès du trajet Affiche la distance de la destination en temps réel @@ -1237,10 +1237,10 @@ Aucune montre détectée Il semble que vous n\'ayez pas l\'application compagnon Essentials Wear installée sur votre montre. Installer l\'appli compagnon - Download from GitHub - Install on Watch - To use Watch features, you need to install the Essentials companion app on your Wear OS watch. Click the button below to open the Play Store directly on your watch. - Open on Watch + Télécharger depuis GitHub + Installer sur la montre + Pour utiliser les fonctionnalités de la montre, vous devez installer l\'application compagnon Essentials sur votre montre Wear OS. Cliquez sur le bouton ci-dessous pour ouvrir le Play Store directement sur votre montre. + Ouvrir sur la montre Interaction Interface Affichage @@ -1301,8 +1301,8 @@ Applis Échelles et animations Ajustez les échelles et animations système - Screen Refresh Rate - Set a fixed or ranged screen refresh rate + Fréquence de rafraîchissement de l\'écran + Définir une fréquence de rafraîchissement fixe ou dans une plage Texte Taille de la police Épaisseur de la police @@ -1316,28 +1316,28 @@ Échelle d\'animation des transitions Échelle d\'animation des fenêtres Ajustez la taille de la police, son épaisseur et les vitesses d\'animations pour tout le système. Veuillez noter que certains paramètres peuvent nécessiter des permissions avancées ou un redémarrage pour certaines applis afin d\'appliquer les modifications. \n\nDes permissions additionnelles comme Shizuku ou l\'accès racine (root) peuvent être nécessaires pour l\'ajustement des échelles - Set a custom screen refresh rate using Shizuku. Fixed mode locks both the minimum and peak refresh rate to one value, while range mode lets you define separate minimum and peak values. Reset clears the custom override and returns the device to its system-managed refresh behavior. - Mode - Refresh Rate - Fixed - Range - Fixed refresh rate - Set both minimum and peak refresh rate to the same value - Minimum refresh rate - Choose the lowest refresh rate the display may use - Peak refresh rate - Choose the highest refresh rate the display may use - System - Remove the custom override and return to the system default refresh behavior - Shizuku permission required to adjust refresh rate - Refresh Rate Mode - Switch between fixed and ranged refresh rate control - Fixed Refresh Rate - Lock the display to one custom refresh rate - Refresh Rate Range - Configure separate minimum and peak refresh rates - Reset Refresh Rate - Clear the custom refresh rate override + Définissez une fréquence de rafraîchissement personnalisée à l\'aide de Shizuku. Le mode « Fixe » verrouille à la fois la fréquence minimale et la fréquence maximale sur une seule valeur, tandis que le mode « Plage » vous permet de définir des valeurs minimales et maximales distinctes. La fonction « Réinitialiser » efface la configuration personnalisée et rétablit le comportement de rafraîchissement géré par le système. + Taux de rafraîchissement de l\'écran + Fréquence de rafraîchissement + Fixe + Plage + Fréquence de rafraîchissement fixe + Définissez la fréquence de rafraîchissement minimale et maximale sur la même valeur + Fréquence de rafraîchissement minimale + Choisir la fréquence de rafraîchissement la plus basse que l\'écran peut utiliser + Fréquence de rafraîchissement maximale + Choisir la fréquence de rafraîchissement maximale prise en charge par l\'écran + Système + Supprimez la modification personnalisée et rétablissez le comportement d\'actualisation par défaut du système + La permission Shizuku est requise pour régler la fréquence de rafraîchissement + Mode de fréquence de rafraîchissement fixe + Basculez entre le contrôle du taux de rafraîchissement fixe et le contrôle du taux de rafraîchissement variable + Fréquence de rafraîchissement fixe + Verrouiller l\'écran sur une fréquence de rafraîchissement personnalisée + Plage de fréquence de rafraîchissement + Configurez des fréquences de rafraîchissement minimales et maximales séparées + Réinitialiser la fréquence de rafraîchissement + Effacer le remplacement du taux de rafraîchissement personnalisé Forcer la désactivation du mode Always-on Forcer la désactivation du mode Always-On quand il n\'y a aucune notification. Cela requiert la permission d\'accessibilité. Accessibilité Auto @@ -1379,79 +1379,79 @@ La permission Shizuku ou l\'accès racine (root) est nécessaire pour les effets d\'éclairage du système Conçu pour Google Pixel. Peut ne pas être disponible sur d\'autres appareils. - Live wallpaper - Set custom video as live wallpaper - Live Wallpaper - A video live wallpaper that plays when unlocked. - Play when - Unlock - Screen on - Video - Apply - Add video - Custom video - Set your favorite video as your home screen wallpaper. Choose between triggering the animation upon unlocking or simply whenever the screen turns on for a dynamic experience. + Fond d\'écran animé + Sélectionner une vidéo personnalisée comme fond d\'écran animé + Fond d\'écran animé + Une vidéo qui se joue comme fond d\'écran animé quand l\'appareil est déverrouillé. + Jouer quand + Déverouiller + Écran allumé + Vidéo + Appliquer + Ajouter une vidéo + Vidéo personnalisée + Définissez votre vidéo préférée comme fond d\'écran d\'accueil. Vous pouvez choisir de lancer l\'animation au déverrouillage ou simplement dès que l\'écran s\'allume, pour une expérience dynamique. - Shut-Up! - I know what I\'m doing - Shut-Up! bypasses app restrictions and checks for developer options, accessibility and debugging by dynamically hiding them when you launch sensitive apps. \n\nUse the custom shortcuts to ensure settings are hidden before the app launches. - Select Apps - Choose apps to apply Shut-Up! logic - Shut-Up! Settings - Shut-Up! Features - Disable Developer Options - Disable USB Debugging - Disable Wireless Debugging - Disable Accessibility Services - Shortcut created for %s - Disable rotation suggestion - Do not show the rotation button when auto-rotate is off - App got shut up - Shut up features returned - Auto Freeze - %1$s will be archived in %2$d seconds - Freeze now - Abort + Tais-toi ! + Je sais ce que je fais + \"Tais-toi !\" contourne les restrictions d\'applis et les vérifications pour les options développeurs, l\'accessibilité et le débogage en les cachant dynamiquement quand vous lancez des applis sensibles. \n\nUtilisez des raccourcis personnalisés pour être sûr que les réglages sont cachés avant que l\'appli ne se lance. + Sélectionner des applis + Choisissez les applis auxquelles appliquer la logique \"Tais-toi !\" + Paramètres de \"Tais-toi !\" + Fonctionnalités de \"Tais-toi !\" + Désactionner les options pour les développeurs + Désactiver le débogage USB + Désactiver le débogage sans fil + Désactiver les services d\'accessibilité + Raccourci créé pour %s + Désactiver la suggestion de rotation + Ne pas afficher de bouton de rotation quand la rotation automatique est désactivée + L\'appli s\'est faîte taire + Fonctionnalitées Tais-toi retournées + Gel Auto + %1$s va être archivée dans %2$d secondes + Geler maintenant + Annuler - Lock screen clock - Customize lock screen clock on Pixels - Change the lock screen clock style on Pixels. Select from the available clock faces provided by the System UI. Some old styles might not be available. - Big Number - Calligraphy + Horloge de l\'écran de verrouillage + Personnaliser l\'horloge de l\'écran de verrouillage sur les Pixels + Changez le style de l\'horloge de l\'écran de verrouillage sur les Pixels. Sélectionnez un style d\'horloge fourni par l\'interface système. Certains anciens styles peuvent ne pas être disponibles. + Gros Nombre + Calligraphie Flex - Growth - Handwritten - Inflate + Agrandissement + Écrit à la main + Gonflement Metro - Number Overlap - Weather - Select Clock Style - Current - Apply - Clock style applied - WRITE_SECURE_SETTINGS permission required - Default - Weight - Width + Chevauchement de numéros + Météo + Sélectionner le style d\'horloge + Actuel + Appliquer + Style d\'horloge appliqué + Permission WRITE_SECURE_SETTINGS requise + Par défaut + Poids + Largeur Grade - Roundness - Lightness + Rondeur + Luminosité Variation - Color - Style & Font - About - Default - Red - Green - Blue - Yellow + Couleur + Style & Police + À propos + Par défaut + Rouge + Vert + Bleu + Jaune Orange - Purple - Pink - Teal + Violet + Rose + Bleu canard - Device Specs Retired - Inaccurate GSMArena-powered specifications have been removed to keep device insights clean, fast, and completely reliable. - App Updates Migrated - The Apps tab is now fully integrated into the Your Android feature, making it easier to manage all your app updates in one cohesive hub. + Spécifications de l\'appareil supprimées + Les spécifications inexactes utilisant GSMArena ont été retirées pour garder les informations de l\'appareil propres, rapides et entièrement fiables. + Mises à jour d\'applis migrées + Le menu Applications est maintenant entièrement intégré dans la fonctionnalité \"Votre Android\", rendant plus facile la gestion de toutes les mises à jour de vos applis dans un centre cohérent. diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml new file mode 100644 index 000000000..195061fd3 --- /dev/null +++ b/app/src/main/res/values-in-rID/strings.xml @@ -0,0 +1,1457 @@ + + + + BETA + Mulai ulang Shizuku + Shizuku Restart Warning + Karena debugging nirkabel diaktifkan, layanan Shizuku mungkin tidak dimulai secara otomatis sehingga menyebabkan pembekuan tidak berfungsi. Pertimbangkan untuk mengaktifkan opsi Mulai ulang Shizuku juga. + 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 Freezing + Disable apps that are rarely used + Frozen Apps + Open App Freezing + Frozen App + Empty screen off widget + App Freezing + Flashlight Pulse + Check for pre-releases + Mungkin tidak stabil + Default tab + + Keamanan + Hidupkan kunci aplikasi + Kunci aplikasi + Authenticate to enable app lock + Authenticate to disable app lock + Select locked apps + Choose which apps require authentication + Lindungi aplikasi anda dengan Biometrik. aplikasi yang dikunci akan meminta kunci layar, ketika dibuka, Dan tetap terbuka hingga layar dimatikan. + 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. + Pengingat, permintaan otentikasi biometrik hanya memungkinkan Anda menggunakan metode kelas keamanan KUAT. Metode keamanan buka kunci wajah dalam kelas LEMAH pada perangkat seperti Pixel 7 hanya akan dapat menggunakan metode otentikasi KUAT lainnya yang tersedia seperti sidik jari atau PIN. + Use usage access + Instead of accessibility (Freeze, App Lock, Dynamic Night Light) + + Hidupkan Remap tombol + Gunakan Shizuku atau Root + Berfungsi ketika layar mati (Rekomendasi) + + Detected %1$s + Status: %1$s + + Senter + Opsi senter + Adjust fading and other settings + Tema hitam murni + Use pure black background in dark mode + Haptic Feedback + Remap Long Press + Screen Off + Screen On + Volume naik + Volume turun + Toggle flashlight + Media play/pause + Media next + Media previous + Toggle vibrate + Toggle mute + AI assistant + Ambil Tangkapan layar + Cycle sound modes + Lingkari untuk menelusuri + Like current song + Like song settings + This feature requires notification access to detect the currently playing media and trigger the like action. Please enable it below. + Show toast message + Show overlay on AOD + Essentials On Display + Glance at media and info on AOD + Docked mode + No timeout + Respect new notifications + Briefly disable for new notifications + Bentuk acak + Gunakan bentuk Material You acak + Album art + Clock + Always use while charging + Force Fill mode when the device is plugged in regardless of the selected mode + Size + Notification glance + Keep AOD on while notifications are pending + Same apps as notification lighting + This feature will dynamically enable Always on Display when a notification arrives from a selected app, and disable it once all matching notifications are dismissed. Pick apps or use the same selection as notification lighting. + Izinkan akses notifikasi + Toggle media volume + When the screen is off, long-press the selected button to trigger its assigned action. On Pixel devices, this action only gets triggered if the AOD is on due to system limitations. + When the screen is on, long-press the selected button to trigger its assigned action. + Flashlight Intensity + Fade in and out + Smoothly toggle flashlight + Global controls + Fade-in flashlight globally + Adjust intensity + Volume + - adjusts flashlight intensity + Live update + Show brightness in status bar + Other + Always turn off flashlight + Even while display is on + Pengaturan + + Show Notification + Post Notifications + Allows the app to show notifications + Grant Permission + Caffeinate Active + Active + Screen is being kept awake + Ignore battery optimization + Abort with screen off + Skip countdown + Start Caffeinate immediately. + Timeout Presets + Select available durations for QS tile + 5m + 10m + 30m + Do Not Disturb access + Required to cycle between sound, vibrate and mute modes + 1h + + Dimulai dalam %1$ds… + %1$s tersisa + Persistent notification for Caffeinate + + Enable Dynamic Night Light + Apps that toggle off night light + Pilih aplikasi + + Kontrol aplikasi + Freeze + Unfreeze + Hapus + Create shortcut + App info + What is Freeze? + App freezing disables the app\'s launch activity which removes it from the app list and updates. It will prevent the app from starting at all until it\'s unfrozen which saves resources but you will need to unfreeze from here or manually re-enable. + JANGAN BEKUKAN APLIKASI KOMUNIKASI + What is Suspend? + Suspending an app used to pause the app activity and prevent background executions but with recent Android changes, it only pauses the notifications from appearing and that\'s pretty much it. But does allows you to unpause from the launcher app list as they will be still available as grayscale paused app icons. + Should work the same as the native app pause/ focus mode features. + More options + Bekukan semua aplikasi + Unfreeze all apps + Export frozen apps list + Import frozen apps list + Pick apps to freeze + Choose which apps can be frozen + Show in launcher + Add a launcher shortcut for easier access + Automation + Freeze when locked + Freeze delay + Immediate + 1m + 5m + 15m + Manual + Auto freeze apps + Freeze selected apps when the device locks. Choose a delay to avoid freezing apps if you unlock the screen shortly after turning it off. + Freezing system apps might be dangerous and may cause unexpected behavior. + Enable in Settings + Don\'t freeze active apps + Akses pengunaan + Required to detect which apps are currently in the foreground to avoid freezing them + Required to detect foreground apps for App Lock features when accessibility is not used. + Required to detect playing media and active notifications to avoid freezing them + Freeze mode + Freezing + App suspension + Can not switch mode while apps are frozen. Please unfreeze all and try again. + + Only show when screen off + Skip silent notifications + Skip persistent notifications + Flashlight Pulse + Flashlight pulse + Only while facing down + Same apps as notification lighting + Max brightness + Preview pulse + Style + Stroke adjustment + Corner radius + Stroke thickness + Glow adjustment + Glow spread + Placement + Horizontal position + Vertical position + Indicator adjustment + Scale + Duration + Sweep + Position + Random shapes + Stroke thickness + Left + Center + Right + Animation + Pulse count + Pulse duration + Color Mode + Ambient display + Ambient display + Suitable if you are not using AOD. + Wake screen and show lighting + Munculkan layar kunci + No black overlay + + Add + Added + Already added + Memerlukan Android 13+ + UI Blur + Bubbles + Sensitive Content + Tap to Wake + AOD + Caffeinate + Sound Mode + Notification Lighting + Dynamic Night Light + Locked Security + App Lock + Mono Audio + Flashlight + App Freezing + Flashlight Pulse + Tetap terjaga + Essentials Keyboard + English (US) + Active + Inactive + Opsi developer + Toggle system Developer Options from a QS tile easily. This may reset some of the developer settings you have modified. + Refresh Rate + Cycle between the system default and preset refresh rates directly from a Quick Settings tile using Shizuku. + NFC + DNS Pribadi + Auto + Off + USB Debugging + Pemilih Warna + Kamu yakin kamu di Android 17? (╯°_°)╯ + Eye Dropper + On + Off + Custom Private DNS + DNS Presets + Add DNS Preset + Nama Preset + Reset + Delete preset + Are you sure you want to reset all DNS presets to defaults? This will remove all your custom presets. + Provider hostname + AdGuard DNS + dns.adguard.com + Google Public DNS + dns.google + Cloudflare DNS + 1dot1dot1dot1.cloudflare-dns.com + Quad9 DNS + dns.quad9.net + CleanBrowsing + adult-filter-dns.cleanbrowsing.org + Charging + Limit to 80% + Adaptive + Not optimized + Permission missing + + Disable QS tiles when the device is locked + Disable QS tiles when the device is locked + ⚠️ WARNING + Authenticate to enable this feature + Authenticate to disable this feature + Disable quick setting tiles when the device is locked + Disable QS Locked + Prevent expanding Quick Settings when device is locked + + Re-order modes + Long press to toggle + Drag to reorder + Sound + Vibrate + Silent + + Connectivity + Phone & Network + Audio & Media + System Status + OEM Specific + + WiFi + Bluetooth + NFC / Felica + VPN + Mode Pesawat + Hotspot + Cast + Data Seluler + Phone Signal + VoLTE / VoNR + WiFi Calling / VoWiFi + Call Status / Sync + TTY + Volume + Headset + Speakerphone + DMB + Clock + Input Method (IME) + Alarm + Battery + Power Saving + Data Saver + Rotation Lock + Location / GPS + Sync + Managed Profile + Do Not Disturb + Privacy & Secure Folder + Security Status (SU) + OTG Mouse / Keyboard + Samsung Smart Features + Samsung Services + Ethernet + + Tampilkan detik di Jam + Persentase Baterai + Selalu + Charging + Never + Camera and Microphone use chips + Smart Data + Read Phone State + Required to detect network type for Smart Data feature + Required to detect call status changes to trigger haptic feedback. + Smart Visibility + Smart WiFi + Hide mobile data when WiFi is connected + Hide mobile data in certain modes + Reset All Icons + More Settings + Advanced (Requires Shizuku/Root) + Hide all system icons + Clear all non-notification icons from the status bar + Only hide system icons when locked + Hides the status bar system icons when the device is locked and restores them upon unlock + Sembunyikan Jam + Completely remove the clock from the status bar + Hide notifications + Hide all incoming notification icons + Hide gesture bar + Hide the navigation pill at the bottom + Show on launcher + Dynamically show the gesture bar only when on the home screen + Circle to Search gesture + Long-press the bottom area to trigger Circle to Search + Gesture zone height + Adjust the height of the touch area at the bottom + Kustomisasi lainnya + Additional system tweaks and modifications + Please note that the implementation of these options may depend on the OEM and some may not be functional at all. + + Other + + Clock Seconds + Show seconds in status bar clock + Battery Percentage + Configure battery percentage visibility + Privacy Chips + Show indicator when camera or mic is in use + Toggle visibility for %1$s + Pin to Favorites + Unpin from Favorites + + + Tools + Visuals + System + + Search Essentials + No results for \"%1$s\" + Search Results + %1$s requires following permissions + + Screen off widget + Invisible widget to turn the screen off + Statusbar icons + Control statusbar icons visibility + Caffeinate + Keep the screen awake + Maps power saving mode + Untuk semua perangkat Android + Notification lighting + Light up for notifications + Pulse the flashlight for notifications + Sound mode tile + Call vibrations + Vibrate for call actions + Show Bluetooth devices + Display battery level of connected Bluetooth devices + Limit max devices + Adjust max devices visible in widget + Widget background + Show widget background + + Trigger Automation + Schedule an action to trigger on an observation + State Automation + Schedule an action to execute based on the state of a condition in and out + New Automation + Edit Automation + Link actions + Handle links with multiple apps + Snooze system notifications + Snooze persistent notifications + Quick settings tiles + Lihat semua + Button remap + Remap hardware button actions + Dynamic night light + Toggle night light based on app + Screen locked security + App lock + Secure apps with biometrics + Auto lock delay + After leaving the app + None + 1 minute + 5 minutes + 10 minutes + 20 minutes + 30 minutes + Freeze + Disable rarely used apps + Watermark + Add EXIF data and logos to photos + Always on Display + Show time and info while screen off + Calendar Sync + Sync your phone calendar to your watch + Lock from Watch + Lock your phone remotely + Lock Mode + Screen off + Lock + Using device admin lock will disable biometrics + Connected + Unknown Watch + Overlay + Frame + Device Brand + EXIF Data + Pick Image + Image saved to gallery + Share + EXIF Settings + Focal Length + Aperture + ISO + Shutter Speed + Date & Time + Move to Top + Align Left + Brand Size + Data Size + Text Size + Font Size + Custom Text + Enter your text... + Spacing + Border Width + Round Corners + Color + Logo + Show Logo + Logo Size + Edit Watermark Texts + Device brand + Date & Time + No date information + Rotate left + Rotate right + Next + OK + Save Changes + Calendar Sync Settings + Sync specific calendars + Periodic Sync + Sync every 15 minutes if changes found + Sync Now + Trigger immediate sync to watch + No local calendars found + Calendar sync started + + Widget Haptic feedback + Pick haptic feedback for widget taps + Smart WiFi + Hide mobile data when WiFi is connected + Smart Data + Hide mobile data in certain modes + Reset All Icons + Reset status bar icon visibility to default + Abort Caffeinate with screen off + Automatically turn off Caffeinate when manually locking the device + Lighting Style + Choose between Stroke, Glow, Spinner, and more + Corner radius + Adjust the corner radius of the notification lighting + Skip silent notifications + Do not show lighting for silent notifications + Flashlight pulse + Slowly pulse flashlight for new notifications + Only while facing down + Pulse flashlight only when device is face down + No system channels discovered yet. They will appear here once detected. + UI Blur + Toggle system-wide UI blur + Bubbles + Enable floating window bubbles + Sensitive Content + Hide notification details on lockscreen + Tap to Wake + Double tap to wake control + AOD + Always On Display toggle + Caffeinate + Keep screen awake toggle + Sound Mode + Cycle sound modes (Ring/Vibrate/Silent) + Notification Lighting + Toggle notification lighting service + Dynamic Night Light + Night light automation toggle + Locked Security + Network security on lockscreen toggle + Mono Audio + Force mono audio output toggle + Flashlight + Dedicated flashlight toggle + App Freezing + Launch app freezing grid + Flashlight Pulse + Toggle notification flashlight pulse + Toggle stay awake developer option + Private DNS + Cycle Private DNS modes (Off/Auto/Hostname) + USB Debugging + Toggle USB Debugging developer option + Refresh Rate + Cycle between the system default and preset screen refresh rates + Enable Button Remap + Master toggle for volume button remapping + Remap Haptic Feedback + Vibration feedback when remapped button is pressed + Flashlight toggle + Toggle flashlight with volume buttons + Enable Dynamic Night Light + Master switch for dynamic night light + Enable app lock + Master toggle for app locking + Select locked apps + Choose which apps require authentication + Pick apps to freeze + Choose which apps can be frozen + Freeze all apps + Immediately freeze all picked apps + Freeze when locked + Freeze selected apps when device locks + Freeze delay + Delay before freezing after locking + + Shizuku + Required for advanced commands. Install Shizuku from the Play Store. + Install Shizuku + Grant Permission + Required to run power-saving commands while maps is navigating. + Requires Shizuku or Root + Root Access + Permissions required for system actions using Root privileges. + Notification Listener + Requires notification listener access to monitor Google Maps navigation status and enable power saving when not navigatiing. + Requires notification listener access to detect new notifications and trigger edge lighting. + Requires notification listener access to monitor and snooze unwanted system notifications. + Accessibility Service + Required for App Lock, Screen off widget and other features to detect interactions + Required to trigger notification lighting on new notifications + Default Browser + Required to handle links efficiently + Required to intercept hardware button events + Required to intercept volume key events while the screen is off to trigger the Essentials On Display overlay. + Needed to monitor foreground applications. + Write Secure Settings + Required for Statusbar icons and Screen Locked Security + Needed to toggle Night Light. Grant via ADB or root. + Modify System Settings + Required to toggle Adaptive Brightness and other system settings + Overlay Permission + Required to display the notification lighting overlay on the screen + Device Administrator + Required to hard-lock the device (disabling biometrics) on unauthorized access attempts + Grant Permission + Copy ADB + Check + Enable in Settings + How to grant + Granted + Battery Optimization + Ensure the service is not killed by the system to save power. + + Essentials + Freeze + Frozen + DIY + Apps + Disabled apps + Do It Yourself + Find and manage apps + App Updates + App Updates + Add Repository + Edit Repository + Enter GitHub Repository URL or owner/repo + Track + 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. + + Keyboard Setup + Enable in settings + Switch to Essentials + Enabled + Disabled + Adaptive Brightness + Maps Power Saving + Search + Stop + Search + Search frozen apps + + Back + Back + Settings + Report a Bug + + Crash reporting + Off + Auto + Essentials crashed, Report sent + Simulate crash + Welcome to Essentials + A Toolbox for Android Nerds + by sameerasw.com + Let\'s Begin + Acknowledgement + This app is a collection of utilities that can interact deeply with your device system. Using some features might modify system settings or behavior in unexpected ways. \n\nYou only need to grant necessary permissions which are required for selected features you are using giving you full control over the app\'s behavior. \n\nFurther more, the app does not track or store any of your personal data, I don\'t need them... Keep to yourself safe. You can refer to the source code for more information. \n\nThis app is fully open source and is and always will be free to use. Do not pay or install from unknown sources. + WARNING: Proceed with caution. The developer takes no responsibility for any system instability, data loss, or other issues caused by the use of this app. By proceeding, you acknowledge these risks. + I know you didn\'t even read this carefully but, in case you need any help, feel free to reach out the developer or the community. + I Understand + Anytime you are clueless on a feature or a Quick Settings Tile on what it does and what permissions may necessary for it, just long press it and pick \'What is this?\' to learn more. + You can report bugs or find helpful guides anytime in the app settings. + Let Me in Already + Preferences + Configure some basic settings to get started. + App Settings + Language + Haptic Feedback + Updates + Auto check for updates + Check for updates at app launch + All Set + Check What\'s New? + Welcome back to Essentials + See what\'s new + Default + Glove mode + Glove Mode + Quickly toggle between Default and Glove mode UI profiles + Increase touch sensitivity + Improve touch screen responsiveness when using gloves or screen protectors + Auto rotate + Automatically rotate the screen when the device is turned + Screen timeout + How long the screen stays on before turning off automatically + %d seconds + 1 minute + %d minutes + Restart SystemUI + Kills and restarts SystemUI process to apply some changes immediately + Couldn\'t load the release note + View on web + Done + Preview + Help Guide + What is this? + Update Available + Glance at your device\'s hardware and software specifications in detail. This information is fetched from GSMArena and system properties to provide a comprehensive overview of your Android device. + Essentials On Display shows a Now Playing overlay on your lock screen when music is playing and playback changes. \n\nIf your device does not support overlays over AOD, you can opt for the Ambience screensaver added in your Android settings as an alternative while charging. + Notification Lighting adds a beautiful edge lighting effect when you receive notifications.\n\nYou can customize the animation style, colors, and behavior. It works even when the screen is off (OEM dependent) or on top of your current app. Pick apps, notification priority or what behavior it should be triggering on from given controls. If your OEM does not support overlays above AOD, sue the Ambient display option found below. + Easily turn the screen off with a tap on a transparent resizable widget that does not add icons or any clutter to your home screen. + Take full control over your status bar icons.\n\nHide specific icons like WiFi, Bluetooth, or cellular data to keep your status bar clean. You can also customize the clock format and battery indicator with some smart controls as well. These are the list of available AOSP controls so your device OS might not respect all the controls. + Caffeinate prevents your screen from turning off automatically.\n\nKeep your screen awake for a specific duration or indefinitely. Useful when reading long articles or referencing a recipe. + Get the Pixel 10 series exclusive Google Maps Power Saving mode with the minimal pitch black background to display over your lock screen on any Android device. Start a navigation session, turn the screen off and back on. + Pulse the flashlight when you receive a notification.\n\nWith devices have hardware support for flashlight dimming, the pulse will be smoothly animated. + Snooze annoying persistent system notifications which can not be modified by default. \n\nPlease wait until the notification arrives and then go into this feature where it\'s notification channel will be listed. Select that to snooze from next time.\n\nAny snoozed notification can still be accessed from your notification history in Android. + Add custom tiles to your Quick Settings panel.\n\nLong press any of them to learn what they do. + Remap your hardware buttons to perform different actions and shortcuts.\n\nCustomize what happens when you long press volume buttons with certain conditions. \n\nSome behavior such as screen off trigger or flashlight controls might be OEM dependent on their implementation and may not work on all devices as expected. Some scenarios could be worked around using Shizuku permissions but may not give the same experience due to the implementations. + Automatically toggle your screen blue light filter based on the foreground app. + Enhance security when your device is locked.\n\nRestrict access to some sensitive QS tiles preventing unauthorized network modifications and further preventing them re-attempting to do so by increasing the animation speed to prevent touch spam.\n\nThis feature is not robust and may have flaws such as some tiles which allow toggling directly such as bluetooth or flight mode not being able to be prevented. + Secure your apps with a secondary authentication layer.\n\nYour device lock screen authentication method will be used as long as it meets the class 3 biometric security level by Android standards. + Get notified when you get closer to your destination to ensure you never miss the stop.\n\nGo to Google Maps, long press a pin nearby to your destination and make sure it says \"Dropped pin\" (Otherwise the distance calculation might not be accurate), And then share the location to the Essentials app and start tracking. + Add Destination + Edit Destination + Home, Office, etc. + Name + Save + Cancel + Resolving location… + Last Trip + Saved Destinations + No destinations saved yet. + Delete Destination + Tracking Now + Re-Start + Share coordinates (Dropped pin) from Google Maps to Essentials to save as a destination.\n\nThe distance shown is the direct distance to the destination, not the distance along the roads.\n\nTake all calculations of time and distance with a grain of salt as they are not always accurate. + Are we there yet? + Pause + Resume + Radius: %1$d m + Distance to target: %1$s + Last: %1$s + Never + To go + %1$d min + %1$d hr %2$d min + %1$s (%2$d%%) • %3$s to go + Freeze apps to stop them from running in the background.\n\nPrevent battery drain and data usage by completely freezing apps when you are not using them. They will be unfrozen instantly when you launch them. The apps will not show up in the app drawer and also will not show up for app updates in Play Store while frozen. + A custom input method no-one asked for.\n\nIt is just an experiment. Multiple languages may not get support as it is a very complex and time consuming implementation. + Monitor battery levels of all your connected devices.\n\nSee the battery status of your Bluetooth headphones, watch, and other accessories in one place. Connect with AirSync application to display your mac battery level as well. + Add a custom caption/ watermark to your photos with EXIF data and device information.\n\nShare an image directly from other app to Essentials to easily add a watermark. + Sync all your upcoming calendar schedule not matter the restrictions on Google accounts not letting to be added to wearOS devices due to work or school policies. \n\nMake sure to install the wearOS Essentials companion app to display the schedule in the app as well as in a tile or a complication. + Keep track of updates for your installed apps.\n\nGet notified about available updates, view changelogs and install them easily with a tap. + Add haptic feedback to your calls.\n\nVibrate when a call is connected, disconnected, or accepted, giving you tactile confirmation without looking at the screen. + Quickly toggle between Sound, Vibrate, and Silent modes.\n\nA convenient tile to change your ringer mode without using the volume buttons or settings. You can re-order the modes or disable any if not needed to customize the tile toggle to cycle behavior. + Easily toggle the system level blur depth effect across the OS. + Enable or disable floating notification bubbles.\n\nQuickly toggle the system-wide setting for conversation bubbles. + Hide sensitive content on the lock screen.\n\nToggle whether notification content is shown or hidden when your device is locked. + Toggle tap to wake functionality.\n\nEnable or disable the ability to wake your screen with a tap. + Toggle Always On Display.\n\nQuickly enable or disable the always-on display to view info at a glance. + Automatically control your Always On Display based on your notifications. When a message or alert arrives from a selected app, AOD will stay on until you dismiss the notification, ensuring you never miss important info without wasting battery when no alerts are present. + Combine audio channels into mono.\n\nUseful when using a single earbud or for accessibility purposes. + Toggle the flashlight.\n\nA Long pressing opens the controls for intensity adjustment which might need hardware implementation which some devices may lack. + Keep the screen awake while charging.\n\nPrevents the screen from sleeping as long as the device is connected to a power source which is suitable for developers during debugging. + Toggle NFC.\n\nQuickly enable or disable Near Field Communication for payments and pairing. + Toggle adaptive brightness.\n\nEnable or disable automatic screen brightness adjustment based on ambient light. + Toggle Private DNS.\n\nCycle through Off, Automatic, and Private DNS provider modes. + Toggle USB Debugging.\n\nEnable or disable ADB debugging access directly from the quick settings. + Launch the eye dropper tool to pick colors introduced in Android 17 BETA 2 + Optimize your battery life by limiting the maximum charge or using adaptive charging. This is specially designed for Pixel devices to ensure longevity and healthy charging cycles.\n\nCredits: TebbeUbben/ChargeQuickTile + Download + + Screen Off + Screen On + Device Unlock + Charger Connected + Charger Disconnected + Schedule + Time Period + Select Time + Select Time Range + Start Time + End Time + Repeat on + Charging + Screen On + Vibrate + Show Notification + Remove Notification + Turn On Flashlight + Turn Off Flashlight + Toggle Flashlight + Turn On Low Power Mode + Turn Off Low Power Mode + Dim Wallpaper + This action requires Shizuku or Root to adjust system wallpaper dimming. + Select Trigger + App + Automate based on open app + Select State + Select Action + In Action + Out Action + Cancel + Save + Edit + Delete + Enable + Disable + Automation Service + Automations Active + Monitoring system events for your automations + App Detection Service + App Detection Active + Monitoring app activity + Device Effects + Control system-level effects like grayscale, AOD suppression, wallpaper dimming, and night mode. + Grayscale + Suppress Ambient Display + Dim Wallpaper + Night Mode + This feature requires Android 15 or higher. + Enabled + Disabled + Sound Mode + This action allows switching between Sound, Vibrate, and Silent modes based on triggers. It requires Do Not Disturb access. + + Sameera Wijerathna + The all-in-one toolbox for your Pixel and Androids + + System + Custom + App specific + + Authentication failed + Long press an app in the grid to add a shortcut + App not found or uninstalled + + App Updates + Notifications for new app updates + Update available + No devices connected + Unknown + 5G + 4G + 3G + Shizuku (Rikka) + Shizuku (TuoZi) + Search + Recent Searches + No recent searches + Clear all + Required to hard-lock the device when unauthorized network changes are attempted on lock screen. + Authenticate to access settings + %1$s Settings + feature + settings + hide + show + visibility + Error loading apps: %1$s + + vibration + touch + feel + + + network + visibility + auto + hide + + + restore + default + icon + + + keyboard + height + padding + haptic + input + + + light + torch + + + light + torch + pulse + notification + + + awake + developer + power + charge + + + glow + notification + led + + + round + shape + edge + + + secure + privacy + biometric + face + fingerprint + + + sound + accessibility + hear + + + stay + on + timeout + + + touch + wake + display + + + timer + wait + timeout + + Always dark theme + Pitch black theme + Clipboard History + Long press for symbols + Accented characters + + list + picker + selection + + + animation + visual + look + + + quiet + ignore + filter + + + automation + auto + lock + + + adb + usb + debug + + + blur + glass + vignette + + + float + window + overlay + + + always + display + clock + + + audio + mute + volume + + + blue + filter + auto + + + freeze + shizuku + + + manual + now + shizuku + + + proximity + sensor + face + down + + + switch + master + + + vibration + feel + + + battery + charge + optimization + pixel + + + Invert selection + Show system apps + + You are up to date + This is a pre-release version and might be unstable. + Release Notes %1$s + View on GitHub + Download APK + + None + Subtle + Double + Click + Tick + + Turn Off + Flashlight Brightness + + + Developed by %1$s\nwith ❤\uFE0F from \uD83C\uDDF1\uD83C\uDDF0 + Website + Contact + Telegram + Support + Other Apps + AirSync + ZenZero + Canvas + Tasks + Zero + + Help & Guides + Need more support? Reach out, + Collapse + Expand + Support Group + Email + Send email + No email app available + Step %1$d Image + + Accessibility, Notification and Overlay permissions + You may get this access denied message if you try to grant sensitive permissions such as accessibility, notification listener or overlay permissions. To grant it, check the steps below. + 1. Go to app info page of Essentials. + 2. Open the 3-dot menu and select \'Allow restricted settings\'. You may have to authenticate with biometrics. Once done, Try to grant the permission again. + Shizuku + Shizuku is a powerful tool that allows apps to use system APIs directly with ADB or root permissions. It is required for features like Maps min mode, App Freezer. And willa ssist granting some permissions such as WRITE_SECURE_SETTINGS. \n\nBut the Play Store version of Shizuku might be outdated and will probably be unusable on recent Android versions so in that case, please get the latest version from the github or an up-to-date fork of it. + Maps power saving mode + This feature automatically triggers Google Maps power saving mode which is currently exclusive to the Pixel 10 series. A community member discovered that it is still usable on any Android device by launching the maps minMode activity with root privileges. \n\nAnd then, I had it automated with Tasker to automatically trigger when the screen turns off during a navigation session and then was able to achieve the same with just runtime Shizuku permissions. \n\nIt is intended to be shown over the AOD of Pixel 10 series so because of that, you may see an occasional message popping up on the display that it does not support landscape mode. That is not avoidable by the app and you can ignore. + Silent sound mode + You may have noticed that the silent mode also triggers DND. \n\nThis is due to how the Android implemented it as even if we use the same API to switch to vibrate mode, it for some reason turns on DND along with the silent mode and this is not avoidable at this moment. :( + What is freeze? + Pause and stay away from app distractions while saving a little bit of power preventing apps running in the background. Suitable for rarely used apps. \n\nNot recommended for any communication services as they will not notify you in an emergency unless you unfreeze them. \n\nHighly advised to not freeze system apps as they can lead to system instability. Proceed with caution, You were warned. \n\nInspired by Hail <3 + Are app lock and screen locked security actually secure? + Absolutely not. \n\nAny 3rd party application can not 100% interfere with regular device interactions and even the app lock is only an overlay above selected apps to prevent interacting with them. There are workarounds and it is not foolproof. \n\nSame goes with the screen locked security feature which detects someone trying to interact with the network tiles which for some reason are still accessible for anyone on Pixels. So if they try hard enough they might still be able to change them and especially if you have a flight mode QS tile added, this app can not prevent interactions with it. \n\nThese features are made just as experiments for light usage and would never recommend as strong security and privacy solutions. \n\nSecure alternatives:\n - App lock: Private Space and Secure folder on Pixels and Samsung\n - Preventing mobile networks access: Make sure your theft protection and offline/ power off find my device settings are on. You may look into Graphene OS as well. + Statusbar icons + You may notice that even after resetting the statusbar icons, Some icons such as device rotation, wired headphone icons may stay visible. This is due to how the statubar blacklist is implemented in Android and how your OEM may have customized them. \nYou may need further adjustments. \n\nAlso not all icon visibility options may work as they depend on the OEM implementations and availability. + Notification lighting does not work + It depends on the OEM. Some like OneUI does not seem to allow overlays above the AOD preventing the lighting effects being shown. In this case, try the ambient display as a workaround. + Button remap does not work while display is off + Some OEMs limit the accessibility service reporting once the display is actually off but they may still work while the AOD is on. \nIn this case, you may able to use button remaps with AOD on but not with off. \n\nAs a workaround, you will need to use Shizuku permissions and turn on the \'Use Shizuku or Root\' toggle in button remap settings which identifies and listen to hardware input events.\nThis is not guaranteed to work on all devices and needs testing.\n\nAnd even if it\'s on, Shizuku method only will be used when it\'s needed. Otherwise it will always fallback to Accessibility which also handles the blocking of the actual input during long press. + Flashlight brightness does not work + Only a limited number of devices got hardware and software support adjusting the flashlight intensity. \n\n\'The minimum version of Android is 13 (SDK33).\nFlashlight brightness control only supports HAL version 3.8 and higher, so among the supported devices, the latest ones (For example, Pixel 6/7, Samsung S23, etc.)\'\npolodarb/Flashlight-Tiramisu + What the hell is this app? + Good question,\n\nI always wanted to extract the most out of my devices as I\'ve been a rooted user for ever since I got my first Project Treble device. And I\'ve been loving the Tasker app which is like the god when comes automation and utilizing every possible API and internal features of Android.\n\nSo I am not unrooted and back on stock Android beta experience and wanted to get the most out from what is possible with given privileges. Might as well share them. So with my beginner knowledge in Kotlin Jetpack and with the support of many research and assist tools and also the great community, I built an all-in-one app containing everything I wanted to be in my Android with given permissions. And here it is.\n\nFeature requests are welcome, I will consider and see if they are achievable with available permissions and my skills. Nowadays what is not possible. :)\n\nWhy not on Play Store?\nI don\'t wanna risk getting my Developer account banned due to the highly sensitive and internal permissions and APIs being used in the app. But with the way Android sideloading is headed, let\'s see what we have to do. I do understand the concerns of sideloaded apps being malicious.\nWhile we are at the topic, Checkout my other app AirSync if you are a mac + Android user. *shameless plug*\n\nEnjoy, Keep building! (っ◕‿◕)っ + + Bug report copied to clipboard + Bug report + Share logs + Include logs and details + Device Info + Raw Report + Open GitHub Issue + Email Report + Copy to Clipboard + Essentials Bug Report + Please enable crash reporting as it will automatically report details that would help resolving issues. + + Are we there yet? + Destination nearby alerts + Open Google Maps, pick a location, and share it to Essentials. + Alert Radius: %d m + Location + Used to detect arrival at your destination. + Background Location + Required to monitor your arrival while the app is closed or the screen is off. + Destination Reached! + You have arrived at your destination. + Processing location… + DISTANCE REMAINING + Calculating… + Stop + Destination Ready + Start Tracking + View Map + Clear + No Destination + Open Maps + Full-Screen Alarm Permission + Required to wake your device upon arrival. Tap to grant. + %1$d m + %1$.1f km + Travelling to %1$s + %1$s remaining (%2$d%%) + Travel Progress + Shows real-time distance to destination + Destination Nearby + Prepare to get off + Dismiss + Destination set: %1$.4f, %2$.4f + Use Root + Instead of Shizuku + Root access not available. Please check your root manager. + + Keyboard + Keys + Customize layout and behavior + Keyboard Height + Adjust the total vertical size of the keyboard + Bottom Padding + Add space below the keyboard + Haptic Feedback + Vibrate on key press + Test the keyboard + Keyboard Height + Bottom Padding + Haptic Feedback + Key Roundness + Move functions to bottom + Functions side padding + Haptic feedback strength + Keyboard shape + Round + Flat + Inverse + Batteries + Monitor your device battery levels + Battery Status + Connect to AirSync + Display battery from your connected mac device in AirSync + Download AirSync App + Required for Mac battery sync + Battery notification + Persistent battery status notification + This notification displays battery levels for your connected Mac and Bluetooth devices. You can configure which devices to show in the Battery Widget settings. + Replicate the battery widget experience in your notification shade. It will show the battery levels of all your connected devices in a single persistent notification, updated in real-time. This includes your Mac (via AirSync) and Bluetooth accessories. + Battery Status Notification + Persistent notification showing connected devices battery levels + Nearby Devices + Required to detect and retrieve battery information from Bluetooth accessories + + Copy code + Open login page + Sign in to extend API call limits + Waiting for authorization... + Sign in with GitHub + Sign out + Profile + + Release Notes + No repositories tracked yet + No app linked + Updated %1$s + + just now + Today + Yesterday + %1$dm ago + %1$dh ago + %1$dd ago + %1$d days ago + %1$d weeks ago + %1$dmo ago + %1$d months ago + %1$dy ago + Retry + Start Sign In + Requesting device code... + 1. Copy your code: + 2. Paste the code on GitHub: + Found APKs + README + Refresh + + Sound mode tile + QS tile to toggle sound mode + Show slider + Show volume slider in tile + Cycle Behavior + Choose modes to cycle through + Sound and Haptics + Volume and haptic features + Security and Privacy + Protect and secure your device + Notifications and Alerts + Never miss your priorities + Input and Actions + Control your device with ease + Widgets + At a glance on your home screen + Display + Visuals to enhance your experience + Watch + Integrations with WearOS + No Watch detected + It looks like you do not have the Essentials Wear companion app installed on your watch. + Install Companion + Download from GitHub + Install on Watch + To use Watch features, you need to install the Essentials companion app on your Wear OS watch. Click the button below to open the Play Store directly on your watch. + Open on Watch + Interaction + Interface + Display + Protection + Accessibility + Connectivity + Privacy + Utilities + ABC + \?#/ + Kaomoji + Joy + Love + Embarassment + Sympathy + Dissatisfaction + Anger + Apologizing + Bear + Bird + Cat + Confusion + Dog + Doubt + Enemies + Faces + Fear + Fish + Food + Friends + Games + Greeting + Hiding + Hugging + Indifference + Magic + Music + Nosebleeding + Pain + Pig + Rabbit + Running + Sadness + Sleeping + Special + Spider + Surprise + Weapons + Winking + Writing + Oi! You can check updates in app settings, No need to add here XD + Export + Import + Repositories exported successfully + Failed to export repositories + Repositories imported successfully + Failed to import repositories + Apps + Scale and Animations + Adjust system scale and animations + Screen Refresh Rate + Set a fixed or ranged screen refresh rate + Text + Font Scale + Font Weight + Reset + Scale + Smallest Width + Shizuku permission required to adjust scale + Grant Permission + Animations + Animator duration scale + Transition animation scale + Window animation scale + Adjust system-wide font scale, weight, and animation speeds. Note that some settings may require advanced permissions or a device reboot for certain apps to reflect changes. \n\nAdditional shizuku or root permission may be necessary for scale adjustments + Set a custom screen refresh rate using Shizuku. Fixed mode locks both the minimum and peak refresh rate to one value, while range mode lets you define separate minimum and peak values. Reset clears the custom override and returns the device to its system-managed refresh behavior. + Mode + Refresh Rate + Fixed + Range + Fixed refresh rate + Set both minimum and peak refresh rate to the same value + Minimum refresh rate + Choose the lowest refresh rate the display may use + Peak refresh rate + Choose the highest refresh rate the display may use + System + Remove the custom override and return to the system default refresh behavior + Shizuku permission required to adjust refresh rate + Refresh Rate Mode + Switch between fixed and ranged refresh rate control + Fixed Refresh Rate + Lock the display to one custom refresh rate + Refresh Rate Range + Configure separate minimum and peak refresh rates + Reset Refresh Rate + Clear the custom refresh rate override + Force turn off AOD + Force turn off the AOD when no notifications. Requires accessibility permission. + Auto accessibility + Automatically grants the accessibility permission on app launch if missing using WRITE_SECURE_SETTINGS. + Help and Guides + Your Android + Storage + Memory + Use blur + Enable progressive blur elements across the UI + Blur is disabled on this device to prevent a known display bug on Samsung devices with Android 15 or below. + + No apps selected to freeze. + Get Started + New Automation + Add Repository + + Describe the issue or provide feedback… + Contact email + Send Feedback + Feedback sent successfully! Thanks for helping us improve the app. + Alternatively + + Diagnostics + Device Check + Get ready to be flashbanged! + Abort + Continue + Your Essentials trial has expired + Your free trial period of Essentials has ended. Access to advanced features like Button Remap, App Freezing, and DIY Automations with Premium. + What\'s in Premium? + April Fools! + Just kidding, Essentials is and will always be free and open source. Enjoy! (っ◕‿◕)っ + System + Ripple Animation + Bottom + Center + Custom + Shizuku or Root permission is required for System lighting effects + Made for Google Pixel. Might not be available on other devices. + + Live wallpaper + Set custom video as live wallpaper + Live Wallpaper + A video live wallpaper that plays when unlocked. + Play when + Unlock + Screen on + Video + Apply + Add video + Custom video + Set your favorite video as your home screen wallpaper. Choose between triggering the animation upon unlocking or simply whenever the screen turns on for a dynamic experience. + + Shut-Up! + I know what I\'m doing + Shut-Up! bypasses app restrictions and checks for developer options, accessibility and debugging by dynamically hiding them when you launch sensitive apps. \n\nUse the custom shortcuts to ensure settings are hidden before the app launches. + Select Apps + Choose apps to apply Shut-Up! logic + Shut-Up! Settings + Shut-Up! Features + Disable Developer Options + Disable USB Debugging + Disable Wireless Debugging + Disable Accessibility Services + Shortcut created for %s + Disable rotation suggestion + Do not show the rotation button when auto-rotate is off + App got shut up + Shut up features returned + Auto Freeze + %1$s will be archived in %2$d seconds + Freeze now + Abort + + Lock screen clock + Customize lock screen clock on Pixels + Change the lock screen clock style on Pixels. Select from the available clock faces provided by the System UI. Some old styles might not be available. + Big Number + Calligraphy + Flex + Growth + Handwritten + Inflate + Metro + Number Overlap + Weather + Select Clock Style + Current + Apply + Clock style applied + Memerlukan perizinan WRITE_SECURE_SETTINGS + Default + Weight + Width + Grade + Roundness + Lightness + Variation + Color + Style & Font + Tentang + Default + Red + Green + Blue + Yellow + Orange + Purple + Pink + Teal + + Device Specs Retired + Inaccurate GSMArena-powered specifications have been removed to keep device insights clean, fast, and completely reliable. + App Updates Migrated + The Apps tab is now fully integrated into the Your Android feature, making it easier to manage all your app updates in one cohesive hub. + diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index b5eed0675..5f801a13a 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -1,6 +1,6 @@ - Customization + カスタマイズ ベータ Attempt Shizuku restart Shizuku Restart Warning @@ -64,19 +64,19 @@ この機能は、現在再生中のメディアを検出し「いいね」アクションをトリガーするために通知アクセスを必要とします。下記で有効にしてください。 トーストメッセージを表示 AODにオーバーレイを表示 - Essentials On Display - Glance at media and info on AOD - Docked mode + Essentials on Display + AODにメディアと情報を表示 + ドックモード Keep the overlay visible indefinitely while music is playing on AOD - Respect new notifications - Briefly disable for new notifications - Random shapes + 新しい通知を尊重する + 新しい通知が届いた際に一時的に無効にする + ランダムな形 Use various Material 3 shapes for the album art - Album art - Clock - Always use while charging - Force Fill mode when the device is plugged in regardless of the selected mode - Size + アルバムアート + 時計 + 充電中は必ず使用 + デバイスが充電されると、選択されたモードに関係なく強制的にフィルモードになります + サイズ 通知を表示 Keep AOD on while notifications are pending 通知ライトと同じアプリ @@ -146,8 +146,8 @@ フリーズアプリリストをインポート フリーズさせるアプリを選択 フリーズできるアプリを選択してください - Show in launcher - Add a launcher shortcut for easier access + ランチャーに表示 + 簡単にアクセスするショートカットをランチャーに追加 自動化 画面ロック時にフリーズ タイミング @@ -716,7 +716,7 @@ これは何? アップデートがあります お使いのデバイスのハードウェアおよびソフトウェア仕様を詳細に確認することができます。この情報はGSMArenaおよびシステムプロパティから取得され、Androidデバイスの包括的な概要を提供します。 - Essentials On Display shows a Now Playing overlay on your lock screen when music is playing and playback changes. \n\nIf your device does not support overlays over AOD, you can opt for the Ambience screensaver added in your Android settings as an alternative while charging. + Essentials on Displayは、音楽の再生中や再生内容が変更されたときに、ロック画面に再生中のオーバーレイを表示します。\n\nデバイスがAOD経由のオーバーレイをサポートしていない場合は、充電中に Android 設定で追加されたアンビエンス スクリーンセーバーを代替手段として選択できます。 通知ライトは、通知を受け取った際に美しいエッジライティング効果を追加します。\n\nアニメーションのスタイル、色、動作をカスタマイズできます。画面がオフの場合でも、または現在使用しているアプリの画面上に表示されている場合でも機能します(OEMによって異なります)。アプリ、通知の優先度、またはトリガーする動作を、指定されたコントロールから選択してください。お使いのOEMがAOD上のオーバーレイをサポートしていない場合は、下記のアンビエントディスプレイオプションをご利用ください。 ホーム画面にアイコンや雑然としたものを追加しない、透明でサイズ変更可能なウィジェットをタップするだけで、簡単に画面をオフにできます。 ステータスバーのアイコンを自由にコントロールできます。\n\nWi-Fi、Bluetooth、モバイルデータ通信など、特定のアイコンを非表示にして、ステータスバーをすっきりと保ちます。また、スマートコントロールを使って時計の表示形式やバッテリーインジケーターをカスタマイズすることもできます。これらは利用可能なAOSPコントロールのリストであるため、お使いのデバイスのOSによっては、すべてのコントロールが反映されない場合があります。 @@ -1450,8 +1450,8 @@ ピンク ティール - Device Specs Retired - Inaccurate GSMArena-powered specifications have been removed to keep device insights clean, fast, and completely reliable. - App Updates Migrated - The Apps tab is now fully integrated into the Your Android feature, making it easier to manage all your app updates in one cohesive hub. + デバイス仕様は廃止されました + GSMArenaによって提供された不正確な仕様を削除することで、デバイスに関する分析結果をより正確で高速かつ完全に信頼できるものにしました。 + アプリのアップデートが移行されました + アプリタブが「Android端末情報」機能に完全に統合され、すべてのアプリのアップデートを一つのまとまった場所で簡単に管理できるようになりました。 diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index 227f06699..96f68249b 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -2,8 +2,8 @@ Customization BETA - Attempt Shizuku restart - Shizuku Restart Warning + Shizuku restart poging + Shizuku restart waarschuwing Since wireless debugging was toggled, Shizuku services might not have started automatically causing freezing to not function. Consider turning on attempt shizuku restart as well Toegankelijkheidsservice van Essentials\n\nDeze service is vereist voor de volgende geavanceerde functies:\n\n• Opnieuw toewijzen van fysieke knoppen:\nDetecteert het klikken van de volumeknoppen, zelfs wanneer het scherm uit is, om acties te starten zoals de zaklamp.\n\n• Instellingen per app:\nBekijkt de momenteel actieve app om specifieke profielen toe te passen voor Dynamisch nachtlicht, Meldingsbelichtingskleuren en Appvergrendeling.\n\n• Schermbesturing:\nLaat de app het scherm vergrendelen (bijv. met dubbelklikken of met widgets) en veranderingen van schermstaat detecteren.\n\n• Beveiliging:\nVoorkomt ongeautoriseerde wijzigingen door vensterinhoud te detecteren wanneer het apparaat vergrendeld is.\n\nGeen invoertekst of gevoelige gebruikersdata wordt verzameld of overgezet. Apps bevriezen @@ -28,7 +28,7 @@ Beveilig je apps met biometrische authenticatie. Vergrendelde apps zullen authenticatie vereisen bij openen, blijft ontgrendeld totdat het scherm word uitgezet. Wees er van bewust dat dit niet een robuuste oplossing is, omdat dit alleen maar een app van een derde partij is. Als je sterke beveiliging nodig hebt, probeer dan Privéruimte of andere dergelijke functies. Nog een opmerking: De biometrische authenticatie laat je alleen STERKE beveiligingsmethoden gebruiken. Gezichtsherkenning wordt als ZWAK gezien bij apparaten zoals de Pixel 7. Zulke apparaten zullen andere STERKE beveiligingsmethoden gebruiken zoals vingerafdruk of pincode. - Use usage access + Gebruik toegang tot opslag Instead of accessibility (Freeze, App Lock, Dynamic Night Light) Opnieuw toewijzen van fysieke knoppen inschakelen @@ -66,17 +66,17 @@ Overlay tonen op de Always-On Display Essentials On Display Glance at media and info on AOD - Docked mode + Gedockte modus Keep the overlay visible indefinitely while music is playing on AOD - Respect new notifications - Briefly disable for new notifications - Random shapes + Respecteer nieuwe meldingen + Schakel kort uit bij nieuwe meldingen + Willekeurige vormen Use various Material 3 shapes for the album art Album art - Clock - Always use while charging + Klok + Zet altijd aan tijdens opladen Force Fill mode when the device is plugged in regardless of the selected mode - Size + Grootte Meldingen in één blik Houd het Always-On Display terwijl er meldingen zijn Dezelfde apps als de meldingsverlichting @@ -146,7 +146,7 @@ Exporteer de lijst met bevroren apps Kies apps om te bevriezen Kies welke apps bevroren kunnen worden - Show in launcher + Toon in launcher Add a launcher shortcut for easier access Automatisatie Bevriezen bij vergrendeling @@ -177,8 +177,8 @@ Zaklamppuls Alleen als het apparaat met het scherm naar beneden ligt Dezelfde apps als de meldingsverlichting - Max brightness - Preview pulse + Max helderheid + Toon voorbeeld van pulse Stijl Lijn aanpassen Hoekradius @@ -193,11 +193,11 @@ Duur Sweep Position - Random shapes - Stroke thickness - Left - Center - Right + Willekeurige vormen + Lijndikte + Links + Midden + Rechts Animatie Pulshoeveelheid Pulsduur @@ -210,7 +210,7 @@ Geen zwarte overlay Toevoegen - Added + Toegevoegd Al toegevoegd Vereist Android 13+ UI-vervaging @@ -235,7 +235,7 @@ Inactief Ontwikkelaarsopties Makkelijk de ontwikkelaarsopties in-/uitschakelen via een tegel in de Snelle instellingen. Dit kan sommige ontwikkelaarsinstellingen resetten die je hebt aangepast. - Refresh Rate + Verversingssnelheid Cycle between the system default and preset refresh rates directly from a Quick Settings tile using Shizuku. NFC Privé-DNS @@ -345,19 +345,19 @@ Reset alle iconen Meer instellingen Advanced (Requires Shizuku/Root) - Hide all system icons + Verberg alle systeemiconen Clear all non-notification icons from the status bar Only hide system icons when locked Hides the status bar system icons when the device is locked and restores them upon unlock - Hide clock + Verberg klok Completely remove the clock from the status bar - Hide notifications - Hide all incoming notification icons + Verberg meldingen + Verberg alle inkomende meldingsiconen Hide gesture bar In gesture navigation Show on launcher Dynamically show the gesture bar only when on the home screen - Circle to Search gesture + Circle to Search gebaar Long-press the bottom area to trigger Circle to Search Gesture zone height Adjust the height of the touch area at the bottom @@ -693,20 +693,20 @@ Wat is er nieuw? Welcome back to Essentials See what\'s new - Default - Glove mode - Glove Mode + Standaard + Handschoenmodus + Handschoenmodus Quickly toggle between Default and Glove mode UI profiles - Increase touch sensitivity + Verhoog aanraakgevoeligheid Improve touch screen responsiveness when using gloves or screen protectors - Auto rotate - Automatically rotate the screen when the device is turned - Screen timeout + Automatisch draaien + Draai het scherm automatisch wanneer de telefoon wordt gedraaid + Scherm timeout How long the screen stays on before turning off automatically - %d seconds - 1 minute - %d minutes - Restart SystemUI + %d seconden + 1 minuut + %d minuten + Start SystemUI opnieuw op Kills and restarts SystemUI process to apply some changes immediately Couldn\'t load the release note View on web @@ -745,7 +745,7 @@ Herstarten Deel de coördinaten (Geplaatste speld) van Google Maps naar Essentials om het als een bestemming op te slaan.\n\nDe afstand die wordt weergeven is de directe afstand naar de bestemming, niet langs de wegen.\n\nNeem alle berekeningen met een korreltje zout omdat ze niet altijd kloppen. Zijn we er al? - Pause + Pauzeer Resume Radius: %1$d m Afstand tot bestemming: %1$s @@ -857,9 +857,9 @@ Shizuku (Rikka) Shizuku (TuoZi) Zoeken - Recent Searches - No recent searches - Clear all + Recente zoekopdrachten + Geen recente zoekopdrachten + Alles wissen Vereist om het apparaat compleet te vergrendelen bij onbevoegde netwerkwijzigingen op het vergrendelscherm. Authenticeren om toegang te krijgen tot de instellingen %1$s Instellingen @@ -1237,10 +1237,10 @@ Geen horloge gedetecteerd Het lijkt erop dat je niet de bijbehorende Essentials Wear-app hebt geïnstalleerd op je horloge. Bijbehorende app installeren - Download from GitHub - Install on Watch + Download van GitHub af + Installeer op horloge To use Watch features, you need to install the Essentials companion app on your Wear OS watch. Click the button below to open the Play Store directly on your watch. - Open on Watch + Open op horloge Interacties Interface Scherm @@ -1301,7 +1301,7 @@ Apps Schaal en animaties Pas de systeemgrootte en animaties aan - Screen Refresh Rate + Scherm verversingssnelheid Set a fixed or ranged screen refresh rate Tekst Lettertypegrootte diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index fa3aba141..715bac65f 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -8,7 +8,7 @@ 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. Congelamento de aplicativos Desative aplicativos que raramente são usados - Frozen Apps + App Freezing Abra o congelamento de aplicativos Aplicativo congelado Tela vazia fora do widget diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index db9b08b36..13d9107e0 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -746,7 +746,7 @@ Поделитесь координатами (точка на карте) из Google Maps в Essentials, чтобы сохранить их в качестве пункта назначения.\n\nУказанное расстояние - это прямое расстояние до пункта назначения, а не расстояние по дорогам.\n\nОтноситесь ко всем расчетам времени и расстояния со всей серьезностью, поскольку они не всегда точны. Мы уже на месте? Pause - Resume + Продолжить Радиус: %1$d м Расстояние до цели: %1$s Последнее: %1$s diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index ae5c3b23a..00d6463eb 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -64,7 +64,7 @@ Bu özellik, o anda oynatılan medyayı algılamak ve benzer eylemi tetiklemek için bildirim erişimi gerektirir. Lütfen aşağıdan etkinleştirin. Tost mesajını göster AOD\'de kaplamayı göster - Essentials On Display + Essentials Açık Ekran AOD ile ilgili medya ve bilgilere göz atın Yerleşik mod Zaman aşımı yok @@ -592,7 +592,7 @@ Varsayılan Tarayıcı Bağlantıları verimli bir şekilde yönetmek için gereklidir Donanım düğmesi olaylarını engellemek için gereklidir - Ekran kapalıyken ses seviyesi tuş olaylarını yakalayarak Essentials On Display katmanını tetiklemek için gereklidir. + Ekran kapalıyken ses seviyesi tuş olaylarını yakalayarak Essentials Açık Ekran katmanını tetiklemek için gereklidir. Ön plan uygulamalarını izlemek için gereklidir. Güvenli Ayarları Yaz Durum Çubuğu simgeleri ve Ekran Kilitli Güvenlik için gereklidir @@ -716,7 +716,7 @@ Bu nedir? Güncelleme Mevcut Cihazınızın donanım ve yazılım özelliklerine ayrıntılı olarak göz atın. Bu bilgiler, Android cihazınız hakkında kapsamlı bir genel bakış sağlamak için GSMArena ve sistem özelliklerinden alınır. - Essentials On Display müzik çalarken ve oynatma değiştiğinde kilit ekranınızda Şimdi Çalıyor katmanını gösterir. \n\nCihazınız AOD katmanında gösterme özelliğini desteklemiyorsa, şarj sırasında alternatif olarak Android ayarlarınızda eklenen Ortam ekran koruyucusunu kullanabilirsiniz. + Essentials Açık Ekran müzik çalarken ve oynatma değiştiğinde kilit ekranınızda Şimdi Çalıyor katmanını gösterir. \n\nCihazınız AOD katmanında gösterme özelliğini desteklemiyorsa, şarj sırasında alternatif olarak Android ayarlarınızda eklenen Ortam ekran koruyucusunu kullanabilirsiniz. Bildirim Aydınlatması, bildirim aldığınızda güzel bir kenar aydınlatma efekti ekler.\n\nAnimasyon stilini, renklerini ve davranışını özelleştirebilirsiniz. Ekran kapalıyken (OEM\'e bağlı) veya mevcut uygulamanızın üstündeyken bile çalışır. Verilen kontrollerden uygulamaları, bildirim önceliğini veya hangi davranışı tetiklemesi gerektiğini seçin. Eğer OEM\'iniz AOD üzerindeki yer alan kaplamaları desteklemiyorsa, aşağıda bulunan Ortam ekranı seçeneğini kullanın. Ana ekranınıza simge veya herhangi bir karışıklık eklemeyen, şeffaf, yeniden boyutlandırılabilir bir widget\'a dokunarak ekranı kolayca kapatın. Durum çubuğu simgeleriniz üzerinde tam kontrole sahip olun.\n\nDurum çubuğunuzu temiz tutmak için WiFi, Bluetooth veya hücresel veri gibi belirli simgeleri gizleyin. Ayrıca bazı akıllı kontrollerle saat formatını ve pil göstergesini de özelleştirebilirsiniz. Bunlar mevcut AOSP kontrollerinin listesidir; dolayısıyla cihazınızın işletim sistemi tüm kontrollere uymayabilir. @@ -1036,7 +1036,7 @@ Güncelsiniz Bu, yayın öncesi bir sürümdür ve kararsız olabilir. Sürüm Notları %1$s - GitHub\'da görüntüle + GitHub\'ta görüntüle APK\'yi indir Hiçbiri @@ -1062,7 +1062,7 @@ Zero Yardım & Kılavuzlar - Daha fazla desteğe mi ihtiyacınız var? Ulaş, + Daha fazla desteğe mi ihtiyacınız var? Ulaşın, Yıkılmak Genişletmek Destek Grubu @@ -1103,7 +1103,7 @@ Günlükleri ve ayrıntıları ekleyin Cihaz Bilgisi Ham Rapor - GitHub\'da Sorun oluştur + GitHub\'ta Sorun oluştur E-posta Raporu Panoya kopyala Temel Hata Raporu diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f8c45783d..d94517e5d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -406,6 +406,12 @@ Screen off widget Invisible widget to turn the screen off + Screen Off Method + Accessibility + Input + Screen off widget - Input + Require double tap + To screen off Statusbar icons Control statusbar icons visibility Caffeinate diff --git a/gradle.properties b/gradle.properties index 68a7494d8..66eb19112 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,29 +1,24 @@ -# Project-wide Gradle settings. -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. -# For more details on how to configure your build environment visit +## For more details on how to configure your build environment visit # http://www.gradle.org/docs/current/userguide/build_environment.html +# # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -Dkotlin.daemon.jvm.options="-Xmx2048m" +# Default value: -Xmx1024m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +# # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. For more details, visit # https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects -org.gradle.parallel=true +# org.gradle.parallel=true +#Sun May 17 22:55:34 IST 2026 +android.dependency.useConstraints=false +android.nonTransitiveRClass=true +android.r8.strictFullModeForKeepRules=false +android.uniquePackageNames=false +android.useAndroidX=true +kotlin.code.style=official org.gradle.caching=true org.gradle.configuration-cache=true org.gradle.configuration-cache.problems=warn -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app's APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true -# Kotlin code style for this project: "official" or "obsolete": -kotlin.code.style=official -# Enables namespacing of each library's R class so that its R class includes only the -# resources declared in the library itself and none from the library's dependencies, -# thereby reducing the size of the R class for that library -android.nonTransitiveRClass=true -android.uniquePackageNames=false -android.dependency.useConstraints=false -android.r8.strictFullModeForKeepRules=false \ No newline at end of file +org.gradle.jvmargs=-Xmx4096M -Dfile.encoding\=UTF-8 -XX\:+HeapDumpOnOutOfMemoryError -Dkotlin.daemon.jvm.options\="-Xmx4096M" +org.gradle.parallel=true