diff --git a/src/com/android/settings/nfc/NfcAirplaneModeObserver.java b/src/com/android/settings/nfc/NfcAirplaneModeObserver.java deleted file mode 100644 index afb5616a4fa..00000000000 --- a/src/com/android/settings/nfc/NfcAirplaneModeObserver.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.settings.nfc; - -import android.content.Context; -import android.database.ContentObserver; -import android.net.Uri; -import android.nfc.NfcAdapter; -import android.os.Handler; -import android.os.Looper; -import android.provider.Settings; - -import androidx.annotation.VisibleForTesting; -import androidx.preference.Preference; - -/** - * NfcAirplaneModeObserver is a helper to manage the Nfc on/off when airplane mode status - * is changed. - */ -public class NfcAirplaneModeObserver extends ContentObserver { - - private final Context mContext; - private final NfcAdapter mNfcAdapter; - private final Preference mPreference; - private int mAirplaneMode; - - @VisibleForTesting - final static Uri AIRPLANE_MODE_URI = - Settings.Global.getUriFor(Settings.Global.AIRPLANE_MODE_ON); - - public NfcAirplaneModeObserver(Context context, NfcAdapter nfcAdapter, Preference preference) { - super(new Handler(Looper.getMainLooper())); - mContext = context; - mNfcAdapter = nfcAdapter; - mPreference = preference; - updateNfcPreference(); - } - - public void register() { - mContext.getContentResolver().registerContentObserver(AIRPLANE_MODE_URI, false, this); - } - - public void unregister() { - mContext.getContentResolver().unregisterContentObserver(this); - } - - @Override - public void onChange(boolean selfChange, Uri uri) { - super.onChange(selfChange, uri); - updateNfcPreference(); - } - - private void updateNfcPreference() { - final int airplaneMode = Settings.Global.getInt( - mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, mAirplaneMode); - if (airplaneMode == mAirplaneMode) { - return; - } - - mAirplaneMode = airplaneMode; - 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); - } - } -} diff --git a/src/com/android/settings/nfc/NfcPreferenceController.java b/src/com/android/settings/nfc/NfcPreferenceController.java index 2ca3b23daea..34e7e24efd6 100644 --- a/src/com/android/settings/nfc/NfcPreferenceController.java +++ b/src/com/android/settings/nfc/NfcPreferenceController.java @@ -41,8 +41,6 @@ public class NfcPreferenceController extends TogglePreferenceController public static final String KEY_TOGGLE_NFC = "toggle_nfc"; private final NfcAdapter mNfcAdapter; private NfcEnabler mNfcEnabler; - @VisibleForTesting - NfcAirplaneModeObserver mAirplaneModeObserver; public NfcPreferenceController(Context context, String key) { super(context, key); @@ -61,11 +59,6 @@ public class NfcPreferenceController extends TogglePreferenceController mNfcEnabler = new NfcEnabler(mContext, 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); - } } @Override @@ -108,9 +101,6 @@ public class NfcPreferenceController extends TogglePreferenceController @Override public void onResume() { - if (mAirplaneModeObserver != null) { - mAirplaneModeObserver.register(); - } if (mNfcEnabler != null) { mNfcEnabler.resume(); } @@ -118,9 +108,6 @@ public class NfcPreferenceController extends TogglePreferenceController @Override public void onPause() { - if (mAirplaneModeObserver != null) { - mAirplaneModeObserver.unregister(); - } if (mNfcEnabler != null) { mNfcEnabler.pause(); } diff --git a/tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java b/tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java deleted file mode 100644 index 06d9773deb7..00000000000 --- a/tests/robotests/src/com/android/settings/nfc/NfcAirplaneModeObserverTest.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (C) 2018 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.settings.nfc; - -import static com.google.common.truth.Truth.assertThat; - -import android.content.ContentResolver; -import android.content.Context; -import android.nfc.NfcAdapter; -import android.provider.Settings; -import android.provider.Settings.Global; - -import androidx.preference.SwitchPreference; - -import com.android.settings.testutils.shadow.ShadowNfcAdapter; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; -import org.robolectric.annotation.Config; -import org.robolectric.util.ReflectionHelpers; - -@RunWith(RobolectricTestRunner.class) -@Config(shadows = {ShadowNfcAdapter.class}) -public class NfcAirplaneModeObserverTest { - - private Context mContext; - private NfcAdapter mNfcAdapter; - private SwitchPreference mNfcPreference; - private NfcAirplaneModeObserver mNfcAirplaneModeObserver; - - @Before - public void setUp() { - mContext = RuntimeEnvironment.application; - mNfcAdapter = NfcAdapter.getDefaultAdapter(mContext); - - mNfcPreference = new SwitchPreference(mContext); - - mNfcAirplaneModeObserver = - new NfcAirplaneModeObserver(mContext, mNfcAdapter, mNfcPreference); - } - - @Test - public void NfcAirplaneModeObserver_airplaneOn_shouldDisableNfc() { - ReflectionHelpers.setField(mNfcAirplaneModeObserver, - "mAirplaneMode", 0); - Settings.Global.putInt(mContext.getContentResolver(), - Settings.Global.AIRPLANE_MODE_ON, 1); - - mNfcAirplaneModeObserver.onChange(false, - NfcAirplaneModeObserver.AIRPLANE_MODE_URI); - - assertThat(mNfcAdapter.isEnabled()).isFalse(); - } - - @Test - public void NfcAirplaneModeObserver_airplaneModeOnNfcToggleable_shouldEnablePreference() { - ReflectionHelpers.setField(mNfcAirplaneModeObserver, "mAirplaneMode", 0); - final ContentResolver contentResolver = mContext.getContentResolver(); - Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 1); - Settings.Global.putString(contentResolver, - Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Settings.Global.RADIO_NFC); - - mNfcAirplaneModeObserver.onChange(false, NfcAirplaneModeObserver.AIRPLANE_MODE_URI); - - assertThat(mNfcPreference.isEnabled()).isTrue(); - } - - @Test - public void NfcAirplaneModeObserver_airplaneModeOnNfcNotToggleable_shouldDisablePreference() { - ReflectionHelpers.setField(mNfcAirplaneModeObserver, "mAirplaneMode", 0); - final ContentResolver contentResolver = mContext.getContentResolver(); - Settings.Global.putInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 1); - Settings.Global.putString(contentResolver, - Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Global.RADIO_WIFI); - - mNfcAirplaneModeObserver.onChange(false, NfcAirplaneModeObserver.AIRPLANE_MODE_URI); - - assertThat(mNfcPreference.isEnabled()).isFalse(); - } - - @Test - public void NfcAirplaneModeObserver_airplaneModeOff_shouldEnablePreference() { - ReflectionHelpers.setField(mNfcAirplaneModeObserver, "mAirplaneMode", 1); - Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0); - - mNfcAirplaneModeObserver.onChange(false, NfcAirplaneModeObserver.AIRPLANE_MODE_URI); - - assertThat(mNfcPreference.isEnabled()).isTrue(); - } - - @Test - public void NfcAirplaneModeObserver_airplaneModeOff_shouldNotEnableNfcAutomatically() { - ReflectionHelpers.setField(mNfcAirplaneModeObserver, "mAirplaneMode", 1); - Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0); - - mNfcAirplaneModeObserver.onChange(false, NfcAirplaneModeObserver.AIRPLANE_MODE_URI); - - assertThat(mNfcAdapter.isEnabled()).isFalse(); - } -} diff --git a/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java index e3672c92dc9..b7efc22c83a 100644 --- a/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java @@ -222,38 +222,6 @@ public class NfcPreferenceControllerTest { assertThat(NfcPreferenceController.shouldTurnOffNFCInAirplaneMode(mContext)).isFalse(); } - @Test - public void displayPreference_airplaneModeRadiosContainsNfc_shouldCreateAirplaneModeObserver() { - Settings.Global.putString(mContext.getContentResolver(), - Settings.Global.AIRPLANE_MODE_RADIOS, Settings.Global.RADIO_NFC); - - mNfcController.displayPreference(mScreen); - - assertThat(mNfcController.mAirplaneModeObserver).isNotNull(); - } - - @Test - public void displayPreference_nfcToggleableInAirplaneMode_shouldCreateAirplaneModeObserver() { - Settings.Global.putString(mContext.getContentResolver(), - Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, Settings.Global.RADIO_NFC); - - mNfcController.displayPreference(mScreen); - - assertThat(mNfcController.mAirplaneModeObserver).isNotNull(); - } - - @Test - public void displayPreference_nfcNotAffectByAirplaneMode_shouldNotCreateAirplaneModeObserver() { - Settings.Global.putString(mContext.getContentResolver(), - Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS, ""); - Settings.Global.putString(mContext.getContentResolver(), - Settings.Global.AIRPLANE_MODE_RADIOS, ""); - - mNfcController.displayPreference(mScreen); - - assertThat(mNfcController.mAirplaneModeObserver).isNull(); - } - @Test public void ncfSliceWorker_nfcBroadcast_noExtra_sliceDoesntUpdate() { final NfcSliceWorker worker = spy(new NfcSliceWorker(mContext, getDummyUri()));