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

Commit 54cddc70 authored by Pasty Chang's avatar Pasty Chang Committed by Android (Google) Code Review
Browse files

Merge "Set QR scan activity to light theme in setup flow" into qt-dev

parents 3b5a28e2 ec0a30a8
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -211,4 +211,25 @@
        <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
    </style>

    <!-- This light theme for a window that can be applied to show light theme in setupwizard flow,
         regardless of whether system theme changed to dark or light theme. WARNING: your settings
         activity shows in setupwizard flow, but doesn't use setupwizard theme. This theme must be
         set to ensure settings activity always shows light theme in setupwizard flow. -->
    <style name="LightTheme.SettingsBase.SetupWizard" parent="@android:style/Theme.DeviceDefault">
        <item name="android:windowLightStatusBar">true</item>
        <item name="android:navigationBarColor">@android:color/white</item>
        <item name="android:windowLightNavigationBar">true</item>
        <item name="android:navigationBarDividerColor">@*android:color/navigation_bar_divider_device_default_settings</item>

        <item name="android:colorPrimary">@*android:color/primary_device_default_settings_light</item>
        <item name="android:colorPrimaryDark">@*android:color/primary_dark_device_default_settings_light</item>
        <item name="android:colorBackground">@*android:color/background_device_default_light</item>
        <item name="android:colorAccent">@*android:color/accent_device_default_light</item>

        <item name="android:listDivider">@*android:color/list_divider_color_light</item>

        <item name="android:textColorPrimary">@*android:color/primary_text_light</item>
        <item name="android:textColorSecondary">@*android:color/secondary_text_light</item>
    </style>

</resources>
+10 −6
Original line number Diff line number Diff line
@@ -60,16 +60,18 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo

    private WifiDialog mDialog;

    private Intent mIntent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        final Intent intent = getIntent();
        if (WizardManagerHelper.isSetupWizardIntent(intent)) {
            setTheme(SetupWizardUtils.getTransparentTheme(intent));
        mIntent = getIntent();
        if (WizardManagerHelper.isSetupWizardIntent(mIntent)) {
            setTheme(SetupWizardUtils.getTransparentTheme(mIntent));
        }

        super.onCreate(savedInstanceState);

        final Bundle accessPointState = intent.getBundleExtra(KEY_ACCESS_POINT_STATE);
        final Bundle accessPointState = mIntent.getBundleExtra(KEY_ACCESS_POINT_STATE);
        AccessPoint accessPoint = null;
        if (accessPointState != null) {
            accessPoint = new AccessPoint(this, accessPointState);
@@ -175,9 +177,11 @@ public class WifiDialogActivity extends Activity implements WifiDialog.WifiDialo

    @Override
    public void onScan(WifiDialog dialog, String ssid) {
        Intent intent = WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid);
        WizardManagerHelper.copyWizardManagerExtras(mIntent, intent);

        // Launch QR code scanner to join a network.
        startActivityForResult(WifiDppUtils.getEnrolleeQrCodeScannerIntent(ssid),
                REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER);
        startActivityForResult(intent, REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER);
    }

    @Override
+6 −1
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.settings.wifi.dpp;

import android.app.ActionBar;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
@@ -30,6 +29,8 @@ import androidx.fragment.app.FragmentTransaction;
import com.android.settings.R;
import com.android.settings.core.InstrumentedActivity;

import com.google.android.setupcompat.util.WizardManagerHelper;

/**
 * To provision "this" device with specified Wi-Fi network.
 *
@@ -54,6 +55,10 @@ public class WifiDppEnrolleeActivity extends InstrumentedActivity implements
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
            setTheme(R.style.LightTheme_SettingsBase_SetupWizard);
        }

        setContentView(R.layout.wifi_dpp_activity);
        mFragmentManager = getSupportFragmentManager();

+21 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import com.android.settings.R;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
import com.android.settings.testutils.shadow.ShadowWifiManager;
import com.android.settings.wifi.dpp.WifiDppEnrolleeActivity;

import com.google.android.setupcompat.util.WizardManagerHelper;

@@ -37,6 +38,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;

@@ -111,4 +113,23 @@ public class WifiDialogActivityTest {
        assertThat(dialog.getContext().getThemeResId())
                .isEqualTo(R.style.SuwAlertDialogThemeCompat_Light);
    }

    @Test
    public void onScan_whenLaunchFromDeferredSetup_shouldApplyLightTheme() {
        ActivityController<WifiDppEnrolleeActivity> controller = Robolectric.buildActivity(
                WifiDppEnrolleeActivity.class,
                new Intent()
                        .setAction(WifiDppEnrolleeActivity.ACTION_ENROLLEE_QR_CODE_SCANNER)
                        .putExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, true)
                        .putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)
        );
        controller.create();

        Intent intent = controller.getIntent();
        assertThat(intent.getBooleanExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, false)).isTrue();
        assertThat(intent.getBooleanExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, false)).isTrue();

        assertThat(controller.get().getThemeResId()).
                isEqualTo(R.style.LightTheme_SettingsBase_SetupWizard);
    }
}