diff --git a/android/src/main/java/cz/nic/tablexia/android/AndroidQRCodeScanner.java b/android/src/main/java/cz/nic/tablexia/android/AndroidQRCodeScanner.java index 55775a88ea15ad4752dc40d19f092f416c648520..65fe2e88f9d4c4dd4940b88bc60ca3170b353ef6 100644 --- a/android/src/main/java/cz/nic/tablexia/android/AndroidQRCodeScanner.java +++ b/android/src/main/java/cz/nic/tablexia/android/AndroidQRCodeScanner.java @@ -36,7 +36,7 @@ public class AndroidQRCodeScanner extends QRCodeScanner implements Camera.Previe @Override public void onPreviewFrame(byte[] bytes, Camera camera) { - // TODO: 6.10.16 handle pause restore application or at least close camera view on pause + // TODO: 14.10.16 Reduce size of scanning area if (isScanningEnabled()) { int width = camera.getParameters().getPreviewSize().width; int height = camera.getParameters().getPreviewSize().height; @@ -87,6 +87,7 @@ public class AndroidQRCodeScanner extends QRCodeScanner implements Camera.Previe @Override public void onCameraPreviewStarted() { + if (isCameraPreviewActive()) stopPreview(); prepareCameraAsync(); if (!cameraReady) { @@ -104,7 +105,7 @@ public class AndroidQRCodeScanner extends QRCodeScanner implements Camera.Previe private synchronized void startPreviewAsync() { Runnable r = new Runnable() { public void run() { - preparePreview(); + startPreview(); } }; activity.post(r); @@ -141,7 +142,7 @@ public class AndroidQRCodeScanner extends QRCodeScanner implements Camera.Previe } } - private void preparePreview() { + private void startPreview() { if (cameraSurface != null && cameraSurface.getCamera() != null) { Log.debug(getClass().getSimpleName(), "startPreview"); cameraSurface.getCamera().setPreviewCallback(this); diff --git a/core/src/cz/nic/tablexia/screen/loader/LoaderScreen.java b/core/src/cz/nic/tablexia/screen/loader/LoaderScreen.java index 58a574c9839cf2c8cd516ead6c4c2799e3ae76ad..07b1d8b5a57d8d6385a26c028b53e6afac2d45ae 100644 --- a/core/src/cz/nic/tablexia/screen/loader/LoaderScreen.java +++ b/core/src/cz/nic/tablexia/screen/loader/LoaderScreen.java @@ -308,9 +308,21 @@ public class LoaderScreen extends AbstractTablexiaScreen<Void> { @Override public void backButtonPressed() { - Gdx.app.exit(); + if (Tablexia.hasQRCodeScanner() && Tablexia.getQRCodeScanner().isCameraPreviewActive()) { + Tablexia.getQRCodeScanner().stopCameraPreview(); + }else { + Gdx.app.exit(); + } } + @Override + public void pause() { + super.pause(); + if (Tablexia.hasQRCodeScanner() && Tablexia.getQRCodeScanner().isCameraPreviewActive()) { + Tablexia.getQRCodeScanner().stopCameraPreview(); + } + } + public void prepareLoadingBar() { //Skin for LoadingBar LoadingBar.LoadingBarSkin skin = new LoadingBar.LoadingBarSkin(