diff --git a/res/values/themes.xml b/res/values/themes.xml
index 8268ce18fad..26d4aa892c2 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -211,4 +211,25 @@
- @*android:string/config_headlineFontFamilyMedium
+
+
+
diff --git a/src/com/android/settings/wifi/WifiDialogActivity.java b/src/com/android/settings/wifi/WifiDialogActivity.java
index 8268eccac6b..77827867630 100644
--- a/src/com/android/settings/wifi/WifiDialogActivity.java
+++ b/src/com/android/settings/wifi/WifiDialogActivity.java
@@ -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
diff --git a/src/com/android/settings/wifi/dpp/WifiDppEnrolleeActivity.java b/src/com/android/settings/wifi/dpp/WifiDppEnrolleeActivity.java
index 392b27dc46d..2229895c6cd 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppEnrolleeActivity.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppEnrolleeActivity.java
@@ -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();
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java b/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java
index 41d1bbe4f38..15a07802be2 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java
@@ -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 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);
+ }
}