diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5b75ec99..97a00c83 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -33,7 +33,7 @@ diff --git a/app/src/main/java/io/github/sspanak/tt9/db/DictionaryLoader.java b/app/src/main/java/io/github/sspanak/tt9/db/DictionaryLoader.java index 97497fd7..de4b8238 100644 --- a/app/src/main/java/io/github/sspanak/tt9/db/DictionaryLoader.java +++ b/app/src/main/java/io/github/sspanak/tt9/db/DictionaryLoader.java @@ -25,7 +25,7 @@ import io.github.sspanak.tt9.languages.exceptions.InvalidLanguageCharactersExcep import io.github.sspanak.tt9.languages.exceptions.InvalidLanguageException; import io.github.sspanak.tt9.preferences.SettingsStore; import io.github.sspanak.tt9.ui.DictionaryLoadingBar; -import io.github.sspanak.tt9.ui.UI; +import io.github.sspanak.tt9.ui.dialogs.ConfirmDictionaryUpdateDialog; import io.github.sspanak.tt9.util.ConsumerCompat; import io.github.sspanak.tt9.util.Logger; import io.github.sspanak.tt9.util.Timer; @@ -130,7 +130,7 @@ public class DictionaryLoader { } // or if the database is outdated, compared to the dictionary file, ask for confirmation and load else if (!hash.equals(new WordFile(language.getDictionaryFile(), self.assets).getHash())) { - UI.showConfirmDictionaryUpdateDialog(context, language.getId()); + ConfirmDictionaryUpdateDialog.show(context, language.getId()); } }, language diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/HotkeyHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/HotkeyHandler.java index 235d8791..7960495a 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/HotkeyHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/HotkeyHandler.java @@ -14,6 +14,7 @@ import io.github.sspanak.tt9.languages.LanguageCollection; import io.github.sspanak.tt9.languages.LanguageKind; import io.github.sspanak.tt9.preferences.helpers.Hotkeys; import io.github.sspanak.tt9.ui.UI; +import io.github.sspanak.tt9.ui.dialogs.AddWordDialog; public abstract class HotkeyHandler extends TypingHandler { private boolean isSystemRTL = false; @@ -114,7 +115,7 @@ public abstract class HotkeyHandler extends TypingHandler { if (word.isEmpty()) { UI.toastLong(this, R.string.add_word_no_selection); } else { - UI.showAddWordDialog(this, mLanguage.getId(), word); + AddWordDialog.show(this, mLanguage.getId(), word); } return true; diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/UI.java b/app/src/main/java/io/github/sspanak/tt9/ui/UI.java index 89f6cf7e..94562ca7 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/UI.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/UI.java @@ -12,32 +12,10 @@ import androidx.annotation.NonNull; import io.github.sspanak.tt9.languages.Language; import io.github.sspanak.tt9.preferences.PreferencesActivity; -import io.github.sspanak.tt9.ui.dialogs.AddWordDialog; -import io.github.sspanak.tt9.ui.dialogs.ConfirmDictionaryUpdateDialog; public class UI { private static Toast toastLang = null; - public static void showAddWordDialog(InputMethodService ims, int language, String currentWord) { - Intent intent = new Intent(ims, PopupDialogActivity.class); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); - intent.putExtra(AddWordDialog.PARAMETER_DIALOG_TYPE, AddWordDialog.TYPE); - intent.putExtra(AddWordDialog.PARAMETER_LANGUAGE, language); - intent.putExtra(AddWordDialog.PARAMETER_WORD, currentWord); - ims.startActivity(intent); - } - - - public static void showConfirmDictionaryUpdateDialog(InputMethodService ims, int language) { - Intent intent = new Intent(ims, PopupDialogActivity.class); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); - intent.putExtra(ConfirmDictionaryUpdateDialog.PARAMETER_DIALOG_TYPE, ConfirmDictionaryUpdateDialog.TYPE); - intent.putExtra(ConfirmDictionaryUpdateDialog.PARAMETER_LANGUAGE, language); - ims.startActivity(intent); - } - public static void showChangeKeyboardDialog(Context context) { ((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).showInputMethodPicker(); diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/AddWordDialog.java b/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/AddWordDialog.java index 65eea3bd..de3ef589 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/AddWordDialog.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/AddWordDialog.java @@ -2,6 +2,7 @@ package io.github.sspanak.tt9.ui.dialogs; import android.content.Context; import android.content.Intent; +import android.inputmethodservice.InputMethodService; import androidx.annotation.NonNull; @@ -26,8 +27,8 @@ public class AddWordDialog extends PopupDialog { private String word; - public AddWordDialog(@NonNull Context context, @NonNull Intent intent, ConsumerCompat activityFinisher) { - super(context, intent, activityFinisher); + AddWordDialog(@NonNull Context context, @NonNull Intent intent, ConsumerCompat activityFinisher) { + super(context, activityFinisher); title = context.getResources().getString(R.string.add_word_title); OKLabel = context.getResources().getString(R.string.add_word_add); @@ -35,7 +36,7 @@ public class AddWordDialog extends PopupDialog { } - protected void parseIntent(@NonNull Context context, @NonNull Intent intent) { + private void parseIntent(@NonNull Context context, @NonNull Intent intent) { word = intent.getStringExtra(PARAMETER_WORD); int languageId = intent.getIntExtra(PARAMETER_LANGUAGE, -1); @@ -84,7 +85,8 @@ public class AddWordDialog extends PopupDialog { } - public void render() { + @Override + void render() { if (message == null || word == null || word.isEmpty()) { close(); return; @@ -92,4 +94,15 @@ public class AddWordDialog extends PopupDialog { super.render(this::onOK); } + + + public static void show(InputMethodService ims, int language, String currentWord) { + Intent intent = new Intent(ims, PopupDialogActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); + intent.putExtra(PARAMETER_DIALOG_TYPE, TYPE); + intent.putExtra(PARAMETER_LANGUAGE, language); + intent.putExtra(PARAMETER_WORD, currentWord); + ims.startActivity(intent); + } } diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/ConfirmDictionaryUpdateDialog.java b/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/ConfirmDictionaryUpdateDialog.java index b6bb71ff..4b46e8e9 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/ConfirmDictionaryUpdateDialog.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/ConfirmDictionaryUpdateDialog.java @@ -2,6 +2,7 @@ package io.github.sspanak.tt9.ui.dialogs; import android.content.Context; import android.content.Intent; +import android.inputmethodservice.InputMethodService; import androidx.annotation.NonNull; @@ -17,15 +18,18 @@ public class ConfirmDictionaryUpdateDialog extends PopupDialog { public static final String PARAMETER_LANGUAGE = "lang"; private Language language; - public ConfirmDictionaryUpdateDialog(@NonNull Context context, @NonNull Intent intent, ConsumerCompat activityFinisher) { - super(context, intent, activityFinisher); + + + ConfirmDictionaryUpdateDialog(@NonNull Context context, @NonNull Intent intent, ConsumerCompat activityFinisher) { + super(context, activityFinisher); title = context.getString(R.string.app_name); OKLabel = context.getString(R.string.dictionary_update_update); parseIntent(context, intent); } - protected void parseIntent(@NonNull Context context, @NonNull Intent intent) { + + private void parseIntent(@NonNull Context context, @NonNull Intent intent) { int languageId = intent.getIntExtra(PARAMETER_LANGUAGE, -1); language = LanguageCollection.getLanguage(context, languageId); @@ -36,8 +40,15 @@ public class ConfirmDictionaryUpdateDialog extends PopupDialog { } } + + private void loadDictionary() { + DictionaryLoader.load(context, language); + close(); + } + + @Override - public void render() { + void render() { if (language == null) { close(); } else { @@ -45,8 +56,13 @@ public class ConfirmDictionaryUpdateDialog extends PopupDialog { } } - private void loadDictionary() { - DictionaryLoader.load(context, language); - close(); + + public static void show(InputMethodService ims, int language) { + Intent intent = new Intent(ims, PopupDialogActivity.class); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); + intent.putExtra(PARAMETER_DIALOG_TYPE, TYPE); + intent.putExtra(PARAMETER_LANGUAGE, language); + ims.startActivity(intent); } } diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/PopupDialog.java b/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/PopupDialog.java index c3c28876..66a1c3ef 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/PopupDialog.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/PopupDialog.java @@ -1,7 +1,6 @@ package io.github.sspanak.tt9.ui.dialogs; import android.content.Context; -import android.content.Intent; import androidx.annotation.NonNull; @@ -19,7 +18,7 @@ abstract public class PopupDialog { protected String message; protected String OKLabel; - public PopupDialog(@NonNull Context context, @NonNull Intent intent, ConsumerCompat activityFinisher) { + PopupDialog(@NonNull Context context, ConsumerCompat activityFinisher) { this.activityFinisher = activityFinisher; this.context = context; } @@ -34,5 +33,5 @@ abstract public class PopupDialog { UI.confirm(context, title, message, OKLabel, OKAction, () -> activityFinisher.accept("")); } - abstract public void render(); + abstract void render(); } diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/PopupDialogActivity.java b/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/PopupDialogActivity.java similarity index 86% rename from app/src/main/java/io/github/sspanak/tt9/ui/PopupDialogActivity.java rename to app/src/main/java/io/github/sspanak/tt9/ui/dialogs/PopupDialogActivity.java index d83622c6..a8d7ccad 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/PopupDialogActivity.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/PopupDialogActivity.java @@ -1,4 +1,4 @@ -package io.github.sspanak.tt9.ui; +package io.github.sspanak.tt9.ui.dialogs; import android.content.Intent; import android.os.Bundle; @@ -6,9 +6,6 @@ import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; import io.github.sspanak.tt9.ime.TraditionalT9; -import io.github.sspanak.tt9.ui.dialogs.AddWordDialog; -import io.github.sspanak.tt9.ui.dialogs.ConfirmDictionaryUpdateDialog; -import io.github.sspanak.tt9.ui.dialogs.PopupDialog; import io.github.sspanak.tt9.util.Logger; public class PopupDialogActivity extends AppCompatActivity {