Changing the height of the pane causes UI elements below it to shift
around. Allow it to grow when needed but do not shrink once it has
grown.
Test: atest TopologyScaleTest.kt
Flag: com.android.settings.flags.display_topology_pane_in_display_list
Bug: b/352650922
Change-Id: I1a3e0ab77b05c5a4337e3e8ab865a974eb1faeda
Add a mirror/extend built-in display switch. Make minor changes to
DisplayTopology.kt for consistency and correctness.
Kotlin requires the two preference key names are different since they
are in the same namespace, so fix the name in the existing
DisplayTopology.kt module.
Make DisplayTopologyPreference responsible, rather than the caller, for
setting its persistence property, since a wrong value may cause unusual
behavior.
The setOrder calls are necessary to prevent the new switch from
appearing below the Built-in display category when a display is
hot-plugged in after showing the UI. We set them on all top-level
preferences (not just the two we are fixing) for consistency.
Flag: com.android.settings.flags.display_topology_pane_in_display_list
Test: atest ExternalDisplayPreferenceFragmentTest.java
Bug: b/352648432
Bug: b/366056921
Change-Id: Ib0072dd75066758903cc48c2d1e7142e1d921f67
When dragging a single display, we don't constrain the position of the
display, and the user can drag it anywhere on the fragment. As such we
need to either prevent the drag or refresh the pane always if there is
only one display. This CL chooses the former.
Flag: com.android.settings.flags.display_topology_pane_in_display_list
Test: atest DisplayTopologyPreferenceTest.kt
Bug: b/352650922
Change-Id: Icb101b734ce9b88435f64a71bf77f878f9b230e0
If some other app or the system changes the topology, we detect it and
refresh the topology pane. If the listener reports a topology that we
just applied, do not actually refresh the pane.
Flag: com.android.settings.flags.display_topology_pane_in_display_list
Bug: b/352650922
Test: atest DisplayTopologyPreferenceTest.kt
Test: with added logs, verify that a detach and re-attach w/o new topology does not cause a full refresh
Change-Id: Iecf50d563b430755c93bee5a1ff54f3f3d6eb3da
Use Float rather than Int for View coordinates as mostly Floats are
required. Also stop requiring Point/PointF boxing of arguments, since
the Preference implementation ended up not using Point/PointF objects
very much.
Flag: com.android.settings.flags.display_topology_pane_in_display_list
Bug: b/352650922
Test: atest DisplayTopologyPreferenceTest.kt
Change-Id: Iecccb9d524014c3b6ad600f99b9e769418e57a4d
After dropping, apply the new topology to the DisplayManager. We assume
the new topology is immediately written and read it back.
We don't yet respond to updates of the topology from other apps or
components; this will come in a follow-up patch soon.
Flag: com.android.settings.flags.display_topology_pane_in_display_list
Bug: b/352650922
Test: drag a display when there is only one in the topology
Test: drag a display when there are two in the topology
Test: close and re-open settings to verify a topology is persisted
Test: atest DisplayTopologyPreferenceTest.kt
Change-Id: I26aa7325570c5fd3e8b5fb60cb6e1196f8657b80
The metadata change listener will be added in later changes.
Test: atest: com.android.settings.bluetooth.ConnectedBluetoothDeviceUpdaterTest
Bug: 362859132
Flag: com.android.settingslib.flags.enable_temporary_bond_devices_ui
Change-Id: I3ba5a978ce66e748fc1a7666fa4f6e84144c2c54
This is to address the API council feedback
Bug: 379313664
Flag: EXEMPT minor change
Test: EXEMPT minor change
Change-Id: I9f9126b2e9eae3311f9d03d13d201d7518a27a09