Commit Graph

76 Commits

Author SHA1 Message Date
Yi-Ling Chuang
350affcdfa Fix Talkback annoucement for Media Output panel.
The sound panel and media panel are using the same window, so when it
transit from the sound panel to media panel, no window-change event will
be sent. Therefore, Talkback won't be able to re-focus the panel header
which lead to the lack of the announcement.

Fix this by adding setAccessibilityPanelTitle() to trigger Talkback.

Fixes: 140459762
Test: rebuild and test talkback on the media output panel.
Change-Id: I1442434315374dbbfe1d47ca8638180577c93168
2020-05-25 13:51:06 +08:00
tim peng
764387772f Merge "In Media Switch output panel, Switch access shouldn't select the first device when selecting the device list" into rvc-dev 2020-05-15 03:04:52 +00:00
Tim Peng
493e1a62c8 In Media Switch output panel, Switch access shouldn't select the first device when selecting the device list
-The group view should not be clickable
-Disable view clickable flag

Bug: 151126466
Test: make -j50 RunSettingsRoboTests
Change-Id: Ia617f436a615168d422d208959db5513b38e6564
2020-05-14 15:19:39 +08:00
Jason Chiu
8ac1e4d49d Update icon tint color when the user toggles Dark theme
- Reload theme in slice provider when Dark theme mode changes for slices
- Reload theme in onCreate of Panel activity for its non-slice header
- Remove applyTheme from individual slices

Test: robotest
Fixes: 153700819
Change-Id: I40a7d2817c4b9100d7b2f2962a69c8a9ce6f7906
2020-05-12 10:58:54 +08:00
Tim Peng
2f47d771fb Add 12dp padding above the first slice item
-Add an extra padding in adapter for dedicated panels
-Add test cases

Bug: 154181365
Test: manual test
make -j50 RunSettingsRoboTests
"adb shell am start -a android.settings.panel.action.INTERNET_CONNECTIVITY"

Change-Id: I65bc26c23ca5a7f1b433c36ac7ddf1a658793719
2020-05-06 09:04:25 +08:00
Jason Chiu
1f91111c3a Merge "Fix the incorrect title of Panel" into rvc-dev 2020-04-22 06:30:12 +00:00
Jason Chiu
4bbc85eb54 Fix the incorrect title of Panel
Since panel activity is singleInstance, a newer panel will reuse the
same fragment as the previous panel when they are displayed one after
another.

Panel fragment has two kinds of exclusive header layout which shouldn't
be showed at the same time, so we have to reset their visible states
when creating panel content.

Fixes: 154668079
Test: robotest
Change-Id: I701a7cde4b43322fbc63ae1cb74c41dd23b37c0c
2020-04-22 06:29:57 +00:00
tim peng
58f9d0c7b9 Merge "Change the wording from "Stop casting" to "Stop"" into rvc-dev 2020-04-21 05:51:25 +00:00
Tim Peng
4fe1de57a5 Change the wording from "Stop casting" to "Stop"
-The string is freezed. Reuse current "Stop" string

Bug: 153705889
Test: make -j42 RunSettingsRoboTests
Change-Id: I39184dcbfda5937677ab171a66ad5dcbbb8e6b68
2020-04-21 10:22:15 +08:00
Tim Peng
e54e0296ca Incorrect panel layout after rotation
-Handle onConfigurationChanged and force to update layout
-Add test case

Bug: 144751509
Test: make -j42 RunSettingsRoboTests
Change-Id: Ic170d4f6f045299c0520e899e06b5b4e9f009643
2020-04-15 03:16:30 +00:00
Tim Peng
eb0531f0df Output switcher subtitle modification
-Change from null to "Switch output"
-Update test case

Bug: 153834179
Test: make -j42 RunSettingsRoboTests
Change-Id: I184e78292e982f8a93b74612331a1d2cab28d07a
2020-04-13 11:49:18 +00:00
Tim Peng
6fb4059944 Transferring to a cast device should not close the output switcher
-Close panel only when on pause and stop
-Transfer device would set the play state to "STATE_NONE"
-Add test case

