Merge "Enable the switch in TrustedCredentialsSettings"

This commit is contained in:
Robin Lee
2016-09-26 15:54:48 +00:00
committed by Android (Google) Code Review
3 changed files with 41 additions and 29 deletions

View File

@@ -21,14 +21,15 @@
android:background="?android:attr/selectableItemBackground" android:background="?android:attr/selectableItemBackground"
android:paddingStart="?android:attr/listPreferredItemPaddingStart" android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:paddingTop="15dip" android:descendantFocusability="blocksDescendants"
android:paddingBottom="15dip"
android:orientation="horizontal"> android:orientation="horizontal">
<LinearLayout <LinearLayout
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:paddingTop="15dip"
android:paddingBottom="15dip"
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
@@ -53,8 +54,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="invisible" android:visibility="invisible"
android:clickable="false" android:padding="8dp"
android:focusable="false"
android:layout_weight="0" /> android:layout_weight="0" />
</LinearLayout> </LinearLayout>

View File

@@ -138,7 +138,7 @@ class TrustedCredentialsDialogBuilder extends AlertDialog.Builder {
onClickOk(); onClickOk();
} }
} else if (view == mNegativeButton) { } else if (view == mNegativeButton) {
onClickRemove(); onClickEnableOrDisable();
} }
} }
@@ -155,21 +155,26 @@ class TrustedCredentialsDialogBuilder extends AlertDialog.Builder {
} }
} }
private void onClickRemove() { private void onClickEnableOrDisable() {
final CertHolder certHolder = getCurrentCertInfo(); final CertHolder certHolder = getCurrentCertInfo();
new AlertDialog.Builder(mActivity) DialogInterface.OnClickListener onConfirm = new DialogInterface.OnClickListener() {
.setMessage(getButtonConfirmation(certHolder)) @Override
.setPositiveButton(android.R.string.yes, public void onClick(DialogInterface dialog, int id) {
new DialogInterface.OnClickListener() { mDelegate.removeOrInstallCert(certHolder);
@Override nextOrDismiss();
public void onClick(DialogInterface dialog, int id) { }
mDelegate.removeOrInstallCert(certHolder); };
dialog.dismiss(); if (certHolder.isSystemCert()) {
nextOrDismiss(); // Removing system certs is reversible, so skip confirmation.
} onConfirm.onClick(null, -1);
}) } else {
.setNegativeButton(android.R.string.no, null) new AlertDialog.Builder(mActivity)
.show(); .setMessage(R.string.trusted_credentials_remove_confirmation)
.setPositiveButton(android.R.string.yes, onConfirm)
.setNegativeButton(android.R.string.no, null)
.show();
}
} }
private void onCredentialConfirmed(int userId) { private void onCredentialConfirmed(int userId) {
@@ -314,13 +319,6 @@ class TrustedCredentialsDialogBuilder extends AlertDialog.Builder {
return certLayout; return certLayout;
} }
private static int getButtonConfirmation(CertHolder certHolder) {
return certHolder.isSystemCert() ? ( certHolder.isDeleted()
? R.string.trusted_credentials_enable_confirmation
: R.string.trusted_credentials_disable_confirmation )
: R.string.trusted_credentials_remove_confirmation;
}
private static int getButtonLabel(CertHolder certHolder) { private static int getButtonLabel(CertHolder certHolder) {
return certHolder.isSystemCert() ? ( certHolder.isDeleted() return certHolder.isSystemCert() ? ( certHolder.isDeleted()
? R.string.trusted_credentials_enable_label ? R.string.trusted_credentials_enable_label

View File

@@ -318,7 +318,8 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment
* whereas children correspond to certificates. * whereas children correspond to certificates.
*/ */
private class GroupAdapter extends BaseExpandableListAdapter implements private class GroupAdapter extends BaseExpandableListAdapter implements
ExpandableListView.OnGroupClickListener, ExpandableListView.OnChildClickListener { ExpandableListView.OnGroupClickListener, ExpandableListView.OnChildClickListener,
View.OnClickListener {
private final AdapterData mData; private final AdapterData mData;
private GroupAdapter(Tab tab) { private GroupAdapter(Tab tab) {
@@ -402,6 +403,16 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment
return true; return true;
} }
/**
* Called when the switch on a system certificate is clicked. This will toggle whether it
* is trusted as a credential.
*/
@Override
public void onClick(View view) {
CertHolder holder = (CertHolder) view.getTag();
removeOrInstallCert(holder);
}
@Override @Override
public boolean onGroupClick(ExpandableListView expandableListView, View view, public boolean onGroupClick(ExpandableListView expandableListView, View view,
int groupPosition, long id) { int groupPosition, long id) {
@@ -459,16 +470,17 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment
ViewGroup parent) { ViewGroup parent) {
ViewHolder holder; ViewHolder holder;
if (convertView == null) { if (convertView == null) {
holder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getActivity()); LayoutInflater inflater = LayoutInflater.from(getActivity());
convertView = inflater.inflate(R.layout.trusted_credential, parent, false); convertView = inflater.inflate(R.layout.trusted_credential, parent, false);
holder = new ViewHolder(); convertView.setTag(holder);
holder.mSubjectPrimaryView = (TextView) holder.mSubjectPrimaryView = (TextView)
convertView.findViewById(R.id.trusted_credential_subject_primary); convertView.findViewById(R.id.trusted_credential_subject_primary);
holder.mSubjectSecondaryView = (TextView) holder.mSubjectSecondaryView = (TextView)
convertView.findViewById(R.id.trusted_credential_subject_secondary); convertView.findViewById(R.id.trusted_credential_subject_secondary);
holder.mSwitch = (Switch) convertView.findViewById( holder.mSwitch = (Switch) convertView.findViewById(
R.id.trusted_credential_status); R.id.trusted_credential_status);
convertView.setTag(holder); holder.mSwitch.setOnClickListener(this);
} else { } else {
holder = (ViewHolder) convertView.getTag(); holder = (ViewHolder) convertView.getTag();
} }
@@ -480,6 +492,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment
UserManager.DISALLOW_CONFIG_CREDENTIALS, UserManager.DISALLOW_CONFIG_CREDENTIALS,
new UserHandle(certHolder.mProfileId))); new UserHandle(certHolder.mProfileId)));
holder.mSwitch.setVisibility(View.VISIBLE); holder.mSwitch.setVisibility(View.VISIBLE);
holder.mSwitch.setTag(certHolder);
} }
return convertView; return convertView;
} }
@@ -576,6 +589,7 @@ public class TrustedCredentialsSettings extends OptionsMenuFragment
mListView = (ListView) mContainerView.findViewById(R.id.cert_list); mListView = (ListView) mContainerView.findViewById(R.id.cert_list);
mListView.setAdapter(this); mListView.setAdapter(this);
mListView.setOnItemClickListener(this); mListView.setOnItemClickListener(this);
mListView.setItemsCanFocus(true);
mHeaderView = (ViewGroup) mContainerView.findViewById(R.id.header_view); mHeaderView = (ViewGroup) mContainerView.findViewById(R.id.header_view);
mHeaderView.setOnClickListener(this); mHeaderView.setOnClickListener(this);