summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/policy/PhoneWindowManager.java6
-rw-r--r--services/core/java/com/android/server/policy/SingleKeyGestureDetector.java12
-rw-r--r--services/tests/wmtests/src/com/android/server/policy/ShortcutKeyTestBase.java1
-rw-r--r--services/tests/wmtests/src/com/android/server/policy/SingleKeyGestureTests.java3
-rw-r--r--services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java31
5 files changed, 26 insertions, 27 deletions
diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java
index 7c0fc998abcf..b4396818c43c 100644
--- a/services/core/java/com/android/server/policy/PhoneWindowManager.java
+++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java
@@ -2478,7 +2478,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
com.android.internal.R.integer.config_keyguardDrawnTimeout);
mKeyguardDelegate = injector.getKeyguardServiceDelegate();
initKeyCombinationRules();
- initSingleKeyGestureRules();
+ initSingleKeyGestureRules(injector.getLooper());
mSideFpsEventHandler = new SideFpsEventHandler(mContext, mHandler, mPowerManager);
}
@@ -2749,8 +2749,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
}
- private void initSingleKeyGestureRules() {
- mSingleKeyGestureDetector = SingleKeyGestureDetector.get(mContext);
+ private void initSingleKeyGestureRules(Looper looper) {
+ mSingleKeyGestureDetector = SingleKeyGestureDetector.get(mContext, looper);
mSingleKeyGestureDetector.addRule(new PowerKeyRule());
if (hasLongPressOnBackBehavior()) {
mSingleKeyGestureDetector.addRule(new BackKeyRule());
diff --git a/services/core/java/com/android/server/policy/SingleKeyGestureDetector.java b/services/core/java/com/android/server/policy/SingleKeyGestureDetector.java
index 5fc0637debea..d9ea0653875d 100644
--- a/services/core/java/com/android/server/policy/SingleKeyGestureDetector.java
+++ b/services/core/java/com/android/server/policy/SingleKeyGestureDetector.java
@@ -171,8 +171,8 @@ public final class SingleKeyGestureDetector {
}
}
- static SingleKeyGestureDetector get(Context context) {
- SingleKeyGestureDetector detector = new SingleKeyGestureDetector();
+ static SingleKeyGestureDetector get(Context context, Looper looper) {
+ SingleKeyGestureDetector detector = new SingleKeyGestureDetector(looper);
sDefaultLongPressTimeout = context.getResources().getInteger(
com.android.internal.R.integer.config_globalActionsKeyTimeout);
sDefaultVeryLongPressTimeout = context.getResources().getInteger(
@@ -180,8 +180,8 @@ public final class SingleKeyGestureDetector {
return detector;
}
- private SingleKeyGestureDetector() {
- mHandler = new KeyHandler();
+ private SingleKeyGestureDetector(Looper looper) {
+ mHandler = new KeyHandler(looper);
}
void addRule(SingleKeyRule rule) {
@@ -402,8 +402,8 @@ public final class SingleKeyGestureDetector {
}
private class KeyHandler extends Handler {
- KeyHandler() {
- super(Looper.myLooper());
+ KeyHandler(Looper looper) {
+ super(looper);
}
@Override
diff --git a/services/tests/wmtests/src/com/android/server/policy/ShortcutKeyTestBase.java b/services/tests/wmtests/src/com/android/server/policy/ShortcutKeyTestBase.java
index 61c4d06131e1..270d5df5e702 100644
--- a/services/tests/wmtests/src/com/android/server/policy/ShortcutKeyTestBase.java
+++ b/services/tests/wmtests/src/com/android/server/policy/ShortcutKeyTestBase.java
@@ -203,5 +203,6 @@ class ShortcutKeyTestBase {
mPhoneWindowManager.dispatchUnhandledKey(keyEvent);
}
}
+ mPhoneWindowManager.dispatchAllPendingEvents();
}
}
diff --git a/services/tests/wmtests/src/com/android/server/policy/SingleKeyGestureTests.java b/services/tests/wmtests/src/com/android/server/policy/SingleKeyGestureTests.java
index d388db82f2be..24f568baed77 100644
--- a/services/tests/wmtests/src/com/android/server/policy/SingleKeyGestureTests.java
+++ b/services/tests/wmtests/src/com/android/server/policy/SingleKeyGestureTests.java
@@ -29,6 +29,7 @@ import static org.junit.Assert.assertTrue;
import android.app.Instrumentation;
import android.content.Context;
+import android.os.Looper;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Process;
@@ -76,7 +77,7 @@ public class SingleKeyGestureTests {
public void setUp() {
mInstrumentation.runOnMainSync(
() -> {
- mDetector = SingleKeyGestureDetector.get(mContext);
+ mDetector = SingleKeyGestureDetector.get(mContext, Looper.myLooper());
initSingleKeyGestureRules();
});
diff --git a/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java b/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java
index 261d3cc3c8d9..e26260a6836c 100644
--- a/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java
+++ b/services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java
@@ -118,7 +118,6 @@ import org.mockito.quality.Strictness;
import java.util.function.Supplier;
class TestPhoneWindowManager {
- private static final long SHORTCUT_KEY_DELAY_MILLIS = 150;
private static final long TEST_SINGLE_KEY_DELAY_MILLIS
= SingleKeyGestureDetector.MULTI_PRESS_TIMEOUT + 1000L * HW_TIMEOUT_MULTIPLIER;
@@ -188,7 +187,7 @@ class TestPhoneWindowManager {
MockitoAnnotations.initMocks(this);
mHandler = new Handler(mTestLooper.getLooper());
mContext = mockingDetails(context).isSpy() ? context : spy(context);
- mHandler.post(() -> setUp(supportSettingsUpdate));
+ setUp(supportSettingsUpdate);
mTestLooper.dispatchAll();
}
@@ -306,6 +305,10 @@ class TestPhoneWindowManager {
mMockitoSession.finishMocking();
}
+ void dispatchAllPendingEvents() {
+ mTestLooper.dispatchAll();
+ }
+
// Override accessibility setting and perform function.
private void overrideLaunchAccessibility() {
doReturn(true).when(mAccessibilityShortcutController)
@@ -446,6 +449,7 @@ class TestPhoneWindowManager {
doNothing().when(mPhoneWindowManager).sendCloseSystemWindows();
doReturn(true).when(mPhoneWindowManager).isUserSetupComplete();
doReturn(mContext).when(mContext).createContextAsUser(any(), anyInt());
+ doReturn(mSearchManager).when(mContext).getSystemService(eq(SearchManager.class));
}
void overrideSearchManager(SearchManager searchManager) {
@@ -500,29 +504,24 @@ class TestPhoneWindowManager {
*/
void assertTakeScreenshotCalled() {
mTestLooper.dispatchAll();
- verify(mDisplayPolicy, timeout(SHORTCUT_KEY_DELAY_MILLIS))
- .takeScreenshot(anyInt(), anyInt());
+ verify(mDisplayPolicy).takeScreenshot(anyInt(), anyInt());
}
void assertShowGlobalActionsCalled() {
mTestLooper.dispatchAll();
verify(mPhoneWindowManager).showGlobalActions();
- verify(mGlobalActions, timeout(SHORTCUT_KEY_DELAY_MILLIS))
- .showDialog(anyBoolean(), anyBoolean());
- verify(mPowerManager, timeout(SHORTCUT_KEY_DELAY_MILLIS))
- .userActivity(anyLong(), anyBoolean());
+ verify(mGlobalActions).showDialog(anyBoolean(), anyBoolean());
+ verify(mPowerManager).userActivity(anyLong(), anyBoolean());
}
void assertVolumeMute() {
mTestLooper.dispatchAll();
- verify(mAudioManagerInternal, timeout(SHORTCUT_KEY_DELAY_MILLIS))
- .silenceRingerModeInternal(eq("volume_hush"));
+ verify(mAudioManagerInternal).silenceRingerModeInternal(eq("volume_hush"));
}
void assertAccessibilityKeychordCalled() {
mTestLooper.dispatchAll();
- verify(mAccessibilityShortcutController,
- timeout(SHORTCUT_KEY_DELAY_MILLIS)).performAccessibilityShortcut();
+ verify(mAccessibilityShortcutController).performAccessibilityShortcut();
}
void assertDreamRequest() {
@@ -532,14 +531,12 @@ class TestPhoneWindowManager {
void assertPowerSleep() {
mTestLooper.dispatchAll();
- verify(mPowerManager,
- timeout(SHORTCUT_KEY_DELAY_MILLIS)).goToSleep(anyLong(), anyInt(), anyInt());
+ verify(mPowerManager).goToSleep(anyLong(), anyInt(), anyInt());
}
void assertPowerWakeUp() {
mTestLooper.dispatchAll();
- verify(mPowerManager,
- timeout(SHORTCUT_KEY_DELAY_MILLIS)).wakeUp(anyLong(), anyInt(), anyString());
+ verify(mPowerManager).wakeUp(anyLong(), anyInt(), anyString());
}
void assertNoPowerSleep() {
@@ -556,7 +553,7 @@ class TestPhoneWindowManager {
void assertSearchManagerLaunchAssist() {
mTestLooper.dispatchAll();
- verify(mSearchManager, timeout(SHORTCUT_KEY_DELAY_MILLIS)).launchAssist(any());
+ verify(mSearchManager).launchAssist(any());
}
void assertLaunchCategory(String category) {