Commit Graph

48 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
Arc Wang
62c78ff3fa Migrate robolectric tests to junit tests
This change do the 2 things:

1. Add new junit tests files which replace robolectric
   RobolectricTestRunner & RuntimeEnvironment with
   AndroidX objects without problem.
2. Remove the robolectric test files which have it's new junit files.

This change migrate 103 files, there are still 1209
files to go.

Bug: 174728471
Test: atest
      make RunSettingsRoboTests
Change-Id: I15ed3f4745b85862f720aabbf710ce1475aced93
2020-12-16 11:17:57 +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
Beth Thibodeau
f01cce88fc Allow user to block individual apps from resuming
This adds a new section to the media controls settings screen with a
list of apps that could potentially be used for resumption. If an app is
toggled off it will be added to a list of apps which will not persist in
QS, even when resumption is on.

Also updated the strings on this setting page to match UX
recommendation, so the default toggle state is now on.

Bug: 161813143
Bug: 159852516
Test: manual
Test: atest SettingsProviderTests
Test: make -j40 RunSettingsRoboTests ROBOTEST_FILTER="ResumableMedia"
Change-Id: Id3de52419ffba233469396dd47439428201e5e00
2020-08-13 09:46:27 -04:00
Lucas Dupin
01327140f1 Merge "Delete media feature flag" into rvc-dev am: 9b01b8510a am: 91ba077612 am: 162d505e14 am: 82c3503d1e
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/12108974

Change-Id: I947c54909a719e97562c69664cdd66a30a7207dc
2020-07-13 17:43:25 +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
Lucas Dupin
42219fb395 Delete media feature flag
The feature will always be available, even for users who disabled it
on Beta 1.

Bug: 160826507
Test: manual
Test: MediaControlsParentPreferenceControllerTest
Test: MediaControlsPreferenceControllerTest
Change-Id: Ia2835e7c8156d753a8f8fbf248f2509003309fd2
2020-07-09 11:57:27 -07:00
Beth Thibodeau
59cbd11c04 Add toggle for media resumption
Adds a toggle under Settings > Sound > Media to toggle media resumption

Bug: 154039093
Test: manual
Test: atest SettingsProviderTest
Test: make -j40 RunSettingsRoboTests ROBOTEST_FILTER="MediaControls"

Change-Id: I803c57031bc3252cab35c06ea124d1c22a3c3aeb
2020-06-20 00:12:23 +00:00
Beth Thibodeau
13f3e8f04b [DO NOT MERGE] Add toggle for media resumption
Adds a toggle under Settings > Sound > Media to toggle media resumption

Bug: 154039093
Test: manual
Test: atest SettingsProviderTest
Test: make -j40 RunSettingsRoboTests ROBOTEST_FILTER="MediaControls"

Change-Id: I803c57031bc3252cab35c06ea124d1c22a3c3aeb
2020-06-18 23:58:34 +00:00
Tim Peng
f392eae213 Update "Play media to" in Sound Settings
-Change string to "Play <APP Label> on"
-Hide it when there is no local playback
-Disable search index
-Add test cases

Bug: 155720628
Test: make -j50 RunSettingsRoboTests
Change-Id: Id104d5b49c069a761e4cf82385bf1225d494c95e
2020-05-08 12:15:11 +08: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
Yiwen Chen
4b4c6c2c7b Implement new vibrate for calls in Settings.
Test: built and tested on device
Change-Id: Ia6ca7eb54472d44a9934d7f125a9f71e42c616a3
2020-02-03 13:32:58 -08:00
jiabin
a30a209841 Remove DEVICE_OUT_ALL_SCO.
Due to the refactor of audio device type, DEVICE_OUT_ALL_SCO has been
removed. Use DEVICE_OUT_BLUETOOTH_SCO_HEADSET for the test instead.

Bug: 135621476
Test: make RunSettingsRoboTests ROBOTEST_FILTER="AudioOutputSwitchPreferenceControllerTest"
Change-Id: Ib32f4c313c5d318b6f99e1f0591c98c4c7c82ade
2019-11-15 10:02:07 -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
Tim Peng
7b0f887000 Update "Play media to" display rule in SoundSetting
- show under Casting mode
- hide under no connected Bluetooth devices
- update test case

