diff --git a/src/java/PluginQR/AndroidManifest.xml b/src/java/PluginQR/AndroidManifest.xml index 4c95117a..3b349c3e 100644 --- a/src/java/PluginQR/AndroidManifest.xml +++ b/src/java/PluginQR/AndroidManifest.xml @@ -53,16 +53,23 @@ + android:label="@string/title_activity_main" + > + android:label="Capture" + android:screenOrientation="portrait" + android:configChanges="orientation|keyboardHidden" + android:theme="@android:style/Theme.NoTitleBar.Fullscreen" + android:windowSoftInputMode="stateAlwaysHidden"> + + diff --git a/src/java/PluginQR/src/com/google/zxing/client/android/CaptureActivity.java b/src/java/PluginQR/src/com/google/zxing/client/android/CaptureActivity.java index 24374f6b..40e6a04a 100644 --- a/src/java/PluginQR/src/com/google/zxing/client/android/CaptureActivity.java +++ b/src/java/PluginQR/src/com/google/zxing/client/android/CaptureActivity.java @@ -321,14 +321,6 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); switch (item.getItemId()) { - case R.id.menu_share: - intent.setClassName(this, ShareActivity.class.getName()); - startActivity(intent); - break; - case R.id.menu_history: - intent.setClassName(this, HistoryActivity.class.getName()); - startActivityForResult(intent, HISTORY_REQUEST_CODE); - break; case R.id.menu_settings: intent.setClassName(this, PreferencesActivity.class.getName()); startActivity(intent); diff --git a/src/java/PluginQR/src/com/google/zxing/client/android/DecodeHandler.java b/src/java/PluginQR/src/com/google/zxing/client/android/DecodeHandler.java index 730dc33d..2ead3085 100644 --- a/src/java/PluginQR/src/com/google/zxing/client/android/DecodeHandler.java +++ b/src/java/PluginQR/src/com/google/zxing/client/android/DecodeHandler.java @@ -75,6 +75,17 @@ final class DecodeHandler extends Handler { * @param height The height of the preview frame. */ private void decode(byte[] data, int width, int height) { + + byte[] rotatedData = new byte[data.length]; + for (int y = 0; y < height; y++) { + for (int x = 0; x < width; x++) + rotatedData[x * height + height - y - 1] = data[x + y * width]; + } + int tmp = width; + width = height; + height = tmp; + data = rotatedData; + long start = System.currentTimeMillis(); Result rawResult = null; PlanarYUVLuminanceSource source = activity.getCameraManager().buildLuminanceSource(data, width, height); @@ -88,6 +99,7 @@ final class DecodeHandler extends Handler { multiFormatReader.reset(); } } + Handler handler = activity.getHandler(); if (rawResult != null) { diff --git a/src/java/PluginQR/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java b/src/java/PluginQR/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java index 90f0c356..1d8a3ce5 100644 --- a/src/java/PluginQR/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java +++ b/src/java/PluginQR/src/com/google/zxing/client/android/camera/CameraConfigurationManager.java @@ -123,6 +123,7 @@ final class CameraConfigurationManager { parameters.setPreviewSize(cameraResolution.x, cameraResolution.y); camera.setParameters(parameters); + camera.setDisplayOrientation(90); Camera.Parameters afterParameters = camera.getParameters(); Camera.Size afterSize = afterParameters.getPreviewSize(); diff --git a/src/java/PluginQR/src/com/google/zxing/client/android/camera/CameraManager.java b/src/java/PluginQR/src/com/google/zxing/client/android/camera/CameraManager.java index 77e116f5..07ca44f7 100644 --- a/src/java/PluginQR/src/com/google/zxing/client/android/camera/CameraManager.java +++ b/src/java/PluginQR/src/com/google/zxing/client/android/camera/CameraManager.java @@ -252,10 +252,11 @@ public final class CameraManager { // Called early, before init even finished return null; } - rect.left = rect.left * cameraResolution.x / screenResolution.x; - rect.right = rect.right * cameraResolution.x / screenResolution.x; - rect.top = rect.top * cameraResolution.y / screenResolution.y; - rect.bottom = rect.bottom * cameraResolution.y / screenResolution.y; + rect.left = rect.left * cameraResolution.y / screenResolution.x; + rect.right = rect.right * cameraResolution.y / screenResolution.x; + rect.top = rect.top * cameraResolution.x / screenResolution.y; + rect.bottom = rect.bottom * cameraResolution.x / screenResolution.y; + framingRectInPreview = rect; } return framingRectInPreview;