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
This commit is contained in:
Gustav Sennton
2016-02-15 14:23:22 +00:00
parent 23ce96c229
commit 0851ede886

View File

@@ -754,22 +754,24 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
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;
}