Fix issue #2560791: Expose API to go in to car mode.

Also fix bug where night mode was being used in desk dock.

Change-Id: I56c1cf3d6fe800a4f986d40cc4cb2e70b76ac261
diff --git a/services/java/com/android/server/UiModeManagerService.java b/services/java/com/android/server/UiModeManagerService.java
index c40650a..1850b9a 100644
--- a/services/java/com/android/server/UiModeManagerService.java
+++ b/services/java/com/android/server/UiModeManagerService.java
@@ -19,14 +19,12 @@
 import android.app.Activity;
 import android.app.ActivityManagerNative;
 import android.app.AlarmManager;
-import android.app.IActivityManager;
 import android.app.IUiModeManager;
 import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.app.StatusBarManager;
 import android.app.UiModeManager;
-import android.content.ActivityNotFoundException;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -310,9 +308,6 @@
     }
 
     public void enableCarMode() {
-        mContext.enforceCallingOrSelfPermission(
-                android.Manifest.permission.ENABLE_CAR_MODE,
-                "Need ENABLE_CAR_MODE permission");
         synchronized (mLock) {
             setCarModeLocked(true);
             if (mSystemReady) {
@@ -394,7 +389,7 @@
         } else if (mDockState == Intent.EXTRA_DOCK_STATE_DESK) {
             uiMode = Configuration.UI_MODE_TYPE_DESK;
         }
-        if (uiMode != 0) {
+        if (mCarModeEnabled) {
             if (mNightMode == UiModeManager.MODE_NIGHT_AUTO) {
                 updateTwilightLocked();
                 uiMode |= mComputedNightMode ? Configuration.UI_MODE_NIGHT_YES