diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 3146f4158eebd..f36d448ab4fe3 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -4013,9 +4013,11 @@
Ask for password before unpinning
-
+
Installed by your administrator
-
+
+ Updated by your administrator
+
Deleted by your administrator
diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml
index 90437b9cd85d5..625f003df61ef 100755
--- a/core/res/res/values/symbols.xml
+++ b/core/res/res/values/symbols.xml
@@ -698,6 +698,7 @@
+
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java
index a40617545995c..09096ff14e4a0 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerService.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -969,8 +969,11 @@ public class PackageInstallerService extends IPackageInstaller.Stub {
public void onPackageInstalled(String basePackageName, int returnCode, String msg,
Bundle extras) {
if (PackageManager.INSTALL_SUCCEEDED == returnCode && mShowNotification) {
+ boolean update = (extras != null) && extras.getBoolean(Intent.EXTRA_REPLACING);
Notification notification = buildSuccessNotification(mContext,
- mContext.getResources().getString(R.string.package_installed_device_owner),
+ mContext.getResources()
+ .getString(update ? R.string.package_updated_device_owner :
+ R.string.package_installed_device_owner),
basePackageName,
mUserId);
if (notification != null) {
@@ -980,6 +983,7 @@ public class PackageInstallerService extends IPackageInstaller.Stub {
}
}
final Intent fillIn = new Intent();
+ fillIn.putExtra(PackageInstaller.EXTRA_PACKAGE_NAME, basePackageName);
fillIn.putExtra(PackageInstaller.EXTRA_SESSION_ID, mSessionId);
fillIn.putExtra(PackageInstaller.EXTRA_STATUS,
PackageManager.installStatusToPublicStatus(returnCode));
@@ -1030,6 +1034,7 @@ public class PackageInstallerService extends IPackageInstaller.Stub {
R.color.system_notification_accent_color))
.setContentTitle(packageLabel)
.setContentText(contentText)
+ .setStyle(new Notification.BigTextStyle().bigText(contentText))
.setLargeIcon(packageIcon)
.build();
}
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index ac3f53fa2d1f4..11ab0423d4eea 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -1602,6 +1602,12 @@ public class PackageManagerService extends IPackageManager.Stub {
res.origPackage);
break;
}
+ case PackageManager.INSTALL_SUCCEEDED: {
+ extras = new Bundle();
+ extras.putBoolean(Intent.EXTRA_REPLACING,
+ res.removedInfo != null && res.removedInfo.removedPackage != null);
+ break;
+ }
}
return extras;
}