mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-03 17:36:49 +00:00
Switching to setting QS on and off via writing settings.
We can do this now because we hav all 6 devices in the lab. Change-Id: I5d5fcd89086a3f945ed3fc204461cacbdde61a8a
This commit is contained in:
@@ -19,6 +19,11 @@ package com.android.quickstep;
|
||||
import static com.android.quickstep.QuickStepOnOffRule.Mode.BOTH;
|
||||
import static com.android.quickstep.QuickStepOnOffRule.Mode.OFF;
|
||||
import static com.android.quickstep.QuickStepOnOffRule.Mode.ON;
|
||||
import static com.android.systemui.shared.system.SettingsCompat.SWIPE_UP_SETTING_NAME;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.test.InstrumentationRegistry;
|
||||
|
||||
@@ -69,38 +74,52 @@ public class QuickStepOnOffRule implements TestRule {
|
||||
@Override
|
||||
public void evaluate() throws Throwable {
|
||||
try {
|
||||
if (mode == ON || mode == BOTH) {
|
||||
evaluateWithQuickstepOn();
|
||||
}
|
||||
if (mode == OFF || mode == BOTH) {
|
||||
evaluateWithQuickstepOff();
|
||||
if (SwipeUpSetting.isSwipeUpSettingAvailable()) {
|
||||
if (mode == ON || mode == BOTH) {
|
||||
evaluateWithQuickstepOn();
|
||||
}
|
||||
if (mode == OFF || mode == BOTH) {
|
||||
evaluateWithQuickstepOff();
|
||||
}
|
||||
} else {
|
||||
// Execute without changing the setting, if the requested mode is
|
||||
// compatible.
|
||||
final boolean swipeUpEnabledDefaultValue =
|
||||
SwipeUpSetting.isSwipeUpEnabledDefaultValue();
|
||||
if (mode == BOTH ||
|
||||
mode == ON && swipeUpEnabledDefaultValue ||
|
||||
mode == OFF && !swipeUpEnabledDefaultValue) {
|
||||
evaluateWithoutChangingSetting(base);
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
overrideSwipeUpEnabled(null);
|
||||
setSwipeUpSetting(null);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void evaluateWithQuickstepOff() throws Throwable {
|
||||
overrideSwipeUpEnabled(false);
|
||||
public void setSwipeUpSetting(String value) {
|
||||
assertTrue("Couldn't change Quickstep mode",
|
||||
Settings.Secure.putString(
|
||||
InstrumentationRegistry.getInstrumentation().getTargetContext().
|
||||
getContentResolver(),
|
||||
SWIPE_UP_SETTING_NAME,
|
||||
value));
|
||||
}
|
||||
|
||||
public void evaluateWithoutChangingSetting(Statement base) throws Throwable {
|
||||
base.evaluate();
|
||||
}
|
||||
|
||||
private void evaluateWithQuickstepOff() throws Throwable {
|
||||
setSwipeUpSetting("0");
|
||||
evaluateWithoutChangingSetting(base);
|
||||
}
|
||||
|
||||
private void evaluateWithQuickstepOn() throws Throwable {
|
||||
overrideSwipeUpEnabled(true);
|
||||
setSwipeUpSetting("1");
|
||||
base.evaluate();
|
||||
}
|
||||
|
||||
private void overrideSwipeUpEnabled(Boolean swipeUpEnabledOverride)
|
||||
throws Throwable {
|
||||
mLauncher.overrideSwipeUpEnabled(swipeUpEnabledOverride);
|
||||
mMainThreadExecutor.execute(() -> OverviewInteractionState.INSTANCE.get(
|
||||
InstrumentationRegistry.getInstrumentation().getTargetContext()).
|
||||
notifySwipeUpSettingChanged(mLauncher.isSwipeUpEnabled()));
|
||||
// TODO(b/124236673): avoid using sleep().
|
||||
mLauncher.getDevice().waitForIdle();
|
||||
Thread.sleep(2000);
|
||||
mLauncher.getDevice().waitForIdle();
|
||||
}
|
||||
};
|
||||
} else {
|
||||
return base;
|
||||
|
||||
Reference in New Issue
Block a user