Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17deddb4 authored by Yi-Ling Chuang's avatar Yi-Ling Chuang Committed by Automerger Merge Worker
Browse files

Merge "Revert "Display "Android Auto" in Connected Devices summary text.""...

Merge "Revert "Display "Android Auto" in Connected Devices summary text."" into rvc-dev am: 153b336b

Change-Id: If9fd1bd478c3a43229916afb735180d66c2dda84
parents f858411e 153b336b
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -7485,14 +7485,6 @@
    <string name="connected_devices_dashboard_no_driving_mode_summary">Bluetooth, NFC</string>
    <!-- Summary for Connected devices settings, explaning a few important settings under it [CHAR LIMIT=NONE]-->
    <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary">Bluetooth</string>
    <!--Summary for Connected devices settings, explaning a few important settings under it [CHAR LIMIT=NONE]-->
    <string name="connected_devices_dashboard_android_auto_summary">Bluetooth, Android Auto, driving mode, NFC</string><!--
    Summary for Connected devices settings, explaning a few important settings under it [CHAR LIMIT=NONE]-->
    <string name="connected_devices_dashboard_android_auto_no_nfc_summary">Bluetooth, Android Auto, driving mode</string>
    <!-- Summary for Connected devices settings, explaning a few important settings under it [CHAR LIMIT=NONE]-->
    <string name="connected_devices_dashboard_android_auto_no_driving_mode_summary">Bluetooth, Android Auto, NFC</string>
    <!-- Summary for Connected devices settings, explaning a few important settings under it [CHAR LIMIT=NONE]-->
    <string name="connected_devices_dashboard_android_auto_no_nfc_no_driving_mode">Bluetooth, Android Auto</string>
    <!-- Summary for Tap & pay settings, explaning a few important settings under it [CHAR LIMIT=NONE]-->
    <string name="nfc_and_payment_settings_payment_off_nfc_off_summary">Unavailable because NFC is off</string>
    <!-- Summary for Tap & pay settings, explaning a few important settings under it [CHAR LIMIT=NONE]-->
+13 −48
Original line number Diff line number Diff line
@@ -15,10 +15,7 @@
 */
package com.android.settings.connecteddevice;

import static com.android.settingslib.drawer.TileUtils.IA_SETTINGS_ACTION;

import android.content.Context;
import android.content.Intent;
import android.provider.Settings;

import androidx.annotation.VisibleForTesting;
@@ -34,7 +31,6 @@ public class AdvancedConnectedDeviceController extends BasePreferenceController

    private static final String DRIVING_MODE_SETTINGS_ENABLED =
            "gearhead:driving_mode_settings_enabled";
    private static final String GEARHEAD_PACKAGE = "com.google.android.projection.gearhead";

    public AdvancedConnectedDeviceController(Context context, String preferenceKey) {
        super(context, preferenceKey);
@@ -59,7 +55,7 @@ public class AdvancedConnectedDeviceController extends BasePreferenceController
                new NfcPreferenceController(context, NfcPreferenceController.KEY_TOGGLE_NFC);

        return getConnectedDevicesSummaryResourceId(nfcPreferenceController,
                isDrivingModeAvailable(context), isAndroidAutoSettingAvailable(context));
                isDrivingModeAvailable(context));
    }

    @VisibleForTesting
