Commit Graph

85 Commits

Author SHA1 Message Date
jyhshiangwang
4d015b17b3 Use ListFormatter to join strings
Currently in Settings we are using R.string.join_many_items_first, R.string.join_many_items_middle and R.string.join_many_items_last to manually join strings. The join code is messy and the joined string is incorrect in some languages, so we migrate all string join to just use ListFormatter.getInstance().format().

Bug: b/78248791
Test: robotests
Change-Id: I898339978e6e2027587e28994b0280fa46821fd6
2018-05-02 11:15:32 +08:00
Emily Chuang
b279b1c025 Migrate ChooseAccountActivity to DashboardFragment
- Build a controller to generate/manage a list of preferences.
- Move some logics to the controller and add tests.
- Rename to ChooseAccountFragment.

Bug: 73899467
Test: make RunSettingsRoboTests -j
      atest UniquePreferenceTest SettingsGatewayTest
Change-Id: Id2906c4b922ef159d08c803b976671264c54665f
2018-04-27 22:17:23 -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
jason_chiu
c69102d24e Migrate ManagedProfileSettings to DashboardFragment
- Move preference related logic to Controllers.
- Add some test cases for controllers.

Test: manual
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.accounts
      make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.core
      atest SettingsGatewayTest UniquePreferenceTest
Change-Id: If4fcd7bf572672c886d5c91b2d15013817d1aa67
2018-04-16 12:35:01 -07:00
TreeHugger Robot
2c15909bfc Merge "Protect against invalid authority in account sync pref." into pi-dev 2018-04-10 22:49:18 +00:00
Fan Zhang
e0d2140256 Use proper icon size for default app prefs.
Change-Id: Ib48c7a546fcd3a3a9e32b7a65cbdadd54721f252
Fixes: 77726902
Test: robotests
2018-04-09 10:29:58 -07:00
Fan Zhang
76dbb21cb5 Protect against invalid authority in account sync pref.
Some apps might contain account synclets with empty authority. Settings
UI should protect against this type of synclets. Otherwise clicking on
these synclets will crash.

(Also removed some strings that are no longer needed)

Change-Id: I364b45fc67679aa287ff1e04e6f5ac749116543a
Fixes: 74240862
Test: robotests
2018-04-05 15:19:51 -07:00
Fan Zhang
aab36de0d6 Remove wrapper for device policy manager
Bug: 76167422
Test: robotests
Change-Id: I69dc7341cf1ff408bc24c2a062586cef25b7b918
2018-03-30 20:44:20 -07:00
yuemingw
5f0f6b9831 Remove account should show policy transparency dialog when DISALLOW_MODIFY_ACCOUNTS
is set.

createAdminIntentSupport always checks user restrictions on user 0(
if called from system uid) so can't be used here when account could
be work profile account.

Bug: 70674230
Test: m -j RunSettingsRobotests
Change-Id: Ibd2df8891d9fa7b4c85c42a305c5db2acd4c829b
2018-03-26 17:41:37 +01: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
Doris Ling
fc4d46495d Ignore null value in Account settings summary.
If an account type has no valid label, null is returned. Check the value
to make sure that it is a valid label before adding it to the summary.

Change-Id: I0cf3ef9a976e1a7fe16720da237f416c674791fc
Fixes: 73375480
Test: make RunSettingsRoboTests
2018-02-15 10:47:29 -08:00
Fan Zhang
dc2a3528d5 Misc fixes for account/users fragments
- Hide add user button when it's not functional
- Display "No accounts added" under accounts setting when there is no account.

Change-Id: Iefede9939d206eb3064fa22bdcfbcb1e826f29ab
Fixes: 72643060
Test: robotest
Test: 72713118
2018-01-31 10:55:40 -08:00
Fan Zhang
fe80fa5e80 Display a list of account types as account setting summary
Change-Id: Ifac12bb1dd506613ded131a024de345591f9243f
Fixes: 71871075
Test: robotests
2018-01-28 11:34:27 -08:00
Fan Zhang
881d579620 Misc fixes for User page and my device info page
- Rename UserAndAccountDashboard* to AccountDashboard*
- Move emergency info from account to device info page

