Do not let guest user disable secure nfc am: 4e543a38f6
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/16691813 Change-Id: Iffe578c58bf2dcebda45b0b71dd901bd3e08be41
This commit is contained in:
@@ -18,12 +18,16 @@ package com.android.settings.connecteddevice;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.provider.SearchIndexableResource;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.bluetooth.BluetoothFilesPreferenceController;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.nfc.AndroidBeamPreferenceController;
|
||||
import com.android.settings.nfc.SecureNfcPreferenceController;
|
||||
import com.android.settings.print.PrintSettingPreferenceController;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
@@ -106,6 +110,11 @@ public class AdvancedConnectedDeviceDashboardFragment extends DashboardFragment
|
||||
if (!pm.hasSystemFeature(PackageManager.FEATURE_NFC)) {
|
||||
keys.add(AndroidBeamPreferenceController.KEY_ANDROID_BEAM_SETTINGS);
|
||||
}
|
||||
final UserManager userManager = context.getSystemService(UserManager.class);
|
||||
final UserInfo myUserInfo = userManager.getUserInfo(UserHandle.myUserId());
|
||||
if (myUserInfo.isGuest()) {
|
||||
keys.add(SecureNfcPreferenceController.KEY_SECURENFC_SETTINGS);
|
||||
}
|
||||
|
||||
return keys;
|
||||
}
|
||||
|
@@ -18,9 +18,8 @@ package com.android.settings.nfc;
|
||||
|
||||
import android.content.Context;
|
||||
import android.nfc.NfcAdapter;
|
||||
import android.provider.Settings;
|
||||
import android.os.UserManager;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
import androidx.preference.SwitchPreference;
|
||||
|
||||
import com.android.settings.R;
|
||||
@@ -32,10 +31,12 @@ import com.android.settings.R;
|
||||
*/
|
||||
public class SecureNfcEnabler extends BaseNfcEnabler {
|
||||
private final SwitchPreference mPreference;
|
||||
private final UserManager mUserManager;
|
||||
|
||||
public SecureNfcEnabler(Context context, SwitchPreference preference) {
|
||||
super(context);
|
||||
mPreference = preference;
|
||||
mUserManager = context.getSystemService(UserManager.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -48,7 +49,7 @@ public class SecureNfcEnabler extends BaseNfcEnabler {
|
||||
case NfcAdapter.STATE_ON:
|
||||
mPreference.setSummary(R.string.nfc_secure_toggle_summary);
|
||||
mPreference.setChecked(mPreference.isChecked());
|
||||
mPreference.setEnabled(true);
|
||||
mPreference.setEnabled(isToggleable());
|
||||
break;
|
||||
case NfcAdapter.STATE_TURNING_ON:
|
||||
mPreference.setEnabled(false);
|
||||
@@ -58,4 +59,11 @@ public class SecureNfcEnabler extends BaseNfcEnabler {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isToggleable() {
|
||||
if (mUserManager.isGuestUser()) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@@ -29,6 +29,7 @@ import com.android.settingslib.core.lifecycle.events.OnResume;
|
||||
public class SecureNfcPreferenceController extends TogglePreferenceController
|
||||
implements LifecycleObserver, OnResume, OnPause {
|
||||
|
||||
public static final String KEY_SECURENFC_SETTINGS = "nfc_secure_settings";
|
||||
private final NfcAdapter mNfcAdapter;
|
||||
private SecureNfcEnabler mSecureNfcEnabler;
|
||||
|
||||
|
Reference in New Issue
Block a user