add tests for ResearchLogger

Bug: 6188932
Change-Id: Icf407f9d145d2b25b70d5d7bc30ee3d64561620c
diff --git a/java/proguard.flags b/java/proguard.flags
index 701786a..e33706c 100644
--- a/java/proguard.flags
+++ b/java/proguard.flags
@@ -47,6 +47,10 @@
   <init>(...);
 }
 
+-keep class com.android.inputmethod.latin.ResearchLogger {
+  void setLogFileManager(...);
+}
+
 # The support library contains references to newer platform versions.
 # Don't warn about those in case this app is linking against an older
 # platform version.  We know about them, and they are safe.
diff --git a/java/src/com/android/inputmethod/latin/ResearchLogger.java b/java/src/com/android/inputmethod/latin/ResearchLogger.java
index 509fbe0..3b110bd 100644
--- a/java/src/com/android/inputmethod/latin/ResearchLogger.java
+++ b/java/src/com/android/inputmethod/latin/ResearchLogger.java
@@ -21,6 +21,7 @@
 import android.os.Handler;
 import android.os.HandlerThread;
 import android.os.Process;
+import android.os.SystemClock;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.MotionEvent;
@@ -48,7 +49,7 @@
 
     private static final ResearchLogger sInstance = new ResearchLogger(new LogFileManager());
     public static boolean sIsLogging = false;
-    private final Handler mLoggingHandler;
+    /* package */ final Handler mLoggingHandler;
     private InputMethodService mIms;
     private final Date mDate;
     private final SimpleDateFormat mDateFormat;
@@ -182,11 +183,13 @@
     }
 
     /**
-     * Change to a different logFileManager.  Will not allow it to be set to null.
+     * Change to a different logFileManager.
+     *
+     * @throws IllegalArgumentException if logFileManager is null
      */
-    /* package */ void setLogFileManager(ResearchLogger.LogFileManager manager) {
+    void setLogFileManager(LogFileManager manager) {
         if (manager == null) {
-            Log.w(TAG, "warning: trying to set null logFileManager.  ignoring.");
+            throw new IllegalArgumentException("warning: trying to set null logFileManager");
         } else {
             mLogFileManager = manager;
         }
@@ -240,8 +243,6 @@
         sb.append('\t'); sb.append(x);
         sb.append('\t'); sb.append(y);
         write(LogGroup.KEY, sb.toString());
-
-        LatinImeLogger.onPrintAllUsabilityStudyLogs();
     }
 
     public void logCorrection(String subgroup, String before, String after, int position) {
@@ -263,9 +264,10 @@
             public void run() {
                 final long currentTime = System.currentTimeMillis();
                 mDate.setTime(currentTime);
+                final long upTime = SystemClock.uptimeMillis();
 
                 final String printString = String.format("%s\t%d\t%s\t%s\n",
-                        mDateFormat.format(mDate), currentTime, logGroup.mLogString, log);
+                        mDateFormat.format(mDate), upTime, logGroup.mLogString, log);
                 if (LatinImeLogger.sDBG) {
                     Log.d(TAG, "Write: " + '[' + logGroup.mLogString + ']' + log);
                 }