Commit Graph

375 Commits

Author SHA1 Message Date
Sunny Shao
d6d8f98844 Allows to launch only authenticator owned activities
- 3rd party developers can define himself-authenticator
  and use the accountPreferences attribute to load the
  predefined preference UI.
- If a developer defines an action intent to launch the
  other activity in xml and it would return true due
  to the true exported attribute and no permission.
- To avoid launching arbitrary activity. Here allows
  to launch only authenticator owned activities.

Bug: 150946634
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.accounts
Test: PoC app
Change-Id: I5ce1a0b3838db7b3fbe48c6ea23d5f093d625cdb
2020-05-13 10:55:49 +08:00
Tsung-Mao Fang
b3bb7a0237 Fallback to AOSP emergency info if the original intent is broken
If the variant of emergency info is broken, we should try to show
AOSP emergency info instead.

Test: Rebuilt rom and see the Ui. Run robo test
Fix: 154114259
Change-Id: I5bc3f6cbf9102a7b7299c3edf718a58101effbf8
2020-04-16 17:23:52 +08:00
Jason Chiu
b12e3b96c9 Support click metrics logs in several pages
- Assign metrics category to perferences at an earlier stage in
  DashboardFragment for better usability.

Bug: 137559984
Test: robotest
Change-Id: Icd4185efa0e655be20c4b673a1380fa42140923f
2020-04-07 16:44:53 +08:00
Alex Kershaw
c364f5d95d Remove policy transparency for cross-profile calendar setting
We will likely deprecate this setting in the next release, to be
replaced by usage of 'connected work and personal apps'. However, we are
keeping it in this release as it's still possible that a lightweight
calendar access API could be useful, if the admin and user approvals are
combined.

For now, the error message that refers to cross-profile calendar when
the setting is disabled is confusing admins, since we're not
recommending usage of this API at this time.

Remove the setting when it is disabled, rather than showing policy
transparency.

Fixes: 143477431
Test: manual
Change-Id: I65573a5ba892e12a4dabcdf23541f33516db0a8a
2020-03-31 11:41:44 +01:00
Sunny Shao
0030d78b62 Disable the sync now menu while no any synced item
- Check the number of the switch on for all SyncStateSwitchPreferences to
  enable/disable the sync now menu item.

Fixes: 147030748
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.accounts
Change-Id: I88e4b042e6d236b98866b9e8bff9ec2c64b41b87
2020-03-19 20:58:29 +08:00
Alex Johnston
051c3ecaa3 Add policy transparency dialog to 'Remove work profile'
* In New COPE mode, no explanation was being shown to the
  user as to why the work profile cannot be removed.
* This CL adds a policy transparency dialog when the
  'Remove work profile' preference is selected.
* This was done by modifying AccountRestrictionHelper to
  set the preference to disabled by admin if the device is
  in New COPE mode and the base restriction
  DISALLOW_REMOVE_MANAGED_PROFILE is enforced.

Bug: 149391073
Test: Manual testing
Change-Id: Iec0f57b988e1d4fd08bca040abd1bb30b6991507
Merged-In: Iec0f57b988e1d4fd08bca040abd1bb30b6991507
(cherry picked from commit 56e8278498)
2020-03-02 12:05:22 +00:00
Edgar Wang
0934babbfc Make the fragment title can’t searchable
we shouldn't take users so deep into the settings IA because it's easy
to feel lost in settings after clicking on a result without additional
context.

Bug: 143055215
Test: robotest & manual
Change-Id: I337cb5ead31e1e4e7bf9be78132e90630f83ee43
2020-02-06 19:07:11 +08:00
Stanley Wang
5536205081 Merge "Index user accounts." 2019-12-19 06:05:33 +00:00
Stanley Wang
3b02810356 Index user accounts.
Index user accounts in AccountDashboardFragment if there is no managed
user profile.