- Move auto sync data toggles (4 of them) from Account page to user page
   - Move the controllers too. UserSettings is a not a DashboardFragment
     so I had to manually call each controller method.
     TODO: refactor UserSettings to a DashboardFragment

- Move legal information/regulatory info above advance button within device info page.

Fixes: 72523158
Bug: 71871075
Test: robotests
Change-Id: I1b8af8af61e49d17926f984978a09a974b6c62e1
2018-01-26 12:39:34 -08:00
Fan Zhang
4e08869e1a Make a strong reference to LifecycleOwner in tests
Change-Id: Id3b26ded6c903b67b9880dbfe1a0656a564c8947
Fixes: 71867776
Test: rerun tests
2018-01-11 14:30:16 -08:00
jeffreyhuang
cbfb099a40 Rename SDK_VERSION_O to SDK_VERSION
Test: make RunSettingsRoboTests -j40
Change-Id: I6715062d8addadda441e32809db1af55f15e3a90
2017-12-05 16:43:54 -08:00
Fan Zhang
dff6dd687e Move away from deprecated FakeFeatureFactory.setupForTest()
Test: rerun
Change-Id: I896ba414315ddb1664c0499264f4992f0554ef98
2017-12-05 10:12:10 -08:00
Jeffrey Huang
5999f5d892 Merge "Move accounts package tests to sdk 26" 2017-11-23 00:53:02 +00:00
Jeffrey Huang
7c18a20624 Merge "Update AccountDetailDashboardFragmentTest" 2017-11-23 00:52:50 +00:00
TreeHugger Robot
dd1091c4b4 Merge "Fix AutoSyncDataPreferenceControllerTest" 2017-11-23 00:16:58 +00:00
jeffreyhuang
65304af215 Fix AutoSyncDataPreferenceControllerTest
- Prevent this test from hanging due to fragment deep mock

Test: make RunSettingsRoboTests -j40
Change-Id: I043303c87eb89508fd96e151a17dc70a7b7fa3bb
2017-11-22 14:28:01 -08:00
jeffreyhuang
90f59be20b Move accounts package tests to sdk 26
Test: make RunSettingsRoboTests -j40
Change-Id: I5f5a1f87aff5e1067e9339010b988e58fcc5b704
2017-11-22 14:24:45 -08:00
jeffreyhuang
f6c64b532f Fix RemoveAccountPreferenceControllerTest
- prevent the test from hanging due to passing a deep fragment mock

Test: make RunSettingsRoboTests -j40
Change-Id: I60b6f32b19563dbcd25eda9d98a8c0266480a3f9
2017-11-22 14:19:15 -08:00
jeffreyhuang
2179c16b09 Update AccountDetailDashboardFragmentTest
- Update test to work with sdk 26

Test: make RunSettingsRoboTests -j40
Change-Id: I4c1c98330951f48f378330b51178fc188bba2571
2017-11-22 11:40:57 -08:00
Tony Mantler
94a7c7d21c Convert SettingsLib Lifecycle to Flatfoot
Bug: 69257739
Test: m -j RunSettingsRoboTests
Change-Id: I27e7850c39afb9c09297007e8cc352f410665653
2017-11-14 11:04:40 -08:00
Fan Zhang
a72620b67b Use setVisible instead of removePreference everywhere.
Change-Id: I2e8084b23d3cb2c0a31a38c01716fc76236734ea
Fixes: 68956750
Test: robotests
2017-11-09 13:22:36 -08:00
Fan Zhang
fc29247da4 Use small icon in location and vpn settings UI
Fixes: 65182905
Test: rerun tests
Change-Id: I18aa5c5bb4c8f573872cda3d003506c4dff5177c
2017-10-30 14:24:49 -07:00
Fan Zhang
57ef92a810 Eliminate duplicate keys in pref xmls.
- Remove additional_system_update pref device_info page, we don't need
  it.
- Update keys in xml and Preference controller, and search index
  provider.
- Clean up in ScreenZoomPreference, it's anti-pattern to set fragment in
  constructor.
- Whitelist 2 that are super hard to remove.

