Commit Graph

63 Commits

Author SHA1 Message Date
timhypeng
a7a73c4c92 Rename MediaOutputSliceConstants to MediaOutputConstants
-Slice is not used and it is better to remove the slice string

Bug: 165772904
Test: build pass
Change-Id: I38b26187f03509d0d9f5cdb8ef30f3f3ef8779d8
2020-12-24 01:07:24 +00:00
timhypeng
deb93069c3 Remove MediaOutputPanel and MediaOutputSlice
Bug: 174192979
Test: build pass
Change-Id: Ibbbb9e7865ae991d13cd7a2d4fb9c5c75a689dea
2020-12-17 13:37:39 +08:00
timhypeng
1602bccd9e Remove MediaOutputGroupSlice
Bug: 170558292
Test: build pass
Change-Id: I06c710a8b06c8666cb2cf5198d5b59eda7a7649a
2020-12-15 09:47:39 +08:00
Hugh Chen
3a7293cbbf Fix output switcher will show 2 media session in some use cases
Before this CL, we didn't check whether the remote session existed
in the list before. If priority of remote session is higher than
local session, it causes us to return the local session even if
the list has a remote session.

This CL uses a list to cache package names of remote sessions.
If the local session has the same package name of the remote session
then don't return the local session.

Bug: 169052790
Test: make -j42 RunSettingsRoboTests
Change-Id: I2726a3deb397f646e4c74a8c445dde6fafb694a8
2020-10-16 16:08:48 +08:00
Hugh Chen
e16a8077b5 Fix output switcher will show 2 media session when remote playing
Before this CL, output switcher will show 2 media sessions when
some apps are remote playing. The root cause is some apps will
also create local media sessions when they cast media to remote
playing.

This CL add condition to only show remote sessions on output switcher
if apps both have remote and local sessions.

Bug: 169052790
Test: make -j42 RunSettingsRoboTests
Change-Id: I80479d35b2bb2e353cf41f41f457f2dfd15cadbf
2020-10-14 17:58:47 +08:00
timhypeng
eee759ea29 Update rule of launching media output dialog
-Do not hide Media Output Dialog in Settings, and let dialog handles
-Hide Media output slice panel when launching dialog

Bug: 155822415
Test: make -j50 RunSettingsRoboTests
Change-Id: I16732f625f100b259d6e53c85db40af0ec1652c5
2020-10-08 16:29:28 +08:00
timhypeng
3084d063f3 Update OutputSwitcher from MediaOutputSlice to MediaOutputDialog in Settings
-Update entry point at media indicator in volume panel
-Update entry point at remote media slice in volume panel
-Update entry point at remote volume group in Sound Settings
-Update entry point at media output preference in Sound Settings
-Hide Media output dialog when the caller is not active

Bug: 155822415
Test: make -j50 RunSettingsRoboTests
Change-Id: Ib6c86067522925c439f336644e4d027dbae3379c
2020-10-08 16:18:43 +08:00
Hugh Chen
b6840ced0d Disable entry point of output switcher
It adds a minimum value if it shows only one available
cast device in the output switcher. Because users can only
change the volume slider or stop control in the output switcher.
It's too hidden to have the user stop cast in the UI.

- This CL will disable the entry point of the output switcher
  if there is only one available cast device in the list.
- Update test cases.

Bug: 163095048
Test: make -j42 RunSettingsRoboTests
Change-Id: I8906878e1ba769d6940041f17d83b5de6b2a32c0
2020-09-25 02:38:19 +00:00
timhypeng
b5527e329b Fix test case fail
Bug: 160956047
Test: make -j50 RunSettingsRoboTests
Change-Id: Ib975e906aefc44c59a8465a586832d92664f5147
2020-07-13 10:29:11 +08:00
Hugh Chen
336ff700a2 Fix com.android.settings.media test case fail
Bug: 159760643
Test: make -j42 RunSettingsRoboTests
Change-Id: I17246088ade1b5e17974ccf24a5e40b915146574
2020-06-24 10:54:43 +08:00
Jason Chiu
0625bb4815 Fix the overlapping problem of the burst of slice updates
Implement a throttle in SliceBackgroundWorker to control slice updates.

