Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayController.java +15 −26 Original line number Diff line number Diff line Loading @@ -46,9 +46,7 @@ import com.android.wm.shell.shared.desktopmode.DesktopState; import com.android.wm.shell.sysui.ShellInit; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; /** Loading @@ -70,7 +68,6 @@ public class DisplayController { private final SparseArray<DisplayRecord> mDisplays = new SparseArray<>(); private final ArrayList<OnDisplaysChangedListener> mDisplayChangedListeners = new ArrayList<>(); private final Map<Integer, RectF> mUnpopulatedDisplayBounds = new HashMap<>(); private DisplayTopology mDisplayTopology; public DisplayController(Context context, IWindowManager wmService, ShellInit shellInit, Loading Loading @@ -220,10 +217,6 @@ public class DisplayController { } final DisplayRecord record = new DisplayRecord(displayId, hasStatusAndNavBars); DisplayLayout displayLayout = record.createLayout(context, display); if (DesktopExperienceFlags.ENABLE_CONNECTED_DISPLAYS_WINDOW_DRAG.isTrue() && mUnpopulatedDisplayBounds.containsKey(displayId)) { displayLayout.setGlobalBoundsDp(mUnpopulatedDisplayBounds.get(displayId)); } record.setDisplayLayout(context, displayLayout); mDisplays.put(displayId, record); for (int i = 0; i < mDisplayChangedListeners.size(); ++i) { Loading Loading @@ -270,17 +263,10 @@ public class DisplayController { } mDisplayTopology = topology; SparseArray<RectF> absoluteBounds = topology.getAbsoluteBounds(); mUnpopulatedDisplayBounds.clear(); for (int i = 0; i < absoluteBounds.size(); ++i) { int displayId = absoluteBounds.keyAt(i); DisplayLayout displayLayout = getDisplayLayout(displayId); if (displayLayout == null) { // onDisplayTopologyChanged can arrive before onDisplayAdded. // Store the bounds to be applied later in onDisplayAdded. Slog.d(TAG, "Storing bounds for onDisplayTopologyChanged on unknown" + " display, displayId=" + displayId); mUnpopulatedDisplayBounds.put(displayId, absoluteBounds.valueAt(i)); } else { if (displayLayout != null) { displayLayout.setGlobalBoundsDp(absoluteBounds.valueAt(i)); } } Loading Loading @@ -309,11 +295,6 @@ public class DisplayController { : mContext.createDisplayContext(display); final Context context = perDisplayContext.createConfigurationContext(newConfig); final DisplayLayout displayLayout = dr.createLayout(context, display); if (mDisplayTopology != null) { displayLayout.setGlobalBoundsDp( mDisplayTopology.getAbsoluteBounds().get( displayId, displayLayout.globalBoundsDp())); } dr.setDisplayLayout(context, displayLayout); for (int i = 0; i < mDisplayChangedListeners.size(); ++i) { mDisplayChangedListeners.get(i).onDisplayConfigurationChanged( Loading Loading @@ -395,7 +376,7 @@ public class DisplayController { } } private static class DisplayRecord { private class DisplayRecord { private final int mDisplayId; private Context mContext; private DisplayLayout mDisplayLayout; Loading @@ -408,12 +389,20 @@ public class DisplayController { } private DisplayLayout createLayout(Context context, Display display) { if (mDisplayId != Display.DEFAULT_DISPLAY && mHasStatusAndNavBars) { return new DisplayLayout(context, display, true /* hasNavigationBar */, true /* hasTaskBar */); } else { return new DisplayLayout(context, display); final boolean shouldInitWithSystemDecorations = mDisplayId != Display.DEFAULT_DISPLAY && mHasStatusAndNavBars; final DisplayLayout layout = shouldInitWithSystemDecorations ? new DisplayLayout( context, display, true /* hasNavigationBar */, true /* hasTaskBar */) : new DisplayLayout(context, display); if (DesktopExperienceFlags.ENABLE_CONNECTED_DISPLAYS_WINDOW_DRAG.isTrue() && mDisplayTopology != null) { final RectF globalBounds = mDisplayTopology.getAbsoluteBounds().get(mDisplayId); if (globalBounds != null) { layout.setGlobalBoundsDp(globalBounds); } } return layout; } Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayLayout.java +1 −1 Original line number Diff line number Diff line Loading @@ -214,7 +214,7 @@ public class DisplayLayout { mRotation = info.rotation; mCutout = info.displayCutout; mDensityDpi = info.logicalDensityDpi; mGlobalBoundsDp = new RectF(0, 0, pxToDp(mWidth), pxToDp(mHeight)); mGlobalBoundsDp = new RectF(); mHasNavigationBar = hasNavigationBar; mHasStatusBar = hasStatusBar; mAllowSeamlessRotationDespiteNavBarMoving = res.getBoolean( Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayController.java +15 −26 Original line number Diff line number Diff line Loading @@ -46,9 +46,7 @@ import com.android.wm.shell.shared.desktopmode.DesktopState; import com.android.wm.shell.sysui.ShellInit; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; /** Loading @@ -70,7 +68,6 @@ public class DisplayController { private final SparseArray<DisplayRecord> mDisplays = new SparseArray<>(); private final ArrayList<OnDisplaysChangedListener> mDisplayChangedListeners = new ArrayList<>(); private final Map<Integer, RectF> mUnpopulatedDisplayBounds = new HashMap<>(); private DisplayTopology mDisplayTopology; public DisplayController(Context context, IWindowManager wmService, ShellInit shellInit, Loading Loading @@ -220,10 +217,6 @@ public class DisplayController { } final DisplayRecord record = new DisplayRecord(displayId, hasStatusAndNavBars); DisplayLayout displayLayout = record.createLayout(context, display); if (DesktopExperienceFlags.ENABLE_CONNECTED_DISPLAYS_WINDOW_DRAG.isTrue() && mUnpopulatedDisplayBounds.containsKey(displayId)) { displayLayout.setGlobalBoundsDp(mUnpopulatedDisplayBounds.get(displayId)); } record.setDisplayLayout(context, displayLayout); mDisplays.put(displayId, record); for (int i = 0; i < mDisplayChangedListeners.size(); ++i) { Loading Loading @@ -270,17 +263,10 @@ public class DisplayController { } mDisplayTopology = topology; SparseArray<RectF> absoluteBounds = topology.getAbsoluteBounds(); mUnpopulatedDisplayBounds.clear(); for (int i = 0; i < absoluteBounds.size(); ++i) { int displayId = absoluteBounds.keyAt(i); DisplayLayout displayLayout = getDisplayLayout(displayId); if (displayLayout == null) { // onDisplayTopologyChanged can arrive before onDisplayAdded. // Store the bounds to be applied later in onDisplayAdded. Slog.d(TAG, "Storing bounds for onDisplayTopologyChanged on unknown" + " display, displayId=" + displayId); mUnpopulatedDisplayBounds.put(displayId, absoluteBounds.valueAt(i)); } else { if (displayLayout != null) { displayLayout.setGlobalBoundsDp(absoluteBounds.valueAt(i)); } } Loading Loading @@ -309,11 +295,6 @@ public class DisplayController { : mContext.createDisplayContext(display); final Context context = perDisplayContext.createConfigurationContext(newConfig); final DisplayLayout displayLayout = dr.createLayout(context, display); if (mDisplayTopology != null) { displayLayout.setGlobalBoundsDp( mDisplayTopology.getAbsoluteBounds().get( displayId, displayLayout.globalBoundsDp())); } dr.setDisplayLayout(context, displayLayout); for (int i = 0; i < mDisplayChangedListeners.size(); ++i) { mDisplayChangedListeners.get(i).onDisplayConfigurationChanged( Loading Loading @@ -395,7 +376,7 @@ public class DisplayController { } } private static class DisplayRecord { private class DisplayRecord { private final int mDisplayId; private Context mContext; private DisplayLayout mDisplayLayout; Loading @@ -408,12 +389,20 @@ public class DisplayController { } private DisplayLayout createLayout(Context context, Display display) { if (mDisplayId != Display.DEFAULT_DISPLAY && mHasStatusAndNavBars) { return new DisplayLayout(context, display, true /* hasNavigationBar */, true /* hasTaskBar */); } else { return new DisplayLayout(context, display); final boolean shouldInitWithSystemDecorations = mDisplayId != Display.DEFAULT_DISPLAY && mHasStatusAndNavBars; final DisplayLayout layout = shouldInitWithSystemDecorations ? new DisplayLayout( context, display, true /* hasNavigationBar */, true /* hasTaskBar */) : new DisplayLayout(context, display); if (DesktopExperienceFlags.ENABLE_CONNECTED_DISPLAYS_WINDOW_DRAG.isTrue() && mDisplayTopology != null) { final RectF globalBounds = mDisplayTopology.getAbsoluteBounds().get(mDisplayId); if (globalBounds != null) { layout.setGlobalBoundsDp(globalBounds); } } return layout; } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/DisplayLayout.java +1 −1 Original line number Diff line number Diff line Loading @@ -214,7 +214,7 @@ public class DisplayLayout { mRotation = info.rotation; mCutout = info.displayCutout; mDensityDpi = info.logicalDensityDpi; mGlobalBoundsDp = new RectF(0, 0, pxToDp(mWidth), pxToDp(mHeight)); mGlobalBoundsDp = new RectF(); mHasNavigationBar = hasNavigationBar; mHasStatusBar = hasStatusBar; mAllowSeamlessRotationDespiteNavBarMoving = res.getBoolean( Loading