Skip to content

Commit 586923d

Browse files
authored
Merge pull request #307 from qccoders/android-photo-bug
Android app build 8
2 parents 722e654 + 79d741a commit 586923d

File tree

6 files changed

+32
-12
lines changed

6 files changed

+32
-12
lines changed

mobile/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ android {
66
applicationId "org.qccoders.qcvoc"
77
minSdkVersion 21
88
targetSdkVersion 26
9-
versionCode 7
10-
versionName "0.7"
9+
versionCode 8
10+
versionName "0.8"
1111
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1212
}
1313
buildTypes {

mobile/app/release/app-release.apk

3.78 KB
Binary file not shown.

mobile/app/release/output.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":7,"versionName":"0.7","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]
1+
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":8,"versionName":"0.8","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]

mobile/app/src/main/AndroidManifest.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,15 @@
2121
</intent-filter>
2222
</activity>
2323
<activity android:name="com.google.android.gms.samples.vision.barcodereader.BarcodeCaptureActivity"/>
24+
<provider
25+
android:name="android.support.v4.content.FileProvider"
26+
android:authorities="org.qccoders.qcvoc.fileprovider"
27+
android:exported="false"
28+
android:grantUriPermissions="true">
29+
<meta-data
30+
android:name="android.support.FILE_PROVIDER_PATHS"
31+
android:resource="@xml/file_paths"></meta-data>
32+
</provider>
2433
</application>
2534

2635
</manifest>

mobile/app/src/main/java/org/qccoders/qcvoc/MainActivity.java

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@
1111
import android.content.Intent;
1212
import android.content.pm.PackageManager;
1313
import android.graphics.Bitmap;
14+
import android.graphics.Matrix;
1415
import android.net.Uri;
1516
import android.os.Environment;
16-
import android.os.StrictMode;
1717
import android.provider.MediaStore;
1818
import android.support.annotation.NonNull;
1919
import android.support.design.widget.Snackbar;
2020
import android.support.v4.app.ActivityCompat;
21+
import android.support.v4.content.FileProvider;
2122
import android.support.v7.app.AppCompatActivity;
2223
import android.os.Bundle;
2324
import android.util.Base64;
@@ -92,7 +93,7 @@ public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request
9293

9394
if (query != null) {
9495
String queryCommand = query.substring(0, query.indexOf('&'));
95-
callback = query.substring(query.indexOf('&') + 1);
96+
callback = query.substring(query.indexOf('=') + 1);
9697

9798
if (queryCommand.equals("scan")) {
9899
scanBarcode();
@@ -132,15 +133,13 @@ public void takePhoto() {
132133
}
133134

134135
private void captureImage() {
135-
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
136-
StrictMode.setVmPolicy(builder.build());
137-
138136
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
139137
File photo;
140138
try
141139
{
142140
// place where to store camera taken picture
143-
photo = File.createTempFile("photo", ".jpg", Environment.getExternalStorageDirectory());
141+
File photoDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
142+
photo = File.createTempFile("photo", ".jpg", photoDir);
144143
photo.delete();
145144
}
146145
catch(Exception e)
@@ -149,7 +148,10 @@ private void captureImage() {
149148
Toast.makeText(this, "Error creating temporary file to store photo", Toast.LENGTH_LONG).show();
150149
return;
151150
}
152-
mImageUri = Uri.fromFile(photo);
151+
152+
mImageUri = FileProvider.getUriForFile(this,
153+
"org.qccoders.qcvoc.fileprovider",
154+
photo);
153155
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri);
154156

155157
startActivityForResult(cameraIntent, PHOTO_REQUEST);
@@ -192,7 +194,12 @@ private Bitmap transformPhoto(Bitmap bitmap) {
192194
);
193195
}
194196
// Scale down
195-
return Bitmap.createScaledBitmap(bitmap, 300, 300, false);
197+
bitmap = Bitmap.createScaledBitmap(bitmap, 300, 300, false);
198+
// Rotate
199+
Matrix matrix = new Matrix();
200+
matrix.postRotate(90);
201+
return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
202+
196203
}
197204

198205
@Override
@@ -232,7 +239,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
232239

233240
Log.d("MainActivity", "Photo of size " + photo.length() + " bytes taken");
234241
webview.evaluateJavascript(
235-
callback + "(" + photo + ")",
242+
callback + "('" + photo + "')",
236243
null
237244
);
238245
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<paths xmlns:android="http://schemas.android.com/apk/res/android">
3+
<external-path name="images" path="Android/data/org.qccoders.qcvoc/files/Pictures" />
4+
</paths>

0 commit comments

Comments
 (0)