Loading src/com/android/settings/connecteddevice/AdvancedConnectedDeviceController.java +11 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.connecteddevice; import android.content.Context; import android.provider.Settings; import android.support.annotation.VisibleForTesting; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; Loading @@ -26,6 +27,9 @@ import com.android.settings.nfc.NfcPreferenceController; */ public class AdvancedConnectedDeviceController extends BasePreferenceController { private static final String DRIVING_MODE_SETTINGS_ENABLED = "gearhead:driving_mode_settings_enabled"; public AdvancedConnectedDeviceController(Context context, String preferenceKey) { super(context, preferenceKey); } Loading @@ -47,10 +51,15 @@ public class AdvancedConnectedDeviceController extends BasePreferenceController public static int getConnectedDevicesSummaryResourceId(Context context) { final NfcPreferenceController nfcPreferenceController = new NfcPreferenceController(context); final boolean isDrivingModeAvailable = false; return getConnectedDevicesSummaryResourceId(nfcPreferenceController, isDrivingModeAvailable); isDrivingModeAvailable(context)); } @VisibleForTesting static boolean isDrivingModeAvailable(Context context) { return Settings.System. getInt(context.getContentResolver(), DRIVING_MODE_SETTINGS_ENABLED, 0) == 1; } @VisibleForTesting Loading tests/robotests/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceControllerTest.java +24 −8 Original line number Diff line number Diff line Loading @@ -17,7 +17,9 @@ package com.android.settings.connecteddevice; import static com.android.settings.core.BasePreferenceController.AVAILABLE; import android.content.ContentResolver; import android.content.Context; import android.provider.Settings; import com.android.settings.R; import com.android.settings.nfc.NfcPreferenceController; import com.android.settings.testutils.SettingsRobolectricTestRunner; Loading @@ -39,16 +41,20 @@ import static org.robolectric.Shadows.shadowOf; public class AdvancedConnectedDeviceControllerTest { private static final String KEY = "test_key"; private static final String DRIVING_MODE_SETTINGS_ENABLED = "gearhead:driving_mode_settings_enabled"; private Context mContext; private NfcPreferenceController mNfcController; private ShadowNfcAdapter mShadowNfcAdapter; private ContentResolver mContentResolver; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); mContentResolver = mContext.getContentResolver(); mNfcController = new NfcPreferenceController(mContext); mShadowNfcAdapter = shadowOf(ShadowNfcAdapter.getNfcAdapter(mContext)); } Loading @@ -62,43 +68,53 @@ public class AdvancedConnectedDeviceControllerTest { AVAILABLE); } @Test public void isDrivingModeAvailable_returnTrue() { Settings.System.putInt(mContentResolver, DRIVING_MODE_SETTINGS_ENABLED, 1); assertThat(AdvancedConnectedDeviceController.isDrivingModeAvailable(mContext)).isTrue(); } @Test public void isDrivingModeAvailable_returnFalse() { Settings.System.putInt(mContentResolver, DRIVING_MODE_SETTINGS_ENABLED, 0); assertThat(AdvancedConnectedDeviceController.isDrivingModeAvailable(mContext)).isFalse(); } @Test public void getConnectedDevicesSummaryResourceId_NFCAndDrivingModeAvailable() { // NFC available, driving mode available final boolean isDrivingModeAvailable = true; mShadowNfcAdapter.setEnabled(true); assertThat(AdvancedConnectedDeviceController .getConnectedDevicesSummaryResourceId(mNfcController, isDrivingModeAvailable)) .getConnectedDevicesSummaryResourceId(mNfcController, true)) .isEqualTo(R.string.connected_devices_dashboard_summary); } @Test public void getConnectedDevicesSummaryResourceId_NFCAvailableAndDrivingModeNotAvailable() { // NFC is available, driving mode not available final boolean isDrivingModeAvailable = false; mShadowNfcAdapter.setEnabled(true); assertThat(AdvancedConnectedDeviceController .getConnectedDevicesSummaryResourceId(mNfcController, isDrivingModeAvailable)) .getConnectedDevicesSummaryResourceId(mNfcController, false)) .isEqualTo(R.string.connected_devices_dashboard_no_driving_mode_summary); } @Test public void getConnectedDevicesSummaryResourceId_NFCNotAvailableDrivingModeAvailable() { // NFC not available, driving mode available final boolean isDrivingModeAvailable = true; ReflectionHelpers.setField(mNfcController, "mNfcAdapter", null); assertThat(AdvancedConnectedDeviceController .getConnectedDevicesSummaryResourceId(mNfcController, isDrivingModeAvailable)) .getConnectedDevicesSummaryResourceId(mNfcController, true)) .isEqualTo(R.string.connected_devices_dashboard_no_nfc_summary); } @Test public void getConnectedDevicesSummaryResourceId_NFCAndDrivingModeNotAvailable() { // NFC not available, driving mode not available final boolean isDrivingModeAvailable = false; ReflectionHelpers.setField(mNfcController, "mNfcAdapter", null); assertThat(AdvancedConnectedDeviceController .getConnectedDevicesSummaryResourceId(mNfcController, isDrivingModeAvailable)) .getConnectedDevicesSummaryResourceId(mNfcController, false)) .isEqualTo(R.string.connected_devices_dashboard_no_driving_mode_no_nfc_summary); } } Loading
src/com/android/settings/connecteddevice/AdvancedConnectedDeviceController.java +11 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.connecteddevice; import android.content.Context; import android.provider.Settings; import android.support.annotation.VisibleForTesting; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; Loading @@ -26,6 +27,9 @@ import com.android.settings.nfc.NfcPreferenceController; */ public class AdvancedConnectedDeviceController extends BasePreferenceController { private static final String DRIVING_MODE_SETTINGS_ENABLED = "gearhead:driving_mode_settings_enabled"; public AdvancedConnectedDeviceController(Context context, String preferenceKey) { super(context, preferenceKey); } Loading @@ -47,10 +51,15 @@ public class AdvancedConnectedDeviceController extends BasePreferenceController public static int getConnectedDevicesSummaryResourceId(Context context) { final NfcPreferenceController nfcPreferenceController = new NfcPreferenceController(context); final boolean isDrivingModeAvailable = false; return getConnectedDevicesSummaryResourceId(nfcPreferenceController, isDrivingModeAvailable); isDrivingModeAvailable(context)); } @VisibleForTesting static boolean isDrivingModeAvailable(Context context) { return Settings.System. getInt(context.getContentResolver(), DRIVING_MODE_SETTINGS_ENABLED, 0) == 1; } @VisibleForTesting Loading
tests/robotests/src/com/android/settings/connecteddevice/AdvancedConnectedDeviceControllerTest.java +24 −8 Original line number Diff line number Diff line Loading @@ -17,7 +17,9 @@ package com.android.settings.connecteddevice; import static com.android.settings.core.BasePreferenceController.AVAILABLE; import android.content.ContentResolver; import android.content.Context; import android.provider.Settings; import com.android.settings.R; import com.android.settings.nfc.NfcPreferenceController; import com.android.settings.testutils.SettingsRobolectricTestRunner; Loading @@ -39,16 +41,20 @@ import static org.robolectric.Shadows.shadowOf; public class AdvancedConnectedDeviceControllerTest { private static final String KEY = "test_key"; private static final String DRIVING_MODE_SETTINGS_ENABLED = "gearhead:driving_mode_settings_enabled"; private Context mContext; private NfcPreferenceController mNfcController; private ShadowNfcAdapter mShadowNfcAdapter; private ContentResolver mContentResolver; @Before public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(RuntimeEnvironment.application); mContentResolver = mContext.getContentResolver(); mNfcController = new NfcPreferenceController(mContext); mShadowNfcAdapter = shadowOf(ShadowNfcAdapter.getNfcAdapter(mContext)); } Loading @@ -62,43 +68,53 @@ public class AdvancedConnectedDeviceControllerTest { AVAILABLE); } @Test public void isDrivingModeAvailable_returnTrue() { Settings.System.putInt(mContentResolver, DRIVING_MODE_SETTINGS_ENABLED, 1); assertThat(AdvancedConnectedDeviceController.isDrivingModeAvailable(mContext)).isTrue(); } @Test public void isDrivingModeAvailable_returnFalse() { Settings.System.putInt(mContentResolver, DRIVING_MODE_SETTINGS_ENABLED, 0); assertThat(AdvancedConnectedDeviceController.isDrivingModeAvailable(mContext)).isFalse(); } @Test public void getConnectedDevicesSummaryResourceId_NFCAndDrivingModeAvailable() { // NFC available, driving mode available final boolean isDrivingModeAvailable = true; mShadowNfcAdapter.setEnabled(true); assertThat(AdvancedConnectedDeviceController .getConnectedDevicesSummaryResourceId(mNfcController, isDrivingModeAvailable)) .getConnectedDevicesSummaryResourceId(mNfcController, true)) .isEqualTo(R.string.connected_devices_dashboard_summary); } @Test public void getConnectedDevicesSummaryResourceId_NFCAvailableAndDrivingModeNotAvailable() { // NFC is available, driving mode not available final boolean isDrivingModeAvailable = false; mShadowNfcAdapter.setEnabled(true); assertThat(AdvancedConnectedDeviceController .getConnectedDevicesSummaryResourceId(mNfcController, isDrivingModeAvailable)) .getConnectedDevicesSummaryResourceId(mNfcController, false)) .isEqualTo(R.string.connected_devices_dashboard_no_driving_mode_summary); } @Test public void getConnectedDevicesSummaryResourceId_NFCNotAvailableDrivingModeAvailable() { // NFC not available, driving mode available final boolean isDrivingModeAvailable = true; ReflectionHelpers.setField(mNfcController, "mNfcAdapter", null); assertThat(AdvancedConnectedDeviceController .getConnectedDevicesSummaryResourceId(mNfcController, isDrivingModeAvailable)) .getConnectedDevicesSummaryResourceId(mNfcController, true)) .isEqualTo(R.string.connected_devices_dashboard_no_nfc_summary); } @Test public void getConnectedDevicesSummaryResourceId_NFCAndDrivingModeNotAvailable() { // NFC not available, driving mode not available final boolean isDrivingModeAvailable = false; ReflectionHelpers.setField(mNfcController, "mNfcAdapter", null); assertThat(AdvancedConnectedDeviceController .getConnectedDevicesSummaryResourceId(mNfcController, isDrivingModeAvailable)) .getConnectedDevicesSummaryResourceId(mNfcController, false)) .isEqualTo(R.string.connected_devices_dashboard_no_driving_mode_no_nfc_summary); } }