Fixes: 146478761
Test: manual & robotest
Change-Id: I719dc6ee8030a11f1cbfacc8f24419e9e4c3ca18
2019-12-19 10:55:42 +08:00
Raff Tsai
5c075bad44 Finish Activity when account is changed
Fixes: 146230862
Test: remove work profile account
Change-Id: I7c7c788587d9f17b629358be56befa76b0916e99
2019-12-16 04:37:06 +00:00
Raff Tsai
1e5d8146b5 Change ProfileType definition
Bug: 141601408
Test: rebuild
Change-Id: Ia4d4fabe8a4daad4ce54c243748fa3c29bf944ba
2019-12-12 13:44:35 +08:00
Stanley Wang
304957b1fb Merge "Add work profile items of Account page to dynamic index." 2019-11-28 03:45:58 +00:00
Stanley Wang
8015cbab9e Add work profile items of Account page to dynamic index.
- Add "Work profile settings" & "Remove work profile"
to dynamic index

Test: manual & robotests AccountPreferenceControllerTest
Change-Id: I122269927fd466bc8fbce1dd68faa372a6a7477b
Bugs: 69907442
2019-11-27 18:44:12 +08:00
Raff Tsai
5089629bf5 Separate personal/work tab in LocationSettings
- Add LocationPersonalSettings for personal location Settings
- Add LocationWorkProfileSettings for workprofile location settings

Bug: 141601408
Test: manual
Change-Id: Iaaa3a1db5abe02881c4d8afdaec1013ab5552eb3
2019-11-26 17:21:55 +08:00
Raff Tsai
f5277ba54a Modify account page multiple profile UI
- Extend the tab width to 50%
- Hide category title in two tab mode

Bug: 141601408
Test: manual
Change-Id: I73a1a64c704f7a74c200803efef97cdac5534aa7
2019-11-07 14:53:54 +08:00
Sunny Shao
f7d56e94ad Fix the crashed problem at the AccountSyncSettings
- Use uid mapping to lowWord request code to avoid checking error of the request code.
- Use the local variable to keep the mapping data.
- Use onSaveInstanceState and onActivityCreated to backup/restore the mapped data.

Fixes: 142573823
Test: make RunSettingsGoogleRoboTests -j ROBOTEST_FILTER=com.android.settings.accounts
Change-Id: Ib034c5c418d4b73df604a8dc7d9994309c717356
2019-10-30 18:15:07 +08:00
Raff Tsai
539ab8ace4 Add work/personal profile tab for storage page
- Add ProfileSelectStorageFragment
- Check featureFlag in SecondaryUserController to decide show/hide
workprofile item StorageDashboardFragment

Bug: 141601408
Test: manual
Change-Id: I97762d3b1a4985e2b186b34fc37c7976c2f69224
2019-10-25 16:57:24 +08:00
Tsung-Mao Fang
c60c674b0e Fix crash on indexing AccountWorkProfileDashboardFragment
This feature is not ready, We should not index this fragment now.

Change-Id: I127d00069846f39e8faaae0c8d099463af0718ed
Fix: 142780476
Test: rebuilt
2019-10-16 19:57:04 +08:00
Raff Tsai
65866290ce Add tablayout for work/personal profile
- Add Tablayout in ProfileSelectFragment
- Add AccountWorkProfileDashboardFragment inherited from
ProfileSelectFragment
- Add ProfileFragmentBridge to convert AccountDashboardFragment
to AccountProfileSelectFragment
- Use flag settings_work_profile to guard the new fragment

Bug: 141601408
Test: Settings->developer options->feature flags->
turn settings_work_profile on/off, then go to settings->account
to see if UI is changed.

Change-Id: Ifb32c22cdeab69c51517664081cacf4a401c46a1
2019-10-15 18:01:08 +08:00
Raff Tsai
966fa01423 Use SettingsLib Indexable
- Use SettingsLib Indexable
- Directly use resource id in getPreferenceScreenResId

