From ec0a30a8b9f2f62d99b26dcf0e61234bb0d5b427 Mon Sep 17 00:00:00 2001 From: pastychang Date: Mon, 22 Apr 2019 16:17:46 +0800 Subject: [PATCH] Set QR scan activity to light theme in setup flow Test: atest Bug: 131029518 Change-Id: Ibec28e78fcf17390cd3844ead4a88a4e6bff6094 --- res/values/themes.xml | 21 +++++++++++++++++++ .../settings/wifi/WifiDialogActivity.java | 16 ++++++++------ .../wifi/dpp/WifiDppEnrolleeActivity.java | 7 ++++++- .../settings/wifi/WifiDialogActivityTest.java | 21 +++++++++++++++++++ 4 files changed, 58 insertions(+), 7 deletions(-) diff --git a/res/values/themes.xml b/res/values/themes.xml index 5db5f2fba03..1541b6d07d9 100644 --- a/res/values/themes.xml +++ b/res/values/themes.xml @@ -210,4 +210,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); + } }