popup dialog code cleanup
This commit is contained in:
parent
1edda847b7
commit
d95eb807cc
8 changed files with 48 additions and 44 deletions
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
Loading…
Add table
Add a link
Reference in a new issue