Bug: 135053028
Test: roboletric
Change-Id: I05f493b55e8b6e2091301e9231ba5615215618e6
2019-09-25 18:24:56 +08:00
Raff Tsai
ac3e0d0988 Directly use BaseIndexableProvider
- Add function getXmlResourceId, Fragments don't need to write
xml resource id twice.
- Remove getPreferenceControllers from Indexable.java. Because it will
move to SettingsLib later for other apps which don't need this function

Bug: 135053028
Test: robolectric
Change-Id: I1e74519aecdea3dde64a5aea79f08d766dbc0003
2019-09-24 00:35:52 +08:00
TreeHugger Robot
ea43780693 Merge "Revert "Prevent accounts page directly opening in screen pinning mode"" 2019-09-06 11:13:40 +00:00
Mill Chen
348234565a Revert "Prevent accounts page directly opening in screen pinning mode"
This reverts commit f3242dab35.

Reason for revert: use another way to handle this.

Change-Id: I83c97db5189cfda3a09f5249d8591ea91dbd3bcb
2019-09-06 09:18:23 +00:00
Raff Tsai
fcaca1ac75 Remove ic_menu_refresh_holo_dark
Menu overflow item icon is removed for 1p apps. We don't need to
set it.

Bug: 139336138
Test: visual
Change-Id: I91216d0363211c5e9aee074810746999ae49b097
2019-08-19 18:15:49 +08:00
Raff Tsai
4831332a1c Replace png to vector drawable
Bug: 139336138
Test: visual
Change-Id: Ic778b7ce6ecfc48cb35a5618fd766d69d67a0834
2019-08-14 16:01:33 +08:00
Sunny Shao
7e866b670e Use Builder to replace the Uitls.addFooterPreference
Fixes: 139163212
Test: manual test
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.bluetooth
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.accounts
Change-Id: I861434b81c07db785e6f1cfb3e34871ffba41e5f
2019-08-09 11:42:04 +08:00
Sunny Shao
6b4a22522b Use FooterPreference in xml explicitly
Removed the FooterPreferenceMixin from the ChooseAccountFragment page.

Fixes: 139043643
Test: manual test
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.accounts
Change-Id: I2b6ebef7f8ca0684afd75ec9bdd742a78a771bcd
2019-08-07 17:01:25 +08:00
Sunny Shao
1908cb6bd2 Use FooterPreference in AccountSyncSettings page
.Use the new FooterPreference and removed the old FooterPreferenceMixin
 from the AccountSyncSettings page.
.Add the ShadowAuthenticationHelper for commnon shadow util.

Fixes: 138978130
Test: manual test
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.accounts
Change-Id: I93ae46b3b66e7e504320a9ed120ab7948dd06423
2019-08-06 20:33:44 +08:00
Mill Chen
f3242dab35 Prevent accounts page directly opening in screen pinning mode
There is no auth mechanism to prevent accounts page being opened in
screen pinning mode. We will directly close the account page if users
are trying to navigate to it from screen pinning mode.

Fixes: 137015265
Test: manual, robotests
Change-Id: If26eda408a9ef6fa03ad82e5bee51bb7185950d6
2019-07-20 02:51:14 +08:00
Stanley Wang
1903470bfb Fix Settings search result 'add an account' does nothing.
Tap 'add an account' from search results will launch ChooseAccountFragment,
this way doesn't invoke AddAccountSettings and the add account service of gms
won't be triggered, so the items on the fragment will do nothing.

Move the key word to the search synonym of AccountDashboardFragment
and remove it from ChooseAccountFragment, the search result will invoke
AccountDashboardFragment.

Fixes: 133511289
Test: maunal
Change-Id: I67fa004c4965da37c59cada6ca27752e9fe7202b
2019-07-01 14:56:20 +08:00
Sunny Shao
2c6d308ecb Set the mAccountName as null while device has no any account
It doesn't clean the mAccountName buffer while device has no any account. And it will be put into
the Intent and pass to MeCard when user click the ghost boy avatar. It does not make sense and
modify code to fixed it.

