Merge "Show current WebView package as selected in Dev Setting."
This commit is contained in:
committed by
Android (Google) Code Review
commit
e736dc66c1
@@ -16,8 +16,10 @@ package com.android.settings.webview;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.ApplicationInfo;
|
import android.content.pm.ApplicationInfo;
|
||||||
|
import android.content.pm.PackageInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
|
import android.graphics.Color;
|
||||||
import android.support.annotation.VisibleForTesting;
|
import android.support.annotation.VisibleForTesting;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -36,6 +38,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
class WebViewAppListAdapter extends ArrayAdapter<WebViewApplicationInfo> {
|
class WebViewAppListAdapter extends ArrayAdapter<WebViewApplicationInfo> {
|
||||||
private final LayoutInflater mInflater;
|
private final LayoutInflater mInflater;
|
||||||
|
private final String mCurrentWebViewPackageName;
|
||||||
|
|
||||||
public WebViewAppListAdapter(Context context,
|
public WebViewAppListAdapter(Context context,
|
||||||
WebViewUpdateServiceWrapper webviewUpdateServiceWrapper) {
|
WebViewUpdateServiceWrapper webviewUpdateServiceWrapper) {
|
||||||
@@ -53,6 +56,10 @@ class WebViewAppListAdapter extends ArrayAdapter<WebViewApplicationInfo> {
|
|||||||
packageInfoList.add(info);
|
packageInfoList.add(info);
|
||||||
}
|
}
|
||||||
addAll(packageInfoList);
|
addAll(packageInfoList);
|
||||||
|
|
||||||
|
PackageInfo currentWebViewPackage = webviewUpdateServiceWrapper.getCurrentWebViewPackage();
|
||||||
|
mCurrentWebViewPackageName =
|
||||||
|
currentWebViewPackage == null ? null : currentWebViewPackage.packageName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -80,6 +87,11 @@ class WebViewAppListAdapter extends ArrayAdapter<WebViewApplicationInfo> {
|
|||||||
holder.disabled.setVisibility(View.GONE);
|
holder.disabled.setVisibility(View.GONE);
|
||||||
// Only allow a package to be chosen if it is enabled and installed for all users.
|
// Only allow a package to be chosen if it is enabled and installed for all users.
|
||||||
convertView.setEnabled(isEnabled(position));
|
convertView.setEnabled(isEnabled(position));
|
||||||
|
if (info.info.packageName.equals(mCurrentWebViewPackageName)) {
|
||||||
|
convertView.setBackgroundColor(Color.GRAY);
|
||||||
|
} else {
|
||||||
|
convertView.setBackgroundColor(Color.WHITE);
|
||||||
|
}
|
||||||
return convertView;
|
return convertView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -73,9 +73,10 @@ public class WebViewAppPreferenceController extends PreferenceController {
|
|||||||
* Handle the return-value from the WebViewAppPicker Activity.
|
* Handle the return-value from the WebViewAppPicker Activity.
|
||||||
*/
|
*/
|
||||||
public void onActivityResult(int resultCode, Intent data) {
|
public void onActivityResult(int resultCode, Intent data) {
|
||||||
if (resultCode == Activity.RESULT_OK) {
|
// Update the preference summary no matter whether we succeeded to change the webview
|
||||||
updateState(null);
|
// implementation correctly - we might have changed implementation to one the user did not
|
||||||
}
|
// choose.
|
||||||
|
updateState(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getCurrentWebViewPackageLabel(Context context) {
|
private String getCurrentWebViewPackageLabel(Context context) {
|
||||||
|
@@ -70,7 +70,7 @@ public class WebViewAppPreferenceControllerTest {
|
|||||||
verify(controller, times(1)).updateState(any());
|
verify(controller, times(1)).updateState(any());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testOnActivityResultWithFailureDoesNothing() {
|
@Test public void testOnActivityResultWithFailure() {
|
||||||
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
|
WebViewUpdateServiceWrapper wvusWrapper = mock(WebViewUpdateServiceWrapper.class);
|
||||||
|
|
||||||
WebViewAppPreferenceController controller =
|
WebViewAppPreferenceController controller =
|
||||||
@@ -78,6 +78,6 @@ public class WebViewAppPreferenceControllerTest {
|
|||||||
|
|
||||||
controller.displayPreference(mPreferenceScreen); // Makes sure Preference is non-null
|
controller.displayPreference(mPreferenceScreen); // Makes sure Preference is non-null
|
||||||
controller.onActivityResult(Activity.RESULT_CANCELED, new Intent(DEFAULT_PACKAGE_NAME));
|
controller.onActivityResult(Activity.RESULT_CANCELED, new Intent(DEFAULT_PACKAGE_NAME));
|
||||||
verify(controller, never()).updateState(any());
|
verify(controller, times(1)).updateState(any());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user