make lock screen dialog scrollable

This commit is contained in:
Josia Pietsch 2024-12-13 16:34:30 +01:00
parent aca7fe57d2
commit 8309b7c290
Signed by: jrpie
GPG key ID: E70B571D66986A2D
11 changed files with 45 additions and 39 deletions

View file

@ -60,7 +60,7 @@ class LauncherAccessibilityService : AccessibilityService() {
setPositiveButton(R.string.dialog_consent_accessibility_ok) { _, _ -> setPositiveButton(R.string.dialog_consent_accessibility_ok) { _, _ ->
lockScreen(context) lockScreen(context)
} }
setNegativeButton(R.string.dialog_consent_accessibility_cancel) { _, _ -> } setNegativeButton(R.string.dialog_cancel) { _, _ -> }
}.create().also { it.show() }.apply { }.create().also { it.show() }.apply {
val buttonOk = getButton(AlertDialog.BUTTON_POSITIVE) val buttonOk = getButton(AlertDialog.BUTTON_POSITIVE)
val checkboxes = listOf( val checkboxes = listOf(

View file

@ -2,7 +2,7 @@ package de.jrpie.android.launcher.actions.lock
import android.content.Context import android.content.Context
import android.os.Build import android.os.Build
import android.view.LayoutInflater import android.widget.Button
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import de.jrpie.android.launcher.R import de.jrpie.android.launcher.R
import de.jrpie.android.launcher.preferences.LauncherPreferences import de.jrpie.android.launcher.preferences.LauncherPreferences
@ -41,27 +41,22 @@ enum class LockMethod(
setMethod(context, DEVICE_ADMIN) setMethod(context, DEVICE_ADMIN)
return return
} }
val builder = AlertDialog.Builder(context, R.style.AlertDialogCustom) AlertDialog.Builder(context, R.style.AlertDialogCustom).apply {
builder.setNegativeButton("cancel") { _, _ -> } setNegativeButton(R.string.dialog_cancel) { _, _ -> }
builder.setCustomTitle( setView(R.layout.dialog_select_lock_method)
LayoutInflater.from(context).inflate(R.layout.dialog_select_lock_method, null) // setTitle()
) }.create().also { it.show() }.apply {
findViewById<Button>(R.id.dialog_select_lock_method_button_accessibility)
builder.setItems( ?.setOnClickListener {
arrayOf( setMethod(context, ACCESSIBILITY_SERVICE)
context.getString(R.string.screen_lock_method_use_accessibility), cancel()
context.getString(R.string.screen_lock_method_use_device_admin) }
) findViewById<Button>(R.id.dialog_select_lock_method_button_device_admin)
) { _, i -> ?.setOnClickListener {
val method = when (i) { setMethod(context, DEVICE_ADMIN)
0 -> ACCESSIBILITY_SERVICE cancel()
1 -> DEVICE_ADMIN
else -> return@setItems
} }
setMethod(context, method)
} }
builder.show()
return return
} }

View file

