summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Beverly <beverlyt@google.com> 2021-06-02 13:17:36 -0400
committer Beverly <beverlyt@google.com> 2021-06-02 13:36:13 -0400
commit7d1b922b02b6f0d10eaaaf839aa72937808a6887 (patch)
treebf3f3e78a3488f9c82e7edcb5087e3a3db72e488
parentdd934371ae20dd6a84becbfaccd85aef10dfb6f6 (diff)
Don't update lock icon location based on rotation
On the keyguard, the orientation is always portrait, even when the rotation of the device doesn't indicate portrait. Previously, the location of the lock icon was updated based on rotation and was offscreen. Instead, don't update based on orientation. Test: manual Fixes: 187470345 Change-Id: Ie7355fddfef32c6c75d91a1e9da8b49fb301dc93
-rw-r--r--packages/SystemUI/src/com/android/keyguard/LockIconView.java36
1 files changed, 2 insertions, 34 deletions
diff --git a/packages/SystemUI/src/com/android/keyguard/LockIconView.java b/packages/SystemUI/src/com/android/keyguard/LockIconView.java
index eff412e49836..423bd5626da9 100644
--- a/packages/SystemUI/src/com/android/keyguard/LockIconView.java
+++ b/packages/SystemUI/src/com/android/keyguard/LockIconView.java
@@ -21,7 +21,6 @@ import android.content.Context;
import android.graphics.PointF;
import android.graphics.RectF;
import android.util.AttributeSet;
-import android.view.Surface;
import android.widget.FrameLayout;
import android.widget.ImageView;
@@ -30,44 +29,25 @@ import android.widget.ImageView;
*/
public class LockIconView extends ImageView {
@NonNull private final RectF mSensorRect;
- @NonNull private final Context mContext;
-
@NonNull private PointF mLockIconCenter = new PointF(0f, 0f);
private int mRadius;
public LockIconView(Context context, AttributeSet attrs) {
super(context, attrs);
- mContext = context;
mSensorRect = new RectF();
}
void setLocation(@NonNull PointF center, int radius) {
mLockIconCenter = center;
mRadius = radius;
- }
- // The "h" and "w" are the display's height and width relative to its current rotation.
- private void updateSensorRect(int h, int w) {
- // mSensorProps coordinates assume portrait mode.
+ // mSensorProps coordinates assume portrait mode which is OK b/c the keyguard is always in
+ // portrait.
mSensorRect.set(mLockIconCenter.x - mRadius,
mLockIconCenter.y - mRadius,
mLockIconCenter.x + mRadius,
mLockIconCenter.y + mRadius);
- // Transform mSensorRect if the device is in landscape mode.
- switch (mContext.getDisplay().getRotation()) {
- case Surface.ROTATION_90:
- mSensorRect.set(mSensorRect.top, h - mSensorRect.right, mSensorRect.bottom,
- h - mSensorRect.left);
- break;
- case Surface.ROTATION_270:
- mSensorRect.set(w - mSensorRect.bottom, mSensorRect.left, w - mSensorRect.top,
- mSensorRect.right);
- break;
- default:
- // Do nothing to stay in portrait mode.
- }
-
setX(mSensorRect.left);
setY(mSensorRect.top);
setLayoutParams(new FrameLayout.LayoutParams(
@@ -76,18 +56,6 @@ public class LockIconView extends ImageView {
}
@Override
- protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
- super.onLayout(changed, left, top, right, bottom);
- // Always re-compute the layout regardless of whether "changed" is true. It is usually false
- // when the device goes from landscape to seascape and vice versa, but mSensorRect and
- // its dependencies need to be recalculated to stay at the same physical location on the
- // screen.
- final int w = getLayoutParams().width;
- final int h = getLayoutParams().height;
- updateSensorRect(h, w);
- }
-
- @Override
public boolean hasOverlappingRendering() {
return false;
}