导航菜单

页面标题

页面副标题

医路轻松 v1.1.3 - CustomCaptureActivity.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;
        }
    }
}