mirror of
https://github.com/jrpie/Launcher.git
synced 2025-04-04 19:34:30 +02:00
Compare commits
6 commits
e8a3993abb
...
bfb3bec42e
Author | SHA1 | Date | |
---|---|---|---|
![]() |
bfb3bec42e | ||
![]() |
152201c424 | ||
![]() |
1c3e19071a | ||
![]() |
bcfe13e5b6 | ||
![]() |
77212c14ca | ||
944eb89fef |
15 changed files with 164 additions and 26 deletions
|
@ -21,6 +21,9 @@ sealed interface Action {
|
|||
fun getIcon(context: Context): Drawable?
|
||||
fun isAvailable(context: Context): Boolean
|
||||
|
||||
// Can the action be used to reach µLauncher settings?
|
||||
fun canReachSettings(): Boolean
|
||||
|
||||
|
||||
fun bindToGesture(prefEditor: Editor, id: String) {
|
||||
prefEditor.putString(id, Json.encodeToString(this))
|
||||
|
@ -50,7 +53,10 @@ sealed interface Action {
|
|||
.map { Pair(it, Json.decodeFromString<Action>(it)) }
|
||||
.firstOrNull { it.second.isAvailable(context) }
|
||||
?.apply {
|
||||
boundActions.add(first)
|
||||
// allow to bind CHOOSE to multiple gestures
|
||||
if (second != LauncherAction.CHOOSE) {
|
||||
boundActions.add(first)
|
||||
}
|
||||
second.bindToGesture(editor, gesture.id)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -74,4 +74,8 @@ class AppAction(val app: AppInfo) : Action {
|
|||
// check if app is installed
|
||||
return DetailedAppInfo.fromAppInfo(app, context) != null
|
||||
}
|
||||
|
||||
override fun canReachSettings(): Boolean {
|
||||
return false
|
||||
}
|
||||
}
|
|
@ -168,6 +168,12 @@ enum class Gesture(
|
|||
R.string.settings_gesture_description_double_right,
|
||||
R.array.default_double_right,
|
||||
R.anim.left_right
|
||||
),
|
||||
BACK(
|
||||
"action.back",
|
||||
R.string.settings_gesture_back,
|
||||
R.string.settings_gesture_description_back,
|
||||
R.array.default_up
|
||||
);
|
||||
|
||||
enum class Edge {
|
||||
|
|
|
@ -13,6 +13,7 @@ import android.os.UserManager
|
|||
import android.provider.Settings
|
||||
import android.view.KeyEvent
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.widget.AppCompatDrawableManager
|
||||
import de.jrpie.android.launcher.Application
|
||||
import de.jrpie.android.launcher.R
|
||||
import de.jrpie.android.launcher.apps.AppFilter
|
||||
|
@ -40,25 +41,29 @@ enum class LauncherAction(
|
|||
val label: Int,
|
||||
val icon: Int,
|
||||
val launch: (Context) -> Unit,
|
||||
val available: (Context) -> Boolean = { true }
|
||||
private val canReachSettings: Boolean = false,
|
||||
val available: (Context) -> Boolean = { true },
|
||||
) : Action {
|
||||
SETTINGS(
|
||||
"settings",
|
||||
R.string.list_other_settings,
|
||||
R.drawable.baseline_settings_24,
|
||||
::openSettings
|
||||
::openSettings,
|
||||
true
|
||||
),
|
||||
CHOOSE(
|
||||
"choose",
|
||||
R.string.list_other_list,
|
||||
R.drawable.baseline_menu_24,
|
||||
::openAppsList
|
||||
::openAppsList,
|
||||
true
|
||||
),
|
||||
CHOOSE_FROM_FAVORITES(
|
||||
"choose_from_favorites",
|
||||
R.string.list_other_list_favorites,
|
||||
R.drawable.baseline_favorite_24,
|
||||
{ context -> openAppsList(context, true) }
|
||||
{ context -> openAppsList(context, true) },
|
||||
true
|
||||
),
|
||||
TOGGLE_PRIVATE_SPACE_LOCK(
|
||||
"toggle_private_space_lock",
|
||||
|
@ -127,7 +132,11 @@ enum class LauncherAction(
|
|||
}
|
||||
|
||||
override fun isAvailable(context: Context): Boolean {
|
||||
return true
|
||||
return this.available(context)
|
||||
}
|
||||
|
||||
override fun canReachSettings(): Boolean {
|
||||
return this.canReachSettings
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
|
|
@ -7,6 +7,7 @@ import de.jrpie.android.launcher.actions.Action
|
|||
import de.jrpie.android.launcher.apps.AppInfo
|
||||
import de.jrpie.android.launcher.apps.DetailedAppInfo
|
||||
import de.jrpie.android.launcher.preferences.legacy.migratePreferencesFromVersion1
|
||||
import de.jrpie.android.launcher.preferences.legacy.migratePreferencesFromVersion2
|
||||
import de.jrpie.android.launcher.preferences.legacy.migratePreferencesFromVersionUnknown
|
||||
import de.jrpie.android.launcher.ui.HomeActivity
|
||||
|
||||
|
@ -14,7 +15,7 @@ import de.jrpie.android.launcher.ui.HomeActivity
|
|||
* Increase when breaking changes are introduced and write an appropriate case in
|
||||
* `migratePreferencesToNewVersion`
|
||||
*/
|
||||
const val PREFERENCE_VERSION = 2
|
||||
const val PREFERENCE_VERSION = 3
|
||||
const val UNKNOWN_PREFERENCE_VERSION = -1
|
||||
private const val TAG = "Launcher - Preferences"
|
||||
|
||||
|
@ -32,13 +33,16 @@ fun migratePreferencesToNewVersion(context: Context) {
|
|||
|
||||
UNKNOWN_PREFERENCE_VERSION -> { /* still using the old preferences file */
|
||||
migratePreferencesFromVersionUnknown(context)
|
||||
|
||||
Log.i(TAG, "migration of preferences complete.")
|
||||
Log.i(TAG, "migration of preferences complete (${UNKNOWN_PREFERENCE_VERSION} -> ${PREFERENCE_VERSION}).")
|
||||
}
|
||||
|
||||
1 -> {
|
||||
migratePreferencesFromVersion1()
|
||||
Log.i(TAG, "migration of preferences complete.")
|
||||
Log.i(TAG, "migration of preferences complete (1 -> ${PREFERENCE_VERSION}).")
|
||||
}
|
||||
2 -> {
|
||||
migratePreferencesFromVersion2()
|
||||
Log.i(TAG, "migration of preferences complete (2 -> ${PREFERENCE_VERSION}).")
|
||||
}
|
||||
|
||||
else -> {
|
||||
|
|
|
@ -117,11 +117,12 @@ private fun migrateAction(key: String) {
|
|||
* (see [PREFERENCE_VERSION])
|
||||
*/
|
||||
fun migratePreferencesFromVersion1() {
|
||||
assert(PREFERENCE_VERSION == 2)
|
||||
assert(LauncherPreferences.internal().versionCode() == 1)
|
||||
Gesture.entries.forEach { g -> migrateAction(g.id) }
|
||||
migrateAppInfoSet(LauncherPreferences.apps().keys().hidden())
|
||||
migrateAppInfoSet(LauncherPreferences.apps().keys().favorites())
|
||||
migrateAppInfoStringMap(LauncherPreferences.apps().keys().customNames())
|
||||
LauncherPreferences.internal().versionCode(2)
|
||||
|
||||
migratePreferencesFromVersion2()
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package de.jrpie.android.launcher.preferences.legacy
|
||||
|
||||
import de.jrpie.android.launcher.actions.Action
|
||||
import de.jrpie.android.launcher.actions.Gesture
|
||||
import de.jrpie.android.launcher.actions.LauncherAction
|
||||
import de.jrpie.android.launcher.preferences.LauncherPreferences
|
||||
import de.jrpie.android.launcher.preferences.PREFERENCE_VERSION
|
||||
|
||||
|
||||
/**
|
||||
* Migrate preferences from version 2 (used until version 0.0.21) to the current format
|
||||
* (see [PREFERENCE_VERSION])
|
||||
*/
|
||||
fun migratePreferencesFromVersion2() {
|
||||
assert(PREFERENCE_VERSION == 3)
|
||||
assert(LauncherPreferences.internal().versionCode() == 2)
|
||||
// previously there was no setting for this
|
||||
Action.setActionForGesture(Gesture.BACK, LauncherAction.CHOOSE)
|
||||
LauncherPreferences.internal().versionCode(3)
|
||||
}
|
|
@ -50,7 +50,6 @@ private const val TAG = "Preferences ? -> 1"
|
|||
* and a different file was used.
|
||||
*/
|
||||
fun migratePreferencesFromVersionUnknown(context: Context) {
|
||||
assert(PREFERENCE_VERSION == 2)
|
||||
|
||||
Log.i(
|
||||
TAG,
|
||||
|
|
|
@ -9,6 +9,7 @@ import android.util.DisplayMetrics
|
|||
import android.view.GestureDetector
|
||||
import android.view.KeyEvent
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.view.ViewConfiguration
|
||||
import android.window.OnBackInvokedDispatcher
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
|
@ -54,6 +55,10 @@ class HomeActivity : UIObject, AppCompatActivity(),
|
|||
) {
|
||||
recreate()
|
||||
}
|
||||
|
||||
if (prefKey?.startsWith("action.") == true) {
|
||||
updateSettingsFallbackButtonVisibility()
|
||||
}
|
||||
}
|
||||
|
||||
private var edgeWidth = 0.15f
|
||||
|
@ -80,6 +85,10 @@ class HomeActivity : UIObject, AppCompatActivity(),
|
|||
handleBack()
|
||||
}
|
||||
}
|
||||
binding.buttonFallbackSettings.setOnClickListener {
|
||||
LauncherAction.SETTINGS.invoke(this)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -96,6 +105,20 @@ class HomeActivity : UIObject, AppCompatActivity(),
|
|||
|
||||
}
|
||||
|
||||
private fun updateSettingsFallbackButtonVisibility() {
|
||||
// If µLauncher settings can not be reached from any action bound to an enabled gesture,
|
||||
// show the fallback button.
|
||||
binding.buttonFallbackSettings.visibility = if (
|
||||
!Gesture.entries.any { g ->
|
||||
g.isEnabled() && Action.forGesture(g)?.canReachSettings() == true
|
||||
}
|
||||
) {
|
||||
View.VISIBLE
|
||||
} else {
|
||||
View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
private fun initClock() {
|
||||
val locale = Locale.getDefault()
|
||||
val dateVisible = LauncherPreferences.clock().dateVisible()
|
||||
|
@ -152,6 +175,7 @@ class HomeActivity : UIObject, AppCompatActivity(),
|
|||
edgeWidth = LauncherPreferences.enabled_gestures().edgeSwipeEdgeWidth() / 100f
|
||||
|
||||
initClock()
|
||||
updateSettingsFallbackButtonVisibility()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
|
@ -299,7 +323,7 @@ class HomeActivity : UIObject, AppCompatActivity(),
|
|||
|
||||
|
||||
private fun handleBack() {
|
||||
LauncherAction.CHOOSE.launch(this)
|
||||
Gesture.BACK(this)
|
||||
}
|
||||
|
||||
override fun isHomeScreen(): Boolean {
|
||||
|
|
|
@ -34,4 +34,18 @@
|
|||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<!-- only shown when µLauncher settings can't be reached by a gesture -->
|
||||
<ImageView
|
||||
android:id="@+id/button_fallback_settings"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/settings"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"
|
||||
android:padding="20dp"
|
||||
android:alpha="0.4"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:srcCompat="@drawable/baseline_settings_24"/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
@ -4,7 +4,7 @@
|
|||
<string name="settings_launcher_section_appearance">Aspetto</string>
|
||||
<string name="settings_apps_choose">Scegliere l\'applicazione</string>
|
||||
<string name="settings_theme_color_theme">Tema</string>
|
||||
<string name="tutorial_concept_text">Questo launcher è progettato per essere minimale, efficiente e privo di distrazioni.\n\nNon contiene pagamenti, pubblicità o servizi di tracciamento.</string>
|
||||
<string name="tutorial_concept_text">Questo launcher è progettato per essere minimale, efficiente e privo di distrazioni. Non contiene pagamenti, pubblicità o servizi di tracciamento.</string>
|
||||
<string name="settings_theme_color_theme_item_default">Predefinito</string>
|
||||
<string name="settings_apps_hide_bound_apps">Non mostrare applicazioni collegate a gesti nella lista delle app</string>
|
||||
<string name="settings_list_layout_item_text">Testo</string>
|
||||
|
@ -45,11 +45,11 @@
|
|||
<string name="settings_gesture_description_double_down">Scorri verso il basso con due dita</string>
|
||||
<string name="settings_gesture_left">Sinistra</string>
|
||||
<string name="settings_gesture_description_left">Scorrere verso sinistra</string>
|
||||
<string name="settings_gesture_double_left">Doppio a sinistra</string>
|
||||
<string name="settings_gesture_double_left">Due dita verso sinistra</string>
|
||||
<string name="settings_gesture_description_double_left">Scorrere verso sinistra con due dita</string>
|
||||
<string name="settings_gesture_right">Destra</string>
|
||||
<string name="settings_gesture_description_right">Scorri verso destra</string>
|
||||
<string name="settings_gesture_double_right">Doppio a destra</string>
|
||||
<string name="settings_gesture_double_right">Due dita verso destra</string>
|
||||
<string name="settings_gesture_description_double_right">Scorri a destra con due dita</string>
|
||||
<string name="settings_gesture_right_top_edge">Destra (in alto)</string>
|
||||
<string name="settings_gesture_description_right_top_edge">Scorri verso destra sul bordo superiore dello schermo</string>
|
||||
|
@ -125,12 +125,12 @@
|
|||
<string name="tutorial_setup_text">Abbiamo impostato alcune app predefinite per te. Puoi modificarle ora se lo desideri:</string>
|
||||
<string name="tutorial_setup_text_2">Puoi anche cambiare la tua selezione in seguito.</string>
|
||||
<string name="tutorial_finish_title">Iniziamo!</string>
|
||||
<string name="tutorial_finish_text">Sei pronto per iniziare!\n\nSpero questa applicazione ti risulti preziosa!\n\n- Finn (che ha ideato il launcher)\n\t e Josia (che ha aggiunto qualche miglioramento e mantiene il fork μLauncher)</string>
|
||||
<string name="tutorial_finish_text">Sei pronto per iniziare! Spero questa applicazione ti risulti preziosa! - Finn (che ha ideato il launcher)\n \te Josia (che ha aggiunto qualche miglioramento e mantiene il fork μLauncher)</string>
|
||||
<string name="tutorial_finish_button">Inizia</string>
|
||||
<string name="settings">Impostazioni</string>
|
||||
<string name="ic_menu_alt">Altre opzioni</string>
|
||||
<string name="tutorial_usage_text_2">Puoi aprire le tue app facendo scorrere il dito sullo schermo o premendo un pulsante. Configura i gesti nella prossima slide.</string>
|
||||
<string name="alert_cant_expand_status_bar_panel">Errore: impossibile espandere la barra di stato.\nQuesta azione utilizza funzionalità non incluse nelle API Android pubbliche. Sfortunatamente, non sembra funzionare sul tuo dispositivo.</string>
|
||||
<string name="alert_cant_expand_status_bar_panel">Errore: impossibile espandere la barra di stato. Questa azione utilizza funzionalità non incluse nelle API Android pubbliche. Sfortunatamente, non sembra funzionare sul tuo dispositivo.</string>
|
||||
<string name="snackbar_app_hidden">Applicazione nascosta. Puoi renderla nuovamente visibile nelle impostazioni.</string>
|
||||
<string name="toast_device_admin_not_enabled">µLauncher deve essere autorizzato come amministratore del dispositivo per bloccare lo schermo.</string>
|
||||
<string name="device_admin_description">Abilita il blocco dello schermo</string>
|
||||
|
@ -182,7 +182,7 @@
|
|||
<string name="list_app_hidden_remove">Mostra</string>
|
||||
<string name="list_app_rename">Rinomina</string>
|
||||
<string name="list_removed">Le applicazioni selezionate sono state rimosse</string>
|
||||
<string name="list_apps_search_hint">Cerca tra le applicazioni</string>
|
||||
<string name="list_apps_search_hint">Cerca</string>
|
||||
<string name="list_other_settings">Impostazioni μLauncher</string>
|
||||
<string name="list_other_expand_notifications_panel">Espandi il pannello notifiche</string>
|
||||
<string name="list_other_nop">Non fare niente</string>
|
||||
|
@ -191,11 +191,50 @@
|
|||
<string name="tutorial_title">Tutorial</string>
|
||||
<string name="tutorial_start_text">Prenditi qualche secondo per imparare ad usare questo launcher!</string>
|
||||
<string name="tutorial_concept_title">Concetto</string>
|
||||
<string name="tutorial_concept_text_2">L\'app è open source (sotto licenza MIT) e disponibile su GitHub!\n\nVisita il nostro archivio!</string>
|
||||
<string name="tutorial_concept_text_2">L\'app è open source (sotto licenza MIT) e disponibile su GitHub! Visita il nostro archivio!</string>
|
||||
<string name="tutorial_usage_title">Utilizzo</string>
|
||||
<string name="tutorial_usage_text">La schermata principale contiene solo data e ora. Nessuna distrazione.</string>
|
||||
<string name="alert_requires_android_m">Questa funzione richiede Android 6.0 o successivi.</string>
|
||||
<string name="alert_requires_android_m">Questa funzione richiede Android 6 o successivi.</string>
|
||||
<string name="dialog_rename_ok">Ok</string>
|
||||
<string name="dialog_rename_title">Rinomina %1$s</string>
|
||||
<string name="list_not_removed">Impossibile rimuovere l\'applicazione</string>
|
||||
<string name="settings_theme_color_theme_item_dynamic">Dinamico</string>
|
||||
<string name="settings_clock_color">Colore</string>
|
||||
<string name="settings_gesture_double_up">Due dita verso l\'alto</string>
|
||||
<string name="dialog_consent_accessibility_privileges">Sono consapevole che questo concederà privilegi estesi a µLauncher.</string>
|
||||
<string name="dialog_consent_accessibility_consent">Accetto che µLauncher utilizzi il servizio di accessibilità per fornire funzionalità non correlate all\'accessibilità.</string>
|
||||
<string name="dialog_consent_accessibility_data_collection">Accetto che µLauncher non raccolga alcun dato.</string>
|
||||
<string name="settings_apps_hide_paused_apps">Nascondi le app in pausa</string>
|
||||
<string name="list_other_toggle_private_space_lock">Attiva/Disattiva Blocco Spazio Privato</string>
|
||||
<string name="alert_requires_android_v">Questa funzionalità richiede Android 15 o successivi.</string>
|
||||
<string name="dialog_select_color_red">Rosso</string>
|
||||
<string name="dialog_select_color_alpha">Trasparente</string>
|
||||
<string name="dialog_select_color_blue">Blu</string>
|
||||
<string name="dialog_select_color_green">Verde</string>
|
||||
<string name="dialog_select_color_ok">Ok</string>
|
||||
<string name="dialog_select_color_color_hex">Colore</string>
|
||||
<string name="dialog_choose_color_title">Scegli colore</string>
|
||||
<string name="dialog_consent_accessibility_ok">Attiva Servizi di Accessibilità</string>
|
||||
<string name="dialog_consent_accessibility_other_options">Sono consapevole che esistono altre opzioni (utilizzando i privilegi di amministratore del dispositivo o il pulsante di accensione).</string>
|
||||
<string name="dialog_consent_accessibility_title">Attivazione dei Servizi di Accessibilità</string>
|
||||
<string name="settings_functionality_search_web">Cerca su internet</string>
|
||||
<string name="settings_functionality_search_web_summary">Premi invio durante la ricerca nell\'elenco delle app per avviare una ricerca su internet.</string>
|
||||
<string name="list_apps_search_hint_no_auto_launch">Cerca (senza avvio automatico)</string>
|
||||
<string name="settings_meta_licenses">Licenze Open Source</string>
|
||||
<string name="legal_info_title">Licenze Open Source</string>
|
||||
<string name="dialog_report_bug_title">Segnala un bug</string>
|
||||
<string name="dialog_report_bug_info">Grazie per aver contribuito a migliorare µLauncher!\nSi prega di aggiungere le seguenti informazioni alla segnalazione del bug:</string>
|
||||
<string name="dialog_report_bug_button_clipboard">Copia negli appunti</string>
|
||||
<string name="dialog_report_bug_security_info">Non segnalare pubblicamente le vulnerabilità di sicurezza su GitHub, ma utilizza invece:</string>
|
||||
<string name="dialog_cancel">Annulla</string>
|
||||
<string name="settings_functionality_auto_launch_summary">Premi spazio per disabilitare temporaneamente questa funzionalità.</string>
|
||||
<string name="dialog_report_bug_button_security">Segnala una vulnerabilità di sicurezza</string>
|
||||
<string name="dialog_report_bug_create_report">Crea una segnalazione</string>
|
||||
<string name="toast_private_space_locked">Spazio privato bloccato</string>
|
||||
<string name="toast_private_space_unlocked">Spazio privato sbloccato</string>
|
||||
<string name="toast_private_space_not_available">Spazio privato non disponibile</string>
|
||||
<string name="toast_private_space_default_home_screen">µLauncher deve essere la schermata iniziale predefinita per accedere allo spazio privato.</string>
|
||||
<string name="toast_activity_not_found_browser">Impossibile aprire l\'URL: nessun browser trovato.</string>
|
||||
<string name="toast_activity_not_found_search_web">Non è stata trovata un\'applicazione per gestire la ricerca.</string>
|
||||
<string name="dialog_consent_accessibility_text"><![CDATA[Stai per arrivare il servizio di accessibilità. Questo garantirà <strong>privilegi più ampi</strong> a µLauncher.<br/>µLauncher utilizzerà questi privilegi <strong>solo per bloccare lo schermo</strong>. µLauncher <strong>non raccoglierà mai alcun dato</strong>. In particolare, µLauncher non usa il servizio di accessibilità per raccogliere nessun dato.]]></string>
|
||||
</resources>
|
|
@ -30,10 +30,10 @@
|
|||
<string name="settings_gesture_double_left">2 dedos para esquerda</string>
|
||||
<string name="settings_gesture_right">Para direita</string>
|
||||
<string name="settings_gesture_double_right">2 dedos para direita</string>
|
||||
<string name="settings_gesture_right_top_edge">Para direita (No topo)</string>
|
||||
<string name="settings_gesture_right_top_edge">Para direita (no topo)</string>
|
||||
<string name="settings_gesture_right_bottom_edge">Para direita (em baixo)</string>
|
||||
<string name="settings_gesture_left_bottom_edge">Para esquerda (Em baixo)</string>
|
||||
<string name="settings_gesture_left_top_edge">Para esquerda (No topo)</string>
|
||||
<string name="settings_gesture_left_bottom_edge">Para esquerda (em baixo)</string>
|
||||
<string name="settings_gesture_left_top_edge">Para esquerda (no topo)</string>
|
||||
<string name="settings_gesture_up_left_edge">Para cima (Borda esquerda)</string>
|
||||
<string name="settings_gesture_up_right_edge">Para cima (Borda direita)</string>
|
||||
<string name="settings_gesture_down_left_edge">Para baixo (Borda esquerda)</string>
|
||||
|
@ -164,7 +164,7 @@
|
|||
<string name="screen_lock_method_dialog_title">Escolha um método de bloqueio</string>
|
||||
<string name="settings_actions_lock_method">Escolha um método de bloqueio da tela</string>
|
||||
<string name="list_other_expand_settings_panel">Configurações rápidas</string>
|
||||
<string name="alert_requires_android_m">Essa funcionalidade requer o Android 6.0 ou mais recente.</string>
|
||||
<string name="alert_requires_android_m">Essa funcionalidade requer o Android 6 ou mais recente.</string>
|
||||
<string name="alert_no_torch_found">Nenhuma câmera com lanterna detectada.</string>
|
||||
<string name="toast_lock_screen_not_supported">Erro: O bloqueio da tela via Serviço de acessibilidade não é compatível com este aparelho. Tente usar Administrador do dispositivo como método alternativo.</string>
|
||||
<string name="accessibility_service_description">Definindo µLauncher como Serviço de acessibilidade permite a ele bloquear a tela. Considere que é necessário conceder as permissões elevadas. Você nunca deveria autorizar essas permissões a qualquer aplicativo sem avaliação. O µLauncher usará o Serviço de acessibilidade somente para bloquear a tela. Você pode verificar o código-fonte para ter certeza. O bloqueio da tela também pode ser realizado dando ao µLauncher permissões de Administrador do dispositivo. Apesar de que esse método não funciona com impressão digital e desbloqueio facial.</string>
|
||||
|
@ -260,7 +260,7 @@
|
|||
<string name="legal_info_title">Licenças de código aberto</string>
|
||||
<string name="settings_apps_hide_paused_apps">Ocultar apps pausados</string>
|
||||
<string name="list_other_toggle_private_space_lock">Ativar o Espaço privado</string>
|
||||
<string name="alert_requires_android_v">Essa funcionalidade requer o Android 15.0 ou mais recente.</string>
|
||||
<string name="alert_requires_android_v">Essa funcionalidade requer o Android 15 ou mais recente.</string>
|
||||
<string name="toast_private_space_locked">Espaço privado trancado</string>
|
||||
<string name="toast_private_space_unlocked">Espaço privado liberado</string>
|
||||
<string name="toast_private_space_not_available">Espaço privado indisponível</string>
|
||||
|
@ -271,4 +271,7 @@
|
|||
<string name="dialog_report_bug_create_report">Criar relatório</string>
|
||||
<string name="dialog_report_bug_title">Relatar um bug</string>
|
||||
<string name="dialog_report_bug_info">Obrigado por ajudar a melhorar o µLauncher!\nConsidere adicionar as seguintes informações ao relatório de bug:</string>
|
||||
<string name="settings_functionality_auto_launch_summary">Toque no espaço para temporariamente desativar esta funcionalidade.</string>
|
||||
<string name="toast_activity_not_found_browser">Não foi possível abrir a URL: nenhum navegador encontrado.</string>
|
||||
<string name="toast_activity_not_found_search_web">Nenhum app encontrado para efetuar a pesquisa.</string>
|
||||
</resources>
|
|
@ -3,6 +3,12 @@
|
|||
<resources>
|
||||
<!-- Default Apps for different actions (button-press, swipes ...) -->
|
||||
|
||||
<!-- Back - Apps list -->
|
||||
<string-array name="default_back">
|
||||
<item>{\"type\": \"action:launcher\", \"value\": \"choose\"}</item> <!-- All Apps -->
|
||||
</string-array>
|
||||
|
||||
|
||||
<!-- Swipe up - Apps list -->
|
||||
<string-array name="default_up">
|
||||
<item>{\"type\": \"action:launcher\", \"value\": \"choose\"}</item> <!-- All Apps -->
|
||||
|
|
|
@ -25,6 +25,8 @@
|
|||
- Settings : Apps
|
||||
-
|
||||
-->
|
||||
<string name="settings_gesture_back">Back</string>
|
||||
<string name="settings_gesture_description_back">Back button / back gesture</string>
|
||||
<string name="settings_gesture_up">Up</string>
|
||||
<string name="settings_gesture_description_up">Swipe up</string>
|
||||
<string name="settings_gesture_double_up">Double Up</string>
|
||||
|
|
1
fastlane/metadata/android/de-DE/title.txt
Normal file
1
fastlane/metadata/android/de-DE/title.txt
Normal file
|
@ -0,0 +1 @@
|
|||
µLauncher
|
Loading…
Add table
Reference in a new issue