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;