Merge "Unregister prox sensor when QS or Bouncer are expanded."
This commit is contained in:
@@ -32,7 +32,7 @@ import java.io.PrintWriter;
|
||||
public interface FalsingManager {
|
||||
int VERSION = 3;
|
||||
|
||||
void onSucccessfulUnlock();
|
||||
void onSuccessfulUnlock();
|
||||
|
||||
void onNotificationActive();
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ public class FalsingManagerFake implements FalsingManager {
|
||||
private boolean mIsReportingEnabled;
|
||||
|
||||
@Override
|
||||
public void onSucccessfulUnlock() {
|
||||
public void onSuccessfulUnlock() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -375,7 +375,7 @@ public class FalsingManagerImpl implements FalsingManager {
|
||||
sessionExitpoint(false /* force */);
|
||||
}
|
||||
|
||||
public void onSucccessfulUnlock() {
|
||||
public void onSuccessfulUnlock() {
|
||||
if (FalsingLog.ENABLED) {
|
||||
FalsingLog.i("onSucccessfulUnlock", "");
|
||||
}
|
||||
|
||||
@@ -157,8 +157,8 @@ public class FalsingManagerProxy implements FalsingManager, Dumpable {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSucccessfulUnlock() {
|
||||
mInternalFalsingManager.onSucccessfulUnlock();
|
||||
public void onSuccessfulUnlock() {
|
||||
mInternalFalsingManager.onSuccessfulUnlock();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -146,7 +146,7 @@ public class BrightLineFalsingManager implements FalsingManager {
|
||||
|
||||
private void updateInteractionType(@Classifier.InteractionType int type) {
|
||||
logDebug("InteractionType: " + type);
|
||||
mClassifiers.forEach((classifier) -> classifier.setInteractionType(type));
|
||||
mDataProvider.setInteractionType(type);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -216,7 +216,7 @@ public class BrightLineFalsingManager implements FalsingManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSucccessfulUnlock() {
|
||||
public void onSuccessfulUnlock() {
|
||||
if (mIsFalseTouchCalls != 0) {
|
||||
mMetricsLogger.histogram(FALSING_SUCCESS, mIsFalseTouchCalls);
|
||||
mIsFalseTouchCalls = 0;
|
||||
@@ -263,7 +263,12 @@ public class BrightLineFalsingManager implements FalsingManager {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setQsExpanded(boolean b) {
|
||||
public void setQsExpanded(boolean expanded) {
|
||||
if (expanded) {
|
||||
unregisterSensors();
|
||||
} else if (mSessionStarted) {
|
||||
registerSensors();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -366,10 +371,14 @@ public class BrightLineFalsingManager implements FalsingManager {
|
||||
|
||||
@Override
|
||||
public void onBouncerShown() {
|
||||
unregisterSensors();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBouncerHidden() {
|
||||
if (mSessionStarted) {
|
||||
registerSensors();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -85,10 +85,6 @@ abstract class FalsingClassifier {
|
||||
return mDataProvider.getInteractionType();
|
||||
}
|
||||
|
||||
final void setInteractionType(@Classifier.InteractionType int interactionType) {
|
||||
mDataProvider.setInteractionType(interactionType);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called whenever a MotionEvent occurs.
|
||||
*
|
||||
|
||||
@@ -1651,7 +1651,7 @@ public class KeyguardViewMediator extends SystemUI {
|
||||
"KeyguardViewMediator#handleMessage START_KEYGUARD_EXIT_ANIM");
|
||||
StartKeyguardExitAnimParams params = (StartKeyguardExitAnimParams) msg.obj;
|
||||
handleStartKeyguardExitAnimation(params.startTime, params.fadeoutDuration);
|
||||
mFalsingManager.onSucccessfulUnlock();
|
||||
mFalsingManager.onSuccessfulUnlock();
|
||||
Trace.endSection();
|
||||
break;
|
||||
case KEYGUARD_DONE_PENDING_TIMEOUT:
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
/*
|
||||
* 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.systemui.classifier.brightline;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.reset;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.test.suitebuilder.annotation.SmallTest;
|
||||
import android.testing.AndroidTestingRunner;
|
||||
import android.util.DisplayMetrics;
|
||||
|
||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.dock.DockManager;
|
||||
import com.android.systemui.dock.DockManagerFake;
|
||||
import com.android.systemui.util.DeviceConfigProxy;
|
||||
import com.android.systemui.util.DeviceConfigProxyFake;
|
||||
import com.android.systemui.util.sensors.ProximitySensor;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
@SmallTest
|
||||
@RunWith(AndroidTestingRunner.class)
|
||||
public class BrightLineFalsingManagerTest extends SysuiTestCase {
|
||||
|
||||
|
||||
@Mock
|
||||
private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||
@Mock
|
||||
private ProximitySensor mProximitySensor;
|
||||
|
||||
private BrightLineFalsingManager mFalsingManager;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
DisplayMetrics dm = new DisplayMetrics();
|
||||
dm.xdpi = 100;
|
||||
dm.ydpi = 100;
|
||||
dm.widthPixels = 100;
|
||||
dm.heightPixels = 100;
|
||||
FalsingDataProvider falsingDataProvider = new FalsingDataProvider(dm);
|
||||
DeviceConfigProxy deviceConfigProxy = new DeviceConfigProxyFake();
|
||||
DockManager dockManager = new DockManagerFake();
|
||||
mFalsingManager = new BrightLineFalsingManager(falsingDataProvider,
|
||||
mKeyguardUpdateMonitor, mProximitySensor, deviceConfigProxy, dockManager);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRegisterSensor() {
|
||||
mFalsingManager.onScreenTurningOn();
|
||||
verify(mProximitySensor).register(any(ProximitySensor.ProximitySensorListener.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUnregisterSensor() {
|
||||
mFalsingManager.onScreenTurningOn();
|
||||
reset(mProximitySensor);
|
||||
mFalsingManager.onScreenOff();
|
||||
verify(mProximitySensor).unregister(any(ProximitySensor.ProximitySensorListener.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUnregisterSensor_QS() {
|
||||
mFalsingManager.onScreenTurningOn();
|
||||
reset(mProximitySensor);
|
||||
mFalsingManager.setQsExpanded(true);
|
||||
verify(mProximitySensor).unregister(any(ProximitySensor.ProximitySensorListener.class));
|
||||
mFalsingManager.setQsExpanded(false);
|
||||
verify(mProximitySensor).register(any(ProximitySensor.ProximitySensorListener.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUnregisterSensor_Bouncer() {
|
||||
mFalsingManager.onScreenTurningOn();
|
||||
reset(mProximitySensor);
|
||||
mFalsingManager.onBouncerShown();
|
||||
verify(mProximitySensor).unregister(any(ProximitySensor.ProximitySensorListener.class));
|
||||
mFalsingManager.onBouncerHidden();
|
||||
verify(mProximitySensor).register(any(ProximitySensor.ProximitySensorListener.class));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user