summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/java/android/view/IWindowManager.aidl8
-rw-r--r--core/java/android/view/Surface.java5
-rw-r--r--core/java/android/view/WindowManagerPolicy.java40
-rwxr-xr-xcore/java/android/view/WindowOrientationListener.java13
4 files changed, 31 insertions, 35 deletions
diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl
index 335c66b..55c821d 100644
--- a/core/java/android/view/IWindowManager.aidl
+++ b/core/java/android/view/IWindowManager.aidl
@@ -163,15 +163,13 @@ interface IWindowManager
// These can only be called with the SET_ORIENTATION permission.
/**
- * Change the current screen rotation, constants as per
- * {@link android.view.Surface}.
- * @param rotation the intended rotation.
+ * Update the current screen rotation based on the current state of
+ * the world.
* @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.
- * @param animFlags Animation flags as per {@link android.view.Surface}.
*/
- void setRotation(int rotation, boolean alwaysSendConfiguration, int animFlags);
+ void updateRotation(boolean alwaysSendConfiguration);
/**
* Retrieve the current screen orientation, constants as per
diff --git a/core/java/android/view/Surface.java b/core/java/android/view/Surface.java
index 3880bc4..64d3d31 100644
--- a/core/java/android/view/Surface.java
+++ b/core/java/android/view/Surface.java
@@ -207,9 +207,6 @@ public class Surface implements Parcelable {
/** Enable dithering when compositing this surface @hide */
public static final int SURFACE_DITHER = 0x04;
-
- /** Disable the orientation animation @hide */
- public static final int FLAGS_ORIENTATION_ANIMATION_DISABLE = 0x000000001;
// The mSurfaceControl will only be present for Surfaces used by the window
// server or system processes. When this class is parceled we defer to the
@@ -393,7 +390,7 @@ public class Surface implements Parcelable {
* set the orientation of the given display.
* @param display
* @param orientation
- * @param flags
+ * @param flags Currently unused, set to 0.
* @hide
*/
public static native void setOrientation(int display, int orientation, int flags);
diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java
index c07faf6..1dbb083 100644
--- a/core/java/android/view/WindowManagerPolicy.java
+++ b/core/java/android/view/WindowManagerPolicy.java
@@ -375,12 +375,6 @@ public interface WindowManagerPolicy {
/** Screen turned off because of proximity sensor */
public final int OFF_BECAUSE_OF_PROX_SENSOR = 4;
- /**
- * Magic constant to {@link IWindowManager#setRotation} to not actually
- * modify the rotation.
- */
- public final int USE_LAST_ROTATION = -1000;
-
/** When not otherwise specified by the activity's screenOrientation, rotation should be
* determined by the system (that is, using sensors). */
public final int USER_ROTATION_FREE = 0;
@@ -856,22 +850,30 @@ public interface WindowManagerPolicy {
public boolean inKeyguardRestrictedKeyInputMode();
/**
- * Given an orientation constant
- * ({@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_LANDSCAPE
- * ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE} or
- * {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_PORTRAIT
- * ActivityInfo.SCREEN_ORIENTATION_PORTRAIT}), return a surface
- * rotation.
+ * Given an orientation constant, returns the appropriate surface rotation,
+ * taking into account sensors, docking mode, rotation lock, and other factors.
+ *
+ * @param orientation An orientation constant, such as
+ * {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_LANDSCAPE}.
+ * @param lastRotation The most recently used rotation.
+ * @return The surface rotation to use.
*/
- public int rotationForOrientationLw(int orientation, int lastRotation,
- boolean displayEnabled);
-
+ public int rotationForOrientationLw(int orientation, int lastRotation);
+
/**
- * Return the currently locked screen rotation, if any. Return
- * Surface.ROTATION_0, Surface.ROTATION_90, Surface.ROTATION_180, or
- * Surface.ROTATION_270 if locked; return -1 if not locked.
+ * Given an orientation constant and a rotation, returns true if the rotation
+ * has compatible metrics to the requested orientation. For example, if
+ * the application requested landscape and got seascape, then the rotation
+ * has compatible metrics; if the application requested portrait and got landscape,
+ * then the rotation has incompatible metrics; if the application did not specify
+ * a preference, then anything goes.
+ *
+ * @param orientation An orientation constant, such as
+ * {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_LANDSCAPE}.
+ * @param rotation The rotation to check.
+ * @return True if the rotation is compatible with the requested orientation.
*/
- public int getLockedRotationLw();
+ public boolean rotationHasCompatibleMetricsLw(int orientation, int rotation);
/**
* Called when the system is mostly done booting to determine whether
diff --git a/core/java/android/view/WindowOrientationListener.java b/core/java/android/view/WindowOrientationListener.java
index 76b47ca..726bf4a 100755
--- a/core/java/android/view/WindowOrientationListener.java
+++ b/core/java/android/view/WindowOrientationListener.java
@@ -118,14 +118,13 @@ public abstract class WindowOrientationListener {
/**
* Gets the current orientation.
- * @param lastRotation
- * @return
+ * @return The current rotation, or -1 if unknown.
*/
- public int getCurrentRotation(int lastRotation) {
+ public int getCurrentRotation() {
if (mEnabled) {
- return mSensorEventListener.getCurrentRotation(lastRotation);
+ return mSensorEventListener.getCurrentRotation();
}
- return lastRotation;
+ return -1;
}
/**
@@ -342,8 +341,8 @@ public abstract class WindowOrientationListener {
mOrientationListener = orientationListener;
}
- public int getCurrentRotation(int lastRotation) {
- return mRotation != ROTATION_UNKNOWN ? mRotation : lastRotation;
+ public int getCurrentRotation() {
+ return mRotation; // may be -1, if unknown
}
@Override