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
This commit is contained in:
Tracy Zhou
2021-09-23 10:18:11 -07:00
parent d523841ab4
commit c8beebf5a3
2 changed files with 10 additions and 1 deletions

View File

@@ -172,7 +172,7 @@ public class InvariantDeviceProfile {
}
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);

View File

@@ -79,6 +79,8 @@ public class DisplayController implements DisplayListener, ComponentCallbacks, S
// 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 @@ public class DisplayController implements DisplayListener, ComponentCallbacks, S
@Override
public final void onLowMemory() { }
public void setPriorityListener(DisplayInfoChangeListener listener) {
mPriorityListener = listener;
}
public void addChangeListener(DisplayInfoChangeListener listener) {
mListeners.add(listener);
}
@@ -261,6 +267,9 @@ public class DisplayController implements DisplayListener, ComponentCallbacks, S
}
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);
}