Merge "Don't fire pending remote input when is phone locked." into sc-dev
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user