diff --git a/packages/SystemUI/res-keyguard/layout/keyguard_pin_view.xml b/packages/SystemUI/res-keyguard/layout/keyguard_pin_view.xml
index a957df6537ff3..02cb2bcfad819 100644
--- a/packages/SystemUI/res-keyguard/layout/keyguard_pin_view.xml
+++ b/packages/SystemUI/res-keyguard/layout/keyguard_pin_view.xml
@@ -44,7 +44,7 @@
android:id="@+id/row0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingBottom="16dp"
+ android:paddingBottom="@dimen/num_pad_entry_row_margin_bottom"
>
diff --git a/packages/SystemUI/res-keyguard/values-sw360dp-land/dimens.xml b/packages/SystemUI/res-keyguard/values-sw360dp-land/dimens.xml
new file mode 100644
index 0000000000000..eb5843b5a1b7c
--- /dev/null
+++ b/packages/SystemUI/res-keyguard/values-sw360dp-land/dimens.xml
@@ -0,0 +1,26 @@
+
+
+
+ 4dp
+ 4dp
+ 4dp
+ 50dp
+ 4dp
+
diff --git a/packages/SystemUI/res-keyguard/values/dimens.xml b/packages/SystemUI/res-keyguard/values/dimens.xml
index e8f7b353f7a9e..7e3c87b24f07b 100644
--- a/packages/SystemUI/res-keyguard/values/dimens.xml
+++ b/packages/SystemUI/res-keyguard/values/dimens.xml
@@ -41,6 +41,7 @@
20dp
18dp
+ 12dp
@@ -88,6 +89,7 @@
72dp
+ 16dp
6dp
12dp
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardPINView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardPINView.java
index 2325b554d5075..8fc4240e1054d 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardPINView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardPINView.java
@@ -17,16 +17,20 @@
package com.android.keyguard;
import android.content.Context;
+import android.content.res.Configuration;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
+import android.widget.LinearLayout;
import com.android.internal.jank.InteractionJankMonitor;
import com.android.settingslib.animation.AppearAnimationUtils;
import com.android.settingslib.animation.DisappearAnimationUtils;
import com.android.systemui.R;
+import java.util.List;
+
/**
* Displays a PIN pad for unlocking.
*/
@@ -63,6 +67,11 @@ public class KeyguardPINView extends KeyguardPinBasedInputView {
R.dimen.disappear_y_translation);
}
+ @Override
+ protected void onConfigurationChanged(Configuration newConfig) {
+ updateMargins();
+ }
+
@Override
protected void resetState() {
}
@@ -72,6 +81,33 @@ public class KeyguardPINView extends KeyguardPinBasedInputView {
return R.id.pinEntry;
}
+ private void updateMargins() {
+ int bottomMargin = mContext.getResources().getDimensionPixelSize(
+ R.dimen.num_pad_row_margin_bottom);
+
+ for (ViewGroup vg : List.of(mRow1, mRow2, mRow3)) {
+ ((LinearLayout.LayoutParams) vg.getLayoutParams()).setMargins(0, 0, 0, bottomMargin);
+ }
+
+ bottomMargin = mContext.getResources().getDimensionPixelSize(
+ R.dimen.num_pad_entry_row_margin_bottom);
+ ((LinearLayout.LayoutParams) mRow0.getLayoutParams()).setMargins(0, 0, 0, bottomMargin);
+
+ if (mEcaView != null) {
+ int ecaTopMargin = mContext.getResources().getDimensionPixelSize(
+ R.dimen.keyguard_eca_top_margin);
+ int ecaBottomMargin = mContext.getResources().getDimensionPixelSize(
+ R.dimen.keyguard_eca_bottom_margin);
+ ((LinearLayout.LayoutParams) mEcaView.getLayoutParams()).setMargins(0, ecaTopMargin,
+ 0, ecaBottomMargin);
+ }
+
+ View entryView = findViewById(R.id.pinEntry);
+ ViewGroup.LayoutParams lp = entryView.getLayoutParams();
+ lp.height = mContext.getResources().getDimensionPixelSize(R.dimen.keyguard_password_height);
+ entryView.setLayoutParams(lp);
+ }
+
@Override
protected void onFinishInflate() {
super.onFinishInflate();
diff --git a/packages/SystemUI/src/com/android/keyguard/NumPadButton.java b/packages/SystemUI/src/com/android/keyguard/NumPadButton.java
index 0d31906d2f808..099e6f4b5341e 100644
--- a/packages/SystemUI/src/com/android/keyguard/NumPadButton.java
+++ b/packages/SystemUI/src/com/android/keyguard/NumPadButton.java
@@ -17,6 +17,7 @@ package com.android.keyguard;
import android.content.Context;
import android.content.res.ColorStateList;
+import android.content.res.Configuration;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.RippleDrawable;
import android.graphics.drawable.VectorDrawable;
@@ -26,7 +27,6 @@ import android.view.MotionEvent;
import androidx.annotation.Nullable;
import com.android.settingslib.Utils;
-import com.android.systemui.R;
/**
* Similar to the {@link NumPadKey}, but displays an image.
@@ -35,6 +35,7 @@ public class NumPadButton extends AlphaOptimizedImageButton {
@Nullable
private NumPadAnimator mAnimator;
+ private int mOrientation;
public NumPadButton(Context context, AttributeSet attrs) {
super(context, attrs);
@@ -48,6 +49,11 @@ public class NumPadButton extends AlphaOptimizedImageButton {
}
}
+ @Override
+ protected void onConfigurationChanged(Configuration newConfig) {
+ mOrientation = newConfig.orientation;
+ }
+
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
@@ -55,7 +61,10 @@ public class NumPadButton extends AlphaOptimizedImageButton {
// Set width/height to the same value to ensure a smooth circle for the bg, but shrink
// the height to match the old pin bouncer
int width = getMeasuredWidth();
- int height = mAnimator == null ? (int) (width * .75f) : width;
+
+ boolean shortenHeight = mAnimator == null
+ || mOrientation == Configuration.ORIENTATION_LANDSCAPE;
+ int height = shortenHeight ? (int) (width * .66f) : width;
setMeasuredDimension(getMeasuredWidth(), height);
}
diff --git a/packages/SystemUI/src/com/android/keyguard/NumPadKey.java b/packages/SystemUI/src/com/android/keyguard/NumPadKey.java
index cffa630c6ec80..232c6fc990681 100644
--- a/packages/SystemUI/src/com/android/keyguard/NumPadKey.java
+++ b/packages/SystemUI/src/com/android/keyguard/NumPadKey.java
@@ -13,10 +13,10 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package com.android.keyguard;
import android.content.Context;
+import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.RippleDrawable;
@@ -52,6 +52,7 @@ public class NumPadKey extends ViewGroup {
@Nullable
private NumPadAnimator mAnimator;
+ private int mOrientation;
private View.OnClickListener mListener = new View.OnClickListener() {
@Override
@@ -139,6 +140,11 @@ public class NumPadKey extends ViewGroup {
}
}
+ @Override
+ protected void onConfigurationChanged(Configuration newConfig) {
+ mOrientation = newConfig.orientation;
+ }
+
/**
* Reload colors from resources.
**/
@@ -171,7 +177,10 @@ public class NumPadKey extends ViewGroup {
// Set width/height to the same value to ensure a smooth circle for the bg, but shrink
// the height to match the old pin bouncer
int width = getMeasuredWidth();
- int height = mAnimator == null ? (int) (width * .75f) : width;
+
+ boolean shortenHeight = mAnimator == null
+ || mOrientation == Configuration.ORIENTATION_LANDSCAPE;
+ int height = shortenHeight ? (int) (width * .66f) : width;
setMeasuredDimension(getMeasuredWidth(), height);
}