正在查看: 医路轻松 v1.1.3 应用的 CustomCaptureActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 医路轻松 v1.1.3 应用的 CustomCaptureActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.qshealth.qsdoctor;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType;
import com.google.zxing.MultiFormatReader;
import com.google.zxing.NotFoundException;
import com.google.zxing.RGBLuminanceSource;
import com.google.zxing.Result;
import com.google.zxing.common.HybridBinarizer;
import com.journeyapps.barcodescanner.CaptureActivity;
import com.journeyapps.barcodescanner.DecoratedBarcodeView;
import com.sensorsdata.analytics.android.sdk.data.adapter.DbParams;
import com.sensorsdata.analytics.android.sdk.util.Base64Coder;
import java.util.Hashtable;
import java.util.concurrent.CancellationException;
import kotlin.Metadata;
import kotlin.coroutines.CoroutineContext;
import kotlin.jvm.internal.Intrinsics;
import kotlinx.coroutines.BuildersKt__Builders_commonKt;
import kotlinx.coroutines.CoroutineScope;
import kotlinx.coroutines.Dispatchers;
import kotlinx.coroutines.Job;
import kotlinx.coroutines.JobKt__JobKt;
import kotlinx.coroutines.SupervisorKt;
@Metadata(d1 = {"\u0000`\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\b\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\b\u0007\u0018\u00002\u00020\u00012\u00020\u0002B\u0005¢\u0006\u0002\u0010\u0003J \u0010\f\u001a\u00020\u00052\u0006\u0010\r\u001a\u00020\u000e2\u0006\u0010\u000f\u001a\u00020\u00052\u0006\u0010\u0010\u001a\u00020\u0005H\u0002J\u0010\u0010\u0011\u001a\u0004\u0018\u00010\u00122\u0006\u0010\u0013\u001a\u00020\u0014J\u0018\u0010\u0015\u001a\u0004\u0018\u00010\u00122\u0006\u0010\u0016\u001a\u00020\u00172\u0006\u0010\u0018\u001a\u00020\u0019J\b\u0010\u001a\u001a\u00020\u0007H\u0014J\"\u0010\u001b\u001a\u00020\u001c2\u0006\u0010\u001d\u001a\u00020\u00052\u0006\u0010\u001e\u001a\u00020\u00052\b\u0010\u001f\u001a\u0004\u0018\u00010 H\u0014J\u0012\u0010!\u001a\u00020\u001c2\b\u0010\"\u001a\u0004\u0018\u00010#H\u0014J\b\u0010$\u001a\u00020\u001cH\u0014R\u000e\u0010\u0004\u001a\u00020\u0005X\u0082D¢\u0006\u0002\n\u0000R\u000e\u0010\u0006\u001a\u00020\u0007X\u0082.¢\u0006\u0002\n\u0000R\u0014\u0010\b\u001a\u00020\tX\u0096\u0004¢\u0006\b\n\u0000\u001a\u0004\b\n\u0010\u000b¨\u0006%"}, d2 = {"Lcom/qshealth/qsdoctor/CustomCaptureActivity;", "Lcom/journeyapps/barcodescanner/CaptureActivity;", "Lkotlinx/coroutines/CoroutineScope;", "()V", "GALLERY_REQUEST_CODE", "", "barcodeView", "Lcom/journeyapps/barcodescanner/DecoratedBarcodeView;", "coroutineContext", "Lkotlin/coroutines/CoroutineContext;", "getCoroutineContext", "()Lkotlin/coroutines/CoroutineContext;", "calculateInSampleSize", "options", "Landroid/graphics/BitmapFactory$Options;", "reqWidth", "reqHeight", "decodeQRFromBitmap", "Lcom/google/zxing/Result;", "bitmap", "Landroid/graphics/Bitmap;", "decodeQrCodeFromUri", "context", "Landroid/content/Context;", "uri", "Landroid/net/Uri;", "initializeContent", "onActivityResult", "", "requestCode", "resultCode", DbParams.KEY_DATA, "Landroid/content/Intent;", "onCreate", "savedInstanceState", "Landroid/os/Bundle;", "onDestroy", "app_release"}, k = 1, mv = {1, 9, 0}, xi = 48)
public final class CustomCaptureActivity extends CaptureActivity implements CoroutineScope {
public static final int $stable = 8;
private DecoratedBarcodeView barcodeView;
private final int GALLERY_REQUEST_CODE = 123;
private final CoroutineContext coroutineContext = SupervisorKt.SupervisorJob$default((Job) null, 1, (Object) null).plus(Dispatchers.getMain().getImmediate());
@Override
public CoroutineContext getCoroutineContext() {
return this.coroutineContext;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View findViewById = findViewById(R.id.zxing_barcode_scanner);
Intrinsics.checkNotNullExpressionValue(findViewById, "findViewById(...)");
this.barcodeView = (DecoratedBarcodeView) findViewById;
View findViewById2 = findViewById(R.id.button_gallery);
Intrinsics.checkNotNullExpressionValue(findViewById2, "findViewById(...)");
findViewById2.setOnClickListener(new View.OnClickListener() {
@Override
public final void onClick(View view) {
CustomCaptureActivity.onCreate$lambda$0(CustomCaptureActivity.this, view);
}
});
}
public static final void onCreate$lambda$0(CustomCaptureActivity this$0, View view) {
Intrinsics.checkNotNullParameter(this$0, "this$0");
Intent intent = new Intent("android.intent.action.PICK");
intent.setType("image/*");
this$0.startActivityForResult(intent, this$0.GALLERY_REQUEST_CODE);
}
@Override
protected void onDestroy() {
super.onDestroy();
JobKt__JobKt.cancel$default(getCoroutineContext(), (CancellationException) null, 1, (Object) null);
}
@Override
protected DecoratedBarcodeView initializeContent() {
setContentView(R.layout.activity_custom_capture);
View findViewById = findViewById(R.id.zxing_barcode_scanner);
Intrinsics.checkNotNull(findViewById, "null cannot be cast to non-null type com.journeyapps.barcodescanner.DecoratedBarcodeView");
return (DecoratedBarcodeView) findViewById;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == this.GALLERY_REQUEST_CODE && resultCode == -1 && data != null) {
Uri data2 = data.getData();
if (data2 != null) {
BuildersKt__Builders_commonKt.launch$default(this, null, null, new CustomCaptureActivity$onActivityResult$1(this, data2, null), 3, null);
return;
}
return;
}
super.onActivityResult(requestCode, resultCode, data);
}
public final com.google.zxing.Result decodeQrCodeFromUri(android.content.Context r18, android.net.Uri r19) {
throw new UnsupportedOperationException("Method not decompiled: com.qshealth.qsdoctor.CustomCaptureActivity.decodeQrCodeFromUri(android.content.Context, android.net.Uri):com.google.zxing.Result");
}
private final int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) {
int i = options.outHeight;
int i2 = options.outWidth;
int i3 = 1;
if (i > reqHeight || i2 > reqWidth) {
int i4 = i / 2;
int i5 = i2 / 2;
while (i4 / i3 >= reqHeight && i5 / i3 >= reqWidth) {
i3 *= 2;
}
}
return i3;
}
public final Result decodeQRFromBitmap(Bitmap bitmap) {
Intrinsics.checkNotNullParameter(bitmap, "bitmap");
try {
int width = bitmap.getWidth();
int height = bitmap.getHeight();
int[] iArr = new int[width * height];
bitmap.getPixels(iArr, 0, width, 0, 0, width, height);
BinaryBitmap binaryBitmap = new BinaryBitmap(new HybridBinarizer(new RGBLuminanceSource(width, height, iArr)));
Hashtable hashtable = new Hashtable();
hashtable.put(DecodeHintType.CHARACTER_SET, Base64Coder.CHARSET_UTF8);
return new MultiFormatReader().decode(binaryBitmap, hashtable);
} catch (NotFoundException e) {
Log.e("QRDecode", "未识别到二维码", e);
return null;
} catch (Exception e2) {
Log.e("QRDecode", "解析失败", e2);
return null;
}
}
}