Loading packages/PackageInstaller/src/com/android/packageinstaller/v2/model/UnarchiveRepository.kt +17 −1 Original line number Diff line number Diff line Loading @@ -146,6 +146,21 @@ class UnarchiveRepository(private val context: Context) { Intent.EXTRA_INTENT, PendingIntent::class.java ) val appPackageName = intent.getStringExtra(PackageInstaller.EXTRA_PACKAGE_NAME) var appSnippet: PackageUtil.AppSnippet? = null if (appPackageName != null) { try { val applicationInfo = packageManager.getApplicationInfo( appPackageName, PackageManager.ApplicationInfoFlags.of(PackageManager.MATCH_ARCHIVED_PACKAGES) ) appSnippet = getAppSnippet(context, applicationInfo) } catch (e: NameNotFoundException) { Log.e(LOG_TAG, "Invalid packageName $appPackageName: ", e) } } when (unarchivalStatus) { PackageInstaller.UNARCHIVAL_ERROR_USER_ACTION_NEEDED -> { if (pendingIntent == null) { Loading Loading @@ -196,7 +211,8 @@ class UnarchiveRepository(private val context: Context) { installerPackageName, installerAppTitle, requiredBytes, pendingIntent pendingIntent, appSnippet ) } Loading packages/PackageInstaller/src/com/android/packageinstaller/v2/model/UnarchiveStages.kt +9 −2 Original line number Diff line number Diff line Loading @@ -60,5 +60,12 @@ data class UnarchiveError( val installerPackageName: String?, val installerAppTitle: String?, val requiredBytes: Long, val pendingIntent: PendingIntent? ) : UnarchiveStage(STAGE_ERROR) val pendingIntent: PendingIntent?, val appSnippet: PackageUtil.AppSnippet? = null ) : UnarchiveStage(STAGE_ERROR) { val appIcon: Drawable? get() = appSnippet?.icon val appLabel: String? get() = appSnippet?.let { appSnippet.label as String? } } packages/PackageInstaller/src/com/android/packageinstaller/v2/ui/fragments/UnarchiveFragment.java +12 −0 Original line number Diff line number Diff line Loading @@ -160,6 +160,12 @@ public class UnarchiveFragment extends DialogFragment { customMessage = getString(R.string.message_restore_error_user_action_needed, installerAppTitle); if (unarchiveStage.getAppIcon() != null) { mAppSnippet.setVisibility(View.VISIBLE); mAppIcon.setImageDrawable(unarchiveStage.getAppIcon()); mAppLabelTextView.setText(unarchiveStage.getAppLabel()); } } case PackageInstaller.UNARCHIVAL_ERROR_INSUFFICIENT_STORAGE -> { Loading @@ -171,6 +177,12 @@ public class UnarchiveFragment extends DialogFragment { getString(R.string.message_restore_error_less_storage), Formatter.formatShortFileSize(requireContext(), requiredBytes)); customMessage = Html.fromHtml(message, Html.FROM_HTML_MODE_LEGACY); if (unarchiveStage.getAppIcon() != null) { mAppSnippet.setVisibility(View.VISIBLE); mAppIcon.setImageDrawable(unarchiveStage.getAppIcon()); mAppLabelTextView.setText(unarchiveStage.getAppLabel()); } } case PackageInstaller.UNARCHIVAL_ERROR_NO_CONNECTIVITY -> { Loading services/core/java/com/android/server/pm/PackageArchiver.java +1 −0 Original line number Diff line number Diff line Loading @@ -1282,6 +1282,7 @@ public class PackageArchiver { // Error already logged. return null; } dialogIntent.putExtra(PackageInstaller.EXTRA_PACKAGE_NAME, appPackageName); dialogIntent.putExtra(EXTRA_INSTALLER_TITLE, installerTitle); return dialogIntent; } Loading Loading
packages/PackageInstaller/src/com/android/packageinstaller/v2/model/UnarchiveRepository.kt +17 −1 Original line number Diff line number Diff line Loading @@ -146,6 +146,21 @@ class UnarchiveRepository(private val context: Context) { Intent.EXTRA_INTENT, PendingIntent::class.java ) val appPackageName = intent.getStringExtra(PackageInstaller.EXTRA_PACKAGE_NAME) var appSnippet: PackageUtil.AppSnippet? = null if (appPackageName != null) { try { val applicationInfo = packageManager.getApplicationInfo( appPackageName, PackageManager.ApplicationInfoFlags.of(PackageManager.MATCH_ARCHIVED_PACKAGES) ) appSnippet = getAppSnippet(context, applicationInfo) } catch (e: NameNotFoundException) { Log.e(LOG_TAG, "Invalid packageName $appPackageName: ", e) } } when (unarchivalStatus) { PackageInstaller.UNARCHIVAL_ERROR_USER_ACTION_NEEDED -> { if (pendingIntent == null) { Loading Loading @@ -196,7 +211,8 @@ class UnarchiveRepository(private val context: Context) { installerPackageName, installerAppTitle, requiredBytes, pendingIntent pendingIntent, appSnippet ) } Loading
packages/PackageInstaller/src/com/android/packageinstaller/v2/model/UnarchiveStages.kt +9 −2 Original line number Diff line number Diff line Loading @@ -60,5 +60,12 @@ data class UnarchiveError( val installerPackageName: String?, val installerAppTitle: String?, val requiredBytes: Long, val pendingIntent: PendingIntent? ) : UnarchiveStage(STAGE_ERROR) val pendingIntent: PendingIntent?, val appSnippet: PackageUtil.AppSnippet? = null ) : UnarchiveStage(STAGE_ERROR) { val appIcon: Drawable? get() = appSnippet?.icon val appLabel: String? get() = appSnippet?.let { appSnippet.label as String? } }
packages/PackageInstaller/src/com/android/packageinstaller/v2/ui/fragments/UnarchiveFragment.java +12 −0 Original line number Diff line number Diff line Loading @@ -160,6 +160,12 @@ public class UnarchiveFragment extends DialogFragment { customMessage = getString(R.string.message_restore_error_user_action_needed, installerAppTitle); if (unarchiveStage.getAppIcon() != null) { mAppSnippet.setVisibility(View.VISIBLE); mAppIcon.setImageDrawable(unarchiveStage.getAppIcon()); mAppLabelTextView.setText(unarchiveStage.getAppLabel()); } } case PackageInstaller.UNARCHIVAL_ERROR_INSUFFICIENT_STORAGE -> { Loading @@ -171,6 +177,12 @@ public class UnarchiveFragment extends DialogFragment { getString(R.string.message_restore_error_less_storage), Formatter.formatShortFileSize(requireContext(), requiredBytes)); customMessage = Html.fromHtml(message, Html.FROM_HTML_MODE_LEGACY); if (unarchiveStage.getAppIcon() != null) { mAppSnippet.setVisibility(View.VISIBLE); mAppIcon.setImageDrawable(unarchiveStage.getAppIcon()); mAppLabelTextView.setText(unarchiveStage.getAppLabel()); } } case PackageInstaller.UNARCHIVAL_ERROR_NO_CONNECTIVITY -> { Loading
services/core/java/com/android/server/pm/PackageArchiver.java +1 −0 Original line number Diff line number Diff line Loading @@ -1282,6 +1282,7 @@ public class PackageArchiver { // Error already logged. return null; } dialogIntent.putExtra(PackageInstaller.EXTRA_PACKAGE_NAME, appPackageName); dialogIntent.putExtra(EXTRA_INSTALLER_TITLE, installerTitle); return dialogIntent; } Loading