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

Commit fc424bac authored by Yvonne Jiang's avatar Yvonne Jiang
Browse files

Allow enforcingAdmin parameter to be nullable to address an NPE.

There are cases where this may need to be passed in null and should be handled gracefully.

Bug: 426094493
Test: atest ActionDisabledByAdminDialogHelperTest
Flag: android.app.supervision.flags.deprecate_dpm_supervision_apis
Change-Id: Ia7fc3cc108001ab23289b3182bdf34ee8ba4d616
parent d40f9b88
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -63,7 +63,7 @@ public interface ActionDisabledByAdminController {
    /**
    /**
     * Updates the enforcing admin
     * Updates the enforcing admin
     */
     */
    void updateEnforcingAdmin(@NonNull EnforcingAdmin admin);
    void updateEnforcingAdmin(@Nullable EnforcingAdmin admin);


    /**
    /**
     * Returns a listener for handling positive button clicks.
     * Returns a listener for handling positive button clicks.
@@ -80,7 +80,7 @@ public interface ActionDisabledByAdminController {
     */
     */
    @Nullable
    @Nullable
    default DialogInterface.OnClickListener getPositiveButtonListener(@NonNull Context context,
    default DialogInterface.OnClickListener getPositiveButtonListener(@NonNull Context context,
            @NonNull EnforcingAdmin enforcingAdmin) {
            @Nullable EnforcingAdmin enforcingAdmin) {
        return null;
        return null;
    }
    }
}
}
+4 −3
Original line number Original line Diff line number Diff line
@@ -22,6 +22,7 @@ import android.annotation.UserIdInt;
import android.app.admin.EnforcingAdmin;
import android.app.admin.EnforcingAdmin;


import androidx.annotation.NonNull;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;


import com.android.internal.util.Preconditions;
import com.android.internal.util.Preconditions;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
@@ -34,7 +35,7 @@ abstract class BaseActionDisabledByAdminController


    protected @UserIdInt int mEnforcementAdminUserId;
    protected @UserIdInt int mEnforcementAdminUserId;
    protected EnforcedAdmin mEnforcedAdmin;
    protected EnforcedAdmin mEnforcedAdmin;
    protected EnforcingAdmin mEnforcingAdmin;
    protected @Nullable EnforcingAdmin mEnforcingAdmin;
    protected ActionDisabledLearnMoreButtonLauncher mLauncher;
    protected ActionDisabledLearnMoreButtonLauncher mLauncher;
    protected final DeviceAdminStringProvider mStringProvider;
    protected final DeviceAdminStringProvider mStringProvider;


@@ -55,9 +56,9 @@ abstract class BaseActionDisabledByAdminController
    }
    }


    @Override
    @Override
    public final void updateEnforcingAdmin(@NonNull EnforcingAdmin admin) {
    public final void updateEnforcingAdmin(@Nullable EnforcingAdmin admin) {
        assertInitialized();
        assertInitialized();
        mEnforcingAdmin = requireNonNull(admin, "admin cannot be null");
        mEnforcingAdmin = admin;
    }
    }


    protected final void assertInitialized() {
    protected final void assertInitialized() {
+2 −2
Original line number Original line Diff line number Diff line
@@ -76,8 +76,8 @@ final class SupervisedDeviceActionDisabledByAdminController
    @Nullable
    @Nullable
    @Override
    @Override
    public DialogInterface.OnClickListener getPositiveButtonListener(@NonNull Context context,
    public DialogInterface.OnClickListener getPositiveButtonListener(@NonNull Context context,
            @NonNull EnforcingAdmin enforcingAdmin) {
            @Nullable EnforcingAdmin enforcingAdmin) {
        if (TextUtils.isEmpty(enforcingAdmin.getPackageName())) {
        if (enforcingAdmin == null || TextUtils.isEmpty(enforcingAdmin.getPackageName())) {
            return null;
            return null;
        }
        }
        return getPositiveButtonListener(context, enforcingAdmin.getPackageName());
        return getPositiveButtonListener(context, enforcingAdmin.getPackageName());