Do not let guest user disable secuer nfc via SettingsSlice

Do not let guest user switch the secure nfc preferernce setting.

Bug: 228314987
Test: manual
Change-Id: I60a832e32d83bb57d968af2f8b92d94e2ac7c6a2
This commit is contained in:
Jack Yu
2022-05-04 18:01:15 +08:00
parent 392df50da0
commit 2290b0af8c

View File

@@ -17,6 +17,7 @@ package com.android.settings.nfc;
import android.content.Context;
import android.nfc.NfcAdapter;
import android.os.UserManager;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
@@ -32,10 +33,12 @@ public class SecureNfcPreferenceController extends TogglePreferenceController
public static final String KEY_SECURENFC_SETTINGS = "nfc_secure_settings";
private final NfcAdapter mNfcAdapter;
private SecureNfcEnabler mSecureNfcEnabler;
private final UserManager mUserManager;
public SecureNfcPreferenceController(Context context, String key) {
super(context, key);
mNfcAdapter = NfcAdapter.getDefaultAdapter(context);
mUserManager = context.getSystemService(UserManager.class);
}
@Override
@@ -58,7 +61,11 @@ public class SecureNfcPreferenceController extends TogglePreferenceController
@Override
public boolean setChecked(boolean isChecked) {
if (isToggleable()) {
return mNfcAdapter.enableSecureNfc(isChecked);
} else {
return false;
}
}
@Override
@@ -95,4 +102,12 @@ public class SecureNfcPreferenceController extends TogglePreferenceController
mSecureNfcEnabler.pause();
}
}
private boolean isToggleable() {
if (mUserManager.isGuestUser()) {
return false;
}
return true;
}
}