diff options
-rw-r--r-- | res/values-zh-rCN/strings.xml | 6 | ||||
-rw-r--r-- | res/values/strings.xml | 3 | ||||
-rw-r--r-- | src/com/android/packageinstaller/PackageInstallerActivity.java | 8 | ||||
-rwxr-xr-x | src/com/android/packageinstaller/UninstallerActivity.java | 20 |
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 { |