diff --git a/app/build.gradle b/app/build.gradle
index a84c0d4..3a69052 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,13 +1,13 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 24
- buildToolsVersion "24.0.0"
+ compileSdkVersion 26
+ buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.example.android.barcode_scanner"
minSdkVersion 21
- targetSdkVersion 24
+ targetSdkVersion 26
versionCode 1
versionName "1.0"
}
@@ -22,6 +22,6 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
- compile 'com.android.support:appcompat-v7:24.1.1'
- compile 'com.google.android.gms:play-services:7.8+'
+ compile 'com.android.support:appcompat-v7:26.1.0'
+ compile 'com.google.android.gms:play-services:11.0.2'
}
diff --git a/app/src/main/java/com/example/android/barcode_scanner/MainActivity.java b/app/src/main/java/com/example/android/barcode_scanner/MainActivity.java
index 7194e9b..3e0bfb4 100644
--- a/app/src/main/java/com/example/android/barcode_scanner/MainActivity.java
+++ b/app/src/main/java/com/example/android/barcode_scanner/MainActivity.java
@@ -1,12 +1,18 @@
package com.example.android.barcode_scanner;
+import android.Manifest;
import android.app.Activity;
+import android.content.pm.PackageManager;
+import android.os.Build;
import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.support.v4.app.ActivityCompat;
import android.util.Log;
import android.util.SparseArray;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.TextView;
+import android.widget.Toast;
import com.google.android.gms.vision.CameraSource;
import com.google.android.gms.vision.Detector;
@@ -17,19 +23,22 @@
public class MainActivity extends Activity {
+ private CameraSource cameraSource;
+ private SurfaceView cameraView;
+ private int CAMERA_REQUEST_CODE=334;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
- final SurfaceView cameraView = (SurfaceView) findViewById(R.id.camera_view);
- final TextView barcodeInfo = (TextView) findViewById(R.id.code_info);
+ cameraView = findViewById(R.id.camera_view);
+ final TextView barcodeInfo = findViewById(R.id.code_info);
BarcodeDetector barcodeDetector =
new BarcodeDetector.Builder(this)
.setBarcodeFormats(Barcode.QR_CODE)
.build();
- final CameraSource cameraSource = new CameraSource
+ cameraSource = new CameraSource
.Builder(this, barcodeDetector)
.setRequestedPreviewSize(640, 480)
.build();
@@ -37,6 +46,12 @@ protected void onCreate(Bundle savedInstanceState) {
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
+ requestPermissions(new String[]{Manifest.permission.CAMERA}, CAMERA_REQUEST_CODE);
+ return;
+ }
+ }
cameraSource.start(cameraView.getHolder());
} catch (IOException ie) {
@@ -75,4 +90,27 @@ public void run() {
}
});
}
+
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+
+ if (requestCode == CAMERA_REQUEST_CODE) {
+ if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA)
+ == PackageManager.PERMISSION_GRANTED) {
+ if (cameraSource != null) {
+ try {
+ cameraSource.start(cameraView.getHolder());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ } else {
+ Toast.makeText(this, "Need camera permission", Toast.LENGTH_LONG).show();
+ }
+
+ }
+ }
}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index f8d6ba8..d433551 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,25 +1,22 @@
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_alignParentLeft="true"
+ android:layout_centerVertical="true" />
-
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:textColor="@android:color/white"
+ android:text="@string/str_nothing_to_read"
+ android:textSize="@dimen/text_size_medium" />
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 47c8224..0a8eba9 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -2,4 +2,7 @@
16dp
16dp
+ 14sp
+ 16sp
+ 18sp
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 62f6530..90fbb51 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,4 @@
Barcode_Scanner
+ Nothing to read.
diff --git a/build.gradle b/build.gradle
index c20bca1..92d45f7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,9 +3,10 @@
buildscript {
repositories {
jcenter()
+ google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.2.2'
+ classpath 'com.android.tools.build:gradle:3.0.0-beta7'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
@@ -15,6 +16,7 @@ buildscript {
allprojects {
repositories {
jcenter()
+ google()
}
}
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index a2a2950..bada4b9 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Sun Aug 21 00:53:27 IST 2016
+#Sat Oct 14 10:43:32 IST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip