正在查看: Harvest v2.32 应用的 QrCodeScannerActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Harvest v2.32 应用的 QrCodeScannerActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.ufields.tracking;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.SparseArray;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.core.app.ActivityCompat;
import butterknife.BindView;
import butterknife.ButterKnife;
import com.google.android.gms.vision.CameraSource;
import com.google.android.gms.vision.Detector;
import com.google.android.gms.vision.barcode.Barcode;
import com.google.android.gms.vision.barcode.BarcodeDetector;
import com.itextpdf.xmp.XMPError;
import com.ufields.tracking.Helper.Constants;
public class QrCodeScannerActivity extends AppCompatActivity {
@BindView(R.id.ivBack)
AppCompatImageView backBtn;
private BarcodeDetector barcodeDetector;
private CameraSource cameraSource;
private Context ctx;
@BindView(R.id.surfaceView)
SurfaceView scannerSurfaceView;
private int REQUEST_CAMERA_PERMISSION = XMPError.BADXML;
private Boolean hitQRCodeDataApi = true;
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
this.ctx = this;
setContentView(R.layout.activity_qr_code_scanner);
ButterKnife.bind(this);
initOnClickListener();
initialiseDetectorsAndSources();
try {
if (ActivityCompat.checkSelfPermission(this, "android.permission.CAMERA") == 0) {
this.cameraSource.start(this.scannerSurfaceView.getHolder());
} else {
ActivityCompat.requestPermissions(this, new String[]{"android.permission.CAMERA"}, this.REQUEST_CAMERA_PERMISSION);
}
} catch (Exception unused) {
}
}
public void onRequestPermissionsResult(int i, String[] strArr, int[] iArr) {
super.onRequestPermissionsResult(i, strArr, iArr);
if (i == this.REQUEST_CAMERA_PERMISSION) {
if (iArr[0] == 0) {
initialiseDetectorsAndSources();
try {
this.cameraSource.start(this.scannerSurfaceView.getHolder());
} catch (Exception unused) {
}
} else {
Toast.makeText((Context) this, (CharSequence) getString(R.string.cameraPermissionDenied), 1).show();
finish();
}
}
}
private void initialiseDetectorsAndSources() {
this.barcodeDetector = new BarcodeDetector.Builder(this).setBarcodeFormats(0).build();
this.cameraSource = new CameraSource.Builder(this, this.barcodeDetector).setRequestedPreviewSize(1920, 1080).setAutoFocusEnabled(true).build();
this.scannerSurfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i2, int i3) {
}
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
try {
if (ActivityCompat.checkSelfPermission(QrCodeScannerActivity.this, "android.permission.CAMERA") == 0) {
QrCodeScannerActivity.this.cameraSource.start(QrCodeScannerActivity.this.scannerSurfaceView.getHolder());
} else {
?? r0 = QrCodeScannerActivity.this;
ActivityCompat.requestPermissions((Activity) r0, new String[]{"android.permission.CAMERA"}, ((QrCodeScannerActivity) r0).REQUEST_CAMERA_PERMISSION);
}
} catch (Exception unused) {
}
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
QrCodeScannerActivity.this.cameraSource.stop();
}
});
this.barcodeDetector.setProcessor(new Detector.Processor<Barcode>() {
public void release() {
}
public void receiveDetections(Detector.Detections<Barcode> detections) {
SparseArray detectedItems = detections.getDetectedItems();
StringBuilder sb = new StringBuilder();
if (detectedItems.size() != 0) {
sb.append(((Barcode) detectedItems.valueAt(0)).rawValue);
if (QrCodeScannerActivity.this.hitQRCodeDataApi.booleanValue()) {
QrCodeScannerActivity.this.hitQRCodeDataApi = false;
QrCodeScannerActivity.this.sendEventBusToCallingFragment(sb.toString());
}
}
}
});
}
public void sendEventBusToCallingFragment(String str) {
Intent intent = new Intent((Context) this, (Class<?>) QrCodeScannerDetailActivity.class);
intent.putExtra(Constants.HARVEST_ID, str);
startActivity(intent);
finish();
}
private void initOnClickListener() {
this.backBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
QrCodeScannerActivity.this.finish();
}
});
}
protected void onPause() {
super.onPause();
this.cameraSource.release();
}
protected void onResume() {
super.onResume();
initialiseDetectorsAndSources();
}
}