Change-Id: Ibab6e2cb074513042a2ae007d9085aa64046eec8
Fixes: 67852637
Test: uniquePreferenceTest
2017-10-28 11:06:37 -07:00
Maurice Lam
e18902ec67 Update Robolectric to 3.4.2
Bug: 66693279
Test: m RunSettingsRoboTests
      m RunSettingsRoboTests-jacoco
Change-Id: I9df619c3d68f0af2ee2ae944a15998275129f7c2
2017-09-22 18:34:00 +00:00
Doris Ling
dee1a22c45 Consolidate all wrappers used for testing.
- Add the wrapper package and move all wrappers to the wrapper package.
- Get rid of some wrapper interface/impl implementation and have a
wrapper class directly.

Bug: 65634579
Test: make RunSettingsRoboTests
Change-Id: Ic757d8f7bacfa7a034c7e692205bc1dc4b0e1de1
2017-09-14 18:24:49 -07:00
Daniel Nishi
739b0eef10 Move the Robolectric shadow config up.
In my testing, this reduces the runtime of the Robolectric Settings test
suite on my Z840 workstation from 440 seconds to 402 seconds on average.
By avoiding having a method-level Robolectric shadow import, we avoid
going down a code path which needs to add more shadows later in the
Robolectric execution.

Bug: 64808827
Test: Settings robotests still pass
Change-Id: I7b40d73b30306ae3f9759281afbd7f7266579e24
2017-08-17 14:37:27 -07:00
Fan Zhang
50eb81f114 Style action bar during onResume instead of onCreate
Change-Id: Ib57bf128b644737b5a34238ec85ca6d740543c5f
Fix: 64284689
Bug: 64297479
Test: robotests
2017-08-02 17:58:47 +00:00
phweiss
7a34e9c28e When Remove Account is disallowed, show dialog
When DISALLOW_MODIFY_ACCOUNT is set by a device admin, and
the user wants to remove an account, show the support dialog
instead of showing the confirm dialog.

To use the O-API DPM.createAdminSupportIntent(), a wrapper
needs to be used, because existing Robolectric tests otherwise
don't compile.

Bug: 37413849
Test: make RunSettingsRoboTests -j40 ROBOTEST_FILTER=*RemoveAccountPreferenceControllerTest

Change-Id: If23ea304ab8b9df1748e6acf3032310843b04780
2017-07-05 19:32:48 +02:00
Doris Ling
771848dde0 Add account sync summary.
- Check for the number of sync adapter that is enabled for the account
and
update the summary text for the account sync preference accordingly.
- Add divider above the Remove Account button.

Bug: 62862167
Test: make RunSettingsRoboTests
Change-Id: Ic333f62cce9aed0a72771324976ebe3d8e586287
2017-06-28 13:18:56 -07:00
Doris Ling
cae6639b96 Add Account.name to the tile's intent.
For dynamic tiles that are displayed in specific account type, add the
account name to the tile's intent so that when we launch the preference,
it can associate with the correct account.

Change-Id: I25f76c1b5710f525634983d00832c9a68cdeeebb
Fix: 62365341
Test: make RunSettingsRoboTests
2017-06-19 11:16:28 -07:00
Doris Ling
b30ce6f7d7 Update category for AccountDetailDashboardFragment.
- use a separate category key for AccountDetailDashboardFragment instead
of sharing the same key with UserAndAccountDashboardFragment. Tile using
the original category will now show up at the top level account
setting, and tile using the new account detail detail will be displayed
under the specified account type.

Bug: 62446202
Test: make RunSettingsRoboTests
Change-Id: I06f781a20f24498bdc6207aef5469be9cd0c8e47
2017-06-14 15:25:24 -07:00
Andrew Sapperstein
9f1e911759 Refactor test runner to use static list of resource paths
Previously everything lived in an inner class method of
SettingsRobolectricTestRunner. That method has now been turned into
a static method so that it can be called by other runners.

Bug: 62460102
Test: robotests
Change-Id: I6612b1f26404587301c534c8ba60e39d59d6c840
2017-06-09 09:21:26 -07:00
Esteban Talavera
c62ce670c3 Merge "Include disabled managed profiles in Accounts page" into oc-dev am: 92f78354f9
am: 42d97f86c2

