From 4f13acaffef88b5f6db214384b9c18cb8c77941d Mon Sep 17 00:00:00 2001 From: Max Lv Date: Mon, 27 Jun 2016 17:53:08 +0800 Subject: [PATCH] Add missing files --- src/main/res/layout/layout_scanner.xml | 15 ++++ .../github/shadowsocks/ScannerActivity.scala | 74 +++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 src/main/res/layout/layout_scanner.xml create mode 100644 src/main/scala/com/github/shadowsocks/ScannerActivity.scala diff --git a/src/main/res/layout/layout_scanner.xml b/src/main/res/layout/layout_scanner.xml new file mode 100644 index 00000000..cd15bef3 --- /dev/null +++ b/src/main/res/layout/layout_scanner.xml @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/src/main/scala/com/github/shadowsocks/ScannerActivity.scala b/src/main/scala/com/github/shadowsocks/ScannerActivity.scala new file mode 100644 index 00000000..3b906912 --- /dev/null +++ b/src/main/scala/com/github/shadowsocks/ScannerActivity.scala @@ -0,0 +1,74 @@ +package com.github.shadowsocks + +import android.app.Activity +import android.content.Intent +import android.os.Bundle +import android.os.Handler +import android.support.v4.app.NavUtils +import android.support.v7.app.ActionBar +import android.support.v7.app.AppCompatActivity +import android.support.v7.widget.Toolbar +import android.util.AttributeSet +import android.util.TypedValue +import android.view.MenuItem +import android.view.View +import android.view.ViewGroup + +import com.google.zxing.Result + +import me.dm7.barcodescanner.core.IViewFinder +import me.dm7.barcodescanner.core.ViewFinderView +import me.dm7.barcodescanner.zxing.ZXingScannerView + +class ScannerActivity extends AppCompatActivity with ZXingScannerView.ResultHandler { + var scannerView: ZXingScannerView = null + + override def onCreate(state: Bundle) { + super.onCreate(state) + setContentView(R.layout.layout_scanner) + setupToolbar() + + scannerView = new ZXingScannerView(this) + val contentFrame = findViewById(R.id.content_frame).asInstanceOf[ViewGroup] + contentFrame.addView(scannerView) + } + + override def onResume() { + super.onResume() + scannerView.setResultHandler(this) // Register ourselves as a handler for scan results. + scannerView.startCamera() // Start camera on resume + } + + override def onPause() { + super.onPause() + scannerView.stopCamera() // Stop camera on pause + } + + override def handleResult(rawResult: Result) = { + val intent = new Intent() + intent.putExtra("uri", rawResult.getText) + setResult(Activity.RESULT_OK, intent) + finish() + } + + def setupToolbar() { + val toolbar = findViewById(R.id.toolbar).asInstanceOf[Toolbar] + setSupportActionBar(toolbar) + val ab = getSupportActionBar() + if (ab != null) { + ab.setDisplayHomeAsUpEnabled(true) + } + } + + override def onOptionsItemSelected(item: MenuItem): Boolean = { + item.getItemId() match { + // Respond to the action bar's Up/Home button + case android.R.id.home => + setResult(Activity.RESULT_CANCELED, new Intent()) + finish() + return true + } + return super.onOptionsItemSelected(item) + } +} +