From 2bad9d60f90798b2fcd1af2214d314491d7ffad2 Mon Sep 17 00:00:00 2001 From: sspanak Date: Tue, 10 Sep 2024 17:26:15 +0300 Subject: [PATCH] no background tasks are scheduled after shutting down (yet another attempt to fix the Privileged Options problem) --- .../github/sspanak/tt9/ime/TraditionalT9.java | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java b/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java index 8f3b3e35..aa0f702f 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/TraditionalT9.java @@ -22,7 +22,7 @@ import io.github.sspanak.tt9.util.SystemSettings; public class TraditionalT9 extends MainViewHandler { @NonNull - private final Handler normalizationHandler = new Handler(Looper.getMainLooper()); + private final Handler backgroundTasks = new Handler(Looper.getMainLooper()); private final Handler deathDetector = new Handler(Looper.getMainLooper()); @@ -140,7 +140,7 @@ public class TraditionalT9 extends MainViewHandler { if (mInputMode.isPassthrough()) { onStop(); } else { - normalizationHandler.removeCallbacksAndMessages(null); + backgroundTasks.removeCallbacksAndMessages(null); initUi(); } @@ -170,14 +170,10 @@ public class TraditionalT9 extends MainViewHandler { updateInputViewShown(); } - normalizationHandler.removeCallbacksAndMessages(null); - normalizationHandler.postDelayed( - () -> { - DataStore.saveWordPairs(); - if (!DictionaryLoader.getInstance(this).isRunning()) DataStore.normalizeNext(); - }, - SettingsStore.WORD_BACKGROUND_TASKS_DELAY - ); + if (SystemSettings.isTT9Active(this)) { + backgroundTasks.removeCallbacksAndMessages(null); + backgroundTasks.postDelayed(this::runBackgroundTasks, SettingsStore.WORD_BACKGROUND_TASKS_DELAY); + } } @@ -197,7 +193,7 @@ public class TraditionalT9 extends MainViewHandler { Logger.w("onDeath", "===> Killing self"); requestHideSelf(0); onStop(); - normalizationHandler.removeCallbacksAndMessages(null); + backgroundTasks.removeCallbacksAndMessages(null); DataStore.destroy(); stopSelf(); } @@ -223,4 +219,12 @@ public class TraditionalT9 extends MainViewHandler { protected TraditionalT9 getFinalContext() { return this; } + + + private void runBackgroundTasks() { + DataStore.saveWordPairs(); + if (!DictionaryLoader.getInstance(this).isRunning()) { + DataStore.normalizeNext(); + } + } }