Fixes: 129265427
Test: make RunSettingsRoboTests -j56 ROBOTEST_FILTER=com.android.settings.accounts
      make RunSettingsRoboTests -j56 ROBOTEST_FILTER=com.android.settings.core
      make RunSettingsRoboTests -j56 ROBOTEST_FILTER=com.android.settings.dashboard

Change-Id: Ib8cfab2cb416515018f335b21ef49a95699a1597
2019-06-04 15:56:18 +08:00
Sunny Shao
d843ee85de Fixed the IllegalStateException on removing account
According the log, I found that there are a lot of DeadObjectException and gms servervice restart.
The system became unstable during this period, so add try/catch to avoid the exception of the Settings.

Fixes: 133253227
Test: make RunSettingsRoboTests -j56 ROBOTEST_FILTER=com.android.settings.accounts
      make RunSettingsRoboTests -j56 ROBOTEST_FILTER=com.android.settings.core
      make RunSettingsRoboTests -j56 ROBOTEST_FILTER=com.android.settings.dashboard

Change-Id: I8534e8f7118234f6346607415698f9f91c3e5ffb
2019-05-30 11:24:49 +08:00
Jason Chiu
3e4d002679 Fix multiple instances for Google SignIn activity appearing in task stack
- Account page starts an activity with the flag FLAG_ACTIVITY_NEW_TASK
  to add an account and then causes multiple activity instances.
- Add the flag FLAG_ACTIVITY_CLEAR_TASK in conjunction with
  FLAG_ACTIVITY_NEW_TASK to clear existing task before the activity is
  started.

Fixes: 109923099
Test: robotest, manual
Change-Id: I8234ab33d8aa949e5ff78320962920cb0f8b2953
2019-05-16 17:50:46 +08:00
Amin Shaikh
3f1de20c7e Fix themed settings icons.
- Added android prefix for homeAsUpIndicator attribute
- Override ic_arrow_down_24dp from androidx
- Remove ic_lock drawable overlay
- Update date and time icon
- Dedupe ic_menu_add and ic_add_24dp

Bug: 131346125
Test: mp settings;
Change-Id: I7223249f2adccc5569a37e8b68cae5499e7c7620
2019-05-03 17:02:46 +00:00
yuanjiahsu
1da7fbb09d Clean Safetyhub feature flag from Settings.
Clean all related code, need submit together.

Test: Manually
Bug: 118848485
Change-Id: Icaa0c0736dfa4a7d96aba396a884c9d3383a0f22
2019-05-02 12:45:53 +08:00
Fan Zhang
e3ecf5bb9e Fix a NPE when removing accounts.
Guard against null activity. If activity is already null, there is no
need to call finish().

Fixes: 131180213
Test: robotests
Change-Id: I19232ed67ddd0c3539b1827de23fdc584850b519
2019-04-23 15:23:36 -07:00
Fan Zhang
ac76a480bd Merge "Add a way to suppress injected tiles for OEMs" into qt-dev 2019-04-19 20:30:24 +00:00
Yanting Yang
4e56cb2917 Add a way to suppress injected tiles for OEMs
Create a config resource for OEMs to add suppressed tile's key, then
DashboardFragment will filter related tiles out from Settings.

OEMs can use this way to suppress security patch injected tile if they
don't use Google OTA.

Fixes: 130734771
Test: visual, robotests
Change-Id: I4cab79c8672048fa543d39b2a8f38ffe338189c8
2019-04-20 01:31:07 +08:00
Jonathan Scott
ed701572d7 Don't show policy transparency UI for cross-profile setting.
Also removes the switch if cross-profile calendar is disabled by admin.

