diff --git a/java/src/com/android/inputmethod/research/ResearchLogger.java b/java/src/com/android/inputmethod/research/ResearchLogger.java
index c8242c8..4e839f9 100644
--- a/java/src/com/android/inputmethod/research/ResearchLogger.java
+++ b/java/src/com/android/inputmethod/research/ResearchLogger.java
@@ -166,7 +166,6 @@
     private File mUserRecordingFile = null;
 
     private boolean mIsPasswordView = false;
-    private boolean mIsLoggingSuspended = false;
     private SharedPreferences mPrefs;
 
     // digits entered by the user are replaced with this codepoint.
@@ -411,7 +410,6 @@
             Log.d(TAG, "start called");
         }
         maybeShowSplashScreen();
-        updateSuspendedState();
         requestIndicatorRedraw();
         mStatistics.reset();
         checkForEmptyEditor();
@@ -452,14 +450,6 @@
         start();
     }
 
-    private long mResumeTime = 0L;
-    private void updateSuspendedState() {
-        final long time = System.currentTimeMillis();
-        if (time > mResumeTime) {
-            mIsLoggingSuspended = false;
-        }
-    }
-
     @Override
     public void onSharedPreferenceChanged(final SharedPreferences prefs, final String key) {
         if (key == null || prefs == null) {
@@ -745,7 +735,7 @@
     }
 
     private boolean isAllowedToLog() {
-        return !mIsPasswordView && !mIsLoggingSuspended && sIsLogging && !mInFeedbackDialog;
+        return !mIsPasswordView && sIsLogging && !mInFeedbackDialog;
     }
 
     public void requestIndicatorRedraw() {
