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

Commit 86fd3abe authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Restrict user to clear app defaults when DISALLOW_APPS_CONTROL policy is enabled."

parents 1370361e 44187c0b
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.os.IBinder;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserHandle;
import android.os.UserManager;
import android.text.SpannableString;
import android.text.TextUtils;
import android.text.style.BulletSpan;
@@ -38,12 +39,15 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceViewHolder;

import com.android.settings.R;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.applications.AppUtils;
import com.android.settingslib.applications.ApplicationsState;

public class ClearDefaultsPreference extends Preference {

    protected static final String TAG = ClearDefaultsPreference.class.getSimpleName();
    protected ApplicationsState.AppEntry mAppEntry;

    private Button mActivitiesButton;

@@ -51,7 +55,9 @@ public class ClearDefaultsPreference extends Preference {
    private IUsbManager mUsbManager;
    private PackageManager mPm;
    private String mPackageName;
    protected ApplicationsState.AppEntry mAppEntry;

    private final boolean mAppsControlDisallowedBySystem;
    private final RestrictedLockUtils.EnforcedAdmin mAppsControlDisallowedAdmin;

    public ClearDefaultsPreference(Context context, AttributeSet attrs, int defStyleAttr,
            int defStyleRes) {
@@ -63,6 +69,13 @@ public class ClearDefaultsPreference extends Preference {
        mPm = context.getPackageManager();
        IBinder b = ServiceManager.getService(Context.USB_SERVICE);
        mUsbManager = IUsbManager.Stub.asInterface(b);

        mAppsControlDisallowedBySystem = RestrictedLockUtilsInternal.hasBaseUserRestriction(
                getContext(), UserManager.DISALLOW_APPS_CONTROL, UserHandle.myUserId());
        mAppsControlDisallowedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
                getContext(), UserManager.DISALLOW_APPS_CONTROL, UserHandle.myUserId());


    }

    public ClearDefaultsPreference(Context context, AttributeSet attrs, int defStyleAttr) {
@@ -95,6 +108,12 @@ public class ClearDefaultsPreference extends Preference {
        mActivitiesButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mAppsControlDisallowedAdmin != null && !mAppsControlDisallowedBySystem) {
                    RestrictedLockUtils.sendShowAdminSupportDetailsIntent(
                            getContext(), mAppsControlDisallowedAdmin);
                    return;
                }

                if (mUsbManager != null) {
                    final int userId = UserHandle.myUserId();
                    mPm.clearPackagePreferredActivities(mPackageName);