Commit Graph

108 Commits

Author SHA1 Message Date
hughchen
ef2c1a1526 Fix crash when no Bluetooth feature in Settings
- Move PreferenceGroup init method out of isAvailable() condition,
  then PreferenceGroup will not be null.
- Update getAvailabilityStatus(), since the controller now may have usb
  and dock.

Bug: 110712414
Test: make -j42 RunSettingsRoboTests
Change-Id: I4d85a42c26fb20d319e7321177b271933be3fdb0
2019-04-19 14:09:40 +08:00
Ruchi Kandoi
d5ba12a94d Update Secure NFC API definitions
Bug: 124767797
Test: None
Change-Id: I90f109f08771f429966cd108eaacdf8b81d0a72e
2019-03-06 08:29:38 -08:00
jackqdyulei
ca21544f99 Add nearby device SlicePreference
Change-Id: I9e88602df9ab589c3eea087b1202cbc7615dc810
Fixes: 116327443
Test: RunSettingsRoboTests
2019-02-11 17:38:50 -08:00
Ruchi Kandoi
dd9b61278b Merge "Add Secure NFC functionality" 2019-01-30 18:58:50 +00:00
Ruchi Kandoi
5bf4e1ec4f Add Secure NFC functionality
Secure NFC will permit NFC acitvity only when screen
is unlocked.

Bug: 117253725
Test: Manual; Toggle switch; check if HCE works with screen off
Change-Id: I9977d85065fc7ebca3ed4991ffa52fef0590cf90
2019-01-29 16:33:46 -08: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
TreeHugger Robot
cec9f138fc Merge "Add boolean flags to show/hide top-most settings." 2018-12-17 19:38:53 +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
Ben Lin
11f698ba22 Add boolean flags to show/hide top-most settings.
Bug: None
Test: RunSettingsRoboTests
Change-Id: Ib576f5979feda0fa7f573915acffc5065d40095c
2018-12-14 16:00:21 -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
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
018fe5adf5 Clean up bluetooth while driving code.
Test: robotests
Change-Id: I50aedc61a9a7836672e934e188837dbe49c64be2
2018-11-07 15:52:18 -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
TreeHugger Robot
b3eaf62562 Merge "Add entitlement check for usb tethering" 2018-10-09 19:16:07 +00: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
jackqdyulei
b152e6dd1b Update "Previous connected device" preference
1. Show up to 3 devices in main page
2. Add "See all" preference to go ot detail page

Bug: 116350449
Test: Screenshot && RunSettingsRoboTests
Change-Id: Iee0de8a2b7f2543e946a117ba2d9ca9dde6c8678
2018-09-26 11:08:58 -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
Fan Zhang
9ce4a1fcde Use searchable="false" to suppress nonIndexables.
When possible, remove or simplify getNonIndexable() logic in fragments,
and use searchable="false" in xml to suppress index.

Change-Id: I5bdf5bc7d5494a64cdd9e230a51321a4b210af69
Fixes: 112608186
Test: robotest and manual search
2018-08-17 09:21:05 -07:00
Fan Zhang
f6747a2f44 Add summary text for more top level setting tiles
- Connected devices
- App & notifs
- Battery

Bug: 110405144
Test: robotests
Change-Id: Ife44f7c5165483a1bad903ce90a241108ab5da25
2018-08-09 14:38:52 -07:00
hughchen
e94b02206e Use BluetoothAdapter instead of LocalBluetoothAdapter
LocalBluetoothAdapter only has a few APIs that is not supported
by BluetoothAdapter, and lots of LocalBluetoothAdapter function
pass parameter to BluetoothAdapter directly.
Do the refactor in Settings, use BluetoothAdapter instead of
LocalBluetoothAdapter.

Bug: 111769754
Test: make -j42 RunSettingsRoboTests
Change-Id: I88e5a8377b5d1106c7679e6a8c3fd1ca1a80ea6f
2018-07-31 11:35:36 +08: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
hughchen
34066fa21a Add error handle for device that not support Bluetooth
- Add LocalBluetoothManager null check for device that
  not support Bluetooth
- Add test to verify when LocalBluetoothManager is null
  will not crash

