Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 95228074 authored by Christopher Tate's avatar Christopher Tate Committed by Android Git Automerger
Browse files

am c44d7c6b: Prohibit uninstall of the default (or only) home app

* commit 'c44d7c6b':
  Prohibit uninstall of the default (or only) home app
parents 915ef6e3 c44d7c6b
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -366,11 +366,28 @@ public class InstalledAppDetails extends Fragment
                mUninstallButton.setText(R.string.uninstall_text);
            }
        }
        // If this is a device admin, it can't be uninstall or disabled.
        // If this is a device admin, it can't be uninstalled or disabled.
        // We do this here so the text of the button is still set correctly.
        if (mDpm.packageHasActiveAdmins(mPackageInfo.packageName)) {
            enabled = false;
        }

        // If this is the default (or only) home app, suppress uninstall (even if
        // we still think it should be allowed for other reasons)
        if (enabled && mHomePackages.contains(mPackageInfo.packageName)) {
            ArrayList<ResolveInfo> homeActivities = new ArrayList<ResolveInfo>();
            ComponentName currentDefaultHome  = mPm.getHomeActivities(homeActivities);
            if (currentDefaultHome == null) {
                // No preferred default, so permit uninstall only when
                // there is more than one candidate
                enabled = (mHomePackages.size() > 1);
            } else {
                // There is an explicit default home app -- forbid uninstall of
                // that one, but permit it for installed-but-inactive ones.
                enabled = !mPackageInfo.packageName.equals(currentDefaultHome.getPackageName());
            }
        }

        mUninstallButton.setEnabled(enabled);
        if (enabled) {
            // Register listener