The first step in refactoring the god class,
DatabaseIndexingManager.
The class has one major entry point: indexDatabase
which begins a chain of calls that first collects all the
data from the fragments, and then massages that data into
the SQLite database. Unfortunately, most of the methods
do not return data, and just pass along some mutated
form of the data until it can be insterted.
Reading and testing this class is very difficult.
This first step moves the collection of the indexable data
into a new class which has a few benefits:
- The data can be easily mocked in tests
- Reduces complexity of D.I.M.
- Separates data collection from indexing, which allows the
indexable data to be piped into a new API that unbundled
search can consume.
Bug:33577327
Test: make RunSettingsRoboTests
Test: Grabbed a DB dump before change, compared to DB dump after change
to make sure everything is still indexed.
Change-Id: Ibc91e3d75ff5dcf5274b93b29bf3544f90b2194d
- Title set if defined in the Bundle returned by summaryUri's content
provider.
- summaryUri invoked inline with onBindView call
bug: 62713030
Test: Manually tested, verified that title and summary are retrieved
when settings app is resumed
Change-Id: Id82531eec5ec11ec3492f033fb34ec65a5437a48
[Cause of Defect]
TrustedCredentialsSettings#mKeyChainConnectionByProfileId is get/set by
more than one thread. Main thread would set it in onDestroy method, and
AsyncTask would get and set in the doInBackground method. So
mKeyChainConnectionByProfileId.get(profileId) would get null after
onDestroy method get called.
Bug: N/A
Test: Debugger to simulate concurrency
Change-Id: I0664d1e9b88b079855354ce0e6fe014a98a22327
Signed-off-by: daqi <daqi@xiaomi.com>
Add a switch for enabling/disabling the laser sensor within
developer options.
Test: Manual using setting app, RunSettingsRoboTests
Bug: 64423712
Change-Id: I89a32dfa062fc62c4be096d2e026a32ce9b784ca
- Title set if defined in the Bundle returned by summaryUri's content
provider.
- summaryUri invoked inline with onBindView call
bug: 62713030
Test: Manually tested, verified that title and summary are retrieved
when settings app is resumed
Change-Id: Id82531eec5ec11ec3492f033fb34ec65a5437a48
In battery settings, the system item contains many packages. In old
behaviour it will use the first package(which has legal name and icon)
to represent this item. This behaviour is not consistent.
In this cl, we always use package "android" to extract name and icon
if it is system item.
Bug: 65090883
Test: RunSettingsRoboTests
Change-Id: Ibb7f85c06ab1745867f1eaa666cea32c8d3295a6
- Never return null when querying userDictionaryLocales
- Auto mirror mobile setting icon in RTL to match status bar.
Fixes: 65298627
Fixes: 65361092
Test: robotests
Change-Id: I0f9827f7bc23baf4895712c0f86584aeccfb9c73
The badge is no longer part of the preferred work profile UX. By
removing the code which badges the preferences for the individual
storage items, we can avoid placing the no longer needed tiny badges.
Change-Id: I6fd2ec28d3cf55e3a95b877f4c7b9b51c94e12d8
Fixes: 64475406
Test: Manual
Display "IMS registration state" in Status menu. Introduce carrier
config to enable/disable the feature for customization. Since some
carriers require, this feature is necessary.
Test: manual Checked "IMS registration state" in Status menu
Bug: 28806101
Change-Id: I6c452c512f03cf41704b91331e44141ed3050cf9
Fixes the bug that, on the new WifiDetailPreference page, the "Forget"
button is not disabled properly for wifi configs created and protected
by DevicePolicyManger.
Robolectric test to follow in a separate CL.
Test: manual, by locking down wifi config with TestDPC
Test: make RunSettingsRoboTests
Bug: 64971700
Bug: 65396674
Change-Id: I27740eabd5eb94415e4258c9c80f91df2d9ab476
The policy transparency code is not triggered as the button is disabled.
BUG: 64570769
Test: 1. Remove work profile without restriction.
Test: 2. Remove work profile with restriction. Observed a dialog explains
why it is disabled.
Test: 3. Verify setting new admin, uninstall and deactivate button are
working
Change-Id: I1fc9c996785c67daf41a5d31e732d9d82eb56b17
If the user moves away from the storage fragment and returns, this
allows us to use cached data from the previous calculation. If the data
is > 1 minute old, we consider it stale. Otherwise, we can bypass the
loading screen.
Fixes: 37923463
Test: Settings Robotest
Change-Id: I7650d4d742852f8d447878c077b9190bc0a0bb22
The preset initial state helps eliminating animation jank when first
landing on the page.
Change-Id: Ia7ba83983f18409b1c653cc1ebb0f3aad281358c
Fixes: 64811322
Test: robotests