@@ -68,41 +64,11 @@ public class AdvancedConnectedDeviceController extends BasePreferenceController
                getInt(context.getContentResolver(), DRIVING_MODE_SETTINGS_ENABLED, 0) == 1;
    }

    @VisibleForTesting
    static boolean isAndroidAutoSettingAvailable(Context context) {
        final Intent intent = new Intent(IA_SETTINGS_ACTION);
        intent.setPackage(GEARHEAD_PACKAGE);
        return intent.resolveActivity(context.getPackageManager()) != null;
    }

    @VisibleForTesting
    static int getConnectedDevicesSummaryResourceId(NfcPreferenceController
            nfcPreferenceController,
            boolean isDrivingModeAvailable,
            boolean isAndroidAutoAvailable) {
            nfcPreferenceController, boolean isDrivingModeAvailable) {
        final int resId;

        if (isAndroidAutoAvailable) {
            if (nfcPreferenceController.isAvailable()) {
                if (isDrivingModeAvailable) {
                    // NFC available, driving mode available
                    resId = R.string.connected_devices_dashboard_android_auto_summary;
                } else {
                    // NFC available, driving mode not available
                    resId =
                        R.string.connected_devices_dashboard_android_auto_no_driving_mode_summary;
                }
            } else {
                if (isDrivingModeAvailable) {
                    // NFC not available, driving mode available
                    resId = R.string.connected_devices_dashboard_android_auto_no_nfc_summary;
                } else {
                    // NFC not available, driving mode not available
                    resId =
                        R.string.connected_devices_dashboard_android_auto_no_nfc_no_driving_mode;
                }
            }
        } else {
        if (nfcPreferenceController.isAvailable()) {
            if (isDrivingModeAvailable) {
                // NFC available, driving mode available
@@ -120,7 +86,6 @@ public class AdvancedConnectedDeviceController extends BasePreferenceController
                resId = R.string.connected_devices_dashboard_no_driving_mode_no_nfc_summary;
            }
        }
        }

        return resId;
    }
+6 −85
Original line number Diff line number Diff line
@@ -23,9 +23,6 @@ import static org.mockito.Mockito.spy;

import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ResolveInfo;
import android.nfc.NfcAdapter;
import android.provider.Settings;

@@ -41,7 +38,6 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowNfcAdapter;
import org.robolectric.shadows.ShadowPackageManager;
import org.robolectric.util.ReflectionHelpers;

