summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/values-zh-rCN/strings.xml6
-rw-r--r--res/values/strings.xml3
-rw-r--r--src/com/android/packageinstaller/PackageInstallerActivity.java8
-rwxr-xr-xsrc/com/android/packageinstaller/UninstallerActivity.java20
4 files changed, 29 insertions, 8 deletions
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 2d2db05d..b728bb6b 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -124,8 +124,6 @@
<string name="review_button_continue" msgid="4809162078179371370">"继续"</string>
<string name="new_permissions_category" msgid="3213523410139204183">"新权限"</string>
<string name="current_permissions_category" msgid="998210994450606094">"当前权限"</string>
- <!-- no translation found for message_staging (6151794817691100003) -->
- <skip />
- <!-- no translation found for app_name_unknown (8931522764510159105) -->
- <skip />
+ <string name="message_staging" msgid="6151794817691100003">"正在准备安装应用…"</string>
+ <string name="app_name_unknown" msgid="8931522764510159105">"未知"</string>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index d8dadf75..367f466b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -111,7 +111,8 @@
<string name="uninstall_application_text_all_users">Do you want to uninstall this app for <b>all</b>
users? The application and its data will be removed from <b>all</b> users on the device.</string>
<string name="uninstall_application_text_user">Do you want to uninstall this app for the user <xliff:g id="username">%1$s</xliff:g>?</string>
- <string name="uninstall_update_text">Do you want to replace this app with the factory version?</string>
+ <string name="uninstall_update_text">Replace this app with the factory version? All data will be removed.</string>
+ <string name="uninstall_update_text_multiuser">Replace this app with the factory version? All data will be removed. This affects all users of this device, including those with work profiles.</string>
<string name="uninstalling">Uninstalling\u2026</string>
<string name="uninstall_done">Uninstall finished.</string>
<string name="uninstall_failed">Uninstall unsuccessful.</string>
diff --git a/src/com/android/packageinstaller/PackageInstallerActivity.java b/src/com/android/packageinstaller/PackageInstallerActivity.java
index cfa3dc24..21cc3411 100644
--- a/src/com/android/packageinstaller/PackageInstallerActivity.java
+++ b/src/com/android/packageinstaller/PackageInstallerActivity.java
@@ -467,6 +467,14 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
mReferrerURI = intent.getParcelableExtra(Intent.EXTRA_REFERRER);
}
+ // if there's nothing to do, quietly slip into the ether
+ if (mPackageURI == null) {
+ Log.w(TAG, "Unspecified source");
+ setPmResult(PackageManager.INSTALL_FAILED_INVALID_URI);
+ finish();
+ return;
+ }
+
if (DeviceUtils.isWear(this)) {
showDialogInner(DLG_NOT_SUPPORTED_ON_WEAR);
return;
diff --git a/src/com/android/packageinstaller/UninstallerActivity.java b/src/com/android/packageinstaller/UninstallerActivity.java
index f1afe424..ae1659f4 100755
--- a/src/com/android/packageinstaller/UninstallerActivity.java
+++ b/src/com/android/packageinstaller/UninstallerActivity.java
@@ -74,11 +74,15 @@ public class UninstallerActivity extends Activity {
final boolean isUpdate =
((dialogInfo.appInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0);
+ UserManager userManager = UserManager.get(getActivity());
if (isUpdate) {
- messageBuilder.append(getString(R.string.uninstall_update_text));
+ if (isSingleUser(userManager)) {
+ messageBuilder.append(getString(R.string.uninstall_update_text));
+ } else {
+ messageBuilder.append(getString(R.string.uninstall_update_text_multiuser));
+ }
} else {
- UserManager userManager = UserManager.get(getActivity());
- if (dialogInfo.allUsers && userManager.getUserCount() >= 2) {
+ if (dialogInfo.allUsers && !isSingleUser(userManager)) {
messageBuilder.append(getString(R.string.uninstall_application_text_all_users));
} else if (!dialogInfo.user.equals(android.os.Process.myUserHandle())) {
UserInfo userInfo = userManager.getUserInfo(dialogInfo.user.getIdentifier());
@@ -113,6 +117,16 @@ public class UninstallerActivity extends Activity {
getActivity().finish();
}
}
+
+ /**
+ * Returns whether there is only one user on this device, not including
+ * the system-only user.
+ */
+ private boolean isSingleUser(UserManager userManager) {
+ final int userCount = userManager.getUserCount();
+ return userCount == 1
+ || (UserManager.isSplitSystemUser() && userCount == 2);
+ }
}
public static class AppNotFoundDialogFragment extends DialogFragment {