mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-01 00:06:47 +00:00
Use real IDP in DeviceProfileTest
- Mock WindowManagerProxy instead of IDP in DeviceProfileTest - Extracted NavigationMode to standalone class - Moved parseNavigationMode to WindowManagerProxy so it can be mocked - Moved DeviceProfileTest to internal repo Bug: 242086027 Test: DeviceProfileTest Change-Id: Ia5a43293b1380f04d786d2adf8503cfd10f7674a
This commit is contained in:
@@ -19,11 +19,7 @@ import static android.content.Intent.ACTION_CONFIGURATION_CHANGED;
|
||||
import static android.view.Display.DEFAULT_DISPLAY;
|
||||
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION;
|
||||
|
||||
import static com.android.launcher3.testing.shared.ResourceUtils.INVALID_RESOURCE_HANDLE;
|
||||
import static com.android.launcher3.Utilities.dpiFromPx;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_NAVIGATION_MODE_2_BUTTON;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_NAVIGATION_MODE_3_BUTTON;
|
||||
import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_NAVIGATION_MODE_GESTURE_BUTTON;
|
||||
import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
|
||||
import static com.android.launcher3.util.PackageManagerHelper.getPackageFilter;
|
||||
import static com.android.launcher3.util.window.WindowManagerProxy.MIN_TABLET_WIDTH;
|
||||
@@ -46,9 +42,7 @@ import android.view.Display;
|
||||
import androidx.annotation.AnyThread;
|
||||
import androidx.annotation.UiThread;
|
||||
|
||||
import com.android.launcher3.testing.shared.ResourceUtils;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.logging.StatsLogManager.LauncherEvent;
|
||||
import com.android.launcher3.util.window.CachedDisplayInfo;
|
||||
import com.android.launcher3.util.window.WindowManagerProxy;
|
||||
|
||||
@@ -56,6 +50,7 @@ import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -81,7 +76,6 @@ public class DisplayController implements ComponentCallbacks, SafeCloseable {
|
||||
| CHANGE_DENSITY | CHANGE_SUPPORTED_BOUNDS | CHANGE_NAVIGATION_MODE;
|
||||
|
||||
private static final String ACTION_OVERLAY_CHANGED = "android.intent.action.OVERLAY_CHANGED";
|
||||
private static final String NAV_BAR_INTERACTION_MODE_RES_NAME = "config_navBarInteractionMode";
|
||||
private static final String TARGET_OVERLAY_PACKAGE = "android";
|
||||
|
||||
private final Context mContext;
|
||||
@@ -294,7 +288,7 @@ public class DisplayController implements ComponentCallbacks, SafeCloseable {
|
||||
// Used for testing
|
||||
public Info(Context displayInfoContext,
|
||||
WindowManagerProxy wmProxy,
|
||||
ArrayMap<CachedDisplayInfo, WindowBounds[]> perDisplayBoundsCache) {
|
||||
Map<CachedDisplayInfo, WindowBounds[]> perDisplayBoundsCache) {
|
||||
CachedDisplayInfo displayInfo = wmProxy.getDisplayInfo(displayInfoContext);
|
||||
normalizedDisplayInfo = displayInfo.normalize();
|
||||
rotation = displayInfo.rotation;
|
||||
@@ -305,7 +299,7 @@ public class DisplayController implements ComponentCallbacks, SafeCloseable {
|
||||
fontScale = config.fontScale;
|
||||
densityDpi = config.densityDpi;
|
||||
mScreenSizeDp = new PortraitSize(config.screenHeightDp, config.screenWidthDp);
|
||||
navigationMode = parseNavigationMode(displayInfoContext);
|
||||
navigationMode = wmProxy.getNavigationMode(displayInfoContext);
|
||||
|
||||
mPerDisplayBounds.putAll(perDisplayBoundsCache);
|
||||
WindowBounds[] cachedValue = mPerDisplayBounds.get(normalizedDisplayInfo);
|
||||
@@ -405,35 +399,4 @@ public class DisplayController implements ComponentCallbacks, SafeCloseable {
|
||||
}
|
||||
}
|
||||
|
||||
public enum NavigationMode {
|
||||
THREE_BUTTONS(false, 0, LAUNCHER_NAVIGATION_MODE_3_BUTTON),
|
||||
TWO_BUTTONS(true, 1, LAUNCHER_NAVIGATION_MODE_2_BUTTON),
|
||||
NO_BUTTON(true, 2, LAUNCHER_NAVIGATION_MODE_GESTURE_BUTTON);
|
||||
|
||||
public final boolean hasGestures;
|
||||
public final int resValue;
|
||||
public final LauncherEvent launcherEvent;
|
||||
|
||||
NavigationMode(boolean hasGestures, int resValue, LauncherEvent launcherEvent) {
|
||||
this.hasGestures = hasGestures;
|
||||
this.resValue = resValue;
|
||||
this.launcherEvent = launcherEvent;
|
||||
}
|
||||
}
|
||||
|
||||
private static NavigationMode parseNavigationMode(Context context) {
|
||||
int modeInt = ResourceUtils.getIntegerByName(NAV_BAR_INTERACTION_MODE_RES_NAME,
|
||||
context.getResources(), INVALID_RESOURCE_HANDLE);
|
||||
|
||||
if (modeInt == INVALID_RESOURCE_HANDLE) {
|
||||
Log.e(TAG, "Failed to get system resource ID. Incompatible framework version?");
|
||||
} else {
|
||||
for (NavigationMode m : NavigationMode.values()) {
|
||||
if (m.resValue == modeInt) {
|
||||
return m;
|
||||
}
|
||||
}
|
||||
}
|
||||
return Utilities.ATLEAST_S ? NavigationMode.NO_BUTTON : NavigationMode.THREE_BUTTONS;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user