diff --git a/res/values/strings.xml b/res/values/strings.xml
index e8108e0b235..ea7273ca9d3 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2426,6 +2426,8 @@
SD card
Uninstall
+
+ Install
Disable
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index 101764d8f4f..2c1944dd36a 100644
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -322,6 +322,9 @@ public class InstalledAppDetails extends Fragment
Log.w(TAG, "Unable to get package info", e);
}
}
+ } else if ((mPackageInfo.applicationInfo.flags
+ & ApplicationInfo.FLAG_INSTALLED) == 0) {
+ mUninstallButton.setText(R.string.install_text);
} else {
mUninstallButton.setText(R.string.uninstall_text);
}
@@ -1042,6 +1045,12 @@ public class InstalledAppDetails extends Fragment
PackageManager.COMPONENT_ENABLED_STATE_DEFAULT)
.execute((Object)null);
}
+ } else if ((mAppEntry.info.flags & ApplicationInfo.FLAG_INSTALLED) == 0) {
+ try {
+ mPm.installExistingPackage(packageName);
+ refreshUi();
+ } catch (NameNotFoundException e) {
+ }
} else {
uninstallPkg(packageName);
}