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

Commit cf2591fa authored by Dave Mankoff's avatar Dave Mankoff
Browse files

Revert^2 "4/N Setup Controller fo KeyguardSecurityContainer."

0d6a9012

Change-Id: I881bbcdc63fcbafa8966064cccb7ce1edc710062
parent 4873666f
Loading
Loading
Loading
Loading
+28 −2
Original line number Diff line number Diff line
@@ -33,9 +33,13 @@ import android.view.SurfaceView;
import android.view.ViewGroup;

import com.android.internal.annotations.VisibleForTesting;
import com.android.keyguard.dagger.KeyguardBouncerScope;
import com.android.systemui.dagger.qualifiers.Main;

import java.util.NoSuchElementException;

import javax.inject.Inject;

/**
 * Encapsulates all logic for secondary lockscreen state management.
 */
@@ -142,9 +146,9 @@ public class AdminSecondaryLockScreenController {
        }
    };

    public AdminSecondaryLockScreenController(Context context, ViewGroup parent,
    private AdminSecondaryLockScreenController(Context context, KeyguardSecurityContainer parent,
            KeyguardUpdateMonitor updateMonitor, KeyguardSecurityCallback callback,
            Handler handler) {
            @Main Handler handler) {
        mContext = context;
        mHandler = handler;
        mParent = parent;
@@ -234,4 +238,26 @@ public class AdminSecondaryLockScreenController {
            getHolder().removeCallback(mSurfaceHolderCallback);
        }
    }

    @KeyguardBouncerScope
    public static class Factory {
        private final Context mContext;
        private final KeyguardSecurityContainer mParent;
        private final KeyguardUpdateMonitor mUpdateMonitor;
        private final Handler mHandler;

        @Inject
        public Factory(Context context, KeyguardSecurityContainer parent,
                KeyguardUpdateMonitor updateMonitor, @Main Handler handler) {
            mContext = context;
            mParent = parent;
            mUpdateMonitor = updateMonitor;
            mHandler = handler;
        }

        public AdminSecondaryLockScreenController create(KeyguardSecurityCallback callback) {
            return new AdminSecondaryLockScreenController(mContext, mParent, mUpdateMonitor,
                    callback, mHandler);
        }
    }
}
+2 −3
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ import android.util.AttributeSet;
import android.view.HapticFeedbackConstants;
import android.view.KeyEvent;
import android.view.View;
import android.widget.LinearLayout;

import com.android.internal.util.LatencyTracker;
import com.android.internal.widget.LockPatternChecker;
@@ -40,8 +39,8 @@ import com.android.systemui.R;
/**
 * Base class for PIN and password unlock screens.
 */
