diff --git a/android/src/main/java/cz/nic/tablexia/android/camera/AndroidDeviceCameraController.java b/android/src/main/java/cz/nic/tablexia/android/camera/AndroidDeviceCameraController.java index ce986b56cab58723fbfefd056ff97638f1bbf786..bfd646e007c87b24797d4647b62354222c0c88cf 100644 --- a/android/src/main/java/cz/nic/tablexia/android/camera/AndroidDeviceCameraController.java +++ b/android/src/main/java/cz/nic/tablexia/android/camera/AndroidDeviceCameraController.java @@ -10,8 +10,6 @@ import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.view.ViewParent; -import com.badlogic.gdx.Gdx; - import cz.nic.tablexia.android.AndroidLauncher; import cz.nic.tablexia.util.Log; import cz.nic.tablexia.util.camera.CameraCallback; @@ -32,8 +30,6 @@ public class AndroidDeviceCameraController implements DeviceCameraControl, Camer private boolean previewReady = false; - int mWidth, mHeight, mLeft, mTop, mAreaWidth, mAreaHeight; - private class ScreenOrientationListener extends OrientationEventListener { public ScreenOrientationListener(Context context, int rate) { @@ -80,7 +76,6 @@ public class AndroidDeviceCameraController implements DeviceCameraControl, Camer cameraSurface.getCamera().startPreview(); screenOrientationListener.enable(); previewReady = true; - setArea(); } else { prepareCamera(); } @@ -168,17 +163,8 @@ public class AndroidDeviceCameraController implements DeviceCameraControl, Camer @Override public void onPreviewFrame(byte[] bytes, Camera camera) { if (cameraCallback != null && !cameraCallback.hasDataToProceed()) { - cameraCallback.scanPreviewData(bytes); + cameraCallback.scanPreviewData(bytes, getPreviewWidth(), getPreviewHeight()); } } - public void setArea() { - // TODO: 10.3.16 set size to fit new texture - mWidth = Gdx.graphics.getWidth(); - mHeight = Gdx.graphics.getHeight(); - mLeft = mWidth / 4; - mTop = mHeight / 4; - mAreaHeight = mHeight / 2; - mAreaWidth = mWidth / 2; - } } \ No newline at end of file diff --git a/core/src/cz/nic/tablexia/screen/camera/CameraScreen.java b/core/src/cz/nic/tablexia/screen/camera/CameraScreen.java index 93d3c6ebdeaefc5bf2ae5e5e26b31e20a155e05d..686fc983fc1d3ff6450c17adfd5082ae1924352d 100644 --- a/core/src/cz/nic/tablexia/screen/camera/CameraScreen.java +++ b/core/src/cz/nic/tablexia/screen/camera/CameraScreen.java @@ -1,7 +1,6 @@ package cz.nic.tablexia.screen.camera; import com.badlogic.gdx.Gdx; -import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.scenes.scene2d.InputEvent; @@ -24,21 +23,11 @@ import cz.nic.tablexia.bus.ApplicationBus; import cz.nic.tablexia.loader.application.ApplicationTextManager; import cz.nic.tablexia.menu.user.UserMenu; import cz.nic.tablexia.screen.AbstractTablexiaScreen; -import cz.nic.tablexia.shared.model.User; -import cz.nic.tablexia.sync.RestSynchronizationService; -import cz.nic.tablexia.sync.work.DownloadUser; -import cz.nic.tablexia.sync.work.SyncWork; import cz.nic.tablexia.util.Log; import cz.nic.tablexia.util.camera.CameraCallback; import cz.nic.tablexia.util.camera.DeviceCameraControl; import cz.nic.tablexia.util.ui.dialog.TablexiaComponentDialog; import cz.nic.tablexia.util.ui.dialog.TablexiaComponentDialogFactory; -import cz.nic.tablexia.util.ui.dialog.components.BackButtonHideComponent; -import cz.nic.tablexia.util.ui.dialog.components.CenterPositionDialogComponent; -import cz.nic.tablexia.util.ui.dialog.components.CloseButtonContentDialogComponent; -import cz.nic.tablexia.util.ui.dialog.components.FixedSpaceContentDialogComponent; -import cz.nic.tablexia.util.ui.dialog.components.ResizableSpaceContentDialogComponent; -import cz.nic.tablexia.util.ui.dialog.components.TextContentDialogComponent; /** * Created by Vitaliy Vashchenko on 7.3.16. @@ -66,13 +55,13 @@ public class CameraScreen extends AbstractTablexiaScreen<Void> implements Camera public enum Mode { prepare, preview, - done; + done } @Override - public void scanPreviewData(byte[] data) { + public void scanPreviewData(byte[] data, int width, int height) { hasData = true; - setArea(); + setArea(width, height); LuminanceSource source = new PlanarYUVLuminanceSource(data, width, height, left, top, innerWidth, innerHeight, false); //set searching area in the middle of the screen BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); Result result; @@ -155,7 +144,6 @@ public class CameraScreen extends AbstractTablexiaScreen<Void> implements Camera if (deviceCameraControl.isPreviewReady()) { Gdx.gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); - drawRectangle(); } break; case prepare: @@ -186,14 +174,6 @@ public class CameraScreen extends AbstractTablexiaScreen<Void> implements Camera public void clicked(InputEvent event, float x, float y) { super.clicked(event, x, y); Log.debug(getClass(), "Decoded: "+ decodedData); - DownloadUser syncWork = new DownloadUser(decodedData); - syncWork.registerListener(new SyncWork.RestSyncListener() { - @Override - public void onSuccess(User user) { - ApplicationBus.getInstance().post(new UserMenu.RefreshUserMenu()).asynchronously(); - } - }); - RestSynchronizationService.doSyncWork(syncWork); backToMenu(); } }, @@ -203,46 +183,10 @@ public class CameraScreen extends AbstractTablexiaScreen<Void> implements Camera super.clicked(event, x, y); resetState(); } - }); + }); dialog.show(DIALOG_WIDTH, DIALOG_HEIGHT); } - private void syncUser(String userId) { - DownloadUser syncWork = new DownloadUser(userId); - syncWork.registerListener(new SyncWork.RestSyncListener() { - @Override - public void onSuccess(User user) { - ApplicationBus.getInstance().post(new UserMenu.RefreshUserMenu()).asynchronously(); - ApplicationBus.getInstance().post(new Tablexia.ChangeScreenEvent(CameraScreen.class, TablexiaApplication.ScreenTransaction.FADE)).asynchronously(); - } - - @Override - public void onFailure(Throwable t) { - TablexiaComponentDialogFactory.getInstance().createDialog( - // TODO: 11.3.16 repeat cancel dialog - new CenterPositionDialogComponent(), - new TextContentDialogComponent(ApplicationTextManager.getInstance().getText(ApplicationTextManager.ApplicationTextsAssets.SYNC_REQUEST_ERROR_DIALOG_TEXT)), - new ResizableSpaceContentDialogComponent(), - new CloseButtonContentDialogComponent(ApplicationTextManager.getInstance().getText(ApplicationTextManager.ApplicationTextsAssets.SYSTEM_EXIT)), - new FixedSpaceContentDialogComponent(), - new BackButtonHideComponent() - ).show(DIALOG_WIDTH, DIALOG_HEIGHT); - - super.onFailure(t); - - } - }); - RestSynchronizationService.doSyncWork(syncWork); - } - - private void drawRectangle() { - setArea(); - shapeRenderer.begin(ShapeRenderer.ShapeType.Line); - shapeRenderer.setColor(Color.RED); - shapeRenderer.rect(left, top, innerWidth, innerHeight); - shapeRenderer.end(); - } - private void resetState(){ hasData = false; decodedData = null; @@ -251,14 +195,14 @@ public class CameraScreen extends AbstractTablexiaScreen<Void> implements Camera mode = Mode.prepare; } - private void setArea() { + private void setArea(int width, int height) { if (!sizeIsSet) { - width = Gdx.graphics.getWidth(); - height = Gdx.graphics.getHeight(); - innerWidth = width / 3; - innerHeight = height / 2; - left = width / 3; - top = height / 4; + this.width = width; + this.height = height; + innerWidth = width/2; + innerHeight = height/2; + left = width/4; + top = height/4; sizeIsSet = true; } } diff --git a/core/src/cz/nic/tablexia/util/camera/CameraCallback.java b/core/src/cz/nic/tablexia/util/camera/CameraCallback.java index 132a78800a6d7326b7203c11a95b2d8c32c3eba2..078fd0e01cf8e255e07ed988f5aa42267070b70a 100644 --- a/core/src/cz/nic/tablexia/util/camera/CameraCallback.java +++ b/core/src/cz/nic/tablexia/util/camera/CameraCallback.java @@ -4,7 +4,7 @@ package cz.nic.tablexia.util.camera; * Created by Vitaliy Vashchenko on 15.3.16. */ public interface CameraCallback { - void scanPreviewData(byte[] data); + void scanPreviewData(byte[] data, int width, int height); boolean scanFinished(); boolean hasDataToProceed(); }