Bug: 152632226
Test: make -j42 RunSettingsRoboTests
Change-Id: Ibf6ce1454b1d5bf3facc07abec15b8735029f2cf
2020-04-07 08:02:30 +00:00
tim peng
5b0913c2b6 Merge "No media status is visible in Output Switcher" into rvc-dev 2020-03-31 02:04:48 +00:00
Tim Peng
3ac144163e No media status is visible in Output Switcher
-Reflash header when get latest media controller

Bug: 152606491
Test: make -j42 RunSettingsRoboTests
Change-Id: I14542a7f8ba921c9d1dbaacf7e01c3ee673527b2
2020-03-30 16:20:14 +08:00
hughchen
bc5f2fad33 Update customize button title when state changed
- This CL update customize button title when
  onCustomizedButtonStateChanged() is called.
- Add test case

Bug: 152002708
Test: make -j42 RunSettingsRoboTests
Change-Id: I85c9cf90305757e279c058db2875e303b4add437
2020-03-26 10:40:16 +08:00
tim peng
f8f1b271b1 Merge "Update header information in output switcher" into rvc-dev 2020-03-23 01:47:25 +00:00
Tim Peng
93123a5c63 Update header information in output switcher
-Apply Metadata Description rule for title and subtitle
-Add test cases

Bug: 151889011
Test: make -j50 RunSettingsRoboTests
Change-Id: I46b79a8a64daf99b248742b96fb144cf77e685b4
2020-03-19 16:48:16 +08:00
Tim Peng
650eda307b Close panel when media stop
-Add forceClose callback to finish panel
-Add test cases

Bug: 151396986
Test: make -j50 RunSettingsRoboTests
Change-Id: Ic0ac2880a4ff412382816ccb41b4fbb60dbdf519
2020-03-19 10:02:35 +08:00
Tim Peng
36c4949414 Output switcher header is not updated with the latest media content
-Register media controller callback
-Update panel header when medadata changes
-Add test cases

Bug: 151396986
Test: make -j50 RunSettingsRoboTests
Change-Id: Id0b8f997899a96c0c94ca6bf099e624a9e87795b
2020-03-17 09:02:34 +08:00
Tim Peng
b4c4c362c5 Add entry point at output switcher to do group operation
-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
2020-03-10 13:44:09 +08:00
Tim Peng
db7d61d0a2 Adjust layout for Slice InputRange
-Make title to slider aligned
-Add test cases

Bug: 147462114
Test: make -j50 RunSettingsRoboTests
Change-Id: Ib1d076f77eae75e4f861a80873117b6254729fe5
2020-03-09 21:50:58 +08:00
tim peng
9a1701b42f Merge "Add dynamic group panel" into rvc-dev 2020-03-04 02:35:35 +00:00
Tim Peng
3405c3dfa9 Change volume panel title from "Volume" to "Sound"
Bug: 150337735
Test: manual
Change-Id: Icc457c2c1aae21282261549de47eeaf9c7219887
2020-02-27 08:11:39 +00:00
Tim Peng
a87985c4ae Add dynamic group panel
-Rename PanelCustomizedButtonCallback to PanelContentCallback
-Add onGroupChanged in PanelContentCallback
-Add test cases

Bug: 146813761
Test: make -j42 RunSettingsRoboTests
Change-Id: I60888efbbd0fc2878467418e55c70887a9d3f405
2020-02-27 06:29:01 +00:00
hughchen
63490a57cd Call releaseSession() when "stop casting" button click
Bug: 147856563
Test: make -j42 RunSettingsRoboTests
Change-Id: Id096b84af4d0c98cf6a24a17e7bd5723d1670c24
2020-02-24 05:45:49 +00:00
hughchen
201b48b885 Add stop casting button for output switch
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
2020-02-19 10:05:44 +08:00
timhypeng
cc0069e42f Add listener for panel header icon
Bug: 146813761
Test: make -j42 RunSettingsRoboTests
Change-Id: I473b535593d4ecb445027d6c7dafbb235a70ffcf
2020-02-14 10:38:27 +08:00
TreeHugger Robot
ff6e341509 Merge "Add remote media slice in volume panel" 2020-02-12 01:34:15 +00:00
timhypeng
b266fa6029 Add remote media slice in volume panel
-Add test cases

