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

Commit 3690effd authored by Kevin Chyn's avatar Kevin Chyn Committed by Android (Google) Code Review
Browse files

Merge "Update FingerprintDialog UI for landscape orientation" into pi-dev

parents 70d4ddec 27ce1948
Loading
Loading
Loading
Loading
+120 −98
Original line number Diff line number Diff line
@@ -26,12 +26,24 @@
    <View
        android:id="@+id/space"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <LinearLayout
        android:id="@+id/dialog"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <!-- This is not a Space since Spaces cannot be clicked. The width of this changes depending
         on horizontal/portrait orientation -->
        <View
            android:id="@+id/left_space"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="match_parent"/>

        <LinearLayout
            android:id="@+id/dialog"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:elevation="2dp"
@@ -138,4 +150,14 @@
            </LinearLayout>
        </LinearLayout>

        <!-- This is not a Space since Spaces cannot be clicked. The width of this changes depending
         on horizontal/portrait orientation -->
        <View
            android:id="@+id/right_space"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="match_parent" />

    </LinearLayout>

</LinearLayout>
 No newline at end of file
+25 −6
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.fingerprint;

import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Color;
import android.graphics.PixelFormat;
import android.graphics.PorterDuff;
@@ -27,6 +28,7 @@ import android.os.Binder;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
@@ -42,6 +44,7 @@ import android.widget.TextView;

import com.android.systemui.Interpolators;
import com.android.systemui.R;
import com.android.systemui.util.leak.RotationUtils;

/**
 * This class loads the view for the system-provided dialog. The view consists of:
@@ -74,6 +77,8 @@ public class FingerprintDialogView extends LinearLayout {
    private final LinearLayout mDialog;
    private int mLastState;

    private final float mDisplayWidth;

    public FingerprintDialogView(Context context, Handler handler) {
        super(context);
        mHandler = handler;
@@ -88,6 +93,10 @@ public class FingerprintDialogView extends LinearLayout {
        mFingerprintColor = Color.parseColor(
                getResources().getString(R.color.fingerprint_dialog_fingerprint_color));

        DisplayMetrics metrics = new DisplayMetrics();
        mWindowManager.getDefaultDisplay().getMetrics(metrics);
        mDisplayWidth = metrics.widthPixels;

        // Create the dialog
        LayoutInflater factory = LayoutInflater.from(getContext());
        mLayout = (ViewGroup) factory.inflate(R.layout.fingerprint_dialog, this, false);
@@ -117,15 +126,14 @@ public class FingerprintDialogView extends LinearLayout {
        });

        final View space = mLayout.findViewById(R.id.space);
        final View leftSpace = mLayout.findViewById(R.id.left_space);
        final View rightSpace = mLayout.findViewById(R.id.right_space);
        final Button negative = mLayout.findViewById(R.id.button2);
        final Button positive = mLayout.findViewById(R.id.button1);

        space.setClickable(true);
        space.setOnTouchListener((View view, MotionEvent event) -> {
            mHandler.obtainMessage(FingerprintDialogImpl.MSG_HIDE_DIALOG, true /* userCanceled */)
                    .sendToTarget();
            return true;
        });
        setDismissesDialog(space);
        setDismissesDialog(leftSpace);
        setDismissesDialog(rightSpace);

        negative.setOnClickListener((View v) -> {
            mHandler.obtainMessage(FingerprintDialogImpl.MSG_BUTTON_NEGATIVE).sendToTarget();
@@ -149,6 +157,8 @@ public class FingerprintDialogView extends LinearLayout {
        final Button negative = mLayout.findViewById(R.id.button2);
        final Button positive = mLayout.findViewById(R.id.button1);

        mDialog.getLayoutParams().width = (int) mDisplayWidth;

        mLastState = STATE_NONE;
        updateFingerprintIcon(STATE_FINGERPRINT);

@@ -189,6 +199,15 @@ public class FingerprintDialogView extends LinearLayout {
        });
    }

    private void setDismissesDialog(View v) {
        v.setClickable(true);
        v.setOnTouchListener((View view, MotionEvent event) -> {
            mHandler.obtainMessage(FingerprintDialogImpl.MSG_HIDE_DIALOG, true /* userCanceled */)
                    .sendToTarget();
            return true;
        });
    }

    public void startDismiss() {
        final Runnable endActionRunnable = new Runnable() {
            @Override