summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/UiModeManagerService.java
diff options
context:
space:
mode:
authorDaniel Sandler <dsandler@android.com>2011-11-04 15:08:30 -0400
committerDaniel Sandler <dsandler@android.com>2011-11-04 15:15:40 -0400
commit69a1da4ddec90db501a54f0c4de94e9557aebd2e (patch)
tree4bff9fa1130441d6e246a87c81b8ea300bbdbf37 /services/java/com/android/server/UiModeManagerService.java
parent45a04db3f95755829b24043d30d7da7182b4f33b (diff)
Teach UiModeMgr about high-end and low-end desk docks.
Should fix dock mode on Stingray, since its docks advertise themselves as EXTRA_DOCK_STATE_LE_DESK and EXTRA_DOCK_STATE_HE_DESK but not EXTRA_DOCK_STATE_DESK. Bug: 5569662 Change-Id: I93197665c0df8dea06ca8fadae97ec267c751c85
Diffstat (limited to 'services/java/com/android/server/UiModeManagerService.java')
-rw-r--r--services/java/com/android/server/UiModeManagerService.java45
1 files changed, 39 insertions, 6 deletions
diff --git a/services/java/com/android/server/UiModeManagerService.java b/services/java/com/android/server/UiModeManagerService.java
index 431cc39082de..280b32941571 100644
--- a/services/java/com/android/server/UiModeManagerService.java
+++ b/services/java/com/android/server/UiModeManagerService.java
@@ -123,6 +123,10 @@ class UiModeManagerService extends IUiModeManager.Stub {
@Override
public void onReceive(Context context, Intent intent) {
if (getResultCode() != Activity.RESULT_OK) {
+ if (LOG) {
+ Slog.v(TAG, "Handling broadcast result for action " + intent.getAction()
+ + ": canceled: " + getResultCode());
+ }
return;
}
@@ -151,6 +155,12 @@ class UiModeManagerService extends IUiModeManager.Stub {
category = Intent.CATEGORY_HOME;
}
}
+
+ if (LOG) {
+ Slog.v(TAG, String.format(
+ "Handling broadcast result for action %s: enable=0x%08x disable=0x%08x category=%s",
+ intent.getAction(), enableFlags, disableFlags, category));
+ }
if (category != null) {
// This is the new activity that will serve as home while
@@ -424,11 +434,22 @@ class UiModeManagerService extends IUiModeManager.Stub {
}
}
+ final static boolean isDeskDockState(int state) {
+ switch (state) {
+ case Intent.EXTRA_DOCK_STATE_DESK:
+ case Intent.EXTRA_DOCK_STATE_LE_DESK:
+ case Intent.EXTRA_DOCK_STATE_HE_DESK:
+ return true;
+ default:
+ return false;
+ }
+ }
+
final void updateConfigurationLocked(boolean sendIt) {
int uiMode = Configuration.UI_MODE_TYPE_NORMAL;
if (mCarModeEnabled) {
uiMode = Configuration.UI_MODE_TYPE_CAR;
- } else if (mDockState == Intent.EXTRA_DOCK_STATE_DESK) {
+ } else if (isDeskDockState(mDockState)) {
uiMode = Configuration.UI_MODE_TYPE_DESK;
}
if (mCarModeEnabled) {
@@ -477,7 +498,7 @@ class UiModeManagerService extends IUiModeManager.Stub {
if (mLastBroadcastState == Intent.EXTRA_DOCK_STATE_CAR) {
adjustStatusBarCarModeLocked();
oldAction = UiModeManager.ACTION_EXIT_CAR_MODE;
- } else if (mLastBroadcastState == Intent.EXTRA_DOCK_STATE_DESK) {
+ } else if (isDeskDockState(mLastBroadcastState)) {
oldAction = UiModeManager.ACTION_EXIT_DESK_MODE;
}
@@ -491,12 +512,12 @@ class UiModeManagerService extends IUiModeManager.Stub {
mLastBroadcastState = Intent.EXTRA_DOCK_STATE_CAR;
action = UiModeManager.ACTION_ENTER_CAR_MODE;
}
- } else if (mDockState == Intent.EXTRA_DOCK_STATE_DESK) {
- if (mLastBroadcastState != Intent.EXTRA_DOCK_STATE_DESK) {
+ } else if (isDeskDockState(mDockState)) {
+ if (!isDeskDockState(mLastBroadcastState)) {
if (oldAction != null) {
mContext.sendBroadcast(new Intent(oldAction));
}
- mLastBroadcastState = Intent.EXTRA_DOCK_STATE_DESK;
+ mLastBroadcastState = mDockState;
action = UiModeManager.ACTION_ENTER_DESK_MODE;
}
} else {
@@ -505,6 +526,12 @@ class UiModeManagerService extends IUiModeManager.Stub {
}
if (action != null) {
+ if (LOG) {
+ Slog.v(TAG, String.format(
+ "updateLocked: preparing broadcast: action=%s enable=0x%08x disable=0x%08x",
+ action, enableFlags, disableFlags));
+ }
+
// Send the ordered broadcast; the result receiver will receive after all
// broadcasts have been sent. If any broadcast receiver changes the result
// code from the initial value of RESULT_OK, then the result receiver will
@@ -526,7 +553,7 @@ class UiModeManagerService extends IUiModeManager.Stub {
if ((enableFlags&UiModeManager.ENABLE_CAR_MODE_GO_CAR_HOME) != 0) {
homeIntent = buildHomeIntent(Intent.CATEGORY_CAR_DOCK);
}
- } else if (mDockState == Intent.EXTRA_DOCK_STATE_DESK) {
+ } else if (isDeskDockState(mDockState)) {
if ((enableFlags&UiModeManager.ENABLE_CAR_MODE_GO_CAR_HOME) != 0) {
homeIntent = buildHomeIntent(Intent.CATEGORY_DESK_DOCK);
}
@@ -535,6 +562,12 @@ class UiModeManagerService extends IUiModeManager.Stub {
homeIntent = buildHomeIntent(Intent.CATEGORY_HOME);
}
}
+
+ if (LOG) {
+ Slog.v(TAG, "updateLocked: null action, mDockState="
+ + mDockState +", firing homeIntent: " + homeIntent);
+ }
+
if (homeIntent != null) {
try {
mContext.startActivity(homeIntent);