QR Scanner v2.8.7版本的 MD5 值为:9dcdcf654454b02f97d5fcd68f9f4629
以下内容为反编译后的 PhotoActivityImpl.java 源代码,内容仅作参考
package net.qrbot.ui.photo;
import a9.d;
import a9.h;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewTreeObserver;
import android.widget.TextView;
import com.github.appintro.BuildConfig;
import com.github.appintro.R;
import da.k;
import ea.l0;
import ea.q0;
import ea.w;
import ea.z;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import net.qrbot.MyApp;
import net.qrbot.provider.e;
import net.qrbot.ui.detail.DetailActivity;
import net.qrbot.ui.photo.PhotoActivityImpl;
import y9.f;
import y9.g;
public class PhotoActivityImpl extends f9.a {
private PhotoCropImageView f12152q;
private f f12153r;
private TextView f12154s;
private MenuItem f12155t;
private final List<AsyncTask<?, ?, ?>> f12156u = new ArrayList();
private final ExecutorService f12157v = Executors.newSingleThreadExecutor();
private String f12158w;
private Intent f12159x;
public class a extends AsyncTask<Void, Void, f> {
final String f12160a;
final RectF f12161b;
a(String str, RectF rectF) {
this.f12160a = str;
this.f12161b = rectF;
}
@Override
public f doInBackground(Void... voidArr) {
return PhotoActivityImpl.this.B(this.f12160a, this.f12161b);
}
@Override
public void onPostExecute(f fVar) {
PhotoActivityImpl.this.f12153r = fVar;
if (fVar != null) {
PhotoActivityImpl.this.f12154s.setText(PhotoActivityImpl.this.getString(R.string.message_code_of_certain_kind_detected, new Object[]{PhotoActivityImpl.this.getString(d.i(fVar.c(), fVar.f()).c())}));
} else {
PhotoActivityImpl.this.f12154s.setText(BuildConfig.FLAVOR);
}
if (PhotoActivityImpl.this.f12155t != null) {
PhotoActivityImpl.this.f12155t.setVisible(fVar != null);
}
}
}
private void A() {
for (AsyncTask<?, ?, ?> asyncTask : this.f12156u) {
asyncTask.cancel(false);
}
this.f12156u.clear();
}
public f B(String str, RectF rectF) {
g gVar = new g(getApplicationContext());
try {
int[] iArr = {2048, 1024, 512, 256};
for (int i10 = 0; i10 < 4; i10++) {
int i11 = iArr[i10];
Bitmap b10 = l0.b(this, str, i11, i11, rectF);
if (b10 == null) {
return null;
}
f a10 = gVar.a(b10);
b10.recycle();
if (a10 != null) {
return a10;
}
}
return null;
} finally {
gVar.c();
}
}
private Intent C() {
Intent intent = getIntent();
if (intent != null) {
String action = intent.getAction();
String type = intent.getType();
if ("android.intent.action.SEND".equals(action) && type != null && type.startsWith("image/")) {
return intent;
}
return null;
}
return null;
}
private void D() {
f fVar = this.f12153r;
if (fVar != null) {
I(fVar);
}
finish();
}
public boolean E(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == 1) {
J(this.f12158w);
return false;
}
return false;
}
public void F() {
float width = this.f12152q.getWidth();
float height = this.f12152q.getHeight();
this.f12152q.setFrameRectViaReflection(new RectF(0.05f * width, 0.25f * height, width * 0.95f, height * 0.69f));
K("demo-image", this.f12152q.getRelativeCropRect());
}
public static void G(Context context) {
f9.a.o(context, PhotoActivityImpl.class);
}
private void H() {
Intent intent = new Intent();
intent.setAction("android.intent.action.GET_CONTENT");
intent.setType("image/*");
intent.addFlags(1);
try {
startActivityForResult(intent, 0);
} catch (ActivityNotFoundException unused) {
z.c(this, "com.google.android.apps.photos");
}
}
private void I(f fVar) {
h c10 = fVar.c();
String f10 = fVar.f();
String d10 = fVar.d();
q0.a(this, c10, f10);
boolean j10 = da.a.f9401v.j(this, false);
Uri h10 = e.h(this, c10, f10, d10, false, j10);
if (k.f9432t.o(this) == 1 && k.f9430r.j(this, 0L) == 0 && k.f9433u.j(this, 0L) == 0) {
MyApp.d(this);
MyApp.e(this);
}
if (j10) {
return;
}
DetailActivity.w(this, h10, true, 0);
}
private void J(String str) {
K(str, this.f12152q.getRelativeCropRect());
}
private void K(String str, RectF rectF) {
A();
a aVar = new a(str, rectF);
this.f12156u.add(aVar);
aVar.executeOnExecutor(this.f12157v, new Void[0]);
}
private void L() {
try {
Bitmap createBitmap = Bitmap.createBitmap(1500, 2000, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(createBitmap);
canvas.drawColor(-1);
Paint paint = new Paint();
paint.setColor(-16777216);
canvas.drawBitmap(ea.h.a("QR Scanner", com.google.zxing.a.PDF_417, BuildConfig.FLAVOR, 1400), 50.0f, 50.0f, paint);
canvas.drawBitmap(ea.h.a("QR Scanner - https://qrbot.net", com.google.zxing.a.DATA_MATRIX, BuildConfig.FLAVOR, 900), 300.0f, 490.0f, paint);
canvas.drawBitmap(ea.h.a("QR Scanner", com.google.zxing.a.AZTEC, BuildConfig.FLAVOR, 500), 500.0f, 1450.0f, paint);
FileOutputStream openFileOutput = openFileOutput("demo-image", 0);
createBitmap.compress(Bitmap.CompressFormat.PNG, 100, openFileOutput);
openFileOutput.close();
this.f12152q.setPictureName("demo-image");
this.f12152q.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public final void onGlobalLayout() {
PhotoActivityImpl.this.F();
}
});
} catch (Exception e10) {
throw new RuntimeException(e10);
}
}
@Override
public void onActivityResult(int i10, int i11, Intent intent) {
super.onActivityResult(i10, i11, intent);
if (i11 == -1 && intent != null) {
String b10 = w.b(this, intent, "picture-scan");
this.f12158w = b10;
if (b10 == null && checkCallingOrSelfPermission("android.permission.READ_EXTERNAL_STORAGE") != 0) {
this.f12159x = intent;
requestPermissions(new String[]{"android.permission.READ_EXTERNAL_STORAGE"}, 1);
return;
}
}
String str = this.f12158w;
if (str == null) {
finish();
return;
}
this.f12152q.setPictureName(str);
this.f12152q.setOnTouchListener(new View.OnTouchListener() {
@Override
public final boolean onTouch(View view, MotionEvent motionEvent) {
boolean E;
E = PhotoActivityImpl.this.E(view, motionEvent);
return E;
}
});
J(this.f12158w);
}
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_photo);
androidx.appcompat.app.a supportActionBar = getSupportActionBar();
if (supportActionBar != null) {
supportActionBar.u(true);
}
this.f12152q = (PhotoCropImageView) findViewById(R.id.crop_image_view);
this.f12154s = (TextView) findViewById(R.id.scan_result_text);
Intent C = C();
if (C != null) {
onActivityResult(0, -1, C);
} else if (l()) {
L();
} else {
H();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_photo, menu);
this.f12155t = menu.findItem(R.id.action_done);
return true;
}
@Override
public void onDestroy() {
super.onDestroy();
String str = this.f12158w;
if (str != null) {
deleteFile(str);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
int itemId = menuItem.getItemId();
if (itemId == 16908332) {
onBackPressed();
return true;
} else if (itemId != R.id.action_done) {
return super.onOptionsItemSelected(menuItem);
} else {
D();
return true;
}
}
@Override
public void onPause() {
super.onPause();
A();
}
@Override
public void onRequestPermissionsResult(int i10, String[] strArr, int[] iArr) {
Intent intent = this.f12159x;
this.f12159x = null;
if (iArr.length > 0 && iArr[0] == 0) {
onActivityResult(0, -1, intent);
} else {
finish();
}
}
}