Test: robotest
Fixes: 152366832
Change-Id: I8b65d1b57973e036b932172627aca506f4fae3a4
2020-06-18 02:18:38 +08:00
TreeHugger Robot
dd356c5653 Merge "[ANR] Settings froze" into rvc-dev 2020-05-29 06:37:53 +00:00
tim peng
6febf2c629 Merge "Improve feedback when failing transferring a disconnected device" into rvc-dev 2020-05-29 05:09:07 +00:00
Tim Peng
0989586ce2 [ANR] Settings froze
-To handle getActiveLocalMediaController() in a background thread
-To update test cases for waiting LocalMediaManager initial in
 background thread

Bug: 157522889
Test: make -j42 RunSettingsRoboTests
Change-Id: I27cd282a89ac9cfb6a098843f7282d5b94d98402
2020-05-29 02:30:56 +00:00
Tim Peng
33914e738d Improve feedback when failing transferring a disconnected device
-Set "failed" string for subtitle
-Add test case

Bug: 157139936
Test: make -j42 RunSettingsRoboTests
Change-Id: I1fcd51f954a63cbc9ac0e573e5a8bb43cca6f087
2020-05-27 16:49:17 +08:00
Tim Peng
1af5b0cd7b Non-deselectable routes can be deselected
-Check deselectable list
-Add test case

Bug: 157098549
Test: make -j42 RunSettingsRoboTests
Change-Id: I254a9d3825319aa7b262d04e4f4c580f76afe381
2020-05-26 07:25:29 +00:00
tim peng
0581bd7f1c Merge "Output switcher shows the device list by an incorrect package name" into rvc-dev 2020-05-18 05:22:50 +00:00
Tim Peng
77bec31eb5 Output switcher shows the device list by an incorrect package name
-Reset package name when it is different with previous one
-Add test case

Bug: 156561856
Test: make -j50 RunSettingsRoboTests
Change-Id: I7931ebbc59ab404f12473fe29f2735ad3a8197fd
2020-05-15 06:26:03 +00:00
Tim Peng
a5280fcc51 "Play null on" displayed under media volume
-Reset package name when it is different with previous one
-Add test case

Bug: 156224161
Test: make -j50 RunSettingsRoboTests
Change-Id: Ifcacc171d86017b702f51343036e0ebf0e0d1989
2020-05-15 06:25:54 +00:00
Tim Peng
550fd3ef9a When only one device is selected in dynamic group, the device should be disabled
-Check if device id is in selected group rather than comparing client package name
-Add test cases

Bug: 154916764
Test: make -j50 RunSettingsRoboTests
Change-Id: I7364a9e3d807bbfc6b26b8212ab2da67ea329582
2020-05-12 01:44:56 +00:00
Tim Peng
2ef5a87f36 Update "Play media to" to "Play <APP> on"
-Update in Volume panel and Sound settings
-Add test cases

Bug: 155345595
Test: make -j50 RunSettingsRoboTests
Change-Id: Id971038ddbf22924a747e4e1be3597face7ec6ed
2020-05-06 10:17:15 +08:00
Tim Peng
e9b91f08c4 Modify rule of remote media session UI
-Add preference by remote session in Sound Setting
-Add slice item by remote session in Volume panel
-Replace media device data with media session data
-Add test case

Bug: 154918214
Test: make -j50 RunSettingsRoboTests
Change-Id: Ib1c873c9f99eebcba377f4115c4b9b4297b20c3d
2020-05-04 12:21:20 +08:00
TreeHugger Robot
2152d0ce4f Merge "Hide the "play media to" option" into rvc-dev 2020-04-27 09:55:56 +00:00
hughchen
d02c31e693 Hide the "play media to" option
This CL will hide the "play media to" option is there are no active
media session and media state is not playing.