public abstract class KeyguardAbsKeyInputView extends LinearLayout
        implements KeyguardSecurityView, EmergencyButton.EmergencyButtonCallback {
public abstract class KeyguardAbsKeyInputView extends KeyguardInputView
        implements EmergencyButton.EmergencyButtonCallback {
    protected KeyguardSecurityCallback mCallback;
    protected LockPatternUtils mLockPatternUtils;
    protected AsyncTask<?, ?, ?> mPendingLockCheck;
+1 −1
Original line number Diff line number Diff line
@@ -336,7 +336,7 @@ public class KeyguardHostViewController extends ViewController<KeyguardHostView>
    }

    public SecurityMode getCurrentSecurityMode() {
        return mKeyguardSecurityContainerController.getCurrentSecurityMode();
        return mKeyguardSecurityContainerController.getCurrentSecuritySelection();
    }

    public int getTop() {
+42 −0
Original line number Diff line number Diff line
@@ -16,43 +16,27 @@

package com.android.keyguard;

import android.view.View;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.LinearLayout;

import com.android.systemui.util.ViewController;
import androidx.annotation.Nullable;

import javax.inject.Inject;


/** Controller for a {@link KeyguardSecurityView}. */
public class KeyguardSecurityViewController extends ViewController<View> {

    private final KeyguardSecurityView mView;

    private KeyguardSecurityViewController(KeyguardSecurityView view) {
        super((View) view);
        // KeyguardSecurityView isn't actually a View, so we need to track it ourselves.
        mView = view;
    }

    @Override
    protected void onViewAttached() {

    }

    @Override
    protected void onViewDetached() {
/**
 * A Base class for all Keyguard password/pattern/pin related inputs.
 */
public abstract class KeyguardInputView extends LinearLayout implements KeyguardSecurityView {

    public KeyguardInputView(Context context) {
        super(context);
    }

    /** Factory for a {@link KeyguardSecurityViewController}. */
    public static class Factory {
        @Inject
        public Factory() {
    public KeyguardInputView(Context context,
            @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

        /** Create a new {@link KeyguardSecurityViewController}. */
        public KeyguardSecurityViewController create(KeyguardSecurityView view) {
            return new KeyguardSecurityViewController(view);
        }
    public KeyguardInputView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
}
+160 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2020 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.
 */

package com.android.keyguard;

import android.content.res.ColorStateList;
import android.view.MotionEvent;

import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.KeyguardSecurityModel.SecurityMode;
import com.android.systemui.util.ViewController;

import javax.inject.Inject;


/** Controller for a {@link KeyguardSecurityView}. */
public class KeyguardInputViewController extends ViewController<KeyguardInputView>
        implements KeyguardSecurityView {

    private final SecurityMode mSecurityMode;
    private final LockPatternUtils mLockPatternUtils;

    private KeyguardInputViewController(KeyguardInputView view, SecurityMode securityMode,
            LockPatternUtils lockPatternUtils,
            KeyguardSecurityCallback keyguardSecurityCallback) {
        super(view);
        mSecurityMode = securityMode;
        mLockPatternUtils = lockPatternUtils;
        mView.setKeyguardCallback(keyguardSecurityCallback);
    }

    @Override
    public void init() {
        super.init();
        mView.reset();
    }

    @Override
    protected void onViewAttached() {
    }

    @Override
    protected void onViewDetached() {
    }

    SecurityMode getSecurityMode() {
        return mSecurityMode;
    }


    @Override
    public void setKeyguardCallback(KeyguardSecurityCallback callback) {
        mView.setKeyguardCallback(callback);
    }

    @Override
    public void setLockPatternUtils(LockPatternUtils utils) {
        mView.setLockPatternUtils(utils);
    }

    @Override
    public void reset() {
        mView.reset();
    }

    @Override
    public void onPause() {
        mView.onPause();
    }

    @Override
    public void onResume(int reason) {
        mView.onResume(reason);
    }

    @Override
    public boolean needsInput() {
        return mView.needsInput();
    }

    @Override
    public KeyguardSecurityCallback getCallback() {
        return mView.getCallback();
    }

    @Override
    public void showPromptReason(int reason) {
        mView.showPromptReason(reason);
    }

    @Override
    public void showMessage(CharSequence message, ColorStateList colorState) {
        mView.showMessage(message, colorState);
    }

    @Override
    public void showUsabilityHint() {
        mView.showUsabilityHint();
    }

    @Override
    public void startAppearAnimation() {
        mView.startAppearAnimation();
    }

    @Override
    public boolean startDisappearAnimation(Runnable finishRunnable) {
        return mView.startDisappearAnimation(finishRunnable);
    }

    @Override
    public CharSequence getTitle() {
        return mView.getTitle();
    }

    @Override
    public boolean disallowInterceptTouch(MotionEvent event) {
        return mView.disallowInterceptTouch(event);
    }

    @Override
    public void onStartingToHide() {
        mView.onStartingToHide();
    }

    public void showSelf() {
        KeyguardSecurityViewFlipper flipper = (KeyguardSecurityViewFlipper) mView.getParent();
        flipper.setDisplayedChild(flipper.indexOfChild(mView));
    }

    /** Factory for a {@link KeyguardInputViewController}. */
    public static class Factory {
        private final LockPatternUtils mLockPatternUtils;

        @Inject
        public Factory(LockPatternUtils lockPatternUtils) {
            mLockPatternUtils = lockPatternUtils;
        }

        /** Create a new {@link KeyguardInputViewController}. */
        public KeyguardInputViewController create(KeyguardInputView keyguardInputView,
                SecurityMode securityMode, KeyguardSecurityCallback keyguardSecurityCallback) {
            return new KeyguardInputViewController(keyguardInputView, securityMode,
                    mLockPatternUtils, keyguardSecurityCallback);
        }
    }
}
Loading