Bug: 110712414
Test: make -j42 RunSettingsRoboTests
Change-Id: Ib506a0206cfcfdfec60bdfcf9a1944338a7ab729
2018-06-28 11:57:36 +08:00
Fan Zhang
c7162cd24d Reorder and clean up imports.
Test: rebuild
Change-Id: I178485c84ae7146f991fd77b6d7504b029942a68
2018-06-18 15:45:09 -07:00
TreeHugger Robot
a809c439a9 Merge "Fix gray out previously connected device preference issue" 2018-06-06 05:26:29 +00:00
Ivan Chiang
c6d7191cb9 Fix gray out previously connected device preference issue
Count the dock devices in previously connected device controller.

Change-Id: I08d82ec715698ecf894a4a7cd0631c5f1de0f591
Fix: 80227045
Test: m -j SettingsRoboTests RunSettingsRoboTests
2018-05-30 02:45:47 +00:00
Matthew Fritze
58019a84ed Merge "Fix bluetooth search result no-op" into pi-dev am: f14bfcbfa6
am: 9cb3dd123d

Change-Id: Ib35794ec9c9e71c53145f418629287fd72d9adc6
2018-05-29 12:56:44 -07:00
TreeHugger Robot
f14bfcbfa6 Merge "Fix bluetooth search result no-op" into pi-dev 2018-05-29 19:40:14 +00:00
Matthew Fritze
d5fc3a95c6 Fix bluetooth search result no-op
Bluetooth fragment was manually setting intent information,
which meant that the result didn't fire an intent properly.

This type of regression or mistake will be caught in the fix for
b/77921040.

Change-Id: I49f87f40acbfc3f74ea2e97835f2644d443169e2
Fixes: 80317645
Test: robotests
2018-05-29 11:38:52 -07:00
Chihhang Chuang
6719a9b73e Refactor nfc preference controller
- Remove BaseNfcPreferenceController.
- NfcPreferenceController inherit from TogglePreferenceController.
- AndroidBeamPreferenceController inherit from BasePreferenceController.
- Override getIntentFilter in NfcPreferenceController to listen changes.
- Add an API (hasAsyncUpdate) into BasePreferenceController to
distinguish the setting which is updated asynchronously.

Change-Id: I1abe4410169e305a0d6106e24c54e7f2e763fc91
Merged-In: I7c9c48ea7f1ad01a02524beabf9d30baa3db891f
Fixes: 67997761
Fixes: 74887543
Test: RunSettingsRoboTests
2018-05-24 10:31:44 +08:00
Chihhang Chuang
3b387a028a Refactor nfc preference controller
- Remove BaseNfcPreferenceController.
- NfcPreferenceController inherit from TogglePreferenceController.
- AndroidBeamPreferenceController inherit from BasePreferenceController.
- Override getIntentFilter in NfcPreferenceController to listen changes.
- Add an API (hasAsyncUpdate) into BasePreferenceController to
distinguish the setting which is updated asynchronously.

Change-Id: I7c9c48ea7f1ad01a02524beabf9d30baa3db891f
Fixes: 67997761
Fixes: 74887543
Test: RunSettingsRoboTests
2018-05-23 13:58:28 +08:00
tim peng
e3a87548e5 Merge changes I6d4f8ec3,Id4c1e86c into pi-dev
* changes:
  Make device discoverable in Connected Devices settings page
  Add bluetooth discoverable footer preference in connected devices page
2018-05-22 04:44:15 +00:00
TreeHugger Robot
346063dd5c Merge "Dynamically showing "driving mode"" into pi-dev 2018-05-22 02:48:34 +00:00
timhypeng
78eb5a81ba Make device discoverable in Connected Devices settings page
* Set preference title by bluetooth state
* Enable bluetooth discoverable mode in Connected device page
* Add more test cases for DiscoverableFooterPreferenceController

Bug: 79294219
Test: make -j50 RunSettingsRoboTests
Change-Id: I6d4f8ec3870c43bf48e9666eabd60068aa8950bb
Merged-In: I6d4f8ec3870c43bf48e9666eabd60068aa8950bb
2018-05-22 02:15:12 +00:00
timhypeng
4f636b90b8 Add bluetooth discoverable footer preference in connected devices page
* Dynamicly add preference in controller
* Add test cases for DiscoverableFooterPreferenceController

