Merge "Revert "Revert "Add TaskbarModeSwitchRule to test both transient/persistent taskbar.""" into tm-qpr-dev

This commit is contained in:
TreeHugger Robot
2022-11-15 22:31:55 +00:00
committed by Android (Google) Code Review
12 changed files with 269 additions and 9 deletions
@@ -84,6 +84,10 @@ public final class TestProtocol {
public static final String REQUEST_UNFREEZE_APP_LIST = "unfreeze-app-list";
public static final String REQUEST_ENABLE_MANUAL_TASKBAR_STASHING = "enable-taskbar-stashing";
public static final String REQUEST_DISABLE_MANUAL_TASKBAR_STASHING = "disable-taskbar-stashing";
public static final String REQUEST_ENABLE_BLOCK_TIMEOUT = "enable-block-timeout";
public static final String REQUEST_DISABLE_BLOCK_TIMEOUT = "disable-block-timeout";
public static final String REQUEST_ENABLE_TRANSIENT_TASKBAR = "enable-transient-taskbar";
public static final String REQUEST_DISABLE_TRANSIENT_TASKBAR = "disable-transient-taskbar";
public static final String REQUEST_UNSTASH_TASKBAR_IF_STASHED = "unstash-taskbar-if-stashed";
public static final String REQUEST_STASHED_TASKBAR_HEIGHT = "stashed-taskbar-height";
public static final String REQUEST_RECREATE_TASKBAR = "recreate-taskbar";
@@ -42,6 +42,7 @@ import android.view.Display;
import androidx.annotation.AnyThread;
import androidx.annotation.UiThread;
import androidx.annotation.VisibleForTesting;
import com.android.launcher3.Utilities;
import com.android.launcher3.util.window.CachedDisplayInfo;
@@ -63,6 +64,7 @@ public class DisplayController implements ComponentCallbacks, SafeCloseable {
private static final String TAG = "DisplayController";
private static final boolean DEBUG = false;
private static boolean sTransientTaskbarStatusForTests;
public static final MainThreadInitializedObject<DisplayController> INSTANCE =
new MainThreadInitializedObject<>(DisplayController::new);
@@ -128,8 +130,18 @@ public class DisplayController implements ComponentCallbacks, SafeCloseable {
* Returns whether taskbar is transient.
*/
public static boolean isTransientTaskbar(Context context) {
return ENABLE_TRANSIENT_TASKBAR.get()
&& getNavigationMode(context) == NavigationMode.NO_BUTTON;
return getNavigationMode(context) == NavigationMode.NO_BUTTON
&& (Utilities.IS_RUNNING_IN_TEST_HARNESS
? sTransientTaskbarStatusForTests
: ENABLE_TRANSIENT_TASKBAR.get());
}
/**
* Enables transient taskbar status for tests.
*/
@VisibleForTesting
public static void enableTransientTaskbarForTests(boolean enable) {
sTransientTaskbarStatusForTests = enable;
}
@Override