diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java index b344644a48b..6fd3d951a57 100755 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -166,7 +166,7 @@ public class InstalledAppDetails extends AppInfoBase || Utils.isSystemPackage(mPm, mPackageInfo)) { // Disable button for core system applications. button.setText(R.string.disable_text); - } else if (mAppEntry.info.enabled) { + } else if (mAppEntry.info.enabled && !isDisabledUntilUsed()) { button.setText(R.string.disable_text); disableable = true; } else { @@ -177,6 +177,11 @@ public class InstalledAppDetails extends AppInfoBase return disableable; } + private boolean isDisabledUntilUsed() { + return mAppEntry.info.enabledSetting + == PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED; + } + private void initUninstallButtons() { final boolean isBundled = (mAppEntry.info.flags & ApplicationInfo.FLAG_SYSTEM) != 0; boolean enabled = true; @@ -690,7 +695,7 @@ public class InstalledAppDetails extends AppInfoBase String packageName = mAppEntry.info.packageName; if(v == mUninstallButton) { if ((mAppEntry.info.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { - if (mAppEntry.info.enabled) { + if (mAppEntry.info.enabled && !isDisabledUntilUsed()) { if (mUpdatedSysApp) { showDialogInner(DLG_SPECIAL_DISABLE, 0); } else {