Change-Id: If2708bc27673b50dfdf7faa3300944d8bdb47b60
2017-06-02 08:42:50 +00:00
Esteban Talavera
92f78354f9 Merge "Include disabled managed profiles in Accounts page" into oc-dev 2017-06-02 08:33:17 +00:00
Esteban Talavera
9b86e9c822 Include disabled managed profiles in Accounts page
At the moment we include disabled profiles when deciding
whether the Work section needs to be added, and then only
include enabled ones when searching for the managed profile's
user handle

Change-Id: I96b0c36aad6b9326abc2992fa3309716f5cd1e74
Fix: 62021410
Test: m RunSettingsRoboTests
2017-06-01 09:52:45 +01:00
Doris Ling
7ecd696dff Remove the duplicate test case that is added by auto-merge.
Change-Id: I0f2f30eed80ab550c16c64a44407ce0199090550
Fix: 38302246
Test: make RunSettingsRoboTests
2017-05-26 13:22:13 -07:00
Doris Ling
02981294b1 Merge "Fix issue for new account not being shown in work profile." into oc-dev am: dd7912e12f
am: 65dbe820bd

Change-Id: I4ced2b59e73ea155528964e927f7a07ed9d9a63f
2017-05-26 19:46:28 +00:00
TreeHugger Robot
dd7912e12f Merge "Fix issue for new account not being shown in work profile." into oc-dev 2017-05-26 19:38:38 +00:00
Fan Zhang
bfbe45fd95 Reduce flakiess in account preference controller test.
The getDrawable method from AuthenticatorHelper randomly fails and
causes test flake. Replaced with a shadow.

Test: rerun robotests
Change-Id: I39afeb9082a35786a05c0e8e5adc337c850ad666
2017-05-25 13:17:43 -07:00
Maurice Lam
046400c2c4 Migrate settings robolectric tests to mockito 2
- Migrated ArgumentMatcher subclasses to lambdas
- Replaced any() with nullable() where tests were failing

Test: cd tests/robotests && mma
Bug: 38456058
Change-Id: Ice8c39b435c45b87f82dbbd9860e68f235314cf8
2017-05-24 15:14:31 -07:00
Fan Zhang
841d1d5aab Show shadow when entity header starts scrolling.
- Add a controller to manage add/remove onScrollChangedListener to
  recyclerviews.
- When recyclerview on each screen is scrolled to top, set actionbar
  elevation to 0, otherwise set it to non-zero.
- When screen is moved to background, detach the listener.
- Use the controller in entity header.

Change-Id: Iecf194d885098c98c392810f62893ae9189f3936
Fix: 37670670
Test: make RunSettingsRoboTests
2017-05-22 17:16:24 -07:00
Fan Zhang
98289a887b Use entity header on AccountDetailDashboardFragment
Bug: 37669238
Test: make RunSettingsRoboTests
Change-Id: Iaf92730e8c6b5c44cb8eca4525fc931487ce9630
2017-05-18 16:36:32 -07:00
TreeHugger Robot
3f4056212f Merge "Fix issue for new account not being shown in work profile." 2017-05-18 18:55:27 +00:00
Fan Zhang
867c68e76c Merge "Fix bug where accounts are duplicated in user&account list." into oc-dev am: 2b030aeb65
am: 60d26cfffa

Change-Id: I878bafe5a626e2f6fe9d8f4cfbb89dfeb763c7a0
2017-05-18 01:14:10 +00:00
Fan Zhang
c754f59fb0 Fix bug where accounts are duplicated in user&account list.
This happens when user has different accounts with same account name. For
example: user@domain.com for type1 and same email for type2, etc. When
we refresh the account list during onResume(), the same account name
incorrectly causes the logic to think they are the same account and
updates the account list by mistake.

- Introduced a util method to generate unique key from Account object.
And set it as preference key.
- when updating preference on screen, use key to find preference instead
of the preference instance itself.

Change-Id: I0aa692cb965b7037155a746389a919cd155843da
Fix: 34035653
Test: make RunSettingsRoboTests
2017-05-17 23:50:30 +00:00