b/2296110 Car Dock - Stop service when done processing each command. Clean up logs.

Change-Id: I92124d2856e6c825a2b4148473431789a1f5b156
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f3f33ac..b9945c5 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -65,7 +65,7 @@
 
         <!-- Wireless Controls -->
 
-        <activity android:name="WirelessSettings" 
+        <activity android:name="WirelessSettings"
                 android:label="@string/wireless_networks_settings_title"
                 >
             <intent-filter>
@@ -175,7 +175,7 @@
                 <category android:name="android.intent.category.VOICE_LAUNCH" />
             </intent-filter>
         </activity>
-        
+
         <activity android:name="LocalePickerInSetupWizard" android:label="@string/language_picker_title">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -195,7 +195,7 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="PhysicalKeyboardSettings" 
+        <activity android:name="PhysicalKeyboardSettings"
                 android:label="@string/builtin_keyboard_settings_title">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -283,7 +283,7 @@
                 <category android:name="com.android.settings.SHORTCUT" />
             </intent-filter>
         </activity>
-        
+
         <activity android:name="InstalledAppDetails" android:label="@string/application_info_label">
             <intent-filter>
                 <action android:name="android.intent.action.VIEW" />
@@ -303,7 +303,7 @@
                 <category android:name="com.android.settings.SHORTCUT" />
             </intent-filter>
         </activity>
-        
+
         <activity android:name="SecuritySettings"
                 android:label="@string/location_security_settings_title"
                 android:configChanges="orientation|keyboardHidden"
@@ -373,22 +373,22 @@
         <!-- Second and third-level settings -->
 
         <activity android:name="ConfirmLockPattern"/>
-        
+
         <activity android:name="ChooseLockPattern" android:label="@string/lockpattern_change_lock_pattern_label">
             <intent-filter>
                 <action android:name="android.intent.action.DEFAULT" />
             </intent-filter>
         </activity>
 
-        <activity android:name="ChooseLockPatternTutorial" 
+        <activity android:name="ChooseLockPatternTutorial"
             android:label="@string/lockpattern_change_lock_pattern_label"
             >
             <intent-filter>
                 <action android:name="android.intent.action.DEFAULT" />
             </intent-filter>
         </activity>
-        
-        <activity android:name="ChooseLockPatternExample" 
+
+        <activity android:name="ChooseLockPatternExample"
             android:label="@string/lockpattern_change_lock_pattern_label">
             <intent-filter>
                 <action android:name="android.intent.action.DEFAULT" />
@@ -444,7 +444,7 @@
             </intent-filter>
         </activity>
 
-        <activity android:name=".quicklaunch.QuickLaunchSettings" 
+        <activity android:name=".quicklaunch.QuickLaunchSettings"
                 android:label="@string/quick_launch_title">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -453,7 +453,7 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
-        
+
         <activity android:name=".quicklaunch.BookmarkPicker" android:label="@string/quick_launch_title">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
diff --git a/src/com/android/settings/bluetooth/DockEventReceiver.java b/src/com/android/settings/bluetooth/DockEventReceiver.java
index e6170c9..33afe0a 100644
--- a/src/com/android/settings/bluetooth/DockEventReceiver.java
+++ b/src/com/android/settings/bluetooth/DockEventReceiver.java
@@ -55,7 +55,7 @@
         if (Intent.ACTION_DOCK_EVENT.equals(intent.getAction())
                 || ACTION_DOCK_SHOW_UI.endsWith(intent.getAction())) {
             if (device == null) {
-                if (DEBUG) Log.e(TAG, "Device is missing");
+                if (DEBUG) Log.d(TAG, "Device is missing");
                 return;
             }
 
diff --git a/src/com/android/settings/bluetooth/DockService.java b/src/com/android/settings/bluetooth/DockService.java
index 6da8fd9..99cb1e5 100644
--- a/src/com/android/settings/bluetooth/DockService.java
+++ b/src/com/android/settings/bluetooth/DockService.java
@@ -46,12 +46,6 @@
         DialogInterface.OnClickListener, DialogInterface.OnDismissListener,
         CompoundButton.OnCheckedChangeListener {
 
-    // TODO check for waitlock leak
-    // TODO check for service shutting down properly
-    // TODO sticky vs non-sticky
-    // TODO clean up static functions
-    // TODO test after wiping data
-
     private static final String TAG = "DockService";
 
     // TODO clean up logs. Disable DEBUG flag for this file and receiver's too
@@ -157,7 +151,7 @@
         msg.arg2 = startId;
         processMessage(msg);
 
-        return START_STICKY;
+        return START_NOT_STICKY;
     }
 
     private final class ServiceHandler extends Handler {
@@ -229,15 +223,15 @@
             case MSG_TYPE_UNDOCKED_TEMPORARY:
                 // Undocked event received. Queue a delayed msg to sever connection
                 Message newMsg = mServiceHandler.obtainMessage(MSG_TYPE_UNDOCKED_PERMANENT, state,
-                        0, device);
+                        startId, device);
                 mServiceHandler.sendMessageDelayed(newMsg, UNDOCKED_GRACE_PERIOD);
                 break;
         }
 
-        if (mDialog == null && mPendingDevice == null) {
+        if (mDialog == null && mPendingDevice == null && msgType != MSG_TYPE_UNDOCKED_TEMPORARY) {
             // NOTE: We MUST not call stopSelf() directly, since we need to
             // make sure the wake lock acquired by the Receiver is released.
-            DockEventReceiver.finishStartingService(DockService.this, msg.arg1);
+            DockEventReceiver.finishStartingService(DockService.this, startId);
         }
     }
 
@@ -251,7 +245,7 @@
         }
 
         if (device == null) {
-            Log.e(TAG, "device is null");
+            Log.w(TAG, "device is null");
             return null;
         }
 
@@ -416,8 +410,9 @@
                     if (mPendingDevice.equals(mDevice)) {
                         if(DEBUG) Log.d(TAG, "applying settings");
                         applyBtSettings(mPendingDevice, mPendingStartId);
-                    } if(DEBUG) {
-                        Log.d(TAG, "mPendingDevice != mDevice");
+                    } else if(DEBUG) {
+                        Log.d(TAG, "mPendingDevice  (" + mPendingDevice + ") != mDevice ("
+                                + mDevice + ")");
                     }
 
                     mPendingDevice = null;