Re-launching volume panel continuously will trigger an endless panel
loading, show a transparent unfinished UI, and then block the user's
screen.
Root cause:
When the activity receives a new intent from user's clicking, it will
call PanelFragment#createPanelContent to update the current fragment.
The method triggers an animation and then loads the panel content. If
multiple invocations run concurrently before the animation or the
loading finish, the loader's countdown latch will be increased
abnormally and lead to the endless loading.
Solution:
1. Since the invocations are in UI thread, simply add a flag to avoid
reentrance when the panel is animating or loading.
2. Filter out the same panel's creation request when the panel is still
visible.
3. Do not force a panel's recreation when it's under construction.
Bug: 143889510
Bug: 160491854
Test: robotest, manual
Change-Id: I821faedeb62354929f3af9804cbbe44ee5bb8a53
-Handle onConfigurationChanged and force to update layout
-Add test case
Bug: 144751509
Test: make -j42 RunSettingsRoboTests
Change-Id: Ic170d4f6f045299c0520e899e06b5b4e9f009643
Fixes: 124399577
Test: robolectric
adb shell am start -a android.settings.panel.action.WIFI
adb shell am start -a android.settings.panel.action.VOLUME
Change-Id: I9e13357444e4ebeee50fb8cc68fbc974ce5fffb6
Add/remove the SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS flag into/from
SettingsHomepageActivity and SettingsPanelActivity with lifecycle.
Bug: 138442483
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.homepage
make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.panel
manual test
Change-Id: I72f9a947f57f74a8c09127d6c39173594c248ddc
Remove @Ignore for tests in settings/panel after testing.
Also update VolumePanelTest according to the recent changes to
remote volume slice.
Test: atest PanelFragmentTest
Test: atest SettingsPanelActivityTest
Test: VolumePanelTest
Fixes: 130896218
Change-Id: Iaa99e65d959cafd382d7209664f2fdbf660c29e0
The old logging only include see_more, done, and clicked_out when hiding
the panel page. We were missing many cases that user might use back
button, app switch button to close the page.
Update the hide page keys to change the clicked_out to others to
include all the other cases which hide the page.
Test: Manual verification
Test: atest PanelFragmentTest SettingsPanelActivityTest
Fixes: 130169553
Change-Id: Icede9a8dcb84565cba183963c9fb554507631c98
- Remove media stream stuff, use active device info as header.
- Show the sub title of media device.
- Add new requirement, when user click disconnected bluetooth device,
will auto connceted it.
- When bluetooth state is off, do not showing content of slice.
Bug: 127201385
Test: make -j42 RunSettingsRoboTests
Change-Id: Ie1880ba3ef9910a42caf0cca2b6502e54787f5a0
The 3 main categories are:
- Panel Opened
- Panel Closed
- Panel Slice interaction
There are 3 close events:
- See more button
- Done button
- Clicking outside the panel
Slice interactions will log the Uri of the Slice and the ActionType,
such as Toggle, Slider, Content (intent).
Change-Id: Iecad948f39f50dd12ae1bcb23a5d523e0df8bb98
Fixes: 117804231
Test: robotests
Add media output panel type to launch media output slice.
Bug: 121083246
Test: make -j RunSettingsRoboTests
Change-Id: Ibf706146430e309fef6cbf0e1e86c2d5b78b50d5