make long-press toolbar pinning optional

This commit is contained in:
Helium314 2024-05-27 20:34:26 +02:00
parent 0f503389b3
commit 388366c242
10 changed files with 98 additions and 58 deletions

View file

@ -44,8 +44,6 @@ import helium314.keyboard.latin.utils.ResourceUtils;
import helium314.keyboard.latin.utils.RunInLocaleKt;
import helium314.keyboard.latin.utils.StatsUtils;
import helium314.keyboard.latin.utils.SubtypeSettingsKt;
import helium314.keyboard.latin.utils.ToolbarKey;
import helium314.keyboard.latin.utils.ToolbarUtilsKt;
import java.io.File;
import java.util.ArrayList;
@ -148,6 +146,7 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
public static final String PREF_USE_SYSTEM_LOCALES = "use_system_locales";
public static final String PREF_URL_DETECTION = "url_detection";
public static final String PREF_DONT_SHOW_MISSING_DICTIONARY_DIALOG = "dont_show_missing_dict_dialog";
public static final String PREF_QUICK_PIN_TOOLBAR_KEYS = "quick_pin_toolbar_keys";
public static final String PREF_PINNED_TOOLBAR_KEYS = "pinned_toolbar_keys";
public static final String PREF_TOOLBAR_KEYS = "toolbar_keys";
public static final String PREF_CLIPBOARD_TOOLBAR_KEYS = "clipboard_toolbar_keys";
@ -486,29 +485,6 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang
}
}
public static ArrayList<ToolbarKey> readPinnedKeys(final SharedPreferences prefs) {
final ArrayList<ToolbarKey> list = new ArrayList<>();
for (final String key : prefs.getString(Settings.PREF_PINNED_TOOLBAR_KEYS, "").split(";")) {
try {
list.add(ToolbarKey.valueOf(key));
} catch (IllegalArgumentException ignored) { } // may happen if toolbar key is removed from app
}
return list;
}
public static void addPinnedKey(final SharedPreferences prefs, final ToolbarKey key) {
final ArrayList<ToolbarKey> keys = readPinnedKeys(prefs);
if (keys.contains(key)) return;
keys.add(key);
prefs.edit().putString(Settings.PREF_PINNED_TOOLBAR_KEYS, ToolbarUtilsKt.toToolbarKeyString(keys)).apply();
}
public static void removePinnedKey(final SharedPreferences prefs, final ToolbarKey key) {
final ArrayList<ToolbarKey> keys = readPinnedKeys(prefs);
keys.remove(key);
prefs.edit().putString(Settings.PREF_PINNED_TOOLBAR_KEYS, ToolbarUtilsKt.toToolbarKeyString(keys)).apply();
}
public static int readMorePopupKeysPref(final SharedPreferences prefs) {
return switch (prefs.getString(Settings.PREF_MORE_POPUP_KEYS, "normal")) {
case "all" -> LocaleKeyboardInfosKt.POPUP_KEYS_ALL;