@RunWith(RobolectricTestRunner.class)
@@ -51,13 +47,11 @@ public class AdvancedConnectedDeviceControllerTest {
    private static final String KEY = "test_key";
    private static final String DRIVING_MODE_SETTINGS_ENABLED =
            "gearhead:driving_mode_settings_enabled";
    private static final String ANDROID_AUTO_PACKAGE = "com.google.android.projection.gearhead";

    private Context mContext;
    private NfcPreferenceController mNfcController;
    private ShadowNfcAdapter mShadowNfcAdapter;
    private ContentResolver mContentResolver;
    private ShadowPackageManager mShadowPackageManager;

    @Before
    public void setUp() {
@@ -68,7 +62,6 @@ public class AdvancedConnectedDeviceControllerTest {
        mNfcController = new NfcPreferenceController(mContext,
                NfcPreferenceController.KEY_TOGGLE_NFC);
        mShadowNfcAdapter = Shadows.shadowOf(NfcAdapter.getNfcAdapter(mContext));
        mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
    }

    @Test
@@ -83,41 +76,14 @@ public class AdvancedConnectedDeviceControllerTest {
    public void isDrivingModeAvailable_returnTrue() {
        Settings.System.putInt(mContentResolver, DRIVING_MODE_SETTINGS_ENABLED, 1);

        assertThat(
            AdvancedConnectedDeviceController.isDrivingModeAvailable(mContext)).isTrue();
        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 isAndroidAutoSettingAvailable_returnTrue() {
        final ActivityInfo activityInfo = new ActivityInfo();
        activityInfo.packageName = ANDROID_AUTO_PACKAGE;
        final ResolveInfo resolveInfo = new ResolveInfo();
        resolveInfo.activityInfo = activityInfo;
        mShadowPackageManager.addResolveInfoForIntent(
                buildAndroidAutoSettingsIntent(),
                resolveInfo);

        assertThat(
            AdvancedConnectedDeviceController.isAndroidAutoSettingAvailable(mContext)).isTrue();
    }

    @Test
    public void isAndroidAutoSettingAvailable_returnFalse() {
        ResolveInfo resolveInfo = null; // Needed to disambiguate method
        mShadowPackageManager.addResolveInfoForIntent(
                buildAndroidAutoSettingsIntent(),
                resolveInfo);

        assertThat(
            AdvancedConnectedDeviceController.isAndroidAutoSettingAvailable(mContext)).isFalse();
        assertThat(AdvancedConnectedDeviceController.isDrivingModeAvailable(mContext)).isFalse();
    }

    @Test
@@ -125,7 +91,7 @@ public class AdvancedConnectedDeviceControllerTest {
        // NFC available, driving mode available
        mShadowNfcAdapter.setEnabled(true);
        assertThat(AdvancedConnectedDeviceController
                .getConnectedDevicesSummaryResourceId(mNfcController, true, false))
                .getConnectedDevicesSummaryResourceId(mNfcController, true))
                .isEqualTo(R.string.connected_devices_dashboard_summary);
    }

@@ -134,7 +100,7 @@ public class AdvancedConnectedDeviceControllerTest {
        // NFC is available, driving mode not available
        mShadowNfcAdapter.setEnabled(true);
        assertThat(AdvancedConnectedDeviceController
                .getConnectedDevicesSummaryResourceId(mNfcController, false, false))
                .getConnectedDevicesSummaryResourceId(mNfcController, false))
                .isEqualTo(R.string.connected_devices_dashboard_no_driving_mode_summary);
    }

@@ -143,7 +109,7 @@ public class AdvancedConnectedDeviceControllerTest {
        // NFC not available, driving mode available
        ReflectionHelpers.setField(mNfcController, "mNfcAdapter", null);
        assertThat(AdvancedConnectedDeviceController
                .getConnectedDevicesSummaryResourceId(mNfcController, true, false))
                .getConnectedDevicesSummaryResourceId(mNfcController, true))
                .isEqualTo(R.string.connected_devices_dashboard_no_nfc_summary);
    }

@@ -152,52 +118,7 @@ public class AdvancedConnectedDeviceControllerTest {
        // NFC not available, driving mode not available
        ReflectionHelpers.setField(mNfcController, "mNfcAdapter", null);
        assertThat(AdvancedConnectedDeviceController
                .getConnectedDevicesSummaryResourceId(mNfcController, false, false))
                .getConnectedDevicesSummaryResourceId(mNfcController, false))
                .isEqualTo(R.string.connected_devices_dashboard_no_driving_mode_no_nfc_summary);
    }

    @Test
    public void getConnectedDevicesSummaryResourceId_Auto_NFC_DrivingMode_Available() {
        // NFC available, driving mode available
        mShadowNfcAdapter.setEnabled(true);
        assertThat(AdvancedConnectedDeviceController
                .getConnectedDevicesSummaryResourceId(mNfcController, true, true))
                .isEqualTo(R.string.connected_devices_dashboard_android_auto_summary);
    }

    @Test
    public void getConnectedDevicesSummaryResourceId_Auto_NFC_Available() {
        // NFC is available, driving mode not available
        mShadowNfcAdapter.setEnabled(true);
        assertThat(AdvancedConnectedDeviceController
                .getConnectedDevicesSummaryResourceId(mNfcController, false, true))
                .isEqualTo(
                    R.string.connected_devices_dashboard_android_auto_no_driving_mode_summary);
}

    @Test
    public void getConnectedDevicesSummaryResourceId_Auto_DrivingMode_Available() {
        // NFC not available, driving mode available
        ReflectionHelpers.setField(mNfcController, "mNfcAdapter", null);
        assertThat(AdvancedConnectedDeviceController
                .getConnectedDevicesSummaryResourceId(mNfcController, true, true))
                .isEqualTo(R.string.connected_devices_dashboard_android_auto_no_nfc_summary);
    }

    @Test
    public void getConnectedDevicesSummaryResourceId_Auto_Available() {
        // NFC not available, driving mode not available
        ReflectionHelpers.setField(mNfcController, "mNfcAdapter", null);
        assertThat(AdvancedConnectedDeviceController
                .getConnectedDevicesSummaryResourceId(mNfcController, false, true))
                .isEqualTo(
                    R.string.connected_devices_dashboard_android_auto_no_nfc_no_driving_mode);
    }

    private Intent buildAndroidAutoSettingsIntent() {
        final Intent intent = new Intent("com.android.settings.action.IA_SETTINGS");
        intent.setPackage(ANDROID_AUTO_PACKAGE);
        return intent;
    }
}