Simplify asyncFlushBinaryDictionary.

We no longer write files when the dict has not been updated.

Bug: 8187060
Change-Id: I8aa23a93d5deafb3a7f16f5466a5e0e84fbbf095
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
index dcc4568..3eafcb2 100644
--- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
+++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
@@ -40,7 +40,6 @@
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.concurrent.atomic.AtomicReference;
 
 /**
  * Abstract base class for an expandable dictionary that can be created and updated dynamically
@@ -101,9 +100,6 @@
     /* A extension for a binary dictionary file. */
     protected static final String DICT_FILE_EXTENSION = ".dict";
 
-    private final AtomicReference<Runnable> mUnfinishedFlushingTask =
-            new AtomicReference<Runnable>();
-
     /**
      * Abstract method for loading initial contents of a given dictionary.
      */
@@ -561,14 +557,12 @@
      * Flush binary dictionary to dictionary file.
      */
     public void asyncFlushBinaryDictionary() {
-        final Runnable newTask = new Runnable() {
+        ExecutorUtils.getExecutor(mDictName).execute(new Runnable() {
             @Override
             public void run() {
                 flushDictionaryLocked();
             }
-        };
-        final Runnable oldTask = mUnfinishedFlushingTask.getAndSet(newTask);
-        ExecutorUtils.getExecutor(mDictName).replaceAndExecute(oldTask, newTask);
+        });
     }
 
     // TODO: Implement BinaryDictionary.isInDictionary().
diff --git a/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java b/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java
index b10d08a..a23b3ac 100644
--- a/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java
+++ b/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java
@@ -47,16 +47,6 @@
     }
 
     /**
-     * Clears all queued tasks.
-     */
-    public void clearAllTasks() {
-        synchronized(mLock) {
-            mTasks.clear();
-            mPrioritizedTasks.clear();
-        }
-    }
-
-    /**
      * Enqueues the given task into the task queue.
      * @param r the enqueued task
      */
@@ -120,33 +110,10 @@
         }
     }
 
-    public void remove(final Runnable r) {
-        synchronized(mLock) {
-            mTasks.remove(r);
-            mPrioritizedTasks.remove(r);
-        }
-    }
-
-    public void replaceAndExecute(final Runnable oldTask, final Runnable newTask) {
-        synchronized(mLock) {
-            if (oldTask != null) remove(oldTask);
-            execute(newTask);
-        }
-    }
-
     public void shutdown() {
         synchronized(mLock) {
             mIsShutdown = true;
             mThreadPoolExecutor.shutdown();
         }
     }
-
-    public boolean isTerminated() {
-        synchronized(mLock) {
-            if (!mIsShutdown) {
-                return false;
-            }
-            return mPrioritizedTasks.isEmpty() && mTasks.isEmpty() && mActive == null;
-        }
-    }
 }