From 97baa394fee43ee7da8e8fcfcf4c4f2f9442418c Mon Sep 17 00:00:00 2001 From: sspanak Date: Sat, 10 May 2025 14:14:15 +0300 Subject: [PATCH] simplified the auto-update notification --- app/src/main/AndroidManifest.xml | 2 +- ...og.java => AutoUpdateMonologActivity.java} | 40 +++++-------- .../tt9/ui/dialogs/PopupDialogActivity.java | 58 ------------------- .../DictionaryUpdateNotification.java | 4 +- 4 files changed, 18 insertions(+), 86 deletions(-) rename app/src/main/java/io/github/sspanak/tt9/ui/dialogs/{AutoUpdateMonolog.java => AutoUpdateMonologActivity.java} (55%) delete mode 100644 app/src/main/java/io/github/sspanak/tt9/ui/dialogs/PopupDialogActivity.java diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 36ed2cff..aede1752 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,7 +44,7 @@ activityFinisher) { - super(context, activityFinisher); - LanguageCollection.init(context); - parseIntent(intent); + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + processIntent(getIntent()); + finish(); } - - private void parseIntent(@NonNull Intent intent) { + private void processIntent(@NonNull Intent intent) { + LanguageCollection.init(this); int languageId = intent.getIntExtra(PARAMETER_LANGUAGE, -1); - language = LanguageCollection.getLanguage(languageId); + Language language = LanguageCollection.getLanguage(languageId); if (language == null) { Logger.e(getClass().getSimpleName(), "Auto-updating is not possible. Intent parameter '" + PARAMETER_LANGUAGE + "' is invalid: " + languageId); + } else { + DictionaryLoader.load(this, language); } } - - @Override - void show() { - if (language != null) { - DictionaryLoader.load(context, language); - } - close(); - } - - public static Intent generateShowIntent(Context context, int language) { - Intent intent = new Intent(context, PopupDialogActivity.class); + Intent intent = new Intent(context, AutoUpdateMonologActivity.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); return intent; diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/PopupDialogActivity.java b/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/PopupDialogActivity.java deleted file mode 100644 index dd8450a0..00000000 --- a/app/src/main/java/io/github/sspanak/tt9/ui/dialogs/PopupDialogActivity.java +++ /dev/null @@ -1,58 +0,0 @@ -package io.github.sspanak.tt9.ui.dialogs; - -import android.content.Intent; -import android.os.Bundle; - -import androidx.annotation.NonNull; -import androidx.appcompat.app.AppCompatActivity; - -import io.github.sspanak.tt9.ime.TraditionalT9; -import io.github.sspanak.tt9.util.Logger; - -public class PopupDialogActivity extends AppCompatActivity { - private static final String LOG_TAG = PopupDialogActivity.class.getSimpleName(); - - - @Override - protected void onCreate(Bundle savedData) { - super.onCreate(savedData); - PopupDialog dialog = getDialog(); - if (dialog != null) { - dialog.show(); - } else { - onDialogClose(""); - } - } - - - private PopupDialog getDialog() { - Intent i = getIntent(); - - String popupType = i != null ? i.getStringExtra(PopupDialog.PARAMETER_DIALOG_TYPE) : ""; - popupType = popupType != null ? popupType : ""; - - return switch (popupType) { - case AutoUpdateMonolog.TYPE -> new AutoUpdateMonolog(this, i, this::onDialogClose); - default -> { - Logger.w(LOG_TAG, "Unknown popup type: '" + popupType + "'. Not displaying anything."); - yield null; - } - }; - } - - private void onDialogClose(String message) { - finish(); - Intent intent = new Intent(this, TraditionalT9.class); - if (message != null) { - intent.putExtra(PopupDialog.INTENT_CLOSE, message); - } - startService(intent); - } - - - @Override - public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults); - onDialogClose(null); - } -} diff --git a/app/src/main/java/io/github/sspanak/tt9/ui/notifications/DictionaryUpdateNotification.java b/app/src/main/java/io/github/sspanak/tt9/ui/notifications/DictionaryUpdateNotification.java index 3823e7f9..90430ac8 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ui/notifications/DictionaryUpdateNotification.java +++ b/app/src/main/java/io/github/sspanak/tt9/ui/notifications/DictionaryUpdateNotification.java @@ -10,7 +10,7 @@ import androidx.core.app.NotificationCompat; import io.github.sspanak.tt9.R; import io.github.sspanak.tt9.languages.Language; -import io.github.sspanak.tt9.ui.dialogs.AutoUpdateMonolog; +import io.github.sspanak.tt9.ui.dialogs.AutoUpdateMonologActivity; public class DictionaryUpdateNotification extends DictionaryNotification { private final Language language; @@ -25,7 +25,7 @@ public class DictionaryUpdateNotification extends DictionaryNotification { @Override protected PendingIntent createNavigationIntent(@NonNull Context context, @Nullable Language language) { - Intent intent = AutoUpdateMonolog.generateShowIntent(context, language != null ? language.getId() : -1); + Intent intent = AutoUpdateMonologActivity.generateShowIntent(context, language != null ? language.getId() : -1); return PendingIntent.getActivity(context, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); }