diff --git a/res/values/strings.xml b/res/values/strings.xml index c11ea3329ad..a1db1724a16 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3441,6 +3441,13 @@ If you turn off notifications for this app, you may miss important alerts and updates. + + Store + + App details + + App installed from %1$s + App ops diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java index f91f7bf0e88..035b50482f8 100755 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -424,7 +424,7 @@ public class InstalledAppDetails extends AppInfoBase private Intent resolveIntent(Intent i) { ResolveInfo result = getContext().getPackageManager().resolveActivity(i, 0); - return result != null ? new Intent(Intent.ACTION_APPLICATION_PREFERENCES) + return result != null ? new Intent(i.getAction()) .setClassName(result.activityInfo.packageName, result.activityInfo.name) : null; } @@ -902,6 +902,26 @@ public class InstalledAppDetails extends AppInfoBase category.addPreference(pref); } } + + final String installerPackageName = + getContext().getPackageManager().getInstallerPackageName(mPackageName); + if (installerPackageName != null) { + final Intent intent = new Intent(Intent.ACTION_SHOW_APP_INFO) + .setPackage(installerPackageName); + final Intent result = resolveIntent(intent); + if (result != null) { + result.putExtra(Intent.EXTRA_PACKAGE_NAME, mPackageName); + PreferenceCategory category = new PreferenceCategory(getPrefContext()); + category.setTitle(R.string.app_install_details_group_title); + screen.addPreference(category); + Preference pref = new Preference(getPrefContext()); + pref.setTitle(R.string.app_install_details_title); + pref.setKey("app_info_store"); + pref.setSummary(getString(R.string.app_install_details_summary, mAppEntry.label)); + pref.setIntent(result); + category.addPreference(pref); + } + } } private boolean hasPermission(String permission) {