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.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
|
import android.content.pm.UserInfo;
|
||||||
|
import android.os.UserHandle;
|
||||||
|
import android.os.UserManager;
|
||||||
import android.provider.SearchIndexableResource;
|
import android.provider.SearchIndexableResource;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.bluetooth.BluetoothFilesPreferenceController;
|
import com.android.settings.bluetooth.BluetoothFilesPreferenceController;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.nfc.AndroidBeamPreferenceController;
|
import com.android.settings.nfc.AndroidBeamPreferenceController;
|
||||||
|
import com.android.settings.nfc.SecureNfcPreferenceController;
|
||||||
import com.android.settings.print.PrintSettingPreferenceController;
|
import com.android.settings.print.PrintSettingPreferenceController;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
@@ -106,6 +110,11 @@ public class AdvancedConnectedDeviceDashboardFragment extends DashboardFragment
|
|||||||
if (!pm.hasSystemFeature(PackageManager.FEATURE_NFC)) {
|
if (!pm.hasSystemFeature(PackageManager.FEATURE_NFC)) {
|
||||||
keys.add(AndroidBeamPreferenceController.KEY_ANDROID_BEAM_SETTINGS);
|
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;
|
return keys;
|
||||||
}
|
}
|
||||||
|
@@ -18,9 +18,8 @@ package com.android.settings.nfc;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.nfc.NfcAdapter;
|
import android.nfc.NfcAdapter;
|
||||||
import android.provider.Settings;
|
import android.os.UserManager;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
|
||||||
import androidx.preference.SwitchPreference;
|
import androidx.preference.SwitchPreference;
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
@@ -32,10 +31,12 @@ import com.android.settings.R;
|
|||||||
*/
|
*/
|
||||||
public class SecureNfcEnabler extends BaseNfcEnabler {
|
public class SecureNfcEnabler extends BaseNfcEnabler {
|
||||||
private final SwitchPreference mPreference;
|
private final SwitchPreference mPreference;
|
||||||
|
private final UserManager mUserManager;
|
||||||
|
|
||||||
public SecureNfcEnabler(Context context, SwitchPreference preference) {
|
public SecureNfcEnabler(Context context, SwitchPreference preference) {
|
||||||
super(context);
|
super(context);
|
||||||
mPreference = preference;
|
mPreference = preference;
|
||||||
|
mUserManager = context.getSystemService(UserManager.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -48,7 +49,7 @@ public class SecureNfcEnabler extends BaseNfcEnabler {
|
|||||||
case NfcAdapter.STATE_ON:
|
case NfcAdapter.STATE_ON:
|
||||||
mPreference.setSummary(R.string.nfc_secure_toggle_summary);
|
mPreference.setSummary(R.string.nfc_secure_toggle_summary);
|
||||||
mPreference.setChecked(mPreference.isChecked());
|
mPreference.setChecked(mPreference.isChecked());
|
||||||
mPreference.setEnabled(true);
|
mPreference.setEnabled(isToggleable());
|
||||||
break;
|
break;
|
||||||
case NfcAdapter.STATE_TURNING_ON:
|
case NfcAdapter.STATE_TURNING_ON:
|
||||||
mPreference.setEnabled(false);
|
mPreference.setEnabled(false);
|
||||||
@@ -58,4 +59,11 @@ public class SecureNfcEnabler extends BaseNfcEnabler {
|
|||||||
break;
|
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
|
public class SecureNfcPreferenceController extends TogglePreferenceController
|
||||||
implements LifecycleObserver, OnResume, OnPause {
|
implements LifecycleObserver, OnResume, OnPause {
|
||||||
|
|
||||||
|
public static final String KEY_SECURENFC_SETTINGS = "nfc_secure_settings";
|
||||||
private final NfcAdapter mNfcAdapter;
|
private final NfcAdapter mNfcAdapter;
|
||||||
private SecureNfcEnabler mSecureNfcEnabler;
|
private SecureNfcEnabler mSecureNfcEnabler;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user