changed to portrait mode

This commit is contained in:
Philipp Crocoll 2014-05-07 15:46:36 +02:00
parent 8cbb7dfc23
commit 7ca44ab5ec
5 changed files with 27 additions and 14 deletions

View File

@ -53,16 +53,23 @@
<activity <activity
android:name="keepass2android.plugin.qr.MainActivity" android:name="keepass2android.plugin.qr.MainActivity"
android:label="@string/title_activity_main" > android:label="@string/title_activity_main"
>
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name="com.google.zxing.client.android.CaptureActivity" <activity android:name="com.google.zxing.client.android.CaptureActivity"
android:label="Capture"> android:label="Capture"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden">
</activity> </activity>
</application> </application>
</manifest> </manifest>

View File

@ -321,14 +321,6 @@ public final class CaptureActivity extends Activity implements SurfaceHolder.Cal
Intent intent = new Intent(Intent.ACTION_VIEW); Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
switch (item.getItemId()) { 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: case R.id.menu_settings:
intent.setClassName(this, PreferencesActivity.class.getName()); intent.setClassName(this, PreferencesActivity.class.getName());
startActivity(intent); startActivity(intent);

View File

@ -75,6 +75,17 @@ final class DecodeHandler extends Handler {
* @param height The height of the preview frame. * @param height The height of the preview frame.
*/ */
private void decode(byte[] data, int width, int height) { 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(); long start = System.currentTimeMillis();
Result rawResult = null; Result rawResult = null;
PlanarYUVLuminanceSource source = activity.getCameraManager().buildLuminanceSource(data, width, height); PlanarYUVLuminanceSource source = activity.getCameraManager().buildLuminanceSource(data, width, height);
@ -89,6 +100,7 @@ final class DecodeHandler extends Handler {
} }
} }
Handler handler = activity.getHandler(); Handler handler = activity.getHandler();
if (rawResult != null) { if (rawResult != null) {
// Don't log the barcode contents for security. // Don't log the barcode contents for security.

View File

@ -123,6 +123,7 @@ final class CameraConfigurationManager {
parameters.setPreviewSize(cameraResolution.x, cameraResolution.y); parameters.setPreviewSize(cameraResolution.x, cameraResolution.y);
camera.setParameters(parameters); camera.setParameters(parameters);
camera.setDisplayOrientation(90);
Camera.Parameters afterParameters = camera.getParameters(); Camera.Parameters afterParameters = camera.getParameters();
Camera.Size afterSize = afterParameters.getPreviewSize(); Camera.Size afterSize = afterParameters.getPreviewSize();

View File

@ -252,10 +252,11 @@ public final class CameraManager {
// Called early, before init even finished // Called early, before init even finished
return null; return null;
} }
rect.left = rect.left * cameraResolution.x / screenResolution.x; rect.left = rect.left * cameraResolution.y / screenResolution.x;
rect.right = rect.right * cameraResolution.x / screenResolution.x; rect.right = rect.right * cameraResolution.y / screenResolution.x;
rect.top = rect.top * cameraResolution.y / screenResolution.y; rect.top = rect.top * cameraResolution.x / screenResolution.y;
rect.bottom = rect.bottom * cameraResolution.y / screenResolution.y; rect.bottom = rect.bottom * cameraResolution.x / screenResolution.y;
framingRectInPreview = rect; framingRectInPreview = rect;
} }
return framingRectInPreview; return framingRectInPreview;