Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 168402f8 authored by Matt Pietal's avatar Matt Pietal Committed by Automerger Merge Worker
Browse files

Merge "PIN bouncer - basic landscape support" into sc-dev am: 83f94d49

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

Change-Id: Iaa0930725695d561d899d49cc85003d9236be960
parents 85eaea94 83f94d49
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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"
          >
            <com.android.keyguard.PasswordTextView
                    android:id="@+id/pinEntry"
@@ -192,7 +192,7 @@
             android:orientation="vertical"
             android:layout_gravity="bottom|center_horizontal"
             android:layout_marginTop="@dimen/keyguard_eca_top_margin"
             android:layout_marginBottom="12dp"
             android:layout_marginBottom="@dimen/keyguard_eca_bottom_margin"
             android:gravity="center_horizontal"/>

</com.android.keyguard.KeyguardPINView>
+26 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
**
** Copyright 2021, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
**     http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<resources>
    <dimen name="num_pad_row_margin_bottom">4dp</dimen>
    <dimen name="keyguard_eca_top_margin">4dp</dimen>
    <dimen name="keyguard_eca_bottom_margin">4dp</dimen>
    <dimen name="keyguard_password_height">50dp</dimen>
    <dimen name="num_pad_entry_row_margin_bottom">4dp</dimen>
</resources>
+2 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@
    <dimen name="keyguard_security_view_lateral_margin">20dp</dimen>

    <dimen name="keyguard_eca_top_margin">18dp</dimen>
    <dimen name="keyguard_eca_bottom_margin">12dp</dimen>

    <!-- EmergencyCarrierArea overlap - amount to overlap the emergency button and carrier text.
         Should be 0 on devices with plenty of room (e.g. tablets) -->
@@ -88,6 +89,7 @@

    <!-- Spacing around each button used for PIN view -->
    <dimen name="num_pad_key_width">72dp</dimen>
    <dimen name="num_pad_entry_row_margin_bottom">16dp</dimen>
    <dimen name="num_pad_row_margin_bottom">6dp</dimen>
    <dimen name="num_pad_key_margin_end">12dp</dimen>

+36 −0
Original line number Diff line number Diff line
@@ -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();
+11 −2
Original line number Diff line number Diff line
@@ -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);
    }
Loading