Consolidate isTablet logic across Launcher and SysUI
Fixes: 197960261
Test: Change display size; no nav bar and task bar showing at the same time
Change-Id: I56753e9389a49ca3ee455b248a041b3c1569f153
diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java
index 1799f26..5f441d1 100644
--- a/src/com/android/launcher3/InvariantDeviceProfile.java
+++ b/src/com/android/launcher3/InvariantDeviceProfile.java
@@ -172,7 +172,7 @@
}
new DeviceGridState(this).writeToPrefs(context);
- DisplayController.INSTANCE.get(context).addChangeListener(
+ DisplayController.INSTANCE.get(context).setPriorityListener(
(displayContext, info, flags) -> {
if ((flags & (CHANGE_DENSITY | CHANGE_SUPPORTED_BOUNDS)) != 0) {
onConfigChanged(displayContext);
diff --git a/src/com/android/launcher3/util/DisplayController.java b/src/com/android/launcher3/util/DisplayController.java
index 3a2b961..d05ba3d 100644
--- a/src/com/android/launcher3/util/DisplayController.java
+++ b/src/com/android/launcher3/util/DisplayController.java
@@ -79,6 +79,8 @@
// Null for SDK < S
private final Context mWindowContext;
+ // The callback in this listener updates DeviceProfile, which other listeners might depend on
+ private DisplayInfoChangeListener mPriorityListener;
private final ArrayList<DisplayInfoChangeListener> mListeners = new ArrayList<>();
private Info mInfo;
@@ -207,6 +209,10 @@
@Override
public final void onLowMemory() { }
+ public void setPriorityListener(DisplayInfoChangeListener listener) {
+ mPriorityListener = listener;
+ }
+
public void addChangeListener(DisplayInfoChangeListener listener) {
mListeners.add(listener);
}
@@ -261,6 +267,9 @@
}
private void notifyChange(Context context, int flags) {
+ if (mPriorityListener != null) {
+ mPriorityListener.onDisplayInfoChanged(context, mInfo, flags);
+ }
for (int i = mListeners.size() - 1; i >= 0; i--) {
mListeners.get(i).onDisplayInfoChanged(context, mInfo, flags);
}