- This CL update customize button title when
onCustomizedButtonStateChanged() is called.
- Add test case
Bug: 152002708
Test: make -j42 RunSettingsRoboTests
Change-Id: I85c9cf90305757e279c058db2875e303b4add437
-Apply Metadata Description rule for title and subtitle
-Add test cases
Bug: 151889011
Test: make -j50 RunSettingsRoboTests
Change-Id: I46b79a8a64daf99b248742b96fb144cf77e685b4
-Entry point is available only when there are more than 1 connected device
-Add group Slice item when it is available
-Add intent filter in manifest
-Add test case
Bug: 146813761
Test: make -j42 RunSettingsRoboTests
Change-Id: If398b7a31219fd1910503d96fe7593622528c792
When updating the panel after getting a second intent to the
activity, there is a small window of opportunity for the user
to close the activity before the animation ends, causing an
NPE when onFinish is called as the activity already closed down.
This change will check that there is an activity before trying
to finish it.
Bug: 150322041
Test:
For an easy way to reproduce this, turn the screen on and run the
following in a terminal:
while true; do adb shell am start -a \
android.settings.panel.action.INTERNET_CONNECTIVITY; \
sleep 0.1; done
Then press the back button while the screen is attempting to
display the fragment. There should be no Settings crash.
Change-Id: I4ca831d71a7221a7a4a62bb29e802f507ce5213c
-Rename PanelCustomizedButtonCallback to PanelContentCallback
-Add onGroupChanged in PanelContentCallback
-Add test cases
Bug: 146813761
Test: make -j42 RunSettingsRoboTests
Change-Id: I60888efbbd0fc2878467418e55c70887a9d3f405
This CL add a customize button to stop casting when media
is transferred to info device.
This CL include following change:
- Add new methods to PanelContent.java. Let panels to
customize "see more button".
- MediaOutputPanel will check which device is used to
transfer media currently. The customize button will
shown on when transfer device is info device.
Then user can use this button to stop casting.
- Add test case.
Bug: 147856563
Test: make -j42 RunSettingsRoboTests
Change-Id: I8b201a10339f39f1d938d99b5659a82014e5bb89
-title shows artist
-subtitle shows album
-add test cases
Bug: 147776885
Test: make -j42 RunSettingsRoboTests
Change-Id: Ib33e5550e668d8cc5d70051ea2e7dd74d61c767a
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
Merged-In: I72f9a947f57f74a8c09127d6c39173594c248ddc
Create below version 2 files for WifiTracker2 development, we can
check the feature flag only a few times and easily remove version 1
files in the future.
src/com/android/settings/wifi/details2/
src/com/android/settings/wifi/savedaccesspoints2/
tests/robotests/src/com/android/settings/wifi/details2/
tests/robotests/src/com/android/settings/wifi/savedaccesspoints2/
Bug: 143326832
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi.details2
make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi.savedaccesspoints2
Change-Id: I4d2caf1ce313871605252395764b02747240f217
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
SliceLiveData changed its behavior, if slice is null, it will not
notify LiveData observer but callback to onErrorListener. We only
reduce PanelSlicesLoaderCountdownLatch in LiveData observer.
Therefore the error slice caused PanelSlicesLoaderCountdownLatch
never count to 0, the UI was not displayed. It is solved by reducing
PanelSlicesLoaderCountdownLatch in onErrorListener and also not return
null in MediaOutputIndicatorSlice.
Test: manual
Fixes: 141084035
Change-Id: Iddb2dbdc0e0d2ac3e26071960bb667937f181121
Only add divider in recyclerView once or more and more dividers
will be set in recyclerView.
Change-Id: I765ed888d460be221341dafe3521a849b8dd3889
Fix: 139452947
Test: Show panel many times and see the divider.
We use updatePanelWithAnimation() to make old panel animated out
and new panel animated in. But if old panel is in background, we
don't need the animation out process. Use a flag mForceCreation
to check, if activity is onStop() means it is in background, we
don't need the animation.
Fixes: 140541182
Test: manual
Change-Id: I9a2f555dba5417a108ce35fac25a62cf7a8b1d8b
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
Set panel launch mode to singleInstance to avoid panel can show up
infinite time when user keep launching panels (Easy repro by
pressing volume hard key > settings again and again).
After changing launch mode to singleInstance, we will need to do
some refactors, to avoid weirdness when adding/changing/closing
panels:
1. Move and refactor logic in SettingsPanelActivity#onCreate.
We will need onNewIntent here to handle Panel launching, since
we only have one instance of SettingsPanelActivity now.
Also do refactor here to reuse the PanelFragment instead of
creating one every single time, to better handle the exit
animation, avoid janky exit behavior from the old PanelFragment
2. Move logic from PanelFragment#onCreateView, to reuse it when
updating panel content.
Also add exiting animation when we are transitioning the panel
from one to another. Also add alpha animation to make it move
more smoothly.
3. Adding flags to launch see more intent in settings.
Fixes: 131225920
Fixes: 131254399
Test: manual
Change-Id: I93d3708bd02a2d736e38685475f2d9988ef62d31
Update log key to slice uri since previous key has no meaning.
Previously it is something like:
androidx.slice.widget.SliceLiveData$SliceLiveDataImpl@1a30b5
Bug: 131094876
Test: Manual
Change-Id: I52d605eb826821ef622aa075c04f829c60692976
Setup a max allowed num for PanelSlicesAdapter to prevent too
many slices showing in single panel.
Test: Manual verify
Test: atest PanelSlicesAdapterTest
Fixes: 129358092
Change-Id: I7b72a29489e597b8309d74841eaeab0fe42aace6
Settings Panels as a dialog have a default animation for entering the
screen, but Slices complicate the animation. While the dialog enters the
screen, Slices begin to bind, thus changing the height of the dialog as
it enters, causing perceived bounce / jank in the animation.
This CL is cherry-picked/based on ag/6671083 but do the following modification:
(See the original commit message for the whole concept)
When trying to load all the Slices, there are few possible situations:
1. Slice starts loading slowly, starting at state LOADED_NONE
2. Slice is loading in progress, having state LOADED_PARTIAL
3. Slice is loaded, but there's error return from the Slice data (We don't
need to show the Slice in this case)
4. Slice is loaded, progress to state LOADED_ALL
5. Slice starts from state LOADED_NONE, but never progress to the next state
because it crashes at setting backend.
Notice that there are two cases that the state will stay at LOADED_NONE and
we can't distinguish them.
Hence, we decide to do the following:
If Slice is with error (case 3) we remove the slice from the list and mark it
loaded.
If Slice is loaded with LOADED_ALL (case 4, which is the ideal case), we mark
it as loaded.
In the other cases, we fire a handler to mark the slice loaded anyway after
250ms timeout.
When all the slices are marked loaded (which should happen after 250ms timeout,
we will animate the panel out. Although there might be slices which are still
partial loaded, we can still have the slice in the panel once it is ready.
The panel might bounce/jank in this case, but at least it will still showing
correctly, and should show up smoothly in most cases.
The solution to this problem is twofold:
1. Load all Slices first
2. Create a custom animation to draw the panel once the recyclerview has
been laid out.
Test: Manual/Visual inspection
Test: make -j40 RunSettingsRobotests
Bug: 123942159
Change-Id: I639a707aa4ba3f906bd6f9752c92727aaba28142
Issue before this CL:
RemoteVolumePreferenceController only return available when
it is casting, otherwise return CONDITIONALLY_UNAVAILABLE.
However slice database only index available controllers and keep
this cache. So remote slider won't be indexed if it is not casting
at that time.
As a tmp fix, this CL make controller always return available
unsearchable to make it indexed by database. However only add
that slice if it is casting.
Bug: 130124950
Test: RunSettingsRoboTests
Change-Id: I191144844d6ba7ccbe3dc1c9d19801adb978abc6