Bug: 142772656
Test: make -j42 RunSettingsRoboTests
Change-Id: I62d3054a4343ed2c7fbb0b4d7aeb5a48da194b02
2020-02-06 14:38:13 +08:00
timhypeng
0c4db3170d Add title and icon in output switcher panel header
-title shows artist
-subtitle shows album
-add test cases

Bug: 147776885
Test: make -j42 RunSettingsRoboTests
Change-Id: Ib33e5550e668d8cc5d70051ea2e7dd74d61c767a
2020-02-05 21:52:03 +08:00
timhypeng
0206434667 Define ICON_UNAVAILABLE for no icon status
Bug: 147776885
Test: make -j42 RunSettingsRoboTests
Change-Id: I0fd0e203bb7590955d0caf2679ebc78be68b4e50
2020-01-20 13:57:02 +08:00
timhypeng
adae7475b0 Add title and icon in panel header
- Add getIcon() and getSubTitle() in PanelContent
- Check icon avalibility to decide header layout
- Add test cases

Bug: 147776885
Test: make -j42 RunSettingsRoboTests
Change-Id: Idb51e81359b6037ca9b90965dd9b370fc5e22c84
2020-01-20 13:43:19 +08:00
timhypeng
e60684c175 Extend panel max slice number to six
Bug: 147332809
Test: make -j50 RunSettingsRoboTests
Change-Id: I523af9ba1b2bd172cb544bf7d6ddb15f5f9d5aef
2020-01-08 05:41:22 +00:00
Arc Wang
75dc89b122 [Wi-Fi] Create WifiNetworkDetailsFragment related version 2 files for WifiTracker2 development
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
2019-11-15 14:41:23 +08:00
Raff Tsai
dfba9a0f6d Change Panels creation interface to take a bundle
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
2019-10-18 13:21:18 +08:00
TreeHugger Robot
62aa86145c Merge "Fix volume panel hang" 2019-09-18 06:04:53 +00:00
Raff Tsai
d9cfbaf3b5 Fix volume panel hang
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
2019-09-18 11:40:46 +08:00
Tsung-Mao Fang
b455d58c03 Only add divider in recyclerView once
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.
2019-09-16 15:31:42 +08:00
Raff Tsai
24500ce1fd Fix settings panel refresh issue
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
2019-09-09 10:31:18 +08:00
Raff Tsai
ad004e9beb Fix media switch slice doesn't display in panel
Fixes: 140396725
Test: manual
Change-Id: Idf0b766ce5f4316ff90a23faf3083cdee9854562
2019-09-04 11:34:23 +08:00
Jason Chiu
e856e2b738 Change deprecated slice APIs to new ones
Bug: 138979954
Test: robotest
Change-Id: Ibc430f9975d4e40be00ae4ba61833e94cd090a0c
2019-08-14 11:34:27 +08:00
Sunny Shao
647e49e7cf Add Tapjacking Protection for SettingsHomepageActivity
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
2019-08-01 23:36:12 +08:00
Fan Zhang
ec81d6121e Override 2 getSliceUri() instance to return platform slice
Bug: 126222433
Test: robotest
Change-Id: I3f9c8202d9b75b24b80ebcf385abc95f8df851e2
2019-05-30 16:50:43 -07:00
lindatseng
be70aaa6c4 Add null check to precent crash in monkey test
Fixes: 133259172
Test: manual
Change-Id: Ib4dd24965fda40a7a917397bf558309e0424bf16
2019-05-22 10:36:50 -07:00
lindatseng
943d649f73 Fix crash on panel rotation
Should force PanelFragment creation on rotation change.

Change-Id: If2ccae7dbc4278103c95621743570b37113746f7
Fix: 132587339
Test: Manual
2019-05-13 19:48:59 +00:00
lindatseng
2943c1de7a Set panel launch mode to singleInstance and fix animation
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
2019-05-10 07:14:13 +00:00
Lei Yu
3aacfca16f Fix issue in panel logging
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
2019-04-24 12:50:46 -07:00
lindatseng
634d8b3ee4 Set max num of slices allowed in panel view
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
2019-04-16 17:28:14 -07:00
Linda Tseng
71df263db9 Merge "Add entry animation to Settings Panels." into qt-dev 2019-04-16 18:57:47 +00:00
Matthew Fritze
b6fdd25c23 Add entry animation to Settings Panels.
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
2019-04-16 16:29:04 +00:00