Add in a Data object used to represent one row
in a new SQLite database used for building Slices.
The database has the following schema:
- Key
- Title
- Subtitle
- Screentitle
- Icon
- Fragment
- Controller
The key is the preference key.
Title, subtitle and Icon are for UI info.
Screentitle and fragment are for the intent.
Controller is used to get dynamic ui info (like summary),
and to take actions on the slice (like a toggle).
The actual indexing and a Slice will be handled in a subsquent CL,
but a prototype can be found here: ag/3324435
Test: robotests
Bug: 67996923
Change-Id: Id91deb58a3ab89ce1dab5a3f34cdb9ade6263aa8
The test logic is the same as ExetrnalSourcesSettingsTest but I moved/renamed some methods so both AppOps tests can use them.
Test: make -j32 SettingsUnitTests && adb install -r out/target/product/marlin/data/app/SettingsUnitTests/SettingsUnitTests.apk && adb shell am instrument -w -e class com.android.settings.applications.ExternalSourcesSettingsTest com.android.settings.tests.unit/android.support.test.runner.AndroidJUnitRunner
Test: same as above, but for DrawOverlaySettingsTest
Change-Id: Ifc0f0985a4cb4a82a00839aeb4cd4216c777250e
- update all references to AppInfoDashboardFragment
- removed PackageUtil inner class and change the corresponding function
to be a simple method.
Bug: 69384089
Test: make RunSettingsRoboTests
Change-Id: Ief067e25a303ef16db20b2ca1d8840cb06eff5f9
This cl makes BatteryBroadcastReceiver also listen to update about
battery saver.
Bug: 70530651
Test: RunSettingsRoboTests
Change-Id: I76b2f1b1047aa195ee9d8ff2a8a330cea31039d4
- ExternalSourcesSettingsTest crashes due to the package moved of
ExternalSourcesDetails. Corresponding xml has been updated in previous
CLs. So, reverting the suppress tag for the test class.
- ExternalSourcesDetails can be launched directly with
MANAGE_UNKNOWN_APP_SOURCES intent, and client can pass in invalid
package while launching ExternalSourcesDetails. Need to check whether
the app info is invalid before we try to launch the fragment.
- also fix test failure for not founding the app list as list object
type and id had been changed.
Change-Id: Id7787ca889f770e10d7a8e9fbf8dc79c9d6e884d
Fixes: 70383636
Test: make RunSettingsRoboTests, make SettingsUnitTests
Add the ability to define a Preference Controller
in xml using the 'controller' tag.
This is useful for two reasons:
- It allows the controllers to be instantiated via
reflection for Slices and Dashboard fragment
- Removes the requirement that controllers be defined manually
in Fragments
In order to be instantiable, they must have a unified construction
following either:
ClassName(Context)
ClassName(Context, String)
Also added a robotest that verifies that all controllers defined
in XML follow the constructor schema, and extend
BasePreferenceController.
Test: robotests
Bug: 67996923
Change-Id: I304b35dc666daebecf0c9e286696f3f2a510704a
For AppInfoDashboardFragment:
- add app installer preference into the preference screen
instead of creating it dynamically.
- add controller for the App Installer, Instant App buttons, and instant
app domains preferences.
Bug: 69384089
Test: make RunSettingsRoboTests
Change-Id: I8d362cacb78077c173130018c33c4d00abfe9843
Also add default behavior in case carrier config bundle is null.
Bug: 69730732
Test: manual and new unit test
Change-Id: Ia38462a7e1b6f2e27ff45d93beef09465a68ae5c
Also refactor the preference controller
1. Extend from BasePreferenceController.
2. pass in the preference key. Then it could be reused in different
places with different key.
Bug: 69333961
Test: Screenshot | RunSettingsRoboTests
Change-Id: I773ca022baa326481045c1659565c9a21111200a
- also need to update the reference in the special app access xml page.
Change-Id: I1199f70adf18d3f0e21a946848239526d9c8b3c8
Fixes: 70491786
Test: make SettingsUnitTests
In the new design, bluetooth preference is not MasterSwitchPreference
any more. This cl creates BluetoothSwitchPreference while reuse the
BluetoothEnabler.
Future cl will remove the BluetoothMasterSwitchPreference when P
feature is finalized.
Bug: 69333961
Test: RunSettingsRoboTests
Change-Id: Ie1f934b4e93a6758a1b0cf83bb5098585a635c2a
The test was asserting that VISIBILIY_NO_OVERRIDE (an int)
is not contained in a List<String> (*), which is (trivially)
true but doesn't test what the test intends to test.
(*) or a List<CharSequence>, which is similarly wrong /
meaningless, prior to the base CL http://ag/3345932
VisibilityPreferenceController uses Integer.toString() to
construct corresponding String values, so the test should
be checking for that String value. For consistency with
testUpdateState_noGlobalRestriction()
this CL uses the equivalent (and slightly shorter)
String.valueOf(int) instead of Integer.toString().
Test: EXPERIMENTAL_USE_OPENJDK9=1.8 make RunSettingsRoboTests \
ROBOTEST_FILTER=VisibilityPreferenceControllerTest
Change-Id: I48644729d3e0f29d7ffcc981aeef650f2b1426ef
The test was expecting an ArgumentCaptor for RestrictedDropDownPreference
(extends ListPreference).setEntryValues(CharSequence[]) to be passed an
array of Strings, when actually it should have expected an array of
CharSequences.
This CL fixes the test to use CharSequence. Since CharSequence.equals()
is not guaranteed to be in terms of value equality of the characters,
a private static helper method:
List<String> toStringList(CharSequence[] charSequences) { ... }
is used.
Bug: 70504129
Test: EXPERIMENTAL_USE_OPENJDK9=1.8 make -j30 showcommands dist \
RunSettingsRoboTests RunSettingsRoboTests-jacoco \
RunSettingsLibRoboTests RunSettingsLibRoboTests-jacoco \
RunSettingsGoogleRoboTests RunSettingsGoogleRoboTests-jacoco \
RunSuwRoboTests RunSuwRoboTests-jacoco \
RunTurboRoboTests \
RunStorageManagerRoboTests \
RunTvSettingsRoboTests RunTvSettingsRoboTests-jacoco
Change-Id: I347b03e6cb01715cd1c7f50b5f36567e5f375ad7
Statically including legacy-android-test leads to duplicate classes
which causes build time problems (with Proguard) and runtime problems on
older SDK versions. This change:
* Stops statically including legacy-android-test.
* Adds compile time dependencies on andoid.test.base, android.test.mock
and android.test.runner where necessary.
* Adds <uses-library android:name="android.test.runner"/> to any
affected package to ensure that the classes that were included by
legacy-android-test are still available at runtime. That also adds a
dependency on android.test.base and android.test.mock.
The following change descriptions were generated automatically and so
may be a little repetitive. They are provided to give the reviewer
enough information to check the comments match what has actually been
changed and check the reasoning behind the changes.
* tests/unit/Android.mk
Added 'android.test.base' and 'android.test.mock' to
LOCAL_JAVA_LIBRARIES because SettingsUnitTests's source depends on
their classes and because of these changes they are no longer
present on the compilation path.
Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES
because statically including the classes in SettingsUnitTests
results in duplicate classes which leads to build time and compile
time issues.
Bug: 30188076
Test: make checkbuild
Change-Id: I191a72e50017213df6ad04f32aa660e8028720e2
The usb updater listens to usb update and notify
ConnectedDeviceGroupController to add/remove
preference.
This cl:
1. Add ConntectedusbDeviceUpdater
2. Extract the UsbConnectionBroadcastReceiver since it would be
used both in controller and updater.
3. Add tests
Bug: 69333961
Test: RunSettingsRoboTests
Change-Id: Ic3b045a6faa4eba57d9b0c089ea1656141cc0220
If feature flag is on, then display the app list. Otherwise disable
it.
Bug: 70234293
Test: RunSettingsRoboTests
Change-Id: I1663f925abf95e0e4c1a46d98ca165303a76e979
Move the app list in battery settings to PreferenceController. So that
we can:
1. Clean the code in PowerUsageSummary
2. Make it easy to add/move the app list to other place in furture.
This cl:
1. Move and make it invisible since in P we don't show app list in
battery main page.
2. Move related test to BatteryAppListPreferenceControllerTest
Bug: 70234293
Test: RunSettingsRoboTests
Change-Id: Ice7a42394916ff5e71305bfe22f5c35868d87fc7
After working through a prototype here: (ag/3324435)
it is clear that we don't need the controller to
provider the slice. We will build an index that
will contain sufficent UI information, and a reference
to the controller.
At Slice Bind time, we can get the curret value from the
controller, and the UI information from the Index.
Bug: 67996923
Test: robotests
Change-Id: Id43a51bcd73051bc719cd5829907583e0edf23b2
- add the default app shortcut preferences to the preference screen
xml instead of creating them dynamically in the fragment.
- add controller for each of the shortcut preference.
- move the corresponding shortcut detail settings into the appinfo
package.
- add individual preference screen xml for the shortcut detail settings
instead of using the shared screen template.
Bug: 69384089
Test: make RunSettingsRoboTests
Change-Id: I7bc0b3b727e87fb1a32a82291e64b8e290947671
When location mode is about to change in Settings app, send
MODE_CHANGING broadcast.
Fixes: 28057031
Test: manual
Test: robotests
Change-Id: I430941915daedf13e7b5d22dc8a6e37729d95b75