Loading src/com/android/settings/nfc/NfcForegroundPreferenceController.java +10 −1 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ */ package com.android.settings.nfc; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.pm.PackageManager; import android.text.TextUtils; Loading @@ -23,6 +24,8 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; Loading @@ -35,9 +38,11 @@ public class NfcForegroundPreferenceController extends BasePreferenceController private DropDownPreference mPreference; private PaymentBackend mPaymentBackend; private MetricsFeatureProvider mMetricsFeatureProvider; public NfcForegroundPreferenceController(Context context, String key) { super(context, key); mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); } public void setPaymentBackend(PaymentBackend backend) { Loading Loading @@ -115,7 +120,11 @@ public class NfcForegroundPreferenceController extends BasePreferenceController final DropDownPreference pref = (DropDownPreference) preference; final String newValueString = (String) newValue; pref.setSummary(pref.getEntries()[pref.findIndexOfValue(newValueString)]); mPaymentBackend.setForegroundMode(Integer.parseInt(newValueString) != 0); final boolean foregroundMode = Integer.parseInt(newValueString) != 0; mPaymentBackend.setForegroundMode(foregroundMode); mMetricsFeatureProvider.action(mContext, foregroundMode ? SettingsEnums.ACTION_NFC_PAYMENT_FOREGROUND_SETTING : SettingsEnums.ACTION_NFC_PAYMENT_ALWAYS_SETTING); return true; } Loading tests/robotests/src/com/android/settings/nfc/NfcForegroundPreferenceControllerTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.pm.PackageManager; Loading @@ -29,6 +30,7 @@ import androidx.preference.DropDownPreference; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.testutils.FakeFeatureFactory; import org.junit.Before; import org.junit.Test; Loading @@ -37,6 +39,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.util.ReflectionHelpers; import java.util.ArrayList; Loading @@ -55,12 +58,14 @@ public class NfcForegroundPreferenceControllerTest { private Context mContext; private DropDownPreference mPreference; private NfcForegroundPreferenceController mController; private FakeFeatureFactory mFakeFeatureFactory; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); when(mContext.getPackageManager()).thenReturn(mManager); mFakeFeatureFactory = FakeFeatureFactory.setupForTest(); mController = new NfcForegroundPreferenceController(mContext, PREF_KEY); mPreference = new DropDownPreference(mContext); when(mScreen.findPreference(PREF_KEY)).thenReturn(mPreference); Loading Loading @@ -156,4 +161,23 @@ public class NfcForegroundPreferenceControllerTest { assertThat(mPreference.getEntry()).isEqualTo(favorDefault); assertThat(mPreference.getSummary()).isEqualTo(favorDefault); } @Test public void changeOptions_checkMetrics() { initPaymentApps(); mController.displayPreference(mScreen); mController.onPaymentAppsChanged(); mPreference.setValueIndex(0); mPreference.callChangeListener(mPreference.getEntryValues()[0]); verify(mPaymentBackend).setForegroundMode(true); verify(mFakeFeatureFactory.metricsFeatureProvider).action(mContext, SettingsEnums.ACTION_NFC_PAYMENT_FOREGROUND_SETTING); mPreference.setValueIndex(1); mPreference.callChangeListener(mPreference.getEntryValues()[1]); verify(mPaymentBackend).setForegroundMode(false); verify(mFakeFeatureFactory.metricsFeatureProvider).action(mContext, SettingsEnums.ACTION_NFC_PAYMENT_ALWAYS_SETTING); } } No newline at end of file Loading
src/com/android/settings/nfc/NfcForegroundPreferenceController.java +10 −1 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ */ package com.android.settings.nfc; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.pm.PackageManager; import android.text.TextUtils; Loading @@ -23,6 +24,8 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; Loading @@ -35,9 +38,11 @@ public class NfcForegroundPreferenceController extends BasePreferenceController private DropDownPreference mPreference; private PaymentBackend mPaymentBackend; private MetricsFeatureProvider mMetricsFeatureProvider; public NfcForegroundPreferenceController(Context context, String key) { super(context, key); mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider(); } public void setPaymentBackend(PaymentBackend backend) { Loading Loading @@ -115,7 +120,11 @@ public class NfcForegroundPreferenceController extends BasePreferenceController final DropDownPreference pref = (DropDownPreference) preference; final String newValueString = (String) newValue; pref.setSummary(pref.getEntries()[pref.findIndexOfValue(newValueString)]); mPaymentBackend.setForegroundMode(Integer.parseInt(newValueString) != 0); final boolean foregroundMode = Integer.parseInt(newValueString) != 0; mPaymentBackend.setForegroundMode(foregroundMode); mMetricsFeatureProvider.action(mContext, foregroundMode ? SettingsEnums.ACTION_NFC_PAYMENT_FOREGROUND_SETTING : SettingsEnums.ACTION_NFC_PAYMENT_ALWAYS_SETTING); return true; } Loading
tests/robotests/src/com/android/settings/nfc/NfcForegroundPreferenceControllerTest.java +24 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.pm.PackageManager; Loading @@ -29,6 +30,7 @@ import androidx.preference.DropDownPreference; import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.testutils.FakeFeatureFactory; import org.junit.Before; import org.junit.Test; Loading @@ -37,6 +39,7 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.util.ReflectionHelpers; import java.util.ArrayList; Loading @@ -55,12 +58,14 @@ public class NfcForegroundPreferenceControllerTest { private Context mContext; private DropDownPreference mPreference; private NfcForegroundPreferenceController mController; private FakeFeatureFactory mFakeFeatureFactory; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); when(mContext.getPackageManager()).thenReturn(mManager); mFakeFeatureFactory = FakeFeatureFactory.setupForTest(); mController = new NfcForegroundPreferenceController(mContext, PREF_KEY); mPreference = new DropDownPreference(mContext); when(mScreen.findPreference(PREF_KEY)).thenReturn(mPreference); Loading Loading @@ -156,4 +161,23 @@ public class NfcForegroundPreferenceControllerTest { assertThat(mPreference.getEntry()).isEqualTo(favorDefault); assertThat(mPreference.getSummary()).isEqualTo(favorDefault); } @Test public void changeOptions_checkMetrics() { initPaymentApps(); mController.displayPreference(mScreen); mController.onPaymentAppsChanged(); mPreference.setValueIndex(0); mPreference.callChangeListener(mPreference.getEntryValues()[0]); verify(mPaymentBackend).setForegroundMode(true); verify(mFakeFeatureFactory.metricsFeatureProvider).action(mContext, SettingsEnums.ACTION_NFC_PAYMENT_FOREGROUND_SETTING); mPreference.setValueIndex(1); mPreference.callChangeListener(mPreference.getEntryValues()[1]); verify(mPaymentBackend).setForegroundMode(false); verify(mFakeFeatureFactory.metricsFeatureProvider).action(mContext, SettingsEnums.ACTION_NFC_PAYMENT_ALWAYS_SETTING); } } No newline at end of file