diff options
author | 2015-03-09 18:26:52 -0700 | |
---|---|---|
committer | 2015-03-09 18:54:48 -0700 | |
commit | 375035905de7932b3a34e91fc537fd7561bed6c8 (patch) | |
tree | 4da1d60df860f679502b952eac0d062d2ed378a0 | |
parent | bd1bc4067ff87ce1a21d12a48b1695fe58c8dd4d (diff) | |
download | latinime-375035905de7932b3a34e91fc537fd7561bed6c8.tar.gz latinime-375035905de7932b3a34e91fc537fd7561bed6c8.tar.xz latinime-375035905de7932b3a34e91fc537fd7561bed6c8.zip |
Kill+restart tasks before/after decoder init.
Bug 19625976.
Change-Id: I6d8b0d2b0a77ccda1bfc914501cf568b92862980
-rw-r--r-- | java-overridable/src/com/android/inputmethod/latin/utils/StatsUtilsManager.java | 7 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/utils/ExecutorUtils.java | 11 |
2 files changed, 16 insertions, 2 deletions
diff --git a/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtilsManager.java b/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtilsManager.java index 063bc89d0..cd42f50c7 100644 --- a/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtilsManager.java +++ b/java-overridable/src/com/android/inputmethod/latin/utils/StatsUtilsManager.java @@ -26,12 +26,17 @@ import com.android.inputmethod.latin.settings.SettingsValues; public class StatsUtilsManager { private static final StatsUtilsManager sInstance = new StatsUtilsManager(); + private static StatsUtilsManager sTestInstance = null; /** * @return the singleton instance of {@link StatsUtilsManager}. */ public static StatsUtilsManager getInstance() { - return sInstance; + return sTestInstance != null ? sTestInstance : sInstance; + } + + public static void setTestInstance(final StatsUtilsManager testInstance) { + sTestInstance = testInstance; } public void onCreate(final Context context, final DictionaryFacilitator dictionaryFacilitator) { diff --git a/java/src/com/android/inputmethod/latin/utils/ExecutorUtils.java b/java/src/com/android/inputmethod/latin/utils/ExecutorUtils.java index b04a820aa..3a6c60b15 100644 --- a/java/src/com/android/inputmethod/latin/utils/ExecutorUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/ExecutorUtils.java @@ -23,7 +23,6 @@ import com.android.inputmethod.annotations.UsedForTesting; import java.lang.Thread.UncaughtExceptionHandler; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ThreadFactory; import java.util.concurrent.TimeUnit; @@ -74,6 +73,16 @@ public class ExecutorUtils { return sExecutorService; } + public static void killTasks() { + getBackgroundExecutor().shutdownNow(); + try { + getBackgroundExecutor().awaitTermination(5, TimeUnit.SECONDS); + } catch (InterruptedException e) { + Log.wtf(TAG, "Failed to shut down background task."); + throw new IllegalStateException("Failed to shut down background task."); + } + } + public static Runnable chain(final Runnable... runnables) { return new RunnableChain(runnables); } |