Move the watchdog timer to a separate thread...

so that it won't block the UI thread.
diff --git a/packages/VpnServices/src/com/android/server/vpn/VpnService.java b/packages/VpnServices/src/com/android/server/vpn/VpnService.java
index a60788a..22669d2 100644
--- a/packages/VpnServices/src/com/android/server/vpn/VpnService.java
+++ b/packages/VpnServices/src/com/android/server/vpn/VpnService.java
@@ -189,7 +189,7 @@
 
             mServiceHelper.stop();
         } catch (Throwable e) {
-            Log.e(TAG, "onError()", e);
+            Log.e(TAG, "onDisconnect()", e);
             onFinalCleanUp();
         }
     }
@@ -219,21 +219,28 @@
     }
 
     private void waitUntilConnectedOrTimedout() {
-        sleep(2000); // 2 seconds
-        for (int i = 0; i < 60; i++) {
-            if (VPN_IS_UP.equals(SystemProperties.get(VPN_UP))) {
-                onConnected();
-                return;
-            }
-            sleep(500); // 0.5 second
-        }
+        // Run this in the background thread to not block UI
+        new Thread(new Runnable() {
+            public void run() {
+                sleep(2000); // 2 seconds
+                for (int i = 0; i < 60; i++) {
+                    if (VPN_IS_UP.equals(SystemProperties.get(VPN_UP))) {
+                        onConnected();
+                        return;
+                    } else if (mState != VpnState.CONNECTING) {
+                        break;
+                    }
+                    sleep(500); // 0.5 second
+                }
 
-        synchronized (this) {
-            if (mState == VpnState.CONNECTING) {
-                Log.d(TAG, "       connecting timed out !!");
-                onError();
+                synchronized (VpnService.this) {
+                    if (mState == VpnState.CONNECTING) {
+                        Log.d(TAG, "       connecting timed out !!");
+                        onError();
+                    }
+                }
             }
-        }
+        }).start();
     }
 
     private synchronized void onConnected() {