Commit Graph

97 Commits

Author SHA1 Message Date
Jason Chiu
2989c50a23 Add highlight menu keys for all toggle pref controllers and custom slices
Bug: 204695404
Test: manual, robotest build pass, unit
Change-Id: Iad2e28ada8ddb766ffa7eff2c8dc581250cbd6f8
2021-11-01 15:00:18 +08:00
Tim Peng
9aaa97d5d9 Not support group volume control
-Disable in Sound Settings
-Remove from Volume Panel

Bug: 189270378
Test: make -j50 RunSettingsRoboTests
Change-Id: Ie4f8be8d694b3c69dd2596a1f88fcb68789eab45
2021-06-18 12:44:22 +08:00
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
tim peng
b802a1a878 Merge "Remove MediaOutputGroupSlice" 2020-12-15 07:10:03 +00:00
timhypeng
1602bccd9e Remove MediaOutputGroupSlice
Bug: 170558292
Test: build pass
Change-Id: I06c710a8b06c8666cb2cf5198d5b59eda7a7649a
2020-12-15 09:47:39 +08:00
Robert Luo
d7cfa55286 Migrate media output switcher metrics - 3/n
Bug: 172181610
Test: run statsd_testdrive 277 and check the
output correctness after content switching.

Change-Id: I5abb471452ec92670d220b2472eadbe77e243653
2020-11-30 10:33:28 +08:00
Hugh Chen
40d4e47b05 Add the explicitly mutable flag for creating a PendingIntent
- Android S+ to specify explicitly either FLAG_MUTABLE or FLAG_IMMUTABLE
  when creating a PendingIntent.
- Suggest to use the FLAG_IMMUTABLE as default. Change it to
  FLAG_MUTABLE while errors occur.

Fixes: 172207262
Fixes: 172207195
Fixes: 172205385
Fixes: 172204525
Fixes: 172205897
Test: build pass, manual test to paring blutooth device and doing
seamless transfer

Change-Id: Ic37b37bdbe6de6bdbad741985d3a920334240d80
2020-11-04 10:59:34 +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
c07b475843 Move isMediaOutputDisabled() from Utils to LocalMediaManager
- Move isMediaOutputDisabled() from Utils to LocalMediaManager.
  The isMediaOutputDisabled() is used to check whether should
  disable the entry point of media output, it's not a general
  method for Settings. To reduce the usage of Utils.java,
  it's better to let LocalMediaManager handle this method.
- Add test cases.

Bug: 169378895
Test: make -j42 RunSettingsRoboTests
Change-Id: I5dbed2ad4de6dca8105414f8b7d7ce7141e258bd
2020-09-29 11:27:39 +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
Hugh Chen
c3fe8d87d6 Fix output switcher will display previous media session
Before this CL, the same request code will cause intent to
be cached. It will cause the output switcher to display the
previous media session.

This CL uses the package name as an unique request code to
fix this issue.

Bug: 169077753
Test: make -j42 RunSettingsRoboTests
Change-Id: Iebfc7904609e243d5bf0222307bae98a952a3331
2020-09-23 10:20:19 +08:00
timhypeng
c3bd801a89 Add PairNewBluetoothReceiver to launch Bluetooth pairing page
-A new SystemUI dialog requires to launch Bluetooth pairing page
-Add receiver in manifest

Bug: 155822415
Test: build pass
Change-Id: I16767af3afb05eab7246be133011bc9148909d11
2020-09-08 06:24:08 +00:00
Hugh Chen
7f3efd4357 Fix cast volume control bar not work
Use hashcode as a requestCode id, since the
same requestCode will cause the intent be cached.

Bug: 163095633
Test: make -j42 RunSettingsRoboTests
Change-Id: I2c120f18e24a66aeff5565e952fa4064149ec540
2020-08-31 15:48:46 +08:00
timhypeng
113ac8102a Display "pair new" only when local output device is available.
-If media app does not support cast->phone transferring, local output
audio device is unavailable. "pair new" is for Bluetooth which should be
also unavilable.
-These types are local output audio devices:
TYPE_BUILTIN_SPEAKER
TYPE_WIRED_HEADSET
TYPE_WIRED_HEADPHONES
TYPE_USB_DEVICE
TYPE_USB_HEADSET
TYPE_USB_ACCESSORY
TYPE_DOCK
TYPE_HDMI