Bug: 154457882
Test: manually test
Change-Id: If272a336f06b51e7a2e1605c8dc092b2ca134c25
2020-04-27 11:42:06 +08:00
Tim Peng
c433a867b3 Dynamic grouping failed the first time
-Check if Worker is null
-Add test case

Bug: 154875482
Test: make -j50 RunSettingsRoboTests
Change-Id: I84572ef77cc9a48c3133d96fd2255754bc1cf67c
2020-04-24 07:45:24 +00:00
Tim Peng
5308d5f88b Fix Robotest failed
Bug: 154578656
Test: make -j50 RunSettingsRoboTests ROBOTEST_FILTER=MediaOutputGroupSliceTest
make -j50 RunSettingsRoboTests ROBOTEST_FILTER=MediaOutputSliceTest

Change-Id: If675c27ac412c2a49f9ed1c9b71a84c172f54fd6
2020-04-21 17:14:13 +08:00
Tim Peng
cfd862db37 Tapping on Play media can have up to a 1 minute delay
-Set Output Switcher activity in PendingIntent
-Broadcast is super lagged right after reboot
-Not to send broadcast to itself in order to launch Output Switcher
-Add test case

Bug: 152909957
Test: make -j42 RunSettingsRoboTests
Change-Id: I17280a3bb9e47aa6050cfaf1463c780cd9849ad7
2020-04-13 14:44:53 +08:00
Tim Peng
2f87c336da Settings crashed by a null worker
-Add worker checker
-Add test case

Bug: 153356562
Test: make -j42 RunSettingsRoboTests
Change-Id: I129ff63a48b3785aacc846fe1dd67a926a8e5e1f
2020-04-07 07:48:38 +00:00
Tim Peng
85055801fe No feedback when attempting to transfer to an unpowered BT device
-Set title and subtitle when connecting state changes
-Add test cases

Bug: 152606143
Test: make -j42 RunSettingsRoboTests
Change-Id: I1c482e8f45752d658d7898de760594fd3ec7164d
2020-04-06 01:19:28 +00:00
Tim Peng
e4ccbbec67 PendingIntent in MediaOutputIndicatorSlice could be Hijacked
-Add setPackage() to prevent local information disclosure

Bug: 151645695
Test: make -j42 RunSettingsRoboTests
Change-Id: I74c058a381fceb85695dd76d354fb49f878f9142
2020-03-30 03:53:02 +00:00
Tim Peng
9d3092cb7f Add zero state in output switcher
-Update visibility of switcher preference in SoundSetting
-Update visibility of indicator slice in Volume Panel
-Add test case

Bug: 152357002
Test: make -j50 RunSettingsRoboTests
Change-Id: I8aa4e960b72f2c3c26ced78153c4ff620a123f40
2020-03-27 12:31:26 +00:00
Tim Peng
dd39f44344 Handle ransferring state in output switcher
-Add subtitle on Slice item for transferring and failed case
-Add test cases

Bug: 150903460
Test: make -j50 RunSettingsRoboTests
Change-Id: I45fee20194dc6c9ec86ca88158393dfda455d0c0
2020-03-12 16:29:30 +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
9c2968ab21 Update rule to display output switcher Slice
-Display when Cast device is available
-Add test case

Bug: 150907688
Test: make -j42 RunSettingsRoboTests
Change-Id: I1aa2fbe7b77a0274816af47bbc372eae9d7944c9
2020-03-09 16:29:53 +08:00
Tim Peng
37e8a34a40 Update failed test case
Bug: 150909916
Test: make RunSettingsRoboTests -j42
Change-Id: I541eea02cfa553f44e6da09c993e58ef5efb1471
2020-03-06 14:53:16 +08:00
hughchen
fbea0dc06d Ignore failed test cases
Bug: 150909916
Test: make RunSettingsRoboTests -j42
Change-Id: Ice6c8e635a0a39c0cf86ad60e0175222cf32cf4b
2020-03-06 14:52:22 +08:00
tim peng
09ff25cdf9 Merge "Add slice for dynamic grouping in output switcher" into rvc-dev 2020-03-04 02:35:35 +00:00
Jaewan Kim
18e16e416d Merge "Fix MediaSession.Token#equals()" into rvc-dev 2020-03-02 06:28:20 +00:00
Jaewan Kim
9f9ac53fe6 Fix MediaSession.Token#equals()
This also fixes the Activity#setMediaController() which previously
ignored because the MediaSessionService failed to find session set to
the foreground activity.

