diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java index 6cae94598d..33aeb3795e 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java @@ -854,7 +854,8 @@ public class MainActivity extends AppCompatActivity implements OnKeyboardEventLi kbInfo.put(KMManager.KMKey_OskFont, kOskFont); if (i == 0) { if (KMManager.addKeyboard(this, kbInfo)) { - KMManager.setKeyboard(packageID, keyboardID, langId, keyboardName, langName, kFont, kOskFont); + if (!KMKeyboardDownloaderActivity.USE_DOWNLOAD_MANAGER) + KMManager.setKeyboard(packageID, keyboardID, langId, keyboardName, langName, kFont, kOskFont); } } else { KMManager.addKeyboard(this, kbInfo); @@ -862,7 +863,8 @@ public class MainActivity extends AppCompatActivity implements OnKeyboardEventLi } } else { if (KMManager.addKeyboard(this, keyboardInfo)) { - KMManager.setKeyboard(packageID, keyboardID, languageID, keyboardName, languageName, kFont, kOskFont); + if (!KMKeyboardDownloaderActivity.USE_DOWNLOAD_MANAGER) + KMManager.setKeyboard(packageID, keyboardID, languageID, keyboardName, languageName, kFont, kOskFont); } } } else { diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMKeyboardPickerAdapter.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMKeyboardPickerAdapter.java index 628e4ef966..18251633e6 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMKeyboardPickerAdapter.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMKeyboardPickerAdapter.java @@ -74,8 +74,12 @@ final class KMKeyboardPickerAdapter extends NestedAdapter> keyboardsList = null; private static ArrayList> lexicalModelsList = null; @@ -176,6 +177,39 @@ public final class KeyboardPickerActivity extends AppCompatActivity { int curKbPos = getCurrentKeyboardIndex(); setSelection(curKbPos); + + KMKeyboard.addOnKeyboardEventListener(new KeyboardEventHandler.OnKeyboardEventListener() { + @Override + public void onKeyboardLoaded(KMManager.KeyboardType keyboardType) { + + } + + @Override + public void onKeyboardChanged(String newKeyboard) { + int _index = getKeyboardIndex(context,newKeyboard); + if(_index>=0) + { + Map _keyboard = keyboardsList.get(_index); + if(_keyboard==null) + return; + if(_keyboard.get(KMKEY_INTERNAL_NEW_KEYBOARD)==null) + return; + _keyboard.remove(KMKEY_INTERNAL_NEW_KEYBOARD); + saveList(context, KMManager.KMFilename_KeyboardsList); + notifyKeyboardsUpdate(context); + } + } + + @Override + public void onKeyboardShown() { + + } + + @Override + public void onKeyboardDismissed() { + + } + }); } @Override @@ -343,9 +377,12 @@ public final class KeyboardPickerActivity extends AppCompatActivity { if (kbKey.length() >= 3) { int x = getKeyboardIndex(context, kbKey); if (x >= 0) { + if(keyboardsList.get(x).get(KMKEY_INTERNAL_NEW_KEYBOARD)!=null) + keyboardInfo.put(KMKEY_INTERNAL_NEW_KEYBOARD,KMKEY_INTERNAL_NEW_KEYBOARD); keyboardsList.set(x, keyboardInfo); result = saveList(context, KMManager.KMFilename_KeyboardsList); } else { + keyboardInfo.put(KMKEY_INTERNAL_NEW_KEYBOARD,KMKEY_INTERNAL_NEW_KEYBOARD); keyboardsList.add(keyboardInfo); result = saveList(context, KMManager.KMFilename_KeyboardsList); if (!result) { diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/LanguageListActivity.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/LanguageListActivity.java index 7d77337573..8e1622ac62 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/LanguageListActivity.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/LanguageListActivity.java @@ -137,7 +137,9 @@ public final class LanguageListActivity extends AppCompatActivity implements OnK if (!pkgID.equals(KMManager.KMDefault_UndefinedPackageID)) { // Custom keyboard already exists in packages/ so just add the language association KeyboardPickerActivity.addKeyboard(context, kbInfo); - KMManager.setKeyboard(pkgID, kbID, langID, kbName, language.name, kFont, kOskFont); + + if (!KMKeyboardDownloaderActivity.USE_DOWNLOAD_MANAGER) + KMManager.setKeyboard(pkgID, kbID, langID, kbName, language.name, kFont, kOskFont); Toast.makeText(context, "Keyboard installed", Toast.LENGTH_SHORT).show(); setResult(RESULT_OK); ((AppCompatActivity) context).finish(); @@ -214,7 +216,8 @@ public final class LanguageListActivity extends AppCompatActivity implements OnK String kOskFont = keyboardInfo.get(KMManager.KMKey_OskFont); KeyboardPickerActivity.addKeyboard(this, keyboardInfo); - KMManager.setKeyboard(packageID, keyboardID, languageID, keyboardName, languageName, kFont, kOskFont); + if (!KMKeyboardDownloaderActivity.USE_DOWNLOAD_MANAGER) + KMManager.setKeyboard(packageID, keyboardID, languageID, keyboardName, languageName, kFont, kOskFont); if (result == 2) { Toast.makeText(context, context.getString(R.string.font_failed_to_download), Toast.LENGTH_LONG).show(); diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/Keyboard.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/Keyboard.java index 567d9e0a59..fa088416a8 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/Keyboard.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/Keyboard.java @@ -4,6 +4,7 @@ import android.os.Bundle; import com.tavultesoft.kmea.KMKeyboardDownloaderActivity; import com.tavultesoft.kmea.KMManager; +import com.tavultesoft.kmea.KeyboardPickerActivity; import java.io.Serializable; import java.util.Map; @@ -26,6 +27,12 @@ public class Keyboard implements Serializable, LanguageResource { this.map = kbdData; } + + + public boolean isNewKeyboard() { + return map.get(KeyboardPickerActivity.KMKEY_INTERNAL_NEW_KEYBOARD)!=null; + } + public String getResourceId() { return this.map.get(KMManager.KMKey_KeyboardID); } diff --git a/android/KMEA/app/src/main/res/values/strings.xml b/android/KMEA/app/src/main/res/values/strings.xml index a76d35dd36..aa8b6bf840 100644 --- a/android/KMEA/app/src/main/res/values/strings.xml +++ b/android/KMEA/app/src/main/res/values/strings.xml @@ -51,6 +51,7 @@ Keyboard version Help link Uninstall keyboard + [new] Getting dictionary catalog.\nThis may take a while…