1
0
Fork 0

popup dialog code cleanup

This commit is contained in:
sspanak 2024-03-28 18:07:31 +02:00 committed by Dimo Karaivanov
parent 1edda847b7
commit d95eb807cc
8 changed files with 48 additions and 44 deletions

View file

@ -33,7 +33,7 @@
<activity <activity
android:excludeFromRecents="true" android:excludeFromRecents="true"
android:label="" android:label=""
android:name="io.github.sspanak.tt9.ui.PopupDialogActivity" android:name="io.github.sspanak.tt9.ui.dialogs.PopupDialogActivity"
android:theme="@style/alertDialog" /> android:theme="@style/alertDialog" />
</application> </application>
</manifest> </manifest>

View file

@ -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.languages.exceptions.InvalidLanguageException;
import io.github.sspanak.tt9.preferences.SettingsStore; import io.github.sspanak.tt9.preferences.SettingsStore;
import io.github.sspanak.tt9.ui.DictionaryLoadingBar; 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.ConsumerCompat;
import io.github.sspanak.tt9.util.Logger; import io.github.sspanak.tt9.util.Logger;
import io.github.sspanak.tt9.util.Timer; 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 // 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())) { else if (!hash.equals(new WordFile(language.getDictionaryFile(), self.assets).getHash())) {
UI.showConfirmDictionaryUpdateDialog(context, language.getId()); ConfirmDictionaryUpdateDialog.show(context, language.getId());
} }
}, },
language language

View file

@ -14,6 +14,7 @@ import io.github.sspanak.tt9.languages.LanguageCollection;
import io.github.sspanak.tt9.languages.LanguageKind; import io.github.sspanak.tt9.languages.LanguageKind;
import io.github.sspanak.tt9.preferences.helpers.Hotkeys; import io.github.sspanak.tt9.preferences.helpers.Hotkeys;
import io.github.sspanak.tt9.ui.UI; import io.github.sspanak.tt9.ui.UI;
import io.github.sspanak.tt9.ui.dialogs.AddWordDialog;
public abstract class HotkeyHandler extends TypingHandler { public abstract class HotkeyHandler extends TypingHandler {
private boolean isSystemRTL = false; private boolean isSystemRTL = false;
@ -114,7 +115,7 @@ public abstract class HotkeyHandler extends TypingHandler {
if (word.isEmpty()) { if (word.isEmpty()) {
UI.toastLong(this, R.string.add_word_no_selection); UI.toastLong(this, R.string.add_word_no_selection);
} else { } else {
UI.showAddWordDialog(this, mLanguage.getId(), word); AddWordDialog.show(this, mLanguage.getId(), word);
} }
return true; return true;

View file

@ -12,32 +12,10 @@ import androidx.annotation.NonNull;
import io.github.sspanak.tt9.languages.Language; import io.github.sspanak.tt9.languages.Language;
import io.github.sspanak.tt9.preferences.PreferencesActivity; 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 { public class UI {
private static Toast toastLang = null; 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) { public static void showChangeKeyboardDialog(Context context) {
((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).showInputMethodPicker(); ((InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE)).showInputMethodPicker();

View file

@ -2,6 +2,7 @@ package io.github.sspanak.tt9.ui.dialogs;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.inputmethodservice.InputMethodService;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@ -26,8 +27,8 @@ public class AddWordDialog extends PopupDialog {
private String word; private String word;
public AddWordDialog(@NonNull Context context, @NonNull Intent intent, ConsumerCompat<String> activityFinisher) { AddWordDialog(@NonNull Context context, @NonNull Intent intent, ConsumerCompat<String> activityFinisher) {
super(context, intent, activityFinisher); super(context, activityFinisher);
title = context.getResources().getString(R.string.add_word_title); title = context.getResources().getString(R.string.add_word_title);
OKLabel = context.getResources().getString(R.string.add_word_add); 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); word = intent.getStringExtra(PARAMETER_WORD);
int languageId = intent.getIntExtra(PARAMETER_LANGUAGE, -1); 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()) { if (message == null || word == null || word.isEmpty()) {
close(); close();
return; return;
@ -92,4 +94,15 @@ public class AddWordDialog extends PopupDialog {
super.render(this::onOK); 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);
}
} }

View file

@ -2,6 +2,7 @@ package io.github.sspanak.tt9.ui.dialogs;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.inputmethodservice.InputMethodService;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@ -17,15 +18,18 @@ public class ConfirmDictionaryUpdateDialog extends PopupDialog {
public static final String PARAMETER_LANGUAGE = "lang"; public static final String PARAMETER_LANGUAGE = "lang";
private Language language; private Language language;
public ConfirmDictionaryUpdateDialog(@NonNull Context context, @NonNull Intent intent, ConsumerCompat<String> activityFinisher) {
super(context, intent, activityFinisher);
ConfirmDictionaryUpdateDialog(@NonNull Context context, @NonNull Intent intent, ConsumerCompat<String> activityFinisher) {
super(context, activityFinisher);
title = context.getString(R.string.app_name); title = context.getString(R.string.app_name);
OKLabel = context.getString(R.string.dictionary_update_update); OKLabel = context.getString(R.string.dictionary_update_update);
parseIntent(context, intent); 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); int languageId = intent.getIntExtra(PARAMETER_LANGUAGE, -1);
language = LanguageCollection.getLanguage(context, languageId); language = LanguageCollection.getLanguage(context, languageId);
@ -36,8 +40,15 @@ public class ConfirmDictionaryUpdateDialog extends PopupDialog {
} }
} }
private void loadDictionary() {
DictionaryLoader.load(context, language);
close();
}
@Override @Override
public void render() { void render() {
if (language == null) { if (language == null) {
close(); close();
} else { } else {
@ -45,8 +56,13 @@ public class ConfirmDictionaryUpdateDialog extends PopupDialog {
} }
} }
private void loadDictionary() {
DictionaryLoader.load(context, language); public static void show(InputMethodService ims, int language) {
close(); 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);
} }
} }

View file

@ -1,7 +1,6 @@
package io.github.sspanak.tt9.ui.dialogs; package io.github.sspanak.tt9.ui.dialogs;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@ -19,7 +18,7 @@ abstract public class PopupDialog {
protected String message; protected String message;
protected String OKLabel; protected String OKLabel;
public PopupDialog(@NonNull Context context, @NonNull Intent intent, ConsumerCompat<String> activityFinisher) { PopupDialog(@NonNull Context context, ConsumerCompat<String> activityFinisher) {
this.activityFinisher = activityFinisher; this.activityFinisher = activityFinisher;
this.context = context; this.context = context;
} }
@ -34,5 +33,5 @@ abstract public class PopupDialog {
UI.confirm(context, title, message, OKLabel, OKAction, () -> activityFinisher.accept("")); UI.confirm(context, title, message, OKLabel, OKAction, () -> activityFinisher.accept(""));
} }
abstract public void render(); abstract void render();
} }

View file

@ -1,4 +1,4 @@
package io.github.sspanak.tt9.ui; package io.github.sspanak.tt9.ui.dialogs;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
@ -6,9 +6,6 @@ import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import io.github.sspanak.tt9.ime.TraditionalT9; 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; import io.github.sspanak.tt9.util.Logger;
public class PopupDialogActivity extends AppCompatActivity { public class PopupDialogActivity extends AppCompatActivity {