Commit Graph

73 Commits

Author SHA1 Message Date
TreeHugger Robot
35adcca607 Merge "Update customize button title when state changed" into rvc-dev am: b11a46cfd5
Change-Id: Ida02e3e49ab0210d8494d6e919b5048895f1eae0
2020-03-27 03:28:47 +00: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
f51bd0decb Merge "Update header information in output switcher" into rvc-dev am: f8f1b271b1
Change-Id: I2406caf1ecdb217658c310f4db948c627adcf790
2020-03-23 01:59:00 +00: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
8e8ac25c41 Merge "Close panel when media stop" into rvc-dev am: 91ad46fa60
Change-Id: I0015e42b8a6e1bf4fd0c96807e2465a12af84df9
2020-03-19 06:26:54 +00: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
Automerger Merge Worker
bd59e9ad27 Merge "Output switcher header is not updated with the latest media content" into rvc-dev am: 95cd4c9414
Change-Id: Iada645d9939d5b7343d1ebef27ccba669e9dc268
2020-03-17 03:45:43 +00: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
Automerger Merge Worker
48d161b7b0 Merge "Add entry point at output switcher to do group operation" into rvc-dev am: 378ca1dac4
Change-Id: Ic0758e620662f68ee614e4478e26bad1468b0c70
2020-03-10 08:25:59 +00: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
Automerger Merge Worker
a6b501c926 Merge "Adjust layout for Slice InputRange" into rvc-dev am: af4d55e7dd
Change-Id: I54caf734aa1e1e43ac5d85c5bdcc736cbcc75aff
2020-03-10 03:21:11 +00: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
Automerger Merge Worker
b856ed655c Merge "Add dynamic group panel" into rvc-dev am: 9a1701b42f
Change-Id: I57a4099c7aca8c366bf2740c29f8a17577ef1cc0
2020-03-04 02:39:02 +00:00
tim peng
9a1701b42f Merge "Add dynamic group panel" into rvc-dev 2020-03-04 02:35:35 +00:00
Automerger Merge Worker
6ad23a342d Merge "Fix NPE in PanelFragment" am: 06cafcd733 am: 98e3ed4e5d
Change-Id: I710a54c16476313e83bf8ee9c12c0712a184c65c
2020-03-02 11:52:50 +00:00
Automerger Merge Worker
98e3ed4e5d Merge "Fix NPE in PanelFragment" am: 06cafcd733
Change-Id: Ia08ab086c610de141b4cadd2ae097b596351e46e
2020-03-02 11:37:36 +00:00
Daniel Hunt
26aaf07e9d Fix NPE in PanelFragment
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
2020-02-27 15:47:38 +01: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
Sunny Shao
a74060c1b7 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
Merged-In: I72f9a947f57f74a8c09127d6c39173594c248ddc
2019-12-19 02:59:10 +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
TreeHugger Robot
ee6825fd5b Merge "Add remote volume slider conditionally." into qt-dev 2019-04-16 12:46:55 +00:00
Lei Yu
c1dbd34b9d Add remote volume slider conditionally.
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
2019-04-15 13:49:46 -07:00
TreeHugger Robot
878236f318 Merge "Update panel logging to include all hide page cases" into qt-dev 2019-04-12 22:33:24 +00:00