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

Commit cb5444ad authored by Zoltan Szatmary-Ban's avatar Zoltan Szatmary-Ban Committed by Android (Google) Code Review
Browse files

Merge "Reflect Wifi config lockdown restriction in Settings" into mnc-dev

parents 0c0e35ef 1a2aa994
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -147,7 +147,7 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment
                mSelectedAccessPoint = mDlgAccessPoint;

                // Hide forget button if config editing is locked down
                final boolean hideForgetButton = WifiSettings.isCreatorDeviceOwner(getActivity(),
                final boolean hideForgetButton = WifiSettings.isEditabilityLockedDown(getActivity(),
                        mDlgAccessPoint.getConfig());
                mDialog = new WifiDialog(getActivity(), this, mDlgAccessPoint,
                        false /* not editting */, true /* hide the submit button */,
+12 −7
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import android.nfc.NfcAdapter;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.UserHandle;
import android.os.UserManager;
import android.preference.Preference;
import android.preference.PreferenceScreen;
import android.text.Spannable;
@@ -439,8 +440,8 @@ public class WifiSettings extends RestrictedSettingsFragment
                }

                WifiConfiguration config = mSelectedAccessPoint.getConfig();
                // Device Owner created configs are uneditable
                if (isCreatorDeviceOwner(getActivity(), config)) {
                // Some configs are ineditable
                if (isEditabilityLockedDown(getActivity(), config)) {
                    return;
                }

@@ -522,7 +523,7 @@ public class WifiSettings extends RestrictedSettingsFragment
    private void showDialog(AccessPoint accessPoint, boolean edit) {
        if (accessPoint != null) {
            WifiConfiguration config = accessPoint.getConfig();
            if (isCreatorDeviceOwner(getActivity(), config) && accessPoint.isActive()) {
            if (isEditabilityLockedDown(getActivity(), config) && accessPoint.isActive()) {
                final int userId = UserHandle.getUserId(config.creatorUid);
                final PackageManager pm = getActivity().getPackageManager();
                final IPackageManager ipm = AppGlobals.getPackageManager();
@@ -575,7 +576,7 @@ public class WifiSettings extends RestrictedSettingsFragment
                }
                // If it's null, fine, it's for Add Network
                mSelectedAccessPoint = ap;
                final boolean hideForget = (ap == null || isCreatorDeviceOwner(getActivity(),
                final boolean hideForget = (ap == null || isEditabilityLockedDown(getActivity(),
                        ap.getConfig()));
                mDialog = new WifiDialog(getActivity(), this, ap, mDlgEdit,
                        /* no hide submit/connect */ false,
@@ -913,11 +914,11 @@ public class WifiSettings extends RestrictedSettingsFragment
        };

    /**
     * Returns the true if the app that created this config is the device owner of the device.
     * Returns true if the config is not editable/removable except by its creating Device Owner.
     * @param config The WiFi config.
     * @return creator package name or null if creator package is not device owner.
     * @return true if the config is not editable/removable except by its creating Device Owner.
     */
    static boolean isCreatorDeviceOwner(Context context, WifiConfiguration config) {
    static boolean isEditabilityLockedDown(Context context, WifiConfiguration config) {
        if (config == null) {
            return false;
        }
@@ -927,6 +928,10 @@ public class WifiSettings extends RestrictedSettingsFragment
        if (deviceOwnerPackageName == null) {
            return false;
        }
        UserManager um = UserManager.get(context);
        if (um.hasUserRestriction(UserManager.DISALLOW_CONFIG_WIFI)) {
            return false;
        }
        final PackageManager pm = context.getPackageManager();
        try {
            final int deviceOwnerUid = pm.getPackageUid(deviceOwnerPackageName,