Automated import from //branches/cupcake/...@142870,142870
diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl
index 15e7eb2..5607d4b 100644
--- a/core/java/android/view/IWindowManager.aidl
+++ b/core/java/android/view/IWindowManager.aidl
@@ -59,6 +59,8 @@
void pauseKeyDispatching(IBinder token);
void resumeKeyDispatching(IBinder token);
void setEventDispatching(boolean enabled);
+ void addWindowToken(IBinder token, int type);
+ void removeWindowToken(IBinder token);
void addAppToken(int addPos, IApplicationToken token,
int groupId, int requestedOrientation, boolean fullscreen);
void setAppGroupId(IBinder token, int groupId);
@@ -81,8 +83,6 @@
void moveAppToken(int index, IBinder token);
void moveAppTokensToTop(in List<IBinder> tokens);
void moveAppTokensToBottom(in List<IBinder> tokens);
- void addWindowToken(IBinder token, int type);
- void removeWindowToken(IBinder token);
// these require DISABLE_KEYGUARD permission
void disableKeyguard(IBinder token, String tag);
@@ -119,9 +119,9 @@
* @param alwaysSendConfiguration Flag to force a new configuration to
* be evaluated. This can be used when there are other parameters in
* configuration that are changing.
- * {@link android.view.Surface}.
+ * @param animFlags Animation flags as per {@link android.view.Surface}.
*/
- void setRotation(int rotation, boolean alwaysSendConfiguration);
+ void setRotation(int rotation, boolean alwaysSendConfiguration, int animFlags);
/**
* Retrieve the current screen orientation, constants as per
diff --git a/core/java/android/view/WindowOrientationListener.java b/core/java/android/view/WindowOrientationListener.java
index ac321db..13606e7 100755
--- a/core/java/android/view/WindowOrientationListener.java
+++ b/core/java/android/view/WindowOrientationListener.java
@@ -80,6 +80,7 @@
}
if (mEnabled == false) {
if (localLOGV) Log.d(TAG, "WindowOrientationListener enabled");
+ mSensorRotation = -1;
mSensorManager.registerListener(mSensorEventListener, mSensor, mRate);
mEnabled = true;
}
@@ -95,11 +96,16 @@
}
if (mEnabled == true) {
if (localLOGV) Log.d(TAG, "WindowOrientationListener disabled");
+ mSensorRotation = -1;
mSensorManager.unregisterListener(mSensorEventListener);
mEnabled = false;
}
}
+ public int getCurrentRotation() {
+ return mSensorRotation;
+ }
+
class SensorEventListenerImpl implements SensorEventListener {
private static final int _DATA_X = 0;
private static final int _DATA_Y = 1;
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java
index 19ab21d8..48cbf99 100644
--- a/services/java/com/android/server/WindowManagerService.java
+++ b/services/java/com/android/server/WindowManagerService.java
@@ -2166,7 +2166,7 @@
if (changed) {
changed = setRotationUncheckedLocked(
- WindowManagerPolicy.USE_LAST_ROTATION);
+ WindowManagerPolicy.USE_LAST_ROTATION, 1);
if (changed) {
if (freezeThisOneIfNeeded != null) {
AppWindowToken wtoken = findAppWindowToken(
@@ -3258,7 +3258,7 @@
mPolicy.enableScreenAfterBoot();
// Make sure the last requested orientation has been applied.
- setRotationUnchecked(WindowManagerPolicy.USE_LAST_ROTATION, false);
+ setRotationUnchecked(WindowManagerPolicy.USE_LAST_ROTATION, false, 0);
}
public void setInTouchMode(boolean mode) {
@@ -3268,23 +3268,24 @@
}
public void setRotation(int rotation,
- boolean alwaysSendConfiguration) {
+ boolean alwaysSendConfiguration, int animFlags) {
if (!checkCallingPermission(android.Manifest.permission.SET_ORIENTATION,
- "setOrientation()")) {
+ "setRotation()")) {
return;
}
- setRotationUnchecked(rotation, alwaysSendConfiguration);
+ setRotationUnchecked(rotation, alwaysSendConfiguration, animFlags);
}
- public void setRotationUnchecked(int rotation, boolean alwaysSendConfiguration) {
+ public void setRotationUnchecked(int rotation,
+ boolean alwaysSendConfiguration, int animFlags) {
if(DEBUG_ORIENTATION) Log.v(TAG,
"alwaysSendConfiguration set to "+alwaysSendConfiguration);
long origId = Binder.clearCallingIdentity();
boolean changed;
synchronized(mWindowMap) {
- changed = setRotationUncheckedLocked(rotation);
+ changed = setRotationUncheckedLocked(rotation, animFlags);
}
if (changed) {
@@ -3301,7 +3302,7 @@
Binder.restoreCallingIdentity(origId);
}
- public boolean setRotationUncheckedLocked(int rotation) {
+ public boolean setRotationUncheckedLocked(int rotation, int animFlags) {
boolean changed;
if (rotation == WindowManagerPolicy.USE_LAST_ROTATION) {
rotation = mRequestedRotation;
@@ -3326,6 +3327,7 @@
mH.sendMessageDelayed(mH.obtainMessage(H.WINDOW_FREEZE_TIMEOUT),
2000);
startFreezingDisplayLocked();
+ Log.i(TAG, "Setting rotation to " + rotation + ", animFlags=" + animFlags);
mQueue.setOrientation(rotation);
if (mDisplayEnabled) {
Surface.setOrientation(0, rotation);
@@ -6976,7 +6978,6 @@
public static final int REMOVE_STARTING = 6;
public static final int FINISHED_STARTING = 7;
public static final int REPORT_APPLICATION_TOKEN_WINDOWS = 8;
- public static final int UPDATE_ORIENTATION = 10;
public static final int WINDOW_FREEZE_TIMEOUT = 11;
public static final int HOLD_SCREEN_CHANGED = 12;
public static final int APP_TRANSITION_TIMEOUT = 13;
@@ -7204,11 +7205,6 @@
}
} break;
- case UPDATE_ORIENTATION: {
- setRotationUnchecked(WindowManagerPolicy.USE_LAST_ROTATION, false);
- break;
- }
-
case WINDOW_FREEZE_TIMEOUT: {
synchronized (mWindowMap) {
Log.w(TAG, "Window freeze timeout expired.");