Bug: 149006225
Test: Run MediaActivityTest in CtsMediaTestCases
Change-Id: I18d3097f7b20275a20b1de789be6884f843668ae
2020-03-02 02:46:44 +09:00
timhypeng
95bd75e97b Append status to title for the disconnected Bluetooth device
-Set gray color for status
-Remove status text in subtitle
-Add test cases

Bug: 149176483
Test: make -j42 RunSettingsRoboTests
Change-Id: I5ebb4e080f43d4c0fc00d87a4732ace76c2d806e
2020-02-27 08:10:51 +00:00
timhypeng
7dfd41f6b1 Add slice for dynamic grouping in output switcher
-Add group operation slice to edit the group and do the volume adjustment
-Add grouping API in slice worker
-Add test cases

Bug: 146813761
Test: make -j42 RunSettingsRoboTests
Change-Id: Ide0df5e3934bc8ac68aaa67fcbd6173a4454ac7f
2020-02-27 06:28:15 +00:00
Tim Peng
14d0d125b4 Launch output switcher with media package information
-Output switcher would include transferable devices when media is active
-Output switcher would only include system devices when no media is active
-Add test cases

Bug: 150179490
Test: make -j42 RunSettingsRoboTests
Change-Id: Ice0048d3a0b78e02ec21dd3664efc0239abbb9cb
2020-02-25 15:45:56 +08: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
6fc2f84a4e Apply RichInputRangeBuilder
-Add volume control
-Add test case

Bug: 146813957
Test: make -j42 RunSettingsRoboTests
Change-Id: I250b8447ed133212b6325eff5122ca39069c99d9
2020-02-03 14:17:05 +08:00
hughchen
1045823b3c Fix ConcurrentModificationException
Use CopyOnWriteArrayList instead of Arraylist to
avoid ConcurrentModificationException.

Bug: 147334979
Test: make -j42 RunSettingsRoboTests

Change-Id: I669f379d3eba6a086c6bd97cde2b78d92fb5c481
2020-01-15 09:23:28 +08:00
hughchen
c770c9133a Update output switch UI
This CL include following update:

1. Add onDeviceAttributesChanged() callback to update UI
   when device attributes are changed.
2. Fix the top device when user press device to transfer.
3. Update UI when device is on goning call state and receive
   STREAM_DEVICES_CHANGED_ACTION intent.

Bug: 144535188
Test: make -j42 RunSettingsRoboTests
Change-Id: Idd5fb95054db30f8184faf4f6ab75d0b550907a1
2020-01-14 16:45:28 +08:00
hughchen
6b3856d5de Get package name on worker instead of on slice
Bug: 144535188
Test: make -j42 RunSettingsRoboTests
Change-Id: I3aa9c7ccf8df23527b8d2b79033c96ec1289c7ea
2019-12-23 11:20:13 +08:00
Tsung-Mao Fang
6a2d48d158 Ignore all failed test cases
Test: Run all robo test
Bug: 144405844
Bug: 144407418
Bug: 144407438
Fix: 144406422
Bug: 144405885
Bug: 144408475

Change-Id: Ia94636632106206b062d35b2ca53a028d0cbc35d
2019-11-13 20:31:01 +08: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
hughchen
059cb397cd Update slice states when on Voip calling
This CL is used to register intent of AudioManager.STREAM_DEVICES_CHANGED_ACTION
to know that phone is on VOIP call. When received this intent, media slice will
to update UI. Then if audio mode is on-going call, we will hide the slice UI.

Bug: 132198606
Test: Test: make -j42 RunSettingsRoboTests
Change-Id: Ic17ebd319b3da8f42089d36ba530cfb57c93c4c6
2019-09-09 11:01:44 +08:00