Merge "Don't update lock icon location based on rotation" into sc-dev am: e9a03ecd5c

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14802970

Change-Id: I6a1f6672b030c0a179ef894f2681012f0d65fef8
This commit is contained in:
Beverly Tai
2021-06-03 07:02:54 +00:00
committed by Automerger Merge Worker

View File

@@ -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(
@@ -75,18 +55,6 @@ public class LockIconView extends ImageView {
(int) (mSensorRect.bottom - mSensorRect.top)));
}
@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;