Test: atest ManagedProfileSettingsTest
Fixes: 123930863
Change-Id: Ieeb9266e8833d7ca730fedb5e947b03ec7d18d3c
2019-04-18 11:31:50 +00:00
Fan Zhang
d482da51e5 Disable avatar and contextual cards on low ram devices.
Fixes: 124127763
Test: robotest & manually inspected hprof
Change-Id: I8d328b782a9b1871b76edf433d2378d06face14a
2019-03-13 14:04:35 -07:00
Yanting Yang
11a157a8e7 Fix preferences ordering issue in AccountSyncSettings
In Pie, it's alphabetical ordering in Accounts > Account sync detail page.
But Q doesn't follow it, intend to keep the same behavior.

Fixes:124382857
Test: visual, robotests
Change-Id: I593a4cc919daa0018d3874d84978e876198aae23
2019-02-20 21:18:28 +08:00
Fan Zhang
7db118e367 Mass clean up: don't cast class when not needed.
Bug: none
Test: rebuild
Change-Id: Ie3f58a3d5ae99ade28a33dcac80c18de90d4d5b2
2019-02-14 12:26:09 -08:00
TreeHugger Robot
7f328536c3 Merge "Add a metrics for avatar" 2019-02-01 18:25:11 +00:00
Sunny Shao
20aaf3d276 Add a metrics for avatar
Add a metrics log when user click search bar avatar

Change-Id: I389d469cc3fe335ee934d72d642251a6f4fd038b
Fixes: 123560980
Test: compilation
2019-02-01 10:26:59 +08:00
Doris Ling
3e586a5cf2 Add current user handle to tile intent in account detail page.
- the account detail settings page is launched with the correct user
handle when there is work profile to indicate which profile the account
belongs to. When we process the dynamic tile, for the page, we should
add this info to the tile intent, so that it can be launched with the
correct profile.
- when we launch the tile intent, check whether there's user handle
specified. If so, launch the intent directly without prompting for
profile selection.

Change-Id: I91f8c666a826909006b1f53907b3441825322c10
Fixes: 119657694
Test: make RunSettingsRoboTests
2019-01-31 11:19:30 -08:00
Fan Zhang
5c3301b0ab Add configs to display/hide a few tiles in device info page
- Displaying/hiding Emergency info, branded account, device header
  widget are now driven by config flags
- Also refactored controllers to use BasePreferenceController

Change-Id: Ie601ebf689e0744c6a05a2cca5513fa43ef355e0
Fixes: 119607340
Test: robotests
2019-01-28 14:44:02 -08:00
Fan Zhang
31b210017b Migrate all MetricsProto enums to SettingsEnums
Bug: 122855168
Test: rebuild
Change-Id: I962d9a71179f86b7cae9dc5e9a00e0aa1557dc76
2019-01-17 14:55:42 -08:00
Sunny Shao
7aa9fdd75c Launch view account page when it's available.
- Add to launch the new Contextual Landing Page when user clicks the avatar
  icon and check the matching intent activity exist.
- Use the serialized intent and keeps in config.xml.
- Remove the getAccountSettingsDeeplinkIntent in the AccountFeatureProvider
  which never use again.

Change-Id: I50396af67eb04034572f8c885b4d9aef48a67e9d
Fixes: 122486552
Test: robotest
2019-01-10 09:33:21 +08:00
yuemingw
a35990b633 Add Cross profile calendar Settings UI.
Bug: 117976974
Test: make ROBOTEST_FILTER=CrossProfileCalendarPreferenceControllerTest -j40 RunSettingsRoboTests
Change-Id: Ieb4dcfb8091e2c63f4372af220695297c7bb116d
2018-12-10 19:39:29 +00:00
Fan Zhang
d7fa2fa64e Make a few custom slices implement CustomSliceable.
Bug: 80263568
Test: robotests, slice-browser
Change-Id: Id809a347d77448917154c2d1144fd2517e70829a
2018-12-05 15:47:14 -08:00