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"/>
+
+
-
-
+
+
+
+