Bug: 131143025
Test: make -j42 RunSettingsRoboTests
Change-Id: I0eac856970043ecd9a1975fbe382241078ece924
2019-04-24 04:23:44 +00:00
timhypeng
abdf739071 Sound + Output Switcher on Sound Setting
1. Show "play media to" item when Previously Connected device is available
2. Click "Play media to" to launch output slice
3. Update test case

Bug: 126475101
Test: make -j50 RunSettingsRoboTests
Change-Id: Id8afd1a2407acb78c11e81d2420ae8c16130a321
2019-03-12 03:07:36 +00:00
James Lemieux
f1dade40d2 Use binary resource support in robolectric
The resources available to tests are now exactly the merged resources
located in the APK under test.

Bug: 74359828
Test: make -j56 RunSettingsRoboTests
Change-Id: I050db81a92decefea23314b5ec7a62f77ff4bb2b
2018-12-12 19:53:49 -08:00
James Lemieux
3a55de44c5 Prepare tests for impending robolectric merge
Some ShadowUserManager function moved into the basic shadow in
robolectric proper and has been removed from the Settings
ShadowUserManager.

Test: make -j56 RunSettingsRoboTests
Change-Id: I38647dae5d16bc79bc7925ca139c9362a2035393
2018-11-20 16:40:57 -08:00
Fan Zhang
cdf284b732 Make Settings robotest work with tot Robolectric
Bug: 116278591
Test: make -j RunSettingsRoboTests
Change-Id: I32cb2fcf6094675f79d2fc24702ef6298a9691e4
2018-10-31 17:59:17 -07:00
jackqdyulei
1bf730093c Fix incorrect API invoke for BT profiles
When hearing aid device has been set active, we shouldn't invoke
1. a2dpProfile.setActiveDevice()
2. hfpProfile.setActiveDevice()

Change-Id: Ie13dea041dd98d0cb9d913e1f28574b300095db9
Fixes: 113625278
Test: RunSettingsRoboTests
2018-09-18 15:19:32 -07:00
Fan Zhang
23f8d59d02 Sort imports
Having consistent import order will reduce chance of merge
conflict between internal and external master

Test: rebuild
Change-Id: I0b1a170967ddcce7f388603fd521f6ed1eeba30b
2018-08-28 22:13:15 +00:00
hughchen
244c7586f9 Use corresponding profile to get active bluetooth device
- Do not use streamType to decide which active device should return.
  Base on b/80453878 comment#6, the steamType intent will only be sent
  if an action is made on stream volume or a media route is changed:
  For instance when a call to setStreamVolume() or getDeviceForStream() is made.
  It is not broadcast on actual routing changes.
  It should not be used as an indicator that the route changed during a call.
  There is no callback API and the only option is polling with getDeviceForStream().
- Use corresponding profile to get active bluetooth device
  instead of streamType
- Add test to verify the result of findActiveDevice()
  eg:
  1. A2dp device active, hearing aid device not active : return a2dp device
  2. A2dp device not active, hearing aid device not active : return null
  3. hfp device active, hearing aid device not active : return hfp device
  4. hfp device not active, hearing aid device not active : return null

Bug: 80453878
Test: make -j42 RunSettingsRoboTests
Change-Id: I5bd94899a5d508e60ce911da9689b727ad1fc20c
2018-07-13 09:11:04 +00:00
tmfang
f12e6adcdc Settings Fragment Migration (Fix test cases)
Fix all Roboletric test cases.
In this CL, some test cases are broken.
So, We ignored these test cases temporarily.

Test: make RunSettingsRoboTests -j56
Bug: 110259478
Change-Id: I1a3075438a614432a2de4f2d96d8abf9a83ce58c
2018-07-11 18:24:51 -07:00
tmfang
99cc23d0da Settings Fragment Migration (Change imports)
This commit *only* changes imports and optimize imports.
We don't do anything else.

This patch can't compile pass and run test case.
We will update other patches to fix these problem.

Change list.

1. import android.app.Fragment; ->
   import androidx.fragment.app.Fragment;
2. import android.app.DialogFragment; ->
   import androidx.fragment.app.DialogFragment;
3. import android.app.ListFragment; ->
   import androidx.fragment.app.ListFragment;
4. import android.app.LoaderManager; ->
   import androidx.loader.app.LoaderManager;