Bug: 163095048
Test: make -j50 RunSettingsRoboTests
Change-Id: Ib844c7546e1946cb87fac04cb8b2b8f4acf06451
2020-08-11 10:52:57 +08:00
Tim Peng
2b4f45574e Apply RangeBuilder amination for media transferring
-Replace transferring string with animation
-Set RANGE_MODE_INDETERMINATE mode when transferring
-Add padding parameter for indeterminate progress bar

Bug: 153615031
Test: make -j42 RunSettingsRoboTests
Change-Id: I11c99aaf0c9d585dc834b06919f062d44eefbf65
2020-06-09 06:48:07 +00:00
Hugh Chen
bf1de21131 Fix output switch will show empty slice
Use MediaDevice in the list to add row instead of use connectedDevice.
Becauae connectedDevice that got from getCurrentConnectedMediaDevice()
could be null.

Bug: 157611605
Test: make -j42 RunSettingsRoboTests
Change-Id: Ib51e3e436e65a9aaa5a35488191b8b2ad9cb6a4b
2020-06-01 16:31:52 +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
Robert Luo
b7d1aa8efa Add data collection and metrics for Media Output Switcher - 2/n
Fixes: 147792668
Test: ./out/host/linux-x86/bin/statsd_testdrive Atom_ID
Change-Id: I1a34228da75c197663bcfe909c961e57665590d4
2020-05-21 18:00:50 +08:00
Tim Peng
17e2e158c4 Talkback focus doesn't move in liner order after tapping selected option in switch device panel
-Not to reflash UI to reset the focus order
-Reflash UI only when connect() is valid

Bug: 156336275
Test: make -j42 RunSettingsRoboTests
Change-Id: Ibb20252167ba13309065e4672f92cdf645661a0e
2020-05-19 10:08:14 +08: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
72638462e1 Merge "Display previous active media information" into rvc-dev 2020-05-15 02:10:54 +00:00
Tim Peng
a402e4f3ce Display previous active media information
-Pending intent is not updated

Bug: 156561083
Test: make -j50 RunSettingsRoboTests
Change-Id: If4fdb85d7097bc48f0512b3d11f950af1d57dcd7
2020-05-14 13:32:51 +08:00
tim peng
8d2c8f1f33 Merge "When only one device is selected in dynamic group, the device should be disabled" into rvc-dev 2020-05-14 01:35:44 +00: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
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
55ce33fbe7 Incorrect checkbox icon in dynamic group panel
-Mutate icon to prevent modifying the original resource

Bug: 154673054
Test: build pass
Change-Id: I0e1a6506cb951f80f316649d27c7728132c05be6
2020-04-22 13:50:46 +08:00
Tim Peng
e94de7fbb2 The volume slider should not show for the unselected device
-Design changes

Bug: 154555379
Test: Manual test
Change-Id: Icb127867911bc4bba0b77ce374332451b23f1215
2020-04-21 09:10:02 +00:00
Tim Peng
71dd32ded0 Hide volume slider in Output Switcher when volume adjustment is restricted
-Check UserManager.DISALLOW_ADJUST_VOLUME
-Hide slider when unsupported

Bug: 153922342
Test: 1.Open CTS-V app > Device Owner Tests
2.install CtsEmptyDeviceOwner.apk -"adb install -r -t CtsEmptyDeviceOwner.apk"
3.enter the command "adb shell dpm set-device-owner com.android.cts.emptydeviceowner/.EmptyDeviceAdmin"
4.push Check device owner button
5.open Policy transparency test and go to Disallow adjust volume > Enable the switch > Open settings.

Change-Id: Iac2793ead6d93d4eaada19c4eec33885d4b97138
2020-04-20 09:09:07 +00: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
TreeHugger Robot
cd329951ba Merge "Get MediaDevice from devices list" into rvc-dev 2020-03-31 04:26:31 +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
hughchen
649cddeb15 Get MediaDevice from devices list
The TopDevice that we cached will not update device infomation
when route is changed. We should get TopDevice from devices
list every time to confirm the device infomation is updated.

Bug: 151709228
Test: manual test to see ui is changed
Change-Id: Iede279b424d070dc7a0b30c369bed316e7ac223d
2020-03-25 17:24:26 +08:00