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:
Vadim Tryshev
2018-08-30 16:01:47 -07:00
committed by vadimt
parent 3a4f503e5d
commit 8675deee02
3 changed files with 48 additions and 37 deletions

View File

@@ -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;