5. import android.content.AsyncTaskLoader; ->
   import androidx.loader.content.AsyncTaskLoader;
6. import android.content.Loader; ->
   import androidx.loader.content.Loader;
7. import android.app.FragmentTransaction; ->
   import androidx.fragment.app.FragmentTransaction;
8. import android.app.FragmentManager; ->
   import androidx.fragment.app.FragmentManager;
9. import android.app.LoaderManager.LoaderCallbacks; ->
    import androidx.loader.app.LoaderManager.LoaderCallbacks;

Bug: 110259478
Test: Can't test it.
Change-Id: I0a3f98fff34a3494a839c3c42aeabcec3df2c8b3
2018-07-11 18:23:51 -07:00
Fan Zhang
c7162cd24d Reorder and clean up imports.
Test: rebuild
Change-Id: I178485c84ae7146f991fd77b6d7504b029942a68
2018-06-18 15:45:09 -07:00
ryanywlin
884a945334 2nd attempt handle BT is not supported on emulator am: 59287d40d1
am: de3d9a0a73

Change-Id: I27c16d76f25480a36b5b73cdcb3042cee7754a5f
2018-06-08 11:33:53 -07:00
ryanywlin
59287d40d1 2nd attempt handle BT is not supported on emulator
Error handle before using LocalBluetoothManager in the onStart
and onStop

Bug: 80491267
Test: make RunSettingsRoboTests ROBOTEST_FILTER="AudioOutputSwitchPreferenceControllerTest" -j42
Change-Id: I47f7d3b7cddc2fbbafb8fb5cf0fb6adb2d0d2d55
2018-06-08 15:05:22 +08:00
Fan Zhang
d9f7fba943 Fix context leak in AudioSwitchPreferenceController.
In this controller the context is stored into a global singleton but was
not cleared, thus leaking context and associated views.

Change-Id: I4247f8ff753bc0a331c6c81a0e4b5b4bc41588de
Bug: 80507279
Test: robotests
Test: inspected hprof before/after change
2018-06-07 22:46:19 +00:00
Fan Zhang
ee96c3a259 Fix context leak in AudioSwitchPreferenceController.
In this controller the context is stored into a global singleton but was
not cleared, thus leaking context and associated views.

Change-Id: I4247f8ff753bc0a331c6c81a0e4b5b4bc41588de
Fixes: 80507279
Test: robotests
Test: inspected hprof before/after change
2018-06-07 18:53:59 +00:00
Ryan Lin
1e7e455495 Merge "Handle Bluetooth is not supported on emulator" into pi-dev am: 942b07da93
am: 15eb7fe8c4

Change-Id: I515f9679afa7962fda4f2d04392007d201468070
2018-05-31 22:41:53 -07:00
ryanywlin
d67314e771 Handle Bluetooth is not supported on emulator
- Disable audio swicher while Bluetooth feature is not supported
- Error handle before using LocalBluetoothManager in the constructor

Bug: 80491267
Test: make RunSettingsRoboTests ROBOTEST_FILTER="AudioOutputSwitchPreferenceControllerTest" -j42

Change-Id: I971f31cd08dd0a2778548f6d1d675f279d92ef8e
2018-05-31 12:48:13 +08:00
hughchen
a2a26442eb Merge "Update UI when BT device is rename" into pi-dev am: 77d218ab72
am: 3053922340

Change-Id: I86bd3be4f017f5bd80a2308a5b1e99366027a476
2018-05-18 12:27:08 -07:00
TreeHugger Robot
77d218ab72 Merge "Update UI when BT device is rename" into pi-dev 2018-05-18 18:06:17 +00:00
hughchen
b6ac12eed4 Update DialogFragment UI when BT device is add/remove/rename
* Add AudioSwitchCallback() in AudioSwitchPreferenceController.
  This callback is used to notify SoudSettings to update the dialogFragment UI.
* Add UpdatableListPreferenceDialogFragment that updates the available
  options when dialog is shown
* Add test to verify the adapter count when
  onListPreferenceUpdated() is called.

