Don't show disabled packages in the WebView implementation Dev setting.
You can't choose to use a disabled WebView package as WebView
implementation (this ensures that without interference from the user the
system will always try choose a package which will eventually become
updated, rather than a package that does not receive updates) and there
are cases where a package cannot/should not be enabled (to save e.g.
bandwidth).
Therefore, with this change we no longer show disabled WebView packages
as potential WebView implementations in the WebView implementation
Developer setting.
Bug: 27188851
Change-Id: I19a9b16118703d8a54d8215c186fc99ffefc4b6d
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index af38ad0..2a9207a 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -754,22 +754,24 @@
Log.e(TAG, "No WebView providers available");
return;
}
- String[] options = new String[providers.length];
- String[] values = new String[providers.length];
+ ArrayList<String> options = new ArrayList<String>();
+ ArrayList<String> values = new ArrayList<String>();
for(int n = 0; n < providers.length; n++) {
- options[n] = providers[n].description;
- values[n] = providers[n].packageName;
+ if (isPackageEnabled(providers[n].packageName)) {
+ options.add(providers[n].description);
+ values.add(providers[n].packageName);
+ }
}
- mWebViewProvider.setEntries(options);
- mWebViewProvider.setEntryValues(values);
+ mWebViewProvider.setEntries(options.toArray(new String[options.size()]));
+ mWebViewProvider.setEntryValues(values.toArray(new String[values.size()]));
String value = webViewUpdateService.getCurrentWebViewPackageName();
if (value == null) {
value = "";
}
- for (int i = 0; i < values.length; i++) {
- if (value.contentEquals(values[i])) {
+ for (int i = 0; i < values.size(); i++) {
+ if (value.contentEquals(values.get(i))) {
mWebViewProvider.setValueIndex(i);
return;
}