Skip auto sign-in if the user is already logged in.

Also delay dismissing the dialog to avoid flashing it briefly.

Change-Id: I86c23ccebc6ccaad1feac56bea4ddcfefe1607f4
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 0fce014..018744d 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -26,6 +26,7 @@
 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;
@@ -115,7 +116,8 @@
         }
 
         String account = settings.getAutoLoginAccount(this);
-        if (settings.isAutoLoginEnabled() && account != null) {
+        if (settings.isAutoLoginEnabled() && account != null &&
+                !GoogleAccountLogin.isLoggedIn()) {
             GoogleAccountLogin login =
                     new GoogleAccountLogin(this, account);
             final ProgressDialog dialog = ProgressDialog.show(this,
@@ -125,9 +127,17 @@
                     true /* cancelable */,
                     login);
             final Bundle b = icicle;
-            final Runnable start = new Runnable() {
+            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());
                 }
             };