Bug: 77783217
Test: make -j50 RunSettingsRoboTests
Change-Id: I8cac1b30ec50df026f4b7722dd1cd2f69e77a4cb
Merged-In: I8cac1b30ec50df026f4b7722dd1cd2f69e77a4cb
2018-05-17 07:40:52 +00:00
hughchen
615becb392 Update UI when BT device is rename
* Using getAliasName() instead of getName()
* Add BluetoothDevice isConnected check, when BluetoothDevice is
  disconnected. Do not add to the show list.

Bug: 77783217
Test: make -j50 RunSettingsRoboTests
Change-Id: I183fc693eaefd690568ba2f1ec740258b2bb62c8
2018-05-17 11:29:54 +08:00
hughchen
acb6e89c52 Update DialogFragment UI when BT device is add/remove/rename
* For fix the "Automatic merge failed" in pi-dev, cherry pick the ag/3937781 in
  master. Change android.support.* to androidx.*
* Add AudioSwitchCallback() in AudioSwitchPreferenceController.
  This callback is used to notify SoudSettings to update the dialogFragment UI.
* Add UpdatableListPreferenceDialogFragment that updates the available
  options when dialog is shown
* Add test to verify the adapter count when
  onListPreferenceUpdated() is called.

Bug: 77783217
Test: make -j50 RunSettingsRoboTests
Change-Id: I8cac1b30ec50df026f4b7722dd1cd2f69e77a4cb
2018-05-16 22:13:24 +08:00
ryanywlin
f95ed0925b Merge changes from topic "add-hearing-aid-device-in-audio-switch" into pi-dev am: 7e31e22f57
am: 82db752ef0

Change-Id: I7e9a40b08afebedb7b44a6345cda8b2564db315d
2018-05-09 20:46:27 -07:00
ryanywlin
8276d966e9 Add hearing aid device in audio switch
- Add connected hearing aid device to MediaOutputPreferenceController
and HandsFreeProfileOutputPreferenceController

- Set active device to different profile depend on HisyncId

Bug: 78142719
Test: make RunSettingsRoboTests ROBOTEST_FILTER="MediaOutputPreferenceControllerTest" -j28
Test: make RunSettingsRoboTests ROBOTEST_FILTER="HandsFreeProfileOutputPreferenceControllerTest" -j28
Test: make RunSettingsRoboTests ROBOTEST_FILTER="AudioOutputSwitchPreferenceControllerTest" -j28
Change-Id: Ib8fe4f06f8564572dffdce6fcc3f29578bf91bd9
2018-05-10 10:28:20 +08:00
ryanywlin
9f407aba36 Find active device for add hearing aids device into audio switcher.
- Find active device accroding to different stream type and
output device.

- update isStreamFromOutputDevice() to identify general case like
DEVICE_OUT_BLUETOOTH_A2DP is subset of DEVICE_OUT_ALL_A2DP.

- add test case for these methods.

Bug: 78142719
Test: make RunSettingsRoboTests ROBOTEST_FILTER="AudioOutputSwitchPreferenceControllerTest" -j28
Change-Id: I381135c120dbf051679bff7626d47e41f8d589da
2018-05-10 10:20:30 +08:00
ryanywlin
eb5019d05a Three methods for adding hearing aids device into audio switcher.
- Add three methods for subclass to get connected device list
denpending on different profiles.

- Test case for these methods.

Bug: 78142719
Test: make RunSettingsRoboTests ROBOTEST_FILTER="AudioOutputSwitchPreferenceControllerTest" -j28
Change-Id: Ia1367a53ab6a3432878a514490722871ed878954
2018-05-10 10:08:14 +08:00
Matthew Fritze
bd376296cd Establish permanently unavailable settings
Distinguish between settings which are permanently unavailable on
the device, and temporarily unavailable. This enables us to restrict
which setting slices are exposed in onSliceGetDescendants.

The primary changes in this CL are renaming:
"DISABLED_UNSUPPORTED" -> "UNSUPPORTED_ON_DEVICE"
to be more clear the the setting will cannot be accessed on the device, and,
adding a new enum to encapsulate settings which are currently unavailable, but
could be enabled in the future.

Also remove UNAVAILABLE_UNKNOWN. Devs should never need this enum.

Bug: 78910582
Fixes: 79245656
Test: robotests
Change-Id: I42c2cedab66be2d76999795f46470a079cc1ec71
Merged-In: I58821a6cfd6134b3b351657b6edf5f74ead00643
2018-05-09 10:03:40 -07:00
Matthew Fritze
f87a1f3f41 Establish permanently unavailable settings
Distinguish between settings which are permanently unavailable on
the device, and temporarily unavailable. This enables us to restrict
which setting slices are exposed in onSliceGetDescendants.

