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
android:excludeFromRecents="true"
android:label=""
android:name="io.github.sspanak.tt9.ui.PopupDialogActivity"
android:name="io.github.sspanak.tt9.ui.dialogs.PopupDialogActivity"
android:theme="@style/alertDialog" />
</application>
</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.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

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.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;

View file

@ -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();

View file

@ -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<String> activityFinisher) {
super(context, intent, activityFinisher);
AddWordDialog(@NonNull Context context, @NonNull Intent intent, ConsumerCompat<String> 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);
}
}

View file

@ -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<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);
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);
}
}

View file

@ -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<String> activityFinisher) {
PopupDialog(@NonNull Context context, ConsumerCompat<String> 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();
}

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.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 {