Loading src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java +24 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import android.widget.TextView; import androidx.annotation.StringRes; import androidx.annotation.UiThread; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.ViewModelProviders; import com.android.settings.R; Loading Loading @@ -261,6 +262,24 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl }); } @Override public void onPause() { if (mCamera != null) { mCamera.stop(); } super.onPause(); } @Override public void onResume() { super.onResume(); if (!isGoingInitiator()) { restartCamera(); } } @Override public int getMetricsCategory() { if (mIsConfiguratorMode) { Loading Loading @@ -702,4 +721,9 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl public void onAccessPointsChanged() { // Do nothing. } @VisibleForTesting protected boolean isDecodeTaskAlive() { return mCamera != null && mCamera.isDecodeTaskAlive(); } } src/com/android/settings/wifi/qrcode/QrCamera.java +10 −0 Original line number Diff line number Diff line Loading @@ -401,4 +401,14 @@ public class QrCamera extends Handler { mScannerCallback.handleSuccessfulResult(qrCode.getText()); } } /** * After {@link #start(SurfaceTexture)}, DecodingTask runs continuously to capture images and * decode QR code. DecodingTask become null After {@link #stop()}. * * Uses this method in test case to prevent power consumption problem. */ public boolean isDecodeTaskAlive() { return mDecodeTask != null; } } tests/unit/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragmentTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -16,9 +16,16 @@ package com.android.settings.wifi.dpp; import static com.android.settings.wifi.dpp.WifiDppUtils.TAG_FRAGMENT_QR_CODE_SCANNER; import static com.google.common.truth.Truth.assertThat; import android.app.Instrumentation; import android.content.Intent; import android.content.pm.ActivityInfo; import androidx.fragment.app.FragmentManager; import androidx.test.InstrumentationRegistry; import androidx.test.rule.ActivityTestRule; import androidx.test.runner.AndroidJUnit4; Loading @@ -38,6 +45,7 @@ public class WifiDppQrCodeScannerFragmentTest { 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"); mActivityRule.launchActivity(intent); } Loading @@ -48,4 +56,21 @@ public class WifiDppQrCodeScannerFragmentTest { mActivityRule.getActivity().setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } @Test public void onPause_shouldNotDecodeQrCode() { final WifiDppConfiguratorActivity hostActivity = (WifiDppConfiguratorActivity) mActivityRule.getActivity(); final FragmentManager fragmentManager = hostActivity.getSupportFragmentManager(); final WifiDppQrCodeScannerFragment scannerFragment = (WifiDppQrCodeScannerFragment) fragmentManager .findFragmentByTag(TAG_FRAGMENT_QR_CODE_SCANNER); final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation(); instrumentation.runOnMainSync(() -> { instrumentation.callActivityOnPause(hostActivity); assertThat(scannerFragment.isDecodeTaskAlive()).isEqualTo(false); }); } } Loading
src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragment.java +24 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import android.widget.TextView; import androidx.annotation.StringRes; import androidx.annotation.UiThread; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.ViewModelProviders; import com.android.settings.R; Loading Loading @@ -261,6 +262,24 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl }); } @Override public void onPause() { if (mCamera != null) { mCamera.stop(); } super.onPause(); } @Override public void onResume() { super.onResume(); if (!isGoingInitiator()) { restartCamera(); } } @Override public int getMetricsCategory() { if (mIsConfiguratorMode) { Loading Loading @@ -702,4 +721,9 @@ public class WifiDppQrCodeScannerFragment extends WifiDppQrCodeBaseFragment impl public void onAccessPointsChanged() { // Do nothing. } @VisibleForTesting protected boolean isDecodeTaskAlive() { return mCamera != null && mCamera.isDecodeTaskAlive(); } }
src/com/android/settings/wifi/qrcode/QrCamera.java +10 −0 Original line number Diff line number Diff line Loading @@ -401,4 +401,14 @@ public class QrCamera extends Handler { mScannerCallback.handleSuccessfulResult(qrCode.getText()); } } /** * After {@link #start(SurfaceTexture)}, DecodingTask runs continuously to capture images and * decode QR code. DecodingTask become null After {@link #stop()}. * * Uses this method in test case to prevent power consumption problem. */ public boolean isDecodeTaskAlive() { return mDecodeTask != null; } }
tests/unit/src/com/android/settings/wifi/dpp/WifiDppQrCodeScannerFragmentTest.java +25 −0 Original line number Diff line number Diff line Loading @@ -16,9 +16,16 @@ package com.android.settings.wifi.dpp; import static com.android.settings.wifi.dpp.WifiDppUtils.TAG_FRAGMENT_QR_CODE_SCANNER; import static com.google.common.truth.Truth.assertThat; import android.app.Instrumentation; import android.content.Intent; import android.content.pm.ActivityInfo; import androidx.fragment.app.FragmentManager; import androidx.test.InstrumentationRegistry; import androidx.test.rule.ActivityTestRule; import androidx.test.runner.AndroidJUnit4; Loading @@ -38,6 +45,7 @@ public class WifiDppQrCodeScannerFragmentTest { 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"); mActivityRule.launchActivity(intent); } Loading @@ -48,4 +56,21 @@ public class WifiDppQrCodeScannerFragmentTest { mActivityRule.getActivity().setRequestedOrientation( ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } @Test public void onPause_shouldNotDecodeQrCode() { final WifiDppConfiguratorActivity hostActivity = (WifiDppConfiguratorActivity) mActivityRule.getActivity(); final FragmentManager fragmentManager = hostActivity.getSupportFragmentManager(); final WifiDppQrCodeScannerFragment scannerFragment = (WifiDppQrCodeScannerFragment) fragmentManager .findFragmentByTag(TAG_FRAGMENT_QR_CODE_SCANNER); final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation(); instrumentation.runOnMainSync(() -> { instrumentation.callActivityOnPause(hostActivity); assertThat(scannerFragment.isDecodeTaskAlive()).isEqualTo(false); }); } }