The primary changes in this CL are renaming:
"DISABLED_UNSUPPORTED" -> "UNSUPPORTED_ON_DEVICE"
to be more clear the the setting will cannot be accessed on the device, and,
adding a new enum to encapsulate settings which are currently unavailable, but
could be enabled in the future.

Also remove UNAVAILABLE_UNKNOWN. Devs should never need this enum.

Bug: 78910582
Bug: 79245656
Test: robotests
Change-Id: I58821a6cfd6134b3b351657b6edf5f74ead00643
2018-05-09 08:36:59 -07:00
caxtonchan
8118c8d7d0 Merge "Hide the audio switcher if it is not relevant" into pi-dev am: 3f5444b9e4
am: 67d44d9d61

Change-Id: I36b249159ef8d0a6d099ba776c5d682ea596e5e3
2018-04-24 21:04:45 -07:00
caxtonchan
458fb2319f Hide the audio switcher if it is not relevant
Bug: 78317337
Test: make RunSettingsRoboTests
ROBOTEST_FILTER="AudioOutputSwitchPreferenceControllerTest" -j28
ROBOTEST_FILTER="MediaOutputPreferenceControllerTest" -j28
ROBOTEST_FILTER="HandsFreeProfileOutputPreferenceControllerTest" -j28

Change-Id: I9824941cf410b26ad166aa163d7cccd3bfc31a06
2018-04-25 01:34:42 +00:00
Aurimas Liutikas
e0069d332d Migrate Settings to androidx.
Test: make Settings
Bug: 76692459
Change-Id: I941dea40562170649bf056e675cc32e5163c0e39
2018-04-20 12:52:29 -07:00
ryanywlin
7be15cdd23 Identify cast mode properly in audio switch
- Use STREAM_MUSIC to idetify cast mode

- Use STREAM_MUSIC to detect wired headset

Bug: 78141750
Test: make RunSettingsRoboTests
ROBOTEST_FILTER="MediaOutputPreferenceControllerTest" -j40

Change-Id: I92273d41d3debfc3d6327c4ca09143a2dd9b1cb6
2018-04-17 23:47:42 +00:00
ryanywlin
dca308e56d Replace deprecated APIs in audio switcher.
- Remove isWiredHeadsetOn() and isBluetoothA2dpOn()
in MediaOutputPreferenceController.

- Remove isWiredHeadsetOn() and isBluetoothScoOn()
in HandsFreeProfileOutputPreferenceController.

- Replace with AudioManager.getDevicesForStream().

- Update test cases.

Bug: 78141441
Test: make RunSettingsRoboTests ROBOTEST_FILTER="MediaOutputPreferenceControllerTest" -j40
Test: make RunSettingsRoboTests ROBOTEST_FILTER="HandsFreeProfileOutputPreferenceControllerTest" -j40
Test: make RunSettingsRoboTests ROBOTEST_FILTER="AudioOutputSwitchPreferenceControllerTest" -j40
Change-Id: Ic57c40badf0fd5633f1b7412d63a0b5417d0f47a
2018-04-18 05:57:27 +08:00
ryanywlin
63bdfa8998 Add audio switch UI in sound settings
- Build two controller to control list preferences.

- MediaOutputPreferenceController which allows switching
the media output between current device and connected
BT device supporting A2DP. It also controls disabling
media output switching during a call or cast mode.

- HandsFreeProfilePreferenceController which allows
switching between HFP-connected BT devices while in
on-call state.

- Add test cases for controllers.

Bug: 74130772
Test: make RunSettingsRoboTests ROBOTEST_FILTER="MediaOutputPreferenceControllerTest" -j56
Test: make RunSettingsRoboTests ROBOTEST_FILTER="HandsFreeProfileOutputPreferenceControllerTest" -j56
Test: make RunSettingsRoboTests ROBOTEST_FILTER="AudioOutputSwitchPreferenceControllerTest" -j56

Change-Id: I37f5418442ce77e72cdff07f071ea519ab1047f3
2018-04-16 11:52:44 +08:00