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

Commit df25fb6d authored by Dave Mankoff's avatar Dave Mankoff Committed by Automerger Merge Worker
Browse files

Merge "Don't fire pending remote input when is phone locked." into sc-dev am:...

Merge "Don't fire pending remote input when is phone locked." into sc-dev am: e48c3b65 am: a8bc1163

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

Change-Id: I1f9299faae848433a28c5a57d0879d05d5373cc9
parents 22d9817c a8bc1163
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -34,6 +34,7 @@ import androidx.annotation.Nullable;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.keyguard.dagger.KeyguardBouncerScope;
import com.android.keyguard.dagger.KeyguardBouncerScope;
import com.android.systemui.statusbar.phone.ShadeController;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
import com.android.systemui.statusbar.policy.ConfigurationController.ConfigurationListener;
import com.android.systemui.util.EmergencyDialerConstants;
import com.android.systemui.util.EmergencyDialerConstants;
@@ -50,6 +51,7 @@ public class EmergencyButtonController extends ViewController<EmergencyButton> {
    private final TelephonyManager mTelephonyManager;
    private final TelephonyManager mTelephonyManager;
    private final PowerManager mPowerManager;
    private final PowerManager mPowerManager;
    private final ActivityTaskManager mActivityTaskManager;
    private final ActivityTaskManager mActivityTaskManager;
    private ShadeController mShadeController;
    private final TelecomManager mTelecomManager;
    private final TelecomManager mTelecomManager;
    private final MetricsLogger mMetricsLogger;
    private final MetricsLogger mMetricsLogger;


@@ -79,6 +81,7 @@ public class EmergencyButtonController extends ViewController<EmergencyButton> {
            ConfigurationController configurationController,
            ConfigurationController configurationController,
            KeyguardUpdateMonitor keyguardUpdateMonitor, TelephonyManager telephonyManager,
            KeyguardUpdateMonitor keyguardUpdateMonitor, TelephonyManager telephonyManager,
            PowerManager powerManager, ActivityTaskManager activityTaskManager,
            PowerManager powerManager, ActivityTaskManager activityTaskManager,
            ShadeController shadeController,
            @Nullable TelecomManager telecomManager, MetricsLogger metricsLogger) {
            @Nullable TelecomManager telecomManager, MetricsLogger metricsLogger) {
        super(view);
        super(view);
        mConfigurationController = configurationController;
        mConfigurationController = configurationController;
@@ -86,6 +89,7 @@ public class EmergencyButtonController extends ViewController<EmergencyButton> {
        mTelephonyManager = telephonyManager;
        mTelephonyManager = telephonyManager;
        mPowerManager = powerManager;
        mPowerManager = powerManager;
        mActivityTaskManager = activityTaskManager;
        mActivityTaskManager = activityTaskManager;
        mShadeController = shadeController;
        mTelecomManager = telecomManager;
        mTelecomManager = telecomManager;
        mMetricsLogger = metricsLogger;
        mMetricsLogger = metricsLogger;
    }
    }
@@ -129,6 +133,7 @@ public class EmergencyButtonController extends ViewController<EmergencyButton> {
            mPowerManager.userActivity(SystemClock.uptimeMillis(), true);
            mPowerManager.userActivity(SystemClock.uptimeMillis(), true);
        }
        }
        mActivityTaskManager.stopSystemLockTaskMode();
        mActivityTaskManager.stopSystemLockTaskMode();
        mShadeController.collapsePanel(false);
        if (mTelecomManager != null && mTelecomManager.isInCall()) {
        if (mTelecomManager != null && mTelecomManager.isInCall()) {
            mTelecomManager.showInCallScreen(false);
            mTelecomManager.showInCallScreen(false);
            if (mEmergencyButtonCallback != null) {
            if (mEmergencyButtonCallback != null) {
@@ -167,6 +172,7 @@ public class EmergencyButtonController extends ViewController<EmergencyButton> {
        private final TelephonyManager mTelephonyManager;
        private final TelephonyManager mTelephonyManager;
        private final PowerManager mPowerManager;
        private final PowerManager mPowerManager;
        private final ActivityTaskManager mActivityTaskManager;
        private final ActivityTaskManager mActivityTaskManager;
        private ShadeController mShadeController;
        @Nullable
        @Nullable
        private final TelecomManager mTelecomManager;
        private final TelecomManager mTelecomManager;
        private final MetricsLogger mMetricsLogger;
        private final MetricsLogger mMetricsLogger;
@@ -175,6 +181,7 @@ public class EmergencyButtonController extends ViewController<EmergencyButton> {
        public Factory(ConfigurationController configurationController,
        public Factory(ConfigurationController configurationController,
                KeyguardUpdateMonitor keyguardUpdateMonitor, TelephonyManager telephonyManager,
                KeyguardUpdateMonitor keyguardUpdateMonitor, TelephonyManager telephonyManager,
                PowerManager powerManager, ActivityTaskManager activityTaskManager,
                PowerManager powerManager, ActivityTaskManager activityTaskManager,
                ShadeController shadeController,
                @Nullable TelecomManager telecomManager, MetricsLogger metricsLogger) {
                @Nullable TelecomManager telecomManager, MetricsLogger metricsLogger) {


            mConfigurationController = configurationController;
            mConfigurationController = configurationController;
@@ -182,6 +189,7 @@ public class EmergencyButtonController extends ViewController<EmergencyButton> {
            mTelephonyManager = telephonyManager;
            mTelephonyManager = telephonyManager;
            mPowerManager = powerManager;
            mPowerManager = powerManager;
            mActivityTaskManager = activityTaskManager;
            mActivityTaskManager = activityTaskManager;
            mShadeController = shadeController;
            mTelecomManager = telecomManager;
            mTelecomManager = telecomManager;
            mMetricsLogger = metricsLogger;
            mMetricsLogger = metricsLogger;
        }
        }
@@ -190,6 +198,7 @@ public class EmergencyButtonController extends ViewController<EmergencyButton> {
        public EmergencyButtonController create(EmergencyButton view) {
        public EmergencyButtonController create(EmergencyButton view) {
            return new EmergencyButtonController(view, mConfigurationController,
            return new EmergencyButtonController(view, mConfigurationController,
                    mKeyguardUpdateMonitor, mTelephonyManager, mPowerManager, mActivityTaskManager,
                    mKeyguardUpdateMonitor, mTelephonyManager, mPowerManager, mActivityTaskManager,
                    mShadeController,
                    mTelecomManager, mMetricsLogger);
                    mTelecomManager, mMetricsLogger);
        }
        }
    }
    }
+10 −5
Original line number Original line Diff line number Diff line
@@ -27,7 +27,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentFilter;
import android.content.IntentSender;
import android.content.IntentSender;
import android.os.Handler;
import android.os.RemoteException;
import android.os.RemoteException;
import android.os.UserHandle;
import android.os.UserHandle;
import android.view.View;
import android.view.View;
@@ -35,6 +34,7 @@ import android.view.ViewParent;


import com.android.systemui.ActivityIntentHelper;
import com.android.systemui.ActivityIntentHelper;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.ActionClickLogger;
import com.android.systemui.statusbar.ActionClickLogger;
@@ -50,6 +50,8 @@ import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.KeyguardStateController;


import java.util.concurrent.Executor;

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


/**
/**
@@ -65,6 +67,7 @@ public class StatusBarRemoteInputCallback implements Callback, Callbacks,
    private final Context mContext;
    private final Context mContext;
    private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
    private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
    private final ShadeController mShadeController;
    private final ShadeController mShadeController;
    private Executor mExecutor;
    private final ActivityIntentHelper mActivityIntentHelper;
    private final ActivityIntentHelper mActivityIntentHelper;
    private final GroupExpansionManager mGroupExpansionManager;
    private final GroupExpansionManager mGroupExpansionManager;
    private View mPendingWorkRemoteInputView;
    private View mPendingWorkRemoteInputView;
@@ -74,7 +77,6 @@ public class StatusBarRemoteInputCallback implements Callback, Callbacks,
    private final ActionClickLogger mActionClickLogger;
    private final ActionClickLogger mActionClickLogger;
    private int mDisabled2;
    private int mDisabled2;
    protected BroadcastReceiver mChallengeReceiver = new ChallengeReceiver();
    protected BroadcastReceiver mChallengeReceiver = new ChallengeReceiver();
    private Handler mMainHandler = new Handler();


    /**
    /**
     */
     */
@@ -89,10 +91,12 @@ public class StatusBarRemoteInputCallback implements Callback, Callbacks,
            ActivityStarter activityStarter,
            ActivityStarter activityStarter,
            ShadeController shadeController,
            ShadeController shadeController,
            CommandQueue commandQueue,
            CommandQueue commandQueue,
            ActionClickLogger clickLogger) {
            ActionClickLogger clickLogger,
            @Main Executor executor) {
        mContext = context;
        mContext = context;
        mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
        mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
        mShadeController = shadeController;
        mShadeController = shadeController;
        mExecutor = executor;
        mContext.registerReceiverAsUser(mChallengeReceiver, UserHandle.ALL,
        mContext.registerReceiverAsUser(mChallengeReceiver, UserHandle.ALL,
                new IntentFilter(ACTION_DEVICE_LOCKED_CHANGED), null, null);
                new IntentFilter(ACTION_DEVICE_LOCKED_CHANGED), null, null);
        mLockscreenUserManager = notificationLockscreenUserManager;
        mLockscreenUserManager = notificationLockscreenUserManager;
@@ -113,9 +117,10 @@ public class StatusBarRemoteInputCallback implements Callback, Callbacks,
        boolean hasPendingRemoteInput = mPendingRemoteInputView != null;
        boolean hasPendingRemoteInput = mPendingRemoteInputView != null;
        if (state == StatusBarState.SHADE
        if (state == StatusBarState.SHADE
                && (mStatusBarStateController.leaveOpenOnKeyguardHide() || hasPendingRemoteInput)) {
                && (mStatusBarStateController.leaveOpenOnKeyguardHide() || hasPendingRemoteInput)) {
            if (!mStatusBarStateController.isKeyguardRequested()) {
            if (!mStatusBarStateController.isKeyguardRequested()
                    && mKeyguardStateController.isUnlocked()) {
                if (hasPendingRemoteInput) {
                if (hasPendingRemoteInput) {
                    mMainHandler.post(mPendingRemoteInputView::callOnClick);
                    mExecutor.execute(mPendingRemoteInputView::callOnClick);
                }
                }
                mPendingRemoteInputView = null;
                mPendingRemoteInputView = null;
            }
            }
+4 −1
Original line number Original line Diff line number Diff line
@@ -39,6 +39,8 @@ import com.android.systemui.statusbar.notification.NotificationEntryManager;
import com.android.systemui.statusbar.notification.collection.legacy.NotificationGroupManagerLegacy;
import com.android.systemui.statusbar.notification.collection.legacy.NotificationGroupManagerLegacy;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.DeviceProvisionedController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
import com.android.systemui.util.concurrency.FakeExecutor;
import com.android.systemui.util.time.FakeSystemClock;


import org.junit.Before;
import org.junit.Before;
import org.junit.Test;
import org.junit.Test;
@@ -58,6 +60,7 @@ public class StatusBarRemoteInputCallbackTest extends SysuiTestCase {
    @Mock private SysuiStatusBarStateController mStatusBarStateController;
    @Mock private SysuiStatusBarStateController mStatusBarStateController;
    @Mock private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
    @Mock private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
    @Mock private ActivityStarter mActivityStarter;
    @Mock private ActivityStarter mActivityStarter;
    private final FakeExecutor mFakeExecutor = new FakeExecutor(new FakeSystemClock());


    private int mCurrentUserId = 0;
    private int mCurrentUserId = 0;
    private StatusBarRemoteInputCallback mRemoteInputCallback;
    private StatusBarRemoteInputCallback mRemoteInputCallback;
@@ -76,7 +79,7 @@ public class StatusBarRemoteInputCallbackTest extends SysuiTestCase {
                mock(NotificationGroupManagerLegacy.class), mNotificationLockscreenUserManager,
                mock(NotificationGroupManagerLegacy.class), mNotificationLockscreenUserManager,
                mKeyguardStateController, mStatusBarStateController, mStatusBarKeyguardViewManager,
                mKeyguardStateController, mStatusBarStateController, mStatusBarKeyguardViewManager,
                mActivityStarter, mShadeController, new CommandQueue(mContext),
                mActivityStarter, mShadeController, new CommandQueue(mContext),
                mock(ActionClickLogger.class)));
                mock(ActionClickLogger.class), mFakeExecutor));
        mRemoteInputCallback.mChallengeReceiver = mRemoteInputCallback.new ChallengeReceiver();
        mRemoteInputCallback.mChallengeReceiver = mRemoteInputCallback.new ChallengeReceiver();
    }
    }