Commit e9c912b9 authored by Max Lv's avatar Max Lv

Fix #735

parent 4f13acaf
...@@ -2,14 +2,16 @@ package com.github.shadowsocks ...@@ -2,14 +2,16 @@ package com.github.shadowsocks
import android.app.Activity import android.app.Activity
import android.content.Intent import android.content.Intent
import android.content.pm.PackageManager
import android.Manifest
import android.os.Bundle import android.os.Bundle
import android.os.Handler import android.os.Handler
import android.support.v4.app.ActivityCompat
import android.support.v4.app.NavUtils import android.support.v4.app.NavUtils
import android.support.v4.content.ContextCompat
import android.support.v7.app.ActionBar import android.support.v7.app.ActionBar
import android.support.v7.app.AppCompatActivity import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.Toolbar import android.support.v7.widget.Toolbar
import android.util.AttributeSet
import android.util.TypedValue
import android.view.MenuItem import android.view.MenuItem
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
...@@ -21,8 +23,23 @@ import me.dm7.barcodescanner.core.ViewFinderView ...@@ -21,8 +23,23 @@ import me.dm7.barcodescanner.core.ViewFinderView
import me.dm7.barcodescanner.zxing.ZXingScannerView import me.dm7.barcodescanner.zxing.ZXingScannerView
class ScannerActivity extends AppCompatActivity with ZXingScannerView.ResultHandler { class ScannerActivity extends AppCompatActivity with ZXingScannerView.ResultHandler {
val MY_PERMISSIONS_REQUEST_CAMERA = 1
var scannerView: ZXingScannerView = null var scannerView: ZXingScannerView = null
override def onRequestPermissionsResult(requestCode: Int, permissions: Array[String],
grantResults: Array[Int]) {
if (requestCode == MY_PERMISSIONS_REQUEST_CAMERA) {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults(0) == PackageManager.PERMISSION_GRANTED) {
scannerView.setResultHandler(this)
scannerView.startCamera()
}
}
}
override def onCreate(state: Bundle) { override def onCreate(state: Bundle) {
super.onCreate(state) super.onCreate(state)
setContentView(R.layout.layout_scanner) setContentView(R.layout.layout_scanner)
...@@ -35,8 +52,15 @@ class ScannerActivity extends AppCompatActivity with ZXingScannerView.ResultHand ...@@ -35,8 +52,15 @@ class ScannerActivity extends AppCompatActivity with ZXingScannerView.ResultHand
override def onResume() { override def onResume() {
super.onResume() super.onResume()
val permissionCheck = ContextCompat.checkSelfPermission(this,
Manifest.permission.CAMERA)
if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
scannerView.setResultHandler(this) // Register ourselves as a handler for scan results. scannerView.setResultHandler(this) // Register ourselves as a handler for scan results.
scannerView.startCamera() // Start camera on resume scannerView.startCamera() // Start camera on resume
} else {
ActivityCompat.requestPermissions(this,
Array(Manifest.permission.CAMERA), MY_PERMISSIONS_REQUEST_CAMERA)
}
} }
override def onPause() { override def onPause() {
...@@ -67,8 +91,10 @@ class ScannerActivity extends AppCompatActivity with ZXingScannerView.ResultHand ...@@ -67,8 +91,10 @@ class ScannerActivity extends AppCompatActivity with ZXingScannerView.ResultHand
setResult(Activity.RESULT_CANCELED, new Intent()) setResult(Activity.RESULT_CANCELED, new Intent())
finish() finish()
return true return true
case _ => // Do nothing
} }
return super.onOptionsItemSelected(item) return super.onOptionsItemSelected(item)
} }
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment