Loading src/com/android/settings/nfc/AndroidBeamPreferenceController.java +0 −16 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.settings.nfc; import android.content.Context; import android.nfc.NfcAdapter; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.core.BasePreferenceController; Loading @@ -26,15 +25,12 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; import java.util.List; public class AndroidBeamPreferenceController extends BasePreferenceController implements LifecycleObserver, OnResume, OnPause { public static final String KEY_ANDROID_BEAM_SETTINGS = "android_beam_settings"; private final NfcAdapter mNfcAdapter; private AndroidBeamEnabler mAndroidBeamEnabler; private NfcAirplaneModeObserver mAirplaneModeObserver; public AndroidBeamPreferenceController(Context context, String key) { super(context, key); Loading @@ -52,12 +48,6 @@ public class AndroidBeamPreferenceController extends BasePreferenceController final RestrictedPreference restrictedPreference = (RestrictedPreference) screen.findPreference(getPreferenceKey()); mAndroidBeamEnabler = new AndroidBeamEnabler(mContext, restrictedPreference); // Manually set dependencies for NFC when not toggleable. if (!NfcPreferenceController.isToggleableInAirplaneMode(mContext)) { mAirplaneModeObserver = new NfcAirplaneModeObserver(mContext, mNfcAdapter, (Preference) restrictedPreference); } } @Override Loading @@ -70,9 +60,6 @@ public class AndroidBeamPreferenceController extends BasePreferenceController @Override public void onResume() { if (mAirplaneModeObserver != null) { mAirplaneModeObserver.register(); } if (mAndroidBeamEnabler != null) { mAndroidBeamEnabler.resume(); } Loading @@ -80,9 +67,6 @@ public class AndroidBeamPreferenceController extends BasePreferenceController @Override public void onPause() { if (mAirplaneModeObserver != null) { mAirplaneModeObserver.unregister(); } if (mAndroidBeamEnabler != null) { mAndroidBeamEnabler.pause(); } Loading src/com/android/settings/nfc/BaseNfcEnabler.java +1 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ import androidx.preference.Preference; * preference. It will receive intent and update state to ensure preference show correct state. */ public abstract class BaseNfcEnabler { private final Context mContext; protected final Context mContext; protected final NfcAdapter mNfcAdapter; private final IntentFilter mIntentFilter; Loading src/com/android/settings/nfc/NfcAirplaneModeObserver.java +6 −5 Original line number Diff line number Diff line Loading @@ -70,12 +70,13 @@ public class NfcAirplaneModeObserver extends ContentObserver { } mAirplaneMode = airplaneMode; boolean toggleable = mAirplaneMode != 1; if (toggleable) { mNfcAdapter.enable(); } else { if (mAirplaneMode == 1) { // airplane mode is on, need to turn off NFC, and check if user can toggle it mNfcAdapter.disable(); mPreference.setEnabled(NfcPreferenceController.isToggleableInAirplaneMode(mContext)); } else { // airplane mode is off, no restriction mPreference.setEnabled(true); } mPreference.setEnabled(toggleable); } } src/com/android/settings/nfc/NfcEnabler.java +15 −2 Original line number Diff line number Diff line Loading @@ -18,8 +18,10 @@ package com.android.settings.nfc; import android.content.Context; import android.nfc.NfcAdapter; import androidx.preference.SwitchPreference; import android.provider.Settings; import androidx.annotation.VisibleForTesting; import androidx.preference.SwitchPreference; /** * NfcEnabler is a helper to manage the Nfc on/off checkbox preference. It turns on/off Nfc Loading @@ -38,7 +40,7 @@ public class NfcEnabler extends BaseNfcEnabler { switch (newState) { case NfcAdapter.STATE_OFF: mPreference.setChecked(false); mPreference.setEnabled(true); mPreference.setEnabled(isToggleable()); break; case NfcAdapter.STATE_ON: mPreference.setChecked(true); Loading @@ -54,4 +56,15 @@ public class NfcEnabler extends BaseNfcEnabler { break; } } @VisibleForTesting boolean isToggleable() { if (NfcPreferenceController.isToggleableInAirplaneMode(mContext) || !NfcPreferenceController.shouldTurnOffNFCInAirplaneMode(mContext)) { return true; } final int airplaneMode = Settings.Global.getInt( mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0); return airplaneMode != 1; } } src/com/android/settings/nfc/NfcPreferenceController.java +13 −6 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ import android.content.IntentFilter; import android.nfc.NfcAdapter; import android.provider.Settings; import androidx.preference.Preference; import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; Loading @@ -37,7 +37,8 @@ public class NfcPreferenceController extends TogglePreferenceController public static final String KEY_TOGGLE_NFC = "toggle_nfc"; private final NfcAdapter mNfcAdapter; private NfcEnabler mNfcEnabler; private NfcAirplaneModeObserver mAirplaneModeObserver; @VisibleForTesting NfcAirplaneModeObserver mAirplaneModeObserver; public NfcPreferenceController(Context context, String key) { super(context, key); Loading @@ -57,10 +58,10 @@ public class NfcPreferenceController extends TogglePreferenceController mNfcEnabler = new NfcEnabler(mContext, switchPreference); // Manually set dependencies for NFC when not toggleable. if (!isToggleableInAirplaneMode(mContext)) { mAirplaneModeObserver = new NfcAirplaneModeObserver(mContext, mNfcAdapter, (Preference) switchPreference); // Listen to airplane mode updates if NFC should be turned off when airplane mode is on if (shouldTurnOffNFCInAirplaneMode(mContext) || isToggleableInAirplaneMode(mContext)) { mAirplaneModeObserver = new NfcAirplaneModeObserver(mContext, mNfcAdapter, switchPreference); } } Loading Loading @@ -125,6 +126,12 @@ public class NfcPreferenceController extends TogglePreferenceController } } public static boolean shouldTurnOffNFCInAirplaneMode(Context context) { final String airplaneModeRadios = Settings.Global.getString(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_RADIOS); return airplaneModeRadios != null && airplaneModeRadios.contains(Settings.Global.RADIO_NFC); } public static boolean isToggleableInAirplaneMode(Context context) { final String toggleable = Settings.Global.getString(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS); Loading Loading
src/com/android/settings/nfc/AndroidBeamPreferenceController.java +0 −16 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.settings.nfc; import android.content.Context; import android.nfc.NfcAdapter; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.core.BasePreferenceController; Loading @@ -26,15 +25,12 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; import java.util.List; public class AndroidBeamPreferenceController extends BasePreferenceController implements LifecycleObserver, OnResume, OnPause { public static final String KEY_ANDROID_BEAM_SETTINGS = "android_beam_settings"; private final NfcAdapter mNfcAdapter; private AndroidBeamEnabler mAndroidBeamEnabler; private NfcAirplaneModeObserver mAirplaneModeObserver; public AndroidBeamPreferenceController(Context context, String key) { super(context, key); Loading @@ -52,12 +48,6 @@ public class AndroidBeamPreferenceController extends BasePreferenceController final RestrictedPreference restrictedPreference = (RestrictedPreference) screen.findPreference(getPreferenceKey()); mAndroidBeamEnabler = new AndroidBeamEnabler(mContext, restrictedPreference); // Manually set dependencies for NFC when not toggleable. if (!NfcPreferenceController.isToggleableInAirplaneMode(mContext)) { mAirplaneModeObserver = new NfcAirplaneModeObserver(mContext, mNfcAdapter, (Preference) restrictedPreference); } } @Override Loading @@ -70,9 +60,6 @@ public class AndroidBeamPreferenceController extends BasePreferenceController @Override public void onResume() { if (mAirplaneModeObserver != null) { mAirplaneModeObserver.register(); } if (mAndroidBeamEnabler != null) { mAndroidBeamEnabler.resume(); } Loading @@ -80,9 +67,6 @@ public class AndroidBeamPreferenceController extends BasePreferenceController @Override public void onPause() { if (mAirplaneModeObserver != null) { mAirplaneModeObserver.unregister(); } if (mAndroidBeamEnabler != null) { mAndroidBeamEnabler.pause(); } Loading
src/com/android/settings/nfc/BaseNfcEnabler.java +1 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ import androidx.preference.Preference; * preference. It will receive intent and update state to ensure preference show correct state. */ public abstract class BaseNfcEnabler { private final Context mContext; protected final Context mContext; protected final NfcAdapter mNfcAdapter; private final IntentFilter mIntentFilter; Loading
src/com/android/settings/nfc/NfcAirplaneModeObserver.java +6 −5 Original line number Diff line number Diff line Loading @@ -70,12 +70,13 @@ public class NfcAirplaneModeObserver extends ContentObserver { } mAirplaneMode = airplaneMode; boolean toggleable = mAirplaneMode != 1; if (toggleable) { mNfcAdapter.enable(); } else { if (mAirplaneMode == 1) { // airplane mode is on, need to turn off NFC, and check if user can toggle it mNfcAdapter.disable(); mPreference.setEnabled(NfcPreferenceController.isToggleableInAirplaneMode(mContext)); } else { // airplane mode is off, no restriction mPreference.setEnabled(true); } mPreference.setEnabled(toggleable); } }
src/com/android/settings/nfc/NfcEnabler.java +15 −2 Original line number Diff line number Diff line Loading @@ -18,8 +18,10 @@ package com.android.settings.nfc; import android.content.Context; import android.nfc.NfcAdapter; import androidx.preference.SwitchPreference; import android.provider.Settings; import androidx.annotation.VisibleForTesting; import androidx.preference.SwitchPreference; /** * NfcEnabler is a helper to manage the Nfc on/off checkbox preference. It turns on/off Nfc Loading @@ -38,7 +40,7 @@ public class NfcEnabler extends BaseNfcEnabler { switch (newState) { case NfcAdapter.STATE_OFF: mPreference.setChecked(false); mPreference.setEnabled(true); mPreference.setEnabled(isToggleable()); break; case NfcAdapter.STATE_ON: mPreference.setChecked(true); Loading @@ -54,4 +56,15 @@ public class NfcEnabler extends BaseNfcEnabler { break; } } @VisibleForTesting boolean isToggleable() { if (NfcPreferenceController.isToggleableInAirplaneMode(mContext) || !NfcPreferenceController.shouldTurnOffNFCInAirplaneMode(mContext)) { return true; } final int airplaneMode = Settings.Global.getInt( mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0); return airplaneMode != 1; } }
src/com/android/settings/nfc/NfcPreferenceController.java +13 −6 Original line number Diff line number Diff line Loading @@ -20,7 +20,7 @@ import android.content.IntentFilter; import android.nfc.NfcAdapter; import android.provider.Settings; import androidx.preference.Preference; import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; Loading @@ -37,7 +37,8 @@ public class NfcPreferenceController extends TogglePreferenceController public static final String KEY_TOGGLE_NFC = "toggle_nfc"; private final NfcAdapter mNfcAdapter; private NfcEnabler mNfcEnabler; private NfcAirplaneModeObserver mAirplaneModeObserver; @VisibleForTesting NfcAirplaneModeObserver mAirplaneModeObserver; public NfcPreferenceController(Context context, String key) { super(context, key); Loading @@ -57,10 +58,10 @@ public class NfcPreferenceController extends TogglePreferenceController mNfcEnabler = new NfcEnabler(mContext, switchPreference); // Manually set dependencies for NFC when not toggleable. if (!isToggleableInAirplaneMode(mContext)) { mAirplaneModeObserver = new NfcAirplaneModeObserver(mContext, mNfcAdapter, (Preference) switchPreference); // Listen to airplane mode updates if NFC should be turned off when airplane mode is on if (shouldTurnOffNFCInAirplaneMode(mContext) || isToggleableInAirplaneMode(mContext)) { mAirplaneModeObserver = new NfcAirplaneModeObserver(mContext, mNfcAdapter, switchPreference); } } Loading Loading @@ -125,6 +126,12 @@ public class NfcPreferenceController extends TogglePreferenceController } } public static boolean shouldTurnOffNFCInAirplaneMode(Context context) { final String airplaneModeRadios = Settings.Global.getString(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_RADIOS); return airplaneModeRadios != null && airplaneModeRadios.contains(Settings.Global.RADIO_NFC); } public static boolean isToggleableInAirplaneMode(Context context) { final String toggleable = Settings.Global.getString(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS); Loading