From ecadcce08d2b7efbd7b882a0c2a8b0f757becb3e Mon Sep 17 00:00:00 2001 From: BlackyHawky Date: Sat, 21 Oct 2023 09:30:06 +0200 Subject: [PATCH] Add descriptions of hidden features to the "About" section (#227) - icons added in this section - translation in French done --- .../latin/settings/AboutFragment.java | 40 ++++++++++++++++++- .../res/drawable/ic_settings_about_github.xml | 4 ++ .../ic_settings_about_github_foreground.xml | 13 ++++++ .../ic_settings_about_hidden_features.xml | 4 ++ ...tings_about_hidden_features_foreground.xml | 13 ++++++ .../drawable/ic_settings_about_license.xml | 4 ++ .../ic_settings_about_license_foreground.xml | 13 ++++++ app/src/main/res/values-fr/strings.xml | 23 +++++++++++ app/src/main/res/values/strings.xml | 27 +++++++++++++ app/src/main/res/xml/prefs_screen_about.xml | 27 ++++++++++--- 10 files changed, 162 insertions(+), 6 deletions(-) create mode 100644 app/src/main/res/drawable/ic_settings_about_github.xml create mode 100644 app/src/main/res/drawable/ic_settings_about_github_foreground.xml create mode 100644 app/src/main/res/drawable/ic_settings_about_hidden_features.xml create mode 100644 app/src/main/res/drawable/ic_settings_about_hidden_features_foreground.xml create mode 100644 app/src/main/res/drawable/ic_settings_about_license.xml create mode 100644 app/src/main/res/drawable/ic_settings_about_license_foreground.xml diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AboutFragment.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AboutFragment.java index 72468573a..0a0a8e319 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AboutFragment.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/AboutFragment.java @@ -6,13 +6,22 @@ package org.dslul.openboard.inputmethod.latin.settings; +import android.graphics.Color; +import android.graphics.drawable.Drawable; +import android.os.Build; import android.os.Bundle; +import android.text.Spanned; +import android.text.method.LinkMovementMethod; +import android.widget.TextView; +import androidx.appcompat.app.AlertDialog; +import androidx.core.graphics.drawable.DrawableCompat; import androidx.preference.Preference; import org.dslul.openboard.inputmethod.latin.BuildConfig; import org.dslul.openboard.inputmethod.latin.R; - +import org.dslul.openboard.inputmethod.latin.utils.SpannableStringUtils; + /** * "About" sub screen. */ @@ -21,7 +30,36 @@ public final class AboutFragment extends SubScreenFragment { public void onCreate(final Bundle icicle) { super.onCreate(icicle); addPreferencesFromResource(R.xml.prefs_screen_about); + + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { + // need to set icon tint because old android versions don't use the vector drawables + for (int i = 0; i < getPreferenceScreen().getPreferenceCount(); i++) { + final Preference p = getPreferenceScreen().getPreference(0); + final Drawable icon = p.getIcon(); + if (icon != null) + DrawableCompat.setTint(icon, Color.WHITE); + } + } + Preference versionPreference = findPreference("pref_key_version"); versionPreference.setSummary(BuildConfig.VERSION_NAME); + + Preference hiddenFeaturesPreference = findPreference("hidden_features"); + hiddenFeaturesPreference.setOnPreferenceClickListener(preference -> { + final String link = "" + + getString(R.string.hidden_features_text) + ""; + final String message = getContext().getString(R.string.hidden_features_message, link); + final Spanned dialogMessage = SpannableStringUtils.fromHtml(message); + + final AlertDialog builder = new AlertDialog.Builder(getContext()) + .setIcon(R.drawable.ic_settings_about_hidden_features) + .setTitle(R.string.hidden_features_title) + .setMessage(dialogMessage) + .setPositiveButton(R.string.dialog_close, null) + .create(); + builder.show(); + ((TextView)builder.findViewById(android.R.id.message)).setMovementMethod(LinkMovementMethod.getInstance()); + return true; + }); } } diff --git a/app/src/main/res/drawable/ic_settings_about_github.xml b/app/src/main/res/drawable/ic_settings_about_github.xml new file mode 100644 index 000000000..9f39fa876 --- /dev/null +++ b/app/src/main/res/drawable/ic_settings_about_github.xml @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_settings_about_github_foreground.xml b/app/src/main/res/drawable/ic_settings_about_github_foreground.xml new file mode 100644 index 000000000..4a306f2d6 --- /dev/null +++ b/app/src/main/res/drawable/ic_settings_about_github_foreground.xml @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_settings_about_hidden_features.xml b/app/src/main/res/drawable/ic_settings_about_hidden_features.xml new file mode 100644 index 000000000..a337ec935 --- /dev/null +++ b/app/src/main/res/drawable/ic_settings_about_hidden_features.xml @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_settings_about_hidden_features_foreground.xml b/app/src/main/res/drawable/ic_settings_about_hidden_features_foreground.xml new file mode 100644 index 000000000..414dc194e --- /dev/null +++ b/app/src/main/res/drawable/ic_settings_about_hidden_features_foreground.xml @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_settings_about_license.xml b/app/src/main/res/drawable/ic_settings_about_license.xml new file mode 100644 index 000000000..b6f5e522a --- /dev/null +++ b/app/src/main/res/drawable/ic_settings_about_license.xml @@ -0,0 +1,4 @@ + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_settings_about_license_foreground.xml b/app/src/main/res/drawable/ic_settings_about_license_foreground.xml new file mode 100644 index 000000000..12d086fa0 --- /dev/null +++ b/app/src/main/res/drawable/ic_settings_about_license_foreground.xml @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 1b3d0df0f..e58cd6dcf 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -254,4 +254,27 @@ Nouveau dictionnaire: "Apparence" Fermer Appuyez sur la langue pour ouvrir les paramètres + Description des fonctionnalités cachées + Montre les caractéristiques qui peuvent passer inaperçues + stockage protégé de l\'appareil + + ► Un appui long sur la touche presse-papiers (celle qui est optionnelle dans la bande de suggestions) permet de coller le contenu du presse-papiers. <br> <br> + ► Un appui long sur les touches de la barre d\'outils permet de les épingler à la bande de suggestions. <br> <br> + ► Appuyez longuement sur la virgule pour accéder à l\'affichage du presse-papiers, des emoji, au mode à une main, aux paramètres ou au changement de langue : <br> + \t• l\'affichage des emojis et le changement de langue disparaîtront si les touches correspondantes sont affichées ; <br> + \t• pour certaines dispositions, ce n\'est pas sur la touche virgule, mais sur la touche à la même position (par exemple, c\'est `q` pour la disposition Dvorak). <br> <br> + ► Appuyez sur l\'icône incognito pour ouvrir la barre d\'outils. <br> <br> + ► Saisie par balayage des touches : passez de la touche Maj à une autre touche pour taper une seule touche majuscule : <br> + \t• fonctionne également pour la touche `?123` qui permet de taper un seul symbole à partir du clavier des symboles, ainsi que pour les touches associées. <br> <br> + ► Un appui long sur une suggestion dans la bande de suggestions permet d\'afficher d\'autres suggestions, et un bouton de suppression permet de supprimer cette suggestion. <br> <br> + ► Balayez vers le haut à partir d\'une suggestion pour ouvrir d\'autres suggestions, puis relâchez la pression sur la suggestion pour la sélectionner. <br> <br> + ► Vous pouvez ajouter des dictionnaires en les ouvrant dans un explorateur de fichiers : <br> + \t• ne fonctionne qu\'avec <i>content-uris</i> et non avec <i>file-uris</i>, ce qui signifie qu\'il peut ne pas fonctionner avec certains explorateurs de fichiers. <br> <br> + <i> Version Debug uniquement </i> <br> + ► Un appui-long sur une suggestion montre la source du dictionnaire.<br> <br> + ► Paramètres de débogage dans les préférences avancées, bien qu\'ils ne soient pas très utiles, sauf pour transférer les dictionnaires dans le journal de débogage. <br> <br> + ► Lorsque l\'application se bloque, un message vous demande où vous souhaitez enregistrer les journaux d\'incidents lorsque vous ouvrez les paramètres. <br> <br> + ► Pour les utilisateurs effectuant des sauvegardes manuelles avec un accès root : à partir d\'Android 7, le fichier de préférences partagées ne se trouve pas dans l\'emplacement par défaut, car l\'application utilise le %s. <br> + Cela est nécessaire pour que les paramètres puissent être lus avant que l\'appareil ne soit déverrouillé, par exemple au démarrage. <br> + Le fichier se trouve dans <i>/data/user_de/0/package_id/shared_prefs/</i>, mais cela peut dépendre de l\'appareil et de la version d\'Android. diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7d1bca46f..780c0b980 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -632,4 +632,31 @@ New dictionary: Appearance & Layouts "Appearance" + + Description of hidden features + + Show features that may go unnoticed + + device protected storage + + + ► Long pressing the clipboard key (the optional one in suggestion strip) pastes system clipboard contents. <br> <br> + ► Long pressing keys in the suggestion strip toolbar pins them to the suggestion strip. <br> <br> + ► Long-press comma to access clipboard view, emoji view, one-handed mode, settings, or switch language : <br> + \t• emoji view and language switch will disappear if you have the corresponding key enabled; <br> + \t• for some layouts it\'s not the comma-key, but the key at the same position (e.g. it\'s `q` for Dvorak layout). <br> <br> + ► Press the incognito icon to get the toolbar. <br> <br> + ► Sliding key input: swipe from shift to another key to type a single uppercase key: <br> + \t• also works for the `?123` key to type a single symbol from the symbols keyboard, and for related keys. <br> <br> + ► Long-press a suggestion in suggestion strip to show more suggestions, and a delete button to remove this suggestion. <br> <br> + ► Swipe up from a suggestion to open more suggestions, and release on the suggestion to select it. <br> <br> + ► You can add dictionaries by opening them in a file explorer: <br> + \t• only works with <i>content-uris</i> and not with <i>file-uris</i>, meaning that it may not work with some file explorers. <br> <br> + <i>Debug APK only</i> <br> + ► Long-press a suggestion to show the source dictionary.<br> <br> + ► Debug settings in advanced preferences, though not very useful except for dumping dictionaries into the log. <br> <br> + ► When the app crashes, you will be asked whether you want crash logs when you open the settings. <br> <br> + ► For users doing manual backups with root access: starting at Android 7, the shared preferences file is not in the default location, because the app is using %s. <br> + This is necessary so the settings can be read before the device is unlocked, e.g. at boot. <br> + File is located in /data/user_de/0/package_id/shared_prefs/, though this may depend on the device and Android version. diff --git a/app/src/main/res/xml/prefs_screen_about.xml b/app/src/main/res/xml/prefs_screen_about.xml index 8ced4744a..c8be63328 100644 --- a/app/src/main/res/xml/prefs_screen_about.xml +++ b/app/src/main/res/xml/prefs_screen_about.xml @@ -7,21 +7,38 @@ + + - + android:key="pref_key_version" + android:icon="@drawable/ic_settings_about"/> + + - - + + + +