@ -56,7 +56,7 @@ class ColorPreference(context: Context, attrs: AttributeSet?) :
persistInt(currentColor) persistInt(currentColor)
summary = currentColor.getHex() summary = currentColor.getHex()
} }
setNegativeButton(R.string.dialog_select_color_cancel) { _, _ -> } setNegativeButton(R.string.dialog_cancel) { _, _ -> }
}.create().also { it.show() }.apply { }.create().also { it.show() }.apply {
val preview = findViewById<EditText>(R.id.dialog_select_color_preview) val preview = findViewById<EditText>(R.id.dialog_select_color_preview)

View file

@ -192,7 +192,7 @@ class AppsRecyclerAdapter(
builder.setTitle(title) builder.setTitle(title)
builder.setView(R.layout.dialog_rename_app) builder.setView(R.layout.dialog_rename_app)
builder.setNegativeButton(R.string.dialog_rename_cancel) { d, _ -> d.cancel() } builder.setNegativeButton(R.string.dialog_cancel) { d, _ -> d.cancel() }
builder.setPositiveButton(R.string.dialog_rename_ok) { d, _ -> builder.setPositiveButton(R.string.dialog_rename_ok) { d, _ ->
appInfo.setCustomLabel( appInfo.setCustomLabel(
(d as? AlertDialog) (d as? AlertDialog)

View file

@ -1,14 +1,32 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp"> android:padding="10dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<de.jrpie.android.launcher.ui.util.HtmlTextView <de.jrpie.android.launcher.ui.util.HtmlTextView
android:id="@+id/dialog_select_lock_method_text" android:id="@+id/dialog_select_lock_method_text"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/screen_lock_method_dialog_text" android:text="@string/screen_lock_method_dialog_text"
android:textColor="@android:color/black" /> android:textColor="@android:color/black" />
<Button
android:id="@+id/dialog_select_lock_method_button_accessibility"
android:text="@string/screen_lock_method_use_accessibility"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/dialog_select_lock_method_button_device_admin"
android:text="@string/screen_lock_method_use_device_admin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout> </LinearLayout>
</ScrollView>

View file

@ -193,7 +193,6 @@
<string name="alert_no_torch_found">Es wurde keine geeignete Kamera gefunden.</string> <string name="alert_no_torch_found">Es wurde keine geeignete Kamera gefunden.</string>
<string name="alert_torch_access_exception">Fehler: Kein Zugriff auf die Kamera möglich.</string> <string name="alert_torch_access_exception">Fehler: Kein Zugriff auf die Kamera möglich.</string>
<string name="settings_actions_lock_method">Methode zum Sperren des Bildschirms wählen</string> <string name="settings_actions_lock_method">Methode zum Sperren des Bildschirms wählen</string>
<string name="dialog_rename_cancel">Abbrechen</string>
<string name="dialog_rename_ok">Ok</string> <string name="dialog_rename_ok">Ok</string>
<string name="dialog_rename_title">%1$s umbenennen</string> <string name="dialog_rename_title">%1$s umbenennen</string>
<string name="toast_lock_screen_not_supported">Fehler: Auf diesem Gerät kann der Bildschirm nicht mittels Bedienungshilfe gesperrt werden. Bitte stattdessen Geräteadministrator verwenden.</string> <string name="toast_lock_screen_not_supported">Fehler: Auf diesem Gerät kann der Bildschirm nicht mittels Bedienungshilfe gesperrt werden. Bitte stattdessen Geräteadministrator verwenden.</string>

View file

@ -192,7 +192,6 @@
<string name="tutorial_usage_title">Utilizzo</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="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.0 o successivi.</string>
<string name="dialog_rename_cancel">Annulla</string>
<string name="dialog_rename_ok">Ok</string> <string name="dialog_rename_ok">Ok</string>
<string name="dialog_rename_title">Rinomina %1$s</string> <string name="dialog_rename_title">Rinomina %1$s</string>
<string name="list_not_removed">Impossibile rimuovere l\'applicazione</string> <string name="list_not_removed">Impossibile rimuovere l\'applicazione</string>

View file

@ -228,7 +228,6 @@
<string name="settings_list_layout_item_text">Texto</string> <string name="settings_list_layout_item_text">Texto</string>
<string name="settings_list_layout_item_grid">Grade</string> <string name="settings_list_layout_item_grid">Grade</string>
<string name="list_app_rename">Renomear</string> <string name="list_app_rename">Renomear</string>
<string name="dialog_rename_cancel">Cancelar</string>
<string name="dialog_rename_ok">beleza</string> <string name="dialog_rename_ok">beleza</string>
<string name="dialog_rename_title">Renomear %1$s</string> <string name="dialog_rename_title">Renomear %1$s</string>
<string name="settings_theme_font_item_serif_monospace">Serif monospace</string> <string name="settings_theme_font_item_serif_monospace">Serif monospace</string>
@ -239,14 +238,13 @@
<string name="dialog_select_color_alpha">Alfa</string> <string name="dialog_select_color_alpha">Alfa</string>
<string name="dialog_select_color_blue">Azul</string> <string name="dialog_select_color_blue">Azul</string>
<string name="dialog_select_color_green">Verde</string> <string name="dialog_select_color_green">Verde</string>
<string name="dialog_select_color_cancel">Cancelar</string>
<string name="dialog_select_color_color_hex">Cor</string> <string name="dialog_select_color_color_hex">Cor</string>
<string name="dialog_choose_color_title">Escola a cor</string> <string name="dialog_choose_color_title">Escola a cor</string>
<string name="dialog_consent_accessibility_consent">Autorizo a utilização do Serviço de acessibilidade para disponibilizar funcionalidades não relacionadas com a acessibilidade.</string> <string name="dialog_consent_accessibility_consent">Autorizo a utilização do Serviço de acessibilidade para disponibilizar funcionalidades não relacionadas com a acessibilidade.</string>
<string name="dialog_consent_accessibility_data_collection">Não autorizo ao µLauncher a coleta de quaisquer dados.</string> <string name="dialog_consent_accessibility_data_collection">Não autorizo ao µLauncher a coleta de quaisquer dados.</string>
<string name="dialog_consent_accessibility_title">Ativação do Serviço de acessibilidade</string> <string name="dialog_consent_accessibility_title">Ativação do Serviço de acessibilidade</string>
<string name="dialog_consent_accessibility_ok">Ativar o Serviço de acessibilidade</string> <string name="dialog_consent_accessibility_ok">Ativar o Serviço de acessibilidade</string>
<string name="dialog_consent_accessibility_cancel">Cancelar</string> <string name="dialog_cancel">Cancelar</string>
<string name="dialog_consent_accessibility_text"><![CDATA[Você está prestes a ativar o Serviço de acessibilidade. Isto concederá <strong>permissões elevadas</strong> ao µLauncher.<br/>µLauncher usará estas permissões <strong>apenas para bloquear a tela</strong>. µLauncher <strong>nunca coletará nenhum dado</strong>. Sobretudo, o µLauncher não implementa o Serviço de acessibilidade para coletar dados.]]></string> <string name="dialog_consent_accessibility_text"><![CDATA[Você está prestes a ativar o Serviço de acessibilidade. Isto concederá <strong>permissões elevadas</strong> ao µLauncher.<br/>µLauncher usará estas permissões <strong>apenas para bloquear a tela</strong>. µLauncher <strong>nunca coletará nenhum dado</strong>. Sobretudo, o µLauncher não implementa o Serviço de acessibilidade para coletar dados.]]></string>
<string name="dialog_select_color_ok">beleza</string> <string name="dialog_select_color_ok">beleza</string>
<string name="dialog_consent_accessibility_privileges">Estou ciente de que isto concederá permissões elevadas ao µLauncher.</string> <string name="dialog_consent_accessibility_privileges">Estou ciente de que isto concederá permissões elevadas ao µLauncher.</string>

View file

@ -194,7 +194,7 @@
<string name="alert_no_torch_found">Fenerli kamera algılanmadı.</string> <string name="alert_no_torch_found">Fenerli kamera algılanmadı.</string>
<string name="alert_torch_access_exception">Hata: Fenere erişilemiyor.</string> <string name="alert_torch_access_exception">Hata: Fenere erişilemiyor.</string>
<string name="settings_actions_lock_method">Ekranı kilitleme yöntemini seçin</string> <string name="settings_actions_lock_method">Ekranı kilitleme yöntemini seçin</string>
<string name="dialog_rename_cancel">İptal</string> <string name="dialog_cancel">İptal</string>
<string name="dialog_rename_ok">OK</string> <string name="dialog_rename_ok">OK</string>
<string name="dialog_rename_title">Yeniden Adlandır %1$s</string> <string name="dialog_rename_title">Yeniden Adlandır %1$s</string>
<string name="settings_theme_color_theme_item_dynamic">Dinamik</string> <string name="settings_theme_color_theme_item_dynamic">Dinamik</string>
@ -204,7 +204,6 @@
<string name="dialog_select_color_blue">Mavi</string> <string name="dialog_select_color_blue">Mavi</string>
<string name="dialog_select_color_green">Yeşil</string> <string name="dialog_select_color_green">Yeşil</string>
<string name="dialog_select_color_ok">OK</string> <string name="dialog_select_color_ok">OK</string>
<string name="dialog_select_color_cancel">İptal</string>
<string name="dialog_select_color_color_hex">Renk</string> <string name="dialog_select_color_color_hex">Renk</string>
<string name="dialog_choose_color_title">Renk seçin</string> <string name="dialog_choose_color_title">Renk seçin</string>
</resources> </resources>

View file

@ -179,7 +179,7 @@
<string name="toast_lock_screen_not_supported">错误:此设备不支持使用无障碍功能锁定屏幕。请改用设备管理员。</string> <string name="toast_lock_screen_not_supported">错误:此设备不支持使用无障碍功能锁定屏幕。请改用设备管理员。</string>
<string name="screen_lock_method_use_accessibility">使用无障碍服务</string> <string name="screen_lock_method_use_accessibility">使用无障碍服务</string>
<string name="screen_lock_method_use_device_admin">使用设备管理员</string> <string name="screen_lock_method_use_device_admin">使用设备管理员</string>
<string name="dialog_rename_cancel">取消</string> <string name="dialog_cancel">取消</string>
<string name="settings_theme_color_theme_item_light">浅色</string> <string name="settings_theme_color_theme_item_light">浅色</string>
<string name="list_other_expand_settings_panel">快速设置</string> <string name="list_other_expand_settings_panel">快速设置</string>
<string name="alert_lock_screen_failed">错误:锁定屏幕失败。(如果您刚刚升级了应用程序,请尝试在手机设置中手动禁用并重新启用无障碍服务)</string> <string name="alert_lock_screen_failed">错误:锁定屏幕失败。(如果您刚刚升级了应用程序,请尝试在手机设置中手动禁用并重新启用无障碍服务)</string>

View file

@ -287,7 +287,6 @@
<string name="screen_lock_method_use_accessibility">Use Accessibility Service</string> <string name="screen_lock_method_use_accessibility">Use Accessibility Service</string>
<string name="screen_lock_method_use_device_admin">Use Device Admin</string> <string name="screen_lock_method_use_device_admin">Use Device Admin</string>
<string name="settings_actions_lock_method">Choose method for locking the screen</string> <string name="settings_actions_lock_method">Choose method for locking the screen</string>
<string name="dialog_rename_cancel">Cancel</string>
<string name="dialog_rename_ok">Ok</string> <string name="dialog_rename_ok">Ok</string>
<string name="dialog_rename_title">Rename %1$s</string> <string name="dialog_rename_title">Rename %1$s</string>
<string name="dialog_select_color_red">Red</string> <string name="dialog_select_color_red">Red</string>
@ -295,7 +294,6 @@
<string name="dialog_select_color_blue">Blue</string> <string name="dialog_select_color_blue">Blue</string>
<string name="dialog_select_color_green">Green</string> <string name="dialog_select_color_green">Green</string>
<string name="dialog_select_color_ok">Ok</string> <string name="dialog_select_color_ok">Ok</string>
<string name="dialog_select_color_cancel">Cancel</string>
<string name="dialog_select_color_color_hex">Color</string> <string name="dialog_select_color_color_hex">Color</string>
<string name="dialog_choose_color_title">Choose color</string> <string name="dialog_choose_color_title">Choose color</string>
<string name="dialog_consent_accessibility_privileges">I am aware that this will grant far-reaching privileges to µLauncher.</string> <string name="dialog_consent_accessibility_privileges">I am aware that this will grant far-reaching privileges to µLauncher.</string>
@ -305,5 +303,5 @@
<string name="dialog_consent_accessibility_text"><![CDATA[You are about to activate the accessibility service. This will grant <strong>far-reaching privileges</strong> to µLauncher.<br/>µLauncher will use these privileges <strong>only to lock the screen</strong>. µLauncher <strong>will never collect any data</strong>. In particular, µLauncher does not use the accessibility service to collect any data.]]></string> <string name="dialog_consent_accessibility_text"><![CDATA[You are about to activate the accessibility service. This will grant <strong>far-reaching privileges</strong> to µLauncher.<br/>µLauncher will use these privileges <strong>only to lock the screen</strong>. µLauncher <strong>will never collect any data</strong>. In particular, µLauncher does not use the accessibility service to collect any data.]]></string>
<string name="dialog_consent_accessibility_title">Activating the Accessibility Service</string> <string name="dialog_consent_accessibility_title">Activating the Accessibility Service</string>
<string name="dialog_consent_accessibility_ok">Activate Accessibility Service</string> <string name="dialog_consent_accessibility_ok">Activate Accessibility Service</string>
<string name="dialog_consent_accessibility_cancel">Cancel</string> <string name="dialog_cancel">Cancel</string>
</resources> </resources>