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
|
<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>
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
Loading…
Add table
Add a link
Reference in a new issue