Have WebView Implementation Dev Setting use DefaultAppPickerFragment.

Make the WebView Implementation Dev Setting look like the fullscreen
settings deriving from DefaultAppPickerFragment.
Point the Activity opened through Settings.ACTION_WEBVIEW_SETTINGS to
the class WebViewAppPicker which is our new implementation of the
WebView Implementation setting.

Ensure the new setting closes if it is reached from a user that isn't an
admin of the device.

Bug: 34806477
Bug: 34966439
Test: Ensure WebView implementation Dev Setting looks ok (disabled
packages should have a text showing why they cannot be chosen).
Test: Start Intent with action Settings.ACTION_WEBVIEW_SETTINGS and
ensure the started Activity looks similar to the WebView Implementation
Dev Setting.
Test: Ensure picking a package that is no longer active, updates the
setting (so that package isn't visible anymore).
Change-Id: I08007c515193739ad61dfd735bb5130fc07bd6e6
This commit is contained in:
Gustav Sennton
2017-02-03 16:19:02 +00:00
parent 8be6862021
commit 5b596285a0
15 changed files with 365 additions and 512 deletions

View File

@@ -232,7 +232,6 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
private static final int RESULT_DEBUG_APP = 1000;
private static final int RESULT_MOCK_LOCATION_APP = 1001;
private static final int RESULT_WEBVIEW_APP = 1002;
private static final String PERSISTENT_DATA_BLOCK_PROP = "ro.frp.pst";
private static final String FLASH_LOCKED_PROP = "ro.boot.flash.locked";
@@ -800,7 +799,8 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
updateSimulateColorSpace();
updateUSBAudioOptions();
updateForceResizableOptions();
mWebViewAppPrefController.updateState(null);
Preference webViewAppPref = findPreference(mWebViewAppPrefController.getPreferenceKey());
mWebViewAppPrefController.updateState(webViewAppPref);
updateWebViewMultiprocessOptions();
updateOemUnlockOptions();
if (mColorTemperaturePreference != null) {
@@ -2311,8 +2311,6 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
writeMockLocation();
updateMockLocation();
}
} else if (requestCode == RESULT_WEBVIEW_APP) {
mWebViewAppPrefController.onActivityResult(resultCode, data);
} else if (requestCode == REQUEST_CODE_ENABLE_OEM_UNLOCK) {
if (resultCode == Activity.RESULT_OK) {
if (mEnableOemUnlock.isChecked()) {
@@ -2336,8 +2334,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
return true;
}
if (mWebViewAppPrefController.handlePreferenceTreeClick(preference)) {
startActivityForResult(
mWebViewAppPrefController.getActivityIntent(), RESULT_WEBVIEW_APP);
return true;
}
if (preference == mEnableAdb) {