Bug: 79294219
Test: make -j50 RunSettingsRoboTests
Change-Id: Id4c1e86c9a0a0cd69d8106a18f2cf4a0fa31782b
Merged-In: Id4c1e86c9a0a0cd69d8106a18f2cf4a0fa31782b
2018-05-22 02:14:38 +00:00
hughchen
a47e64829d Dynamically showing "driving mode"
Dynamically showing "driving mode" in "Connection preferences" summary.
In cl/196700988, when driving mode is available/not available will using
Settings.System to set flag.
Example :
driving mode is available : Settings.System.putInt(mContentResolver,
DRIVING_MODE_SETTINGS_ENABLED, 1)
driving mode is not available : Settings.System.putInt(mContentResolver,
DRIVING_MODE_SETTINGS_ENABLED, 0);

This CL using Settings.System to get driving mode state that used to dynamically
showing "driving mode"

Bug: 79299421
Test: make -j50 RunSettingsRoboTests ROBOTEST_FILTER=AdvancedConnectedDeviceControllerTest
Change-Id: I702fa4fbc752c7b470184cf58f2e604f9f28c057
Merged-In: I702fa4fbc752c7b470184cf58f2e604f9f28c057
2018-05-22 01:48:19 +00:00
tim peng
2de77f893b Merge changes from topic "BT_Discoverable_in_Connected_Devices"
* changes:
  Make device discoverable in Connected Devices settings page
  Add bluetooth discoverable footer preference in connected devices page
2018-05-22 01:23:34 +00:00
timhypeng
444d490e7f Make device discoverable in Connected Devices settings page
* For fix the TreeHugger error in pi-dev, cherry pick the ag/4042235 in
  master and fix TreeHugger error. Change android.support.v7.* to androidx.*
* Set preference title by bluetooth state
* Enable bluetooth discoverable mode in Connected device page
* Add more test cases for DiscoverableFooterPreferenceController

Bug: 79294219
Test: make -j50 RunSettingsRoboTests
Change-Id: I6d4f8ec3870c43bf48e9666eabd60068aa8950bb
2018-05-21 10:42:36 +00:00
timhypeng
dd2d5c192f Add bluetooth discoverable footer preference in connected devices page
* For fix the TreeHugger error in pi-dev, cherry pick the ag/4042014 in
  master and fix TreeHugger error. Change android.support.v7.* to androidx.*
* Dynamicly add preference in controller
* Add test cases for DiscoverableFooterPreferenceController

Bug: 79294219
Test: make -j50 RunSettingsRoboTests
Change-Id: Id4c1e86c9a0a0cd69d8106a18f2cf4a0fa31782b
2018-05-21 10:41:54 +00:00
hughchen
29c96ed090 Dynamically showing "driving mode"
* For fix the TreeHugger error in pi-dev, cherry pick the ag/4062037 in
  master and fix TreeHugger "Automatic merge failed" error
* Dynamically showing "driving mode" in "Connection preferences" summary.
  In cl/196700988, when driving mode is available/not available will using Settings.System to set flag.
  Example :
  driving mode is available : Settings.System.putInt(mContentResolver, DRIVING_MODE_SETTINGS_ENABLED, 1)
  driving mode is not available : Settings.System.putInt(mContentResolver, DRIVING_MODE_SETTINGS_ENABLED, 0);

  This CL using Settings.System to get driving mode state that used to dynamically showing "driving mode"

Bug: 79299421
Test: make -j50 RunSettingsRoboTests ROBOTEST_FILTER=AdvancedConnectedDeviceControllerTest
Change-Id: I702fa4fbc752c7b470184cf58f2e604f9f28c057
2018-05-21 16:30:46 +08:00
hughchen
5a8b5dd431 Using static method to get summary resource id am: 7f1345c3cd
am: 6a4174a079

Change-Id: I91b805e89e9f3d5a3259f10401a9963d25cb32e1
2018-05-21 00:12:18 -07:00
hughchen
7f1345c3cd Using static method to get summary resource id
* Using getConnectedDevicesSummaryResourceId() to get the resource id to shown the summary.

Bug: 79299421
Test: make -j50 RunSettingsRoboTests
Change-Id: I268de4d989fe01eff463a5ec1c0a174e094e56c0
2018-05-21 04:08:46 +00:00
TreeHugger Robot
863b27270d Merge "Add controller to show the summary" into pi-dev 2018-05-19 01:26:12 +00:00
hughchen
c24a09e593 Add controller to show the summary
* For fix the "Automatic merge failed" in pi-dev, cherry pick the ag/4036738 in
  master. Change android.support.* to androidx.*
* Add AdvancedConnectedDeviceController that used to show which component is available
* Add getConnectedDevices Summary Resource Id() to decide which string should be shown.
  Here have  4 cases to shown the string.
  case 1: driving mode available and NFC is availalbe, show "Bluetooth, driving mode, NFC"
  case 2: driving mode available and NFC is not availalbe, show "Bluetooth, driving mode"
  case 3: driving mode not available and NFC is availalbe, show "Bluetooth, NFC"
  case 4: driving mode not available and NFC not availalbe, show "Bluetooth"
* Add test to verify the summary string is correct in each condition
* Add test to verify getAvailabilityStatus() is AVAILABLE.

Bug: 79299421
Test: make -j50 RunSettingsRoboTests ROBOTEST_FILTER=AdvancedConnectedDeviceControllerTest
Change-Id: I1048355bbd344db3ab645dd1537b4259eff57f38
2018-05-18 18:17:43 +00:00
hughchen
fd7c9650ed Add controller to show the summary
* Add AdvancedConnectedDeviceController that used to show which component is available
* Add getConnectedDevices Summary Resource Id() to decide which string should be shown.
  Here have  4 cases to shown the string.
  case 1: driving mode available and NFC is availalbe, show "Bluetooth, driving mode, NFC"
  case 2: driving mode available and NFC is not availalbe, show "Bluetooth, driving mode"
  case 3: driving mode not available and NFC is availalbe, show "Bluetooth, NFC"
  case 4: driving mode not available and NFC not availalbe, show "Bluetooth"
* Add test to verify the summary string is correct in each condition
* Add test to verify getAvailabilityStatus() is AVAILABLE.

Bug: 79299421
Test: make -j50 RunSettingsRoboTests ROBOTEST_FILTER=AdvancedConnectedDeviceControllerTest
Change-Id: I1048355bbd344db3ab645dd1537b4259eff57f38
Merged-In: I1048355bbd344db3ab645dd1537b4259eff57f38
2018-05-18 18:17:27 +00:00
hughchen
980b718989 Grey the previously connected device preference
* Add PreviouslyConnectedDevicePreferenceController to handle the preference should be
  enable or disable.
  Example: If there are no previously connected devices disable the preference otherwise
  enable it.
* Add PreviouslyConnectedDevicePreferenceControllerTest
  1. Verify the callback can be registered and unregistered
  2. Verify the preference is enable when there
     have more than 1 previously connected device
  3. Verify the preference is disable when there
     have no previously connected device

Bug: 78250052
Test: make -j50 RunSettingsRoboTests
Change-Id: I31b5d416aaf907c3bbf1cb61de6e7401463e3df7
Merged-In: I31b5d416aaf907c3bbf1cb61de6e7401463e3df7
2018-05-18 02:16:23 +00:00
hughchen
0404968d8b Grey the previously connected device preference
* For fix the TreeHugger error in pi-dev, cherry pick the ag/3935357 in
  master and fix TreeHugger error.
* Add PreviouslyConnectedDevicePreferenceController to handle the preference should be
  enable or disable.
  Example: If there are no previously connected devices disable the preference otherwise
  enable it.
* Add PreviouslyConnectedDevicePreferenceControllerTest
  1. Verify the callback can be registered and unregistered
  2. Verify the preference is enable when there
     have more than 1 previously connected device
  3. Verify the preference is disable when there
     have no previously connected device

Bug: 78250052
Test: make -j50 RunSettingsRoboTests
Change-Id: I31b5d416aaf907c3bbf1cb61de6e7401463e3df7
2018-05-17 16:55:31 +08:00