Commit Graph

44 Commits

Author SHA1 Message Date
Hugh Chen
112a638cba Fix it will auto switch back to "No data transfer" after selecting "USB Tethering"
Before this CL, the USB option didn't handle whether FUNCTION_NCM
existed in the intent extra when tethering was started which resulted
in some devices that enable NCM will have incorrect UI.

This CL added a condition to check whether FUNCTION_NCM existed in the
intent extra or not to fix this UI issue.

Bug: 192046902
Test: make -j42 RunSettingsRoboTests
Change-Id: Icb8548409930d59dc3a08c25e418c9a1ddb9f33c
2021-07-09 10:52:50 +08:00
Hugh Chen
db53d1c6f8 Fix borken test on Bluetooth and connected package
Bug: 187239965
Test: make RunSettingsRoboTests -j56
Change-Id: Ic0d60a6cd46b1211efb2021f079c0b0a6534b383
2021-05-05 14:31:01 +08:00
Hugh Chen
ddafb202bd Fix usb tethering switch back to none after off/on the screen
This CL adds conditions to check whether usb is connected or not.
If usb is not connected or tethering is not started don't update the
state.

Bug: 157709648
Test: make RunSettingsRoboTests -j56
Change-Id: Ifbf5900923419d6abf35834b196aab12601076e4
2021-04-28 09:12:15 +00:00
Hugh Chen
50fc7d15ef Fix "USB tethering" doesn't work after reconnecting USB
Before this CL, if users selects usb tethering option and
reconnects usb it would not start entitlement check.
Because we only start entitlement checks when users select it.

This CL will start entitlement checks when usb tethering option
is selected and reconnects usb.

Bug: 176037347
Test: make -j42 RunSettingsRoboTests
Change-Id: I3a2ad392a1cae9cf97355ef3cd4fb8c23de18673
2021-03-04 15:31:11 +08:00
TreeHugger Robot
decaeda453 Merge "Refactor Usb settings" into sc-dev 2021-03-03 12:12:24 +00:00
Hugh Chen
0091ae6142 Refactor Usb settings
1. Rename ShouldIgnoreClickEvent() to isClickEventIgnored().
2. Use TetheringManager instead of ConnectivityManager.

Bug: 175651578
Test: make -j42 RunSettingsRoboTests
Change-Id: I37c49694257b7575550b5a905e293b5d056ba1bf
2021-03-03 18:13:17 +08:00
Alex Johnston
7d4db750e6 Disallow modifying USB in Settings
Background
* The admin can disable signaling over USB
  on corporate owned device.

Changes
* If the admin has disabled signaling over
  USB, disable preferences in Settings to
  modify USB.
* Show policy transparency dialogs.

Manual Testing:
* Install TestDPC
* Set up as Device Owner
* Disable USB data signaling
* Verify Settings > Connected Devices
  > USB is disabled
* Verify Settings > Network & Internet
  > Hotspot & tethering > USB tethering
  is disabled
* Verify Developer options >
  USB debugging, default USB configurations
  and USB audio routing are disabled

Bug: 168301639
Test: Manual Testing
      make RunSettingsRoboTests -j ROBOTEST_FILTER=TetherSettingsTest
      make RunSettingsRoboTests -j
      ROBOTEST_FILTER=UsbAudioRoutingPreferenceControllerTest
      make RunSettingsRoboTests -j
      ROBOTEST_FILTER=UsbDefaultFragmentTest
      make RunSettingsRoboTests -j
      ROBOTEST_FILTER=DevelopmentSettingsDashboardFragmentTest
      make RunSettingsRoboTests -j
      ROBOTEST_FILTER=DefaultUsbConfigurationPreferenceControllerTest
      make RunSettingsLibRoboTests -j
      ROBOTEST_FILTER=EnableAdbPreferenceControllerTest

Change-Id: I3e8461ac37f406a407c874598335cde28fb89b2d
Merged-In: I3e8461ac37f406a407c874598335cde28fb89b2d
2021-02-16 15:29:49 +00:00
Manish Singh
f8b9101314 Disable MTP transcoding by default
BUG: 178769134
Test: manual
Change-Id: Ib87d0f499bd699276326a41b37f42c7a85893afe
2021-02-04 17:41:20 +00:00
Manish Singh
29a6c26d80 Add Settings UI for MTP transcoding over USB.
Enabling "Transcode exported media" means that the media transferred
from the device via MTP over USB would be transcoded, if necessary. This
switch also sets / unsets the sys.fuse.transcode_mtp system property.

"Transcode exported media" category would be accessible only when the
"File transfer / Audio Auto" or "PTP" radio button has been selected. We
are including PTP also since PTP supports transfer of videos.

Adding UsbDetailsTranscodeMtpController in a separate preference
category than "Charge connected device" primarily because they seemed to
be different in their own rights.

Here are a few screenshots:
https://screenshot.googleplex.com/8jeMstnSFsTtVCS.png
https://screenshot.googleplex.com/76hNz4iXp5dcX4M.png
https://screenshot.googleplex.com/AkTngE5hDDJCovv.png
https://screenshot.googleplex.com/4uQYGXuuSQLoz3w.png

BUG: 158466651
Test: manual testing.  Also added unit test.
Change-Id: I2603a9bffed3320c193cc08f867bd67d9848da18
(cherry picked from commit 974662936e)
2021-01-29 20:22:05 +00:00
Hugh Chen
7d71081d45 Add condition to check case of accessory combinations
Before this CL, we only compare whether the value of function is
equal to accessory to ensure usb is in accessory mode. But in some
cases there are different accessory combinations, like
"accessory,audio source". It will make the condition return false
when encountering accessory combinations.

This CL will check whether the function will include accessory mode
to fix this issue.

Bug: 162451162
Test: make -j42 RunSettingsRoboTests
Change-Id: I7c80f02de5340799e292949608e19b86b187b982
2020-11-04 17:25:29 +08:00
TreeHugger Robot
5709f7a083 Merge "Do nothing when choosing file transfer when in accessory mode" 2020-09-30 06:54:29 +00:00
Hugh Chen
3251a04ba3 Do nothing when choosing file transfer when in accessory mode
- Before this CL, the device will be disconnected and reconnected
  to accessory mode when choosing "File transfer/Android Auto" in
  accessory mode. Because the USB menu didn't check state of
  function, it should do nothing when choosing
  "File transfer/Android Auto" in accessory mode.

  This CL add condition to check state of function, it will do
  nothing when choosing "File transfer/Android Auto" in
  accessory mode.

Bug: 162451162
Test: make -j42 RunSettingsRoboTests
Change-Id: I1749c6c43d2a192e4ce1bf1ae5343ff8deafbe48
2020-09-30 11:19:31 +08:00
Hugh Chen
bde627b263 Hide tethering option when in a guest account
- Before this CL, users can share their mobile data through enabling
  tethering in the USB menu when in a guest account.
  It will cause main users to spend their money unexpectedly.

  This CL will hide the tethering option on the USB menu when in the
  guest account.
- Add test cases.

Bug: 166125765
Test: 1. make -j42 RunSettingsRoboTests. 2. Switch to a guest account
to verify whether the tethering option is hiding.

Change-Id: I7523b3f3c3a1372bb128a58a6a7fac973d27cfbe
2020-09-28 11:20:31 +08:00
Hugh Chen
af0a45bb7a Fix usb menu not switch to "File Transfer/Android Auto" right after connected to car unit
- This CL before usb receiver didn't check the extra
  information of the accessory. It will cause the usb
  menu not to be aware that the usb port is switched
  to accessory mode.

  This CL usb receiver will check intent whether to have
  accessory extra. If the usb port is switched to accessory
  mode the usb menu will switch to "File Transfer/Android Auto".
- Update test case

Bug: 162451162
Test: make -j42 RunSettingsRoboTests
Change-Id: I0eca89a23670c674b74753fc526256cc1d52e759
2020-09-18 15:45:37 +08:00
Hugh Chen
737ec77c4f Revert "Stop usb tethering when user cancel it"
This reverts commit 9546b7fdcb.

Reason for revert: This CL will have side effort, when switch from "USB tethering" to "MTP/PTP/Midi" mode, DUT will jump to "No data transfer".
Revert this CL and have good solution to address b/154933817

Bug: 156318036
Test: build pass
Change-Id: Ia79b7a9f5d71c15244b147f5ef26af47c1c1fc7c
2020-06-03 03:35:48 +00:00
hughchen
9546b7fdcb Stop usb tethering when user cancel it
- Call stop tethering to clear entitlement result when user do not want
  using USB tethering on USB menu.
- Add test case

Bug: 154933817
Test: make -j42 RunSettingsRoboTests
Change-Id: Idaaba8df2052f45e710c7959251817e8947a544f
2020-05-06 16:02:35 +08:00
hughchen
d6ec2ac7be Tethering shouldn't indicates on when SIM without tethering option
Before this CL, If SIM doesn't have tethering option then UI will not
back to previous option when press "USB tethering" in
[Default USB configuration].

This CL added receiver to observe USB state that get correct state
from UsbManager.

Bug: 138630479
Test: make -j42 RunSettingsRoboTests
Change-Id: I6cc8da508f6ab142142ca8c28460125bad93925b
2019-10-04 15:41:45 +08:00
Raff Tsai
71a37d138b Import RadioButtonPreference from SettingsLib
Bug: 138620011
Test: manual, robolectric
Change-Id: I3b8a2be021a1b4a07aae61483f2329b7a5bd4655
2019-08-01 07:16:55 +00:00
Badhri Jagan Sridharan
cf7f3dafbc Fix UsbPortStatus constructor arguments
USB V1.2 hal adds new parameters for the UsbPortStatus constructor.
The constructor changes from:

public UsbPortStatus(int currentMode, @UsbPowerRole int currentPowerRole,
            @UsbDataRole int currentDataRole, int supportedRoleCombinations)

To:

public UsbPortStatus(int currentMode, int currentPowerRole, int currentDataRole,
            int supportedRoleCombinations, int contaminantProtectionStatus,
            int contaminantDetectionStatus)

Initialize the construtor with contaminant presence disabled.

Bug: 119642987
Bug: 117330206
Bug: 77606903

Test: Ran roboelectric tests
Change-Id: I8e1b29785e07abffa1f6ae7656ca697425f446e6
2019-01-23 10:45:13 -08:00
Philip P. Moltmann
adc1fbc37a Merge "Use new UsbManager#getPorts API" 2018-12-19 19:10:06 +00:00
Jason Chiu
7aa7ece7a2 Fix build failed of Settings test cases while importing AndroidX
- API change in AndroidX Preference causes a build breakage
- Apply explicit casting for the new API interface

Test: robotest
Fixes: 121109361
Change-Id: If3e7be9e53c7860252523700d6721ae4956db68a
2018-12-17 16:46:42 +08:00
Philip P. Moltmann
41061cb63e Use new UsbManager#getPorts API
Test: - Looked as USB state in Settings
      - RunSettingsRoboTests
Bug: 115301401
Change-Id: I07ac20ac6a3f33d99e9edb6718318ede22681be1
2018-12-13 15:27:25 -08: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
tmfang
dce94bb237 Use SettingsLib's LayoutPreference
- Remove LayoutPreference in Settings source code.
- Remove unused style, layout
- Replace old imports to com.android.settingslib.widget.LayoutPreference
- Replace old XML tag to com.android.settingslib.widget.LayoutPreference

Test: robotest, manual test
Bug: 120005054
Change-Id: I9ae1ae14a16f443e11ac5d75b6038c7c5e253844
2018-11-27 13:12:53 +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
184b3a4c68 Add entitlement check for usb tethering
Before this CL, usb tethering in detail page doesn't have entitlement
check. This CL fix it by using the correct API

Also polish it by updating the UI before entitlement check to align
hotspot page. So in UI it will first check "usb tethering". If
entitlement check fail, it will revoke and go back to previous selection.

Bug: 115707279
Test: RunSettingsRoboTests
Change-Id: I3d2ebad2879479a870bcdfe596bb88b83c424389
2018-10-02 15:41:46 -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
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
Aurimas Liutikas
e0069d332d Migrate Settings to androidx.
Test: make Settings
Bug: 76692459
Change-Id: I941dea40562170649bf056e675cc32e5163c0e39
2018-04-20 12:52:29 -07:00
TreeHugger Robot
631ee514ae Merge "Remove gear from usb preference" into pi-dev 2018-04-09 19:08:26 +00:00
Jerry Zhang
07a4c25fc1 Remove gear from usb preference
Switch from GearPreference to a normal
Preference.

Add some spacing underneath the power role.

Bug: 77647931
Test: passes
Change-Id: Ic15849e12aa47df75cc75c9da0384e24627a9c8b
2018-04-09 11:08:48 -07:00
Fan Zhang
947a673f74 Remove more wrappers
- WallpaperManagerWrapper
- UserManagerWrapper

Bug: 76167422
Test: robotests
Change-Id: I3ca866089082e01f1e9d7a4554387962f45a5437
2018-04-02 16:51:40 -07:00
Fan Zhang
234854cb04 Remove more wrappers in favor of new Robolectric support
Bug: 76167422
Test: robotests
Change-Id: Ic71a181bee6f90f25f9fa2a748cf708887495394
2018-03-30 15:58:14 -07:00
Lei Yu
687964cf28 Add search index provider for bt page
1. Implement the search index provider for
ConnectedDeviceDashboardFragment.
2. Since in SEARCH_INDEX_DATA_PROVIDER fragment is null,
so we need to pass in context to all components
instead of getting it from fragment.
3. Update test for it as well as creating new shadow.

Change-Id: If0aa67d5b6ca207c6b728c8355581bf414577091
Fixes: 69333961
Test: RunSettingsRoboTests
2018-03-21 10:46:02 -07:00
Jerry Zhang
55d10dff53 Update USB settings screen
Screen now handles data role and power
role switching as separate categories.

Change the UsbBackend api to use predefined
constants. Split out data and power direction
changes into separate functions.

Add tests for new controllers and new backend
functionality.

Bug: 72829348
Test: passes
Change-Id: I28b96cf49463fa4f3a4b6be41c57d5841731fbd6
2018-03-15 17:18:41 -07:00
James Lemieux
22a39c2b93 Use external/robolectric-shadows/run_robotests.mk
This allows Settings to test against the latest framework changes.

Also replaced TestConfig with traditional robolectric.properties.

Bug: 73173204
Bug: 73892008
Test: make -j56 RunSettingsRoboTests
Change-Id: I3135b4fa5f095ba79b282a76f45dd9baa2584bc7
2018-03-04 03:50:08 -08:00
Jerry Zhang
40bd570352 Remove unused classes and tests.
Old usb pages have been replaced by UsbDetailsFragment
and UsbDefaultFragment. Old connected devices has
been replaced by new connected devices.

Bug: 70848054
Test: Passes
Change-Id: I538cbb88d4f878449a83da9a4a0381e74e840c6a
2018-02-27 13:50:10 -08:00
Jerry Zhang
1249b16551 Actually test for truth.
Test: passes
Bug: 73513677
Change-Id: I2bd19d627c5cadec9524b5f0ddcb370837ad2c76
2018-02-21 23:48:26 +00:00
Jerry Zhang
502471726a Add UsbDefaultFragment and tests
Replace old USB screen in developer options with
UsbDefaultFragment.

Test: pass
Bug: 62876645
Change-Id: I8428a2814b7e1abd7d0fa9fa9980dbc02cfa0034
2018-02-21 19:16:23 +00:00
Jerry Zhang
9e16092cb3 Don't set USB mode if user is a monkey
Test: tests pass
Fixes: 73246183
Change-Id: I9570c8bd8b11edd6eb0944a4aa766c22b4cc3619
2018-02-13 16:51:21 -08:00
Fan Zhang
2edbaa7062 Change print setting from a dynamic tile to static pref
...because dynamic tile is a lot harder to index correctly.

- Removed metadata that makes PrintSettings a dynamic tile.
- Added PrintSettings into connected_device xml.
- Added a new PreferenceController - all summary updating logic is
  copied from PrintSettingsFragment

Change-Id: I41e7c9d23e97ecd5a043ac7c33f2d404260c92e7
Fixes: 73128944
Test: robotests
2018-02-12 15:19:43 -08:00
Jerry Zhang
d18d6f1022 Add new USB details screen for Connected Devices 2.0
Also updated UsbBackend to use the new UsbFunctions
api.

Added new unit tests for UsbDetailsHeaderController
and UsbDetailsProfilesController.

Bug: 69333961
Test: make RunSettingsRoboTests
Change-Id: I133750190bb61dfe0e20b06f50e50ea13b347f1e
2018-01-31 11:23:08 -08:00