Merge "Update display text in cert notification" into nyc-dev

This commit is contained in:
Victor Chang
2016-04-13 10:15:28 +00:00
committed by Android (Google) Code Review
4 changed files with 34 additions and 20 deletions

View File

@@ -296,7 +296,8 @@ public final class Settings {
* monitoring of encrypted network traffic.
* <p>
* In some cases, a matching Activity may not exist, so ensure you
* safeguard against this.
* safeguard against this. Add {@link #EXTRA_NUMBER_OF_CERTIFICATES} extra to indicate the
* number of certificates.
* <p>
* Input: Nothing.
* <p>
@@ -1369,6 +1370,16 @@ public final class Settings {
public static final String EXTRA_DO_NOT_DISTURB_MODE_MINUTES =
"android.settings.extra.do_not_disturb_mode_minutes";
/**
* Activity Extra: Number of certificates
* <p>
* This can be passed as an extra field to the {@link #ACTION_MONITORING_CERT_INFO}
* intent to indicate the number of certificates
* @hide
*/
public static final String EXTRA_NUMBER_OF_CERTIFICATES =
"android.settings.extra.number_of_certificates";
private static final String JID_RESOURCE_PREFIX = "android";
public static final String AUTHORITY = "settings";

View File

@@ -349,18 +349,18 @@
<!-- SSL CA cert notification --> <skip />
<!-- Shows up when there is a user SSL CA Cert installed on the
device. Indicates to the user that SSL traffic can be intercepted. [CHAR LIMIT=NONE] -->
<string name="ssl_ca_cert_warning">Network may be monitored</string>
<!-- Content text for a notification. The Title of the notification is "ssl_ca_cert_warning",
i.e. "Network may be monitored". This says that an unknown party is doing the monitoring.
[CHAR LIMIT=100]-->
<plurals name="ssl_ca_cert_warning">
<item quantity="one">Certificate authority installed</item>
<item quantity="other">Certificate authorities installed</item>
</plurals>
<!-- Content text for a notification. The Title of the notification is "ssl_ca_cert_warning".
This says that an unknown party is doing the monitoring. [CHAR LIMIT=100]-->
<string name="ssl_ca_cert_noti_by_unknown">By an unknown third party</string>
<!-- Content text for a notification. The Title of the notification is "ssl_ca_cert_warning",
i.e. "Network may be monitored". This indicates that an unspecified administrator is doing
the monitoring. [CHAR LIMIT=100]-->
<!-- Content text for a notification. The Title of the notification is "ssl_ca_cert_warning".
This indicates that an unspecified administrator is doing the monitoring. [CHAR LIMIT=100]-->
<string name="ssl_ca_cert_noti_by_administrator">By your work profile administrator</string>
<!-- Content text for a notification. The Title of the notification is "ssl_ca_cert_warning",
i.e. "Network may be monitored". This indicates who is doing the monitoring.
[CHAR LIMIT=100]-->
<!-- Content text for a notification. The Title of the notification is "ssl_ca_cert_warning".
This indicates who is doing the monitoring. [CHAR LIMIT=100]-->
<string name="ssl_ca_cert_noti_managed">By <xliff:g id="managing_domain">%s</xliff:g></string>
<!-- Work profile deleted notification--> <skip />

View File

@@ -1095,7 +1095,6 @@
<java-symbol type="string" name="ssl_ca_cert_noti_by_unknown" />
<java-symbol type="string" name="ssl_ca_cert_noti_by_administrator" />
<java-symbol type="string" name="ssl_ca_cert_noti_managed" />
<java-symbol type="string" name="ssl_ca_cert_warning" />
<java-symbol type="string" name="work_profile_deleted" />
<java-symbol type="string" name="work_profile_deleted_description" />
<java-symbol type="string" name="work_profile_deleted_details" />
@@ -1115,6 +1114,7 @@
<java-symbol type="plurals" name="matches_found" />
<java-symbol type="plurals" name="restr_pin_countdown" />
<java-symbol type="plurals" name="pinpuk_attempts" />
<java-symbol type="plurals" name="ssl_ca_cert_warning" />
<java-symbol type="array" name="carrier_properties" />
<java-symbol type="array" name="config_sms_enabled_locking_shift_tables" />

View File

@@ -211,7 +211,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
private static final String ACTION_EXPIRED_PASSWORD_NOTIFICATION
= "com.android.server.ACTION_EXPIRED_PASSWORD_NOTIFICATION";
private static final int MONITORING_CERT_NOTIFICATION_ID = R.string.ssl_ca_cert_warning;
private static final int MONITORING_CERT_NOTIFICATION_ID = R.plurals.ssl_ca_cert_warning;
private static final int PROFILE_WIPED_NOTIFICATION_ID = 1001;
private static final String ATTR_PERMISSION_PROVIDER = "permission-provider";
@@ -2696,23 +2696,25 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
// Build and show a warning notification
int smallIconId;
String contentText;
// TODO Why does it use the DO name? The cert APIs are all for PO. b/25772443
final String ownerName = getDeviceOwnerName();
if (isManagedProfile(userHandle.getIdentifier())) {
contentText = mContext.getString(R.string.ssl_ca_cert_noti_by_administrator);
if (getProfileOwner(userHandle.getIdentifier()) != null) {
contentText = mContext.getString(R.string.ssl_ca_cert_noti_managed,
getProfileOwnerName(userHandle.getIdentifier()));
smallIconId = R.drawable.stat_sys_certificate_info;
} else if (ownerName != null) {
contentText = mContext.getString(R.string.ssl_ca_cert_noti_managed, ownerName);
} else if (getDeviceOwnerUserId() == userHandle.getIdentifier()) {
contentText = mContext.getString(R.string.ssl_ca_cert_noti_managed,
getDeviceOwnerName());
smallIconId = R.drawable.stat_sys_certificate_info;
} else {
contentText = mContext.getString(R.string.ssl_ca_cert_noti_by_unknown);
smallIconId = android.R.drawable.stat_sys_warning;
}
final int numberOfCertificates = pendingCertificates.size();
Intent dialogIntent = new Intent(Settings.ACTION_MONITORING_CERT_INFO);
dialogIntent.setFlags(
Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
dialogIntent.setPackage("com.android.settings");
dialogIntent.putExtra(Settings.EXTRA_NUMBER_OF_CERTIFICATES, numberOfCertificates);
PendingIntent notifyIntent = PendingIntent.getActivityAsUser(mContext, 0,
dialogIntent, PendingIntent.FLAG_UPDATE_CURRENT, null, userHandle);
@@ -2726,7 +2728,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
}
final Notification noti = new Notification.Builder(userContext)
.setSmallIcon(smallIconId)
.setContentTitle(mContext.getString(R.string.ssl_ca_cert_warning))
.setContentTitle(mContext.getResources().getQuantityText(
R.plurals.ssl_ca_cert_warning, numberOfCertificates))
.setContentText(contentText)
.setContentIntent(notifyIntent)
.setPriority(Notification.PRIORITY_HIGH)