From ac75faa207b1dd8773de8602f2ae15f343f273de Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Tue, 7 May 2019 18:06:54 +0800 Subject: [PATCH] Fix back arrow in wifi settings "connect to this network connection qr code" does not work When clicking back button, pop fragment and Finish the activity if there is nothing to pop Bug: 132132756 Test: atest WifiDppConfiguratorActivityTest Change-Id: Ia16951e79e578f1625e5fadd26553735fa90bffa --- .../wifi/dpp/WifiDppConfiguratorActivity.java | 9 ++--- .../dpp/WifiDppConfiguratorActivityTest.java | 36 +++++++++++++++++++ 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java b/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java index 7308741dafb..5dfcc256122 100644 --- a/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java +++ b/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivity.java @@ -323,15 +323,10 @@ public class WifiDppConfiguratorActivity extends InstrumentedActivity implements @Override public boolean onNavigateUp() { - Fragment fragment = mFragmentManager.findFragmentById(R.id.fragment_container); - if (fragment instanceof WifiDppQrCodeGeneratorFragment) { + if (!mFragmentManager.popBackStackImmediate()) { finish(); - return true; - } else if (fragment instanceof WifiDppQrCodeScannerFragment) { - mFragmentManager.popBackStackImmediate(); } - - return false; + return true; } @Override diff --git a/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java b/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java index 38211b3ec1e..de788285902 100644 --- a/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java +++ b/tests/unit/src/com/android/settings/wifi/dpp/WifiDppConfiguratorActivityTest.java @@ -175,4 +175,40 @@ public class WifiDppConfiguratorActivityTest { assertThat(restoredWifiNetworkConfig.getNetworkId()).isEqualTo(0); assertThat(restoredWifiNetworkConfig.isHotspot()).isTrue(); } + + @Test + public void launchScanner_onNavigateUp_shouldFinish() { + Intent intent = new Intent(WifiDppConfiguratorActivity.ACTION_CONFIGURATOR_QR_CODE_SCANNER); + intent.putExtra(WifiDppUtils.EXTRA_WIFI_SECURITY, "WEP"); + intent.putExtra(WifiDppUtils.EXTRA_WIFI_SSID, "GoogleGuest"); + intent.putExtra(WifiDppUtils.EXTRA_WIFI_PRE_SHARED_KEY, "password"); + final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation(); + + mActivityRule.launchActivity(intent); + + instrumentation.runOnMainSync(() -> { + mActivityRule.getActivity().onNavigateUp(); + + assertThat(mActivityRule.getActivity().isFinishing()).isEqualTo(true); + }); + } + + @Test + public void launchGenerator_onNavigateUp_shouldFinish() { + Intent intent = new Intent( + WifiDppConfiguratorActivity.ACTION_CONFIGURATOR_QR_CODE_GENERATOR); + intent.putExtra(WifiDppUtils.EXTRA_WIFI_SECURITY, "WEP"); + intent.putExtra(WifiDppUtils.EXTRA_WIFI_SSID, "GoogleGuest"); + intent.putExtra(WifiDppUtils.EXTRA_WIFI_PRE_SHARED_KEY, "password"); + final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation(); + + mActivityRule.launchActivity(intent); + + instrumentation.runOnMainSync(() -> { + mActivityRule.getActivity().onNavigateUp(); + + assertThat(mActivityRule.getActivity().isFinishing()).isEqualTo(true); + }); + } + }