Re-login after a week.

Refactor GoogleAccountLogin to handle the progress dialog.  Store the last login
time and login after a week to refresh cookies.

Bug: 3367395
Change-Id: I62a277610af5b642f51cc775f17806c558812d4a
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 527f025..ec09673 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -19,14 +19,12 @@
 import com.google.common.annotations.VisibleForTesting;
 
 import android.app.Activity;
-import android.app.ProgressDialog;
 import android.content.Intent;
 import android.content.res.Configuration;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
 import android.graphics.PixelFormat;
 import android.os.Bundle;
-import android.os.Handler;
 import android.util.Log;
 import android.view.ActionMode;
 import android.view.ContextMenu;
@@ -113,36 +111,12 @@
             icicle = state;
         }
 
-        String account = settings.getAutoLoginAccount(this);
-        if (settings.isAutoLoginEnabled() && account != null &&
-                !GoogleAccountLogin.isLoggedIn()) {
-            GoogleAccountLogin login =
-                    new GoogleAccountLogin(this, account);
-            final ProgressDialog dialog = ProgressDialog.show(this,
-                    getString(R.string.pref_autologin_title),
-                    getString(R.string.pref_autologin_progress, account),
-                    true /* indeterminate */,
-                    true /* cancelable */,
-                    login);
-            final Bundle b = icicle;
-            final Handler handler = new Handler();
-            final Runnable dismiss = new Runnable() {
-                @Override public void run() {
-                    dialog.dismiss();
-                }
-            };
-            final Runnable start = new Runnable() {
-                @Override public void run() {
-                    // Post a delayed dismiss message to avoid a flash of the
-                    // progress dialog.
-                    handler.postDelayed(dismiss, 1000);
-                    mController.start(b, getIntent());
-                }
-            };
-            login.startLogin(start);
-        } else {
-            mController.start(icicle, getIntent());
-        }
+        final Bundle b = icicle;
+        GoogleAccountLogin.startLoginIfNeeded(this, settings, new Runnable() {
+            @Override public void run() {
+                mController.start(b, getIntent());
+            }
+        });
     }
 
     @VisibleForTesting