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

Commit 3b7e026c authored by Dave Mankoff's avatar Dave Mankoff
Browse files

Revert^2 "8/N Remove View Injection from KeyguardMessageArea"

dd7312c2

Change-Id: Idca486311380b48e1f0808c8d08cfce46c929473
parent dc019300
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -81,6 +81,12 @@ public abstract class KeyguardAbsKeyInputViewController<T extends KeyguardAbsKey

    abstract void resetState();

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

    @Override
    protected void onViewAttached() {
        mView.setKeyDownListener(mKeyDownListener);
+5 −10
Original line number Diff line number Diff line
@@ -39,7 +39,6 @@ import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.navigationbar.NavigationBarController;
import com.android.systemui.navigationbar.NavigationBarView;
import com.android.systemui.util.InjectionInflationController;

import javax.inject.Inject;

@@ -49,7 +48,6 @@ public class KeyguardDisplayManager {

    private final MediaRouter mMediaRouter;
    private final DisplayManager mDisplayService;
    private final InjectionInflationController mInjectableInflater;
    private final KeyguardStatusViewComponent.Factory mKeyguardStatusViewComponentFactory;
    private final Context mContext;

@@ -92,10 +90,8 @@ public class KeyguardDisplayManager {

    @Inject
    public KeyguardDisplayManager(Context context,
            InjectionInflationController injectableInflater,
            KeyguardStatusViewComponent.Factory keyguardStatusViewComponentFactory) {
        mContext = context;
        mInjectableInflater = injectableInflater;
        mKeyguardStatusViewComponentFactory = keyguardStatusViewComponentFactory;
        mMediaRouter = mContext.getSystemService(MediaRouter.class);
        mDisplayService = mContext.getSystemService(DisplayManager.class);
@@ -131,8 +127,7 @@ public class KeyguardDisplayManager {
        Presentation presentation = mPresentations.get(displayId);
        if (presentation == null) {
            final Presentation newPresentation = new KeyguardPresentation(mContext, display,
                    mKeyguardStatusViewComponentFactory,
                    mInjectableInflater.injectable(LayoutInflater.from(mContext)));
                    mKeyguardStatusViewComponentFactory, LayoutInflater.from(mContext));
            newPresentation.setOnDismissListener(dialog -> {
                if (newPresentation.equals(mPresentations.get(displayId))) {
                    mPresentations.remove(displayId);
@@ -250,7 +245,7 @@ public class KeyguardDisplayManager {
        private static final int VIDEO_SAFE_REGION = 80; // Percentage of display width & height
        private static final int MOVE_CLOCK_TIMEOUT = 10000; // 10s
        private final KeyguardStatusViewComponent.Factory mKeyguardStatusViewComponentFactory;
        private final LayoutInflater mInjectableLayoutInflater;
        private final LayoutInflater mLayoutInflater;
        private KeyguardClockSwitchController mKeyguardClockSwitchController;
        private View mClock;
        private int mUsableWidth;
@@ -270,10 +265,10 @@ public class KeyguardDisplayManager {

        KeyguardPresentation(Context context, Display display,
                KeyguardStatusViewComponent.Factory keyguardStatusViewComponentFactory,
                LayoutInflater injectionLayoutInflater) {
                LayoutInflater layoutInflater) {
            super(context, display, R.style.Theme_SystemUI_KeyguardPresentation);
            mKeyguardStatusViewComponentFactory = keyguardStatusViewComponentFactory;
            mInjectableLayoutInflater = injectionLayoutInflater;
            mLayoutInflater = layoutInflater;
            getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
            setCancelable(false);
        }
@@ -299,7 +294,7 @@ public class KeyguardDisplayManager {
            mMarginLeft = (100 - VIDEO_SAFE_REGION) * p.x / 200;
            mMarginTop = (100 - VIDEO_SAFE_REGION) * p.y / 200;

            setContentView(mInjectableLayoutInflater.inflate(R.layout.keyguard_presentation, null));
            setContentView(mLayoutInflater.inflate(R.layout.keyguard_presentation, null));

            // Logic to make the lock screen fullscreen
            getWindow().getDecorView().setSystemUiVisibility(
+8 −65
Original line number Diff line number Diff line
@@ -16,8 +16,6 @@

package com.android.keyguard;

import static com.android.systemui.util.InjectionInflationController.VIEW_CONTEXT;

import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
@@ -31,20 +29,14 @@ import android.util.TypedValue;
import android.view.View;
import android.widget.TextView;

import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.statusbar.policy.ConfigurationController;

import java.lang.ref.WeakReference;

import javax.inject.Inject;
import javax.inject.Named;

/***
 * Manages a number of views inside of the given layout. See below for a list of widgets.
 */
public class KeyguardMessageArea extends TextView implements SecurityMessageDisplay,
        ConfigurationController.ConfigurationListener {
public class KeyguardMessageArea extends TextView implements SecurityMessageDisplay {
    /** Handler token posted with accessibility announcement runnables. */
    private static final Object ANNOUNCE_TOKEN = new Object();

@@ -56,71 +48,26 @@ public class KeyguardMessageArea extends TextView implements SecurityMessageDisp
    private static final int DEFAULT_COLOR = -1;

    private final Handler mHandler;
    private final ConfigurationController mConfigurationController;

    private ColorStateList mDefaultColorState;
    private CharSequence mMessage;
    private ColorStateList mNextMessageColorState = ColorStateList.valueOf(DEFAULT_COLOR);
    private boolean mBouncerVisible;

    private KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() {
        public void onFinishedGoingToSleep(int why) {
            setSelected(false);
        }

        public void onStartedWakingUp() {
            setSelected(true);
        }

        @Override
        public void onKeyguardBouncerChanged(boolean bouncer) {
            mBouncerVisible = bouncer;
            update();
        }
    };

    public KeyguardMessageArea(Context context) {
        super(context, null);
        throw new IllegalStateException("This constructor should never be invoked");
    }

    @Inject
    public KeyguardMessageArea(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs,
            ConfigurationController configurationController) {
        this(context, attrs, Dependency.get(KeyguardUpdateMonitor.class), configurationController);
    }

    public KeyguardMessageArea(Context context, AttributeSet attrs, KeyguardUpdateMonitor monitor,
            ConfigurationController configurationController) {
    public KeyguardMessageArea(Context context, AttributeSet attrs) {
        super(context, attrs);
        setLayerType(LAYER_TYPE_HARDWARE, null); // work around nested unclipped SaveLayer bug

        monitor.registerCallback(mInfoCallback);
        mHandler = new Handler(Looper.myLooper());
        mConfigurationController = configurationController;
        onThemeChanged();
    }

    @Override
    protected void onAttachedToWindow() {
        super.onAttachedToWindow();
        mConfigurationController.addCallback(this);
        onThemeChanged();
    }

    @Override
    protected void onDetachedFromWindow() {
        super.onDetachedFromWindow();
        mConfigurationController.removeCallback(this);
    }

    @Override
    public void setNextMessageColor(ColorStateList colorState) {
        mNextMessageColorState = colorState;
    }

    @Override
    public void onThemeChanged() {
    void onThemeChanged() {
        TypedArray array = mContext.obtainStyledAttributes(new int[] {
                R.attr.wallpaperTextColor
        });
@@ -130,8 +77,7 @@ public class KeyguardMessageArea extends TextView implements SecurityMessageDisp
        update();
    }

    @Override
    public void onDensityOrFontScaleChanged() {
    void onDensityOrFontScaleChanged() {
        TypedArray array = mContext.obtainStyledAttributes(R.style.Keyguard_TextView, new int[] {
                android.R.attr.textSize
        });
@@ -177,12 +123,6 @@ public class KeyguardMessageArea extends TextView implements SecurityMessageDisp
        return messageArea;
    }

    @Override
    protected void onFinishInflate() {
        boolean shouldMarquee = Dependency.get(KeyguardUpdateMonitor.class).isDeviceInteractive();
        setSelected(shouldMarquee); // This is required to ensure marquee works
    }

    private void securityMessageChanged(CharSequence message) {
        mMessage = message;
        update();
@@ -196,7 +136,7 @@ public class KeyguardMessageArea extends TextView implements SecurityMessageDisp
        update();
    }

    private void update() {
    void update() {
        CharSequence status = mMessage;
        setVisibility(TextUtils.isEmpty(status) || !mBouncerVisible ? INVISIBLE : VISIBLE);
        setText(status);
@@ -208,6 +148,9 @@ public class KeyguardMessageArea extends TextView implements SecurityMessageDisp
        setTextColor(colorState);
    }

    public void setBouncerVisible(boolean bouncerVisible) {
        mBouncerVisible = bouncerVisible;
    }

    /**
     * Runnable used to delay accessibility announcements.
+36 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.keyguard;
import android.content.res.ColorStateList;

import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
import com.android.systemui.util.ViewController;

import javax.inject.Inject;
@@ -28,6 +29,35 @@ public class KeyguardMessageAreaController extends ViewController<KeyguardMessag
    private final KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    private final ConfigurationController mConfigurationController;


    private KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() {
        public void onFinishedGoingToSleep(int why) {
            mView.setSelected(false);
        }

        public void onStartedWakingUp() {
            mView.setSelected(true);
        }

        @Override
        public void onKeyguardBouncerChanged(boolean bouncer) {
            mView.setBouncerVisible(bouncer);
            mView.update();
        }
    };

    private ConfigurationListener mConfigurationListener = new ConfigurationListener() {
        @Override
        public void onThemeChanged() {
            mView.onThemeChanged();
        }

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

    private KeyguardMessageAreaController(KeyguardMessageArea view,
            KeyguardUpdateMonitor keyguardUpdateMonitor,
            ConfigurationController configurationController) {
@@ -39,10 +69,16 @@ public class KeyguardMessageAreaController extends ViewController<KeyguardMessag

    @Override
    protected void onViewAttached() {
        mConfigurationController.addCallback(mConfigurationListener);
        mKeyguardUpdateMonitor.registerCallback(mInfoCallback);
        mView.setSelected(mKeyguardUpdateMonitor.isDeviceInteractive());
        mView.onThemeChanged();
    }

    @Override
    protected void onViewDetached() {
        mConfigurationController.removeCallback(mConfigurationListener);
        mKeyguardUpdateMonitor.removeCallback(mInfoCallback);
    }

    public void setMessage(CharSequence s) {
+6 −0
Original line number Diff line number Diff line
@@ -190,6 +190,12 @@ public class KeyguardPatternViewController
        mLockPatternView = mView.findViewById(R.id.lockPatternView);
    }

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

    @Override
    protected void onViewAttached() {
        mLockPatternView.setOnPatternListener(new UnlockPatternListener());
Loading