From 2113bebcf7093ee2bce96f9a48bce12abfe3a3be Mon Sep 17 00:00:00 2001 From: Darcy Wong Date: Tue, 19 Oct 2021 15:03:34 +0700 Subject: [PATCH] feat(android): Allow uninstall of sil_euro_latin keyboard --- .../tavultesoft/kmapro/KeyboardSettingsActivity.java | 6 +++--- .../com/tavultesoft/kmea/KeyboardPickerActivity.java | 11 ++++------- .../com/tavultesoft/kmea/data/KeyboardController.java | 2 +- android/help/basic/uninstalling-keyboards.md | 2 +- 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeyboardSettingsActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeyboardSettingsActivity.java index ded435eab7..8aee2a6acb 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeyboardSettingsActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeyboardSettingsActivity.java @@ -32,6 +32,7 @@ import com.tavultesoft.kmea.KMHelpFileActivity; import com.tavultesoft.kmea.KMManager; import com.tavultesoft.kmea.KMKeyboardDownloaderActivity; import com.tavultesoft.kmea.data.Keyboard; +import com.tavultesoft.kmea.data.KeyboardController; import com.tavultesoft.kmea.util.FileUtils; import com.tavultesoft.kmea.util.FileProviderUtils; import com.tavultesoft.kmea.util.KMLog; @@ -113,9 +114,8 @@ public final class KeyboardSettingsActivity extends AppCompatActivity { hashMap.put(iconKey, icon); infoList.add(hashMap); - // If not default keyboard, display uninstall keyboard - if (!(kbID.equalsIgnoreCase(KMManager.KMDefault_KeyboardID) && - languageID.equalsIgnoreCase(KMManager.KMDefault_LanguageID))) { + // As long as more than 1 keyboard installed, display uninstall keyboard + if (KeyboardController.getInstance().get().size() > 1 && KMManager.canRemoveKeyboard()) { hashMap = new HashMap<>(); hashMap.put(titleKey, getString(R.string.uninstall_keyboard)); hashMap.put(subtitleKey, ""); diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardPickerActivity.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardPickerActivity.java index 48d343077b..b322fbd6f4 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardPickerActivity.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardPickerActivity.java @@ -136,8 +136,8 @@ public final class KeyboardPickerActivity extends BaseActivity { listView.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView parent, View view, final int position, long id) { - // Prevent the default keyboard from being removed - if (position > 0 && canRemoveKeyboard) { + // As long as more than 1 keyboard installed, display uninstall keyboard + if (KeyboardController.getInstance().get().size() > 1 && canRemoveKeyboard) { PopupMenu popup = new PopupMenu(context, view); popup.getMenuInflater().inflate(R.menu.popup, popup.getMenu()); popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @@ -370,11 +370,8 @@ public final class KeyboardPickerActivity extends BaseActivity { protected static boolean removeKeyboard(Context context, int position) { boolean result = false; - // Prevent the first keyboard (index 0) from being removed - if (position > 0) { - KeyboardController.getInstance().remove(position); - result = KeyboardController.getInstance().save(context); - } + KeyboardController.getInstance().remove(position); + result = KeyboardController.getInstance().save(context); notifyKeyboardsUpdate(context); diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/KeyboardController.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/KeyboardController.java index 1793a38d04..3b824d0077 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/KeyboardController.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/KeyboardController.java @@ -321,7 +321,7 @@ public class KeyboardController { * @param index */ public void remove(int index) { - // Check initialized, and disallow removing default keyboard + // Check initialized if (!isInitialized) { return; } diff --git a/android/help/basic/uninstalling-keyboards.md b/android/help/basic/uninstalling-keyboards.md index 9b3a7130d3..e6ab5dad61 100644 --- a/android/help/basic/uninstalling-keyboards.md +++ b/android/help/basic/uninstalling-keyboards.md @@ -28,7 +28,7 @@ Step 5) The bottom of the keyboard settings menu displays an option to uninstall the keyboard. Select 'Uninstall keyboard' to get a prompt to delete the keyboard. -**Note:** The default 'SIL EuroLatin' keyboard for English cannot be removed. +**Note:** Two or more keyboards need to be installed in order to display this option of uninstalling a keyboard. ![](../android_images/settings-khmer-info-ap.png)