正在查看: 零界绘 v1.0.2 应用的 ImageSelectorActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: 零界绘 v1.0.2 应用的 ImageSelectorActivity.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.donkingliang.imageselector;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.provider.MediaStore;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.widget.FrameLayout;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.content.FileProvider;
import androidx.core.os.EnvironmentCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.donkingliang.imageselector.adapter.FolderAdapter;
import com.donkingliang.imageselector.adapter.ImageAdapter;
import com.donkingliang.imageselector.entry.Image;
import com.donkingliang.imageselector.entry.RequestConfig;
import f.j.a.b.a;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.Locale;
public class ImageSelectorActivity extends AppCompatActivity {
public Uri C;
public String D;
public long E;
public boolean F;
public boolean G;
public boolean H;
public boolean I;
public int K;
public ArrayList<String> P;
public TextView n;
public TextView o;
public TextView p;
public TextView q;
public FrameLayout r;
public FrameLayout s;
public RecyclerView t;
public RecyclerView u;
public View v;
public ImageAdapter w;
public GridLayoutManager x;
public ArrayList<f.j.a.a.a> y;
public f.j.a.a.a z;
public boolean A = false;
public boolean B = false;
public boolean J = true;
public boolean L = true;
public boolean M = false;
public Handler N = new Handler();
public Runnable O = new h();
public class a implements FolderAdapter.b {
public a() {
}
@Override
public void a(f.j.a.a.a aVar) {
ImageSelectorActivity.this.o1(aVar);
ImageSelectorActivity.this.Y0();
}
}
public class b implements Runnable {
public b() {
}
@Override
public void run() {
ImageSelectorActivity.this.u.setTranslationY(ImageSelectorActivity.this.u.getHeight());
ImageSelectorActivity.this.u.setVisibility(8);
ImageSelectorActivity.this.u.setBackgroundColor(-1);
}
}
public class c extends AnimatorListenerAdapter {
public c() {
}
@Override
public void onAnimationStart(Animator animator) {
super.onAnimationStart(animator);
ImageSelectorActivity.this.u.setVisibility(0);
}
}
public class d extends AnimatorListenerAdapter {
public d() {
}
@Override
public void onAnimationEnd(Animator animator) {
super.onAnimationEnd(animator);
ImageSelectorActivity.this.u.setVisibility(8);
}
}
public class e implements DialogInterface.OnClickListener {
public final boolean n;
public e(boolean z) {
this.n = z;
}
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.cancel();
ImageSelectorActivity.this.t1();
if (this.n) {
ImageSelectorActivity.this.A = true;
} else {
ImageSelectorActivity.this.B = true;
}
}
}
public class f implements DialogInterface.OnClickListener {
public f() {
}
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.cancel();
ImageSelectorActivity.this.finish();
}
}
public class g implements a.b {
public class a implements Runnable {
public a() {
}
@Override
public void run() {
if (ImageSelectorActivity.this.y == null || ImageSelectorActivity.this.y.isEmpty()) {
return;
}
ImageSelectorActivity.this.f1();
((f.j.a.a.a) ImageSelectorActivity.this.y.get(0)).e(ImageSelectorActivity.this.L);
ImageSelectorActivity imageSelectorActivity = ImageSelectorActivity.this;
imageSelectorActivity.o1((f.j.a.a.a) imageSelectorActivity.y.get(0));
if (ImageSelectorActivity.this.P == null || ImageSelectorActivity.this.w == null) {
return;
}
ImageSelectorActivity.this.w.z(ImageSelectorActivity.this.P);
ImageSelectorActivity.this.P = null;
ImageSelectorActivity imageSelectorActivity2 = ImageSelectorActivity.this;
imageSelectorActivity2.p1(imageSelectorActivity2.w.q().size());
}
}
public g() {
}
@Override
public void a(ArrayList<f.j.a.a.a> arrayList) {
ImageSelectorActivity.this.y = arrayList;
ImageSelectorActivity.this.runOnUiThread(new a());
}
}
public class h implements Runnable {
public h() {
}
@Override
public void run() {
ImageSelectorActivity.this.e1();
}
}
public class i implements View.OnClickListener {
public i() {
}
@Override
public void onClick(View view) {
ImageSelectorActivity.this.finish();
}
}
public class j implements View.OnClickListener {
public j() {
}
@Override
public void onClick(View view) {
ArrayList arrayList = new ArrayList();
arrayList.addAll(ImageSelectorActivity.this.w.q());
ImageSelectorActivity.this.u1(arrayList, 0);
}
}
public class k implements View.OnClickListener {
public k() {
}
@Override
public void onClick(View view) {
ImageSelectorActivity.this.Z0();
}
}
public class l implements View.OnClickListener {
public l() {
}
@Override
public void onClick(View view) {
if (ImageSelectorActivity.this.H) {
if (ImageSelectorActivity.this.F) {
ImageSelectorActivity.this.Y0();
} else {
ImageSelectorActivity.this.m1();
}
}
}
}
public class m implements View.OnClickListener {
public m() {
}
@Override
public void onClick(View view) {
ImageSelectorActivity.this.Y0();
}
}
public class n extends RecyclerView.OnScrollListener {
public n() {
}
public void onScrollStateChanged(RecyclerView recyclerView, int i) {
super.onScrollStateChanged(recyclerView, i);
ImageSelectorActivity.this.V0();
}
public void onScrolled(RecyclerView recyclerView, int i, int i2) {
super.onScrolled(recyclerView, i, i2);
ImageSelectorActivity.this.V0();
}
}
public class o implements ImageAdapter.d {
public o() {
}
@Override
public void a(Image image, boolean z, int i) {
ImageSelectorActivity.this.p1(i);
}
}
public class p implements ImageAdapter.e {
public p() {
}
@Override
public void a() {
ImageSelectorActivity.this.W0();
}
@Override
public void b(Image image, int i) {
ImageSelectorActivity imageSelectorActivity = ImageSelectorActivity.this;
imageSelectorActivity.u1(imageSelectorActivity.w.m(), i);
}
}
public static void k1(Activity activity, int i2, RequestConfig requestConfig) {
Intent intent = new Intent(activity, (Class<?>) ImageSelectorActivity.class);
intent.putExtra("key_config", requestConfig);
activity.startActivityForResult(intent, i2);
}
private void setResult(ArrayList<String> arrayList, boolean z) {
Intent intent = new Intent();
intent.putStringArrayListExtra("select_result", arrayList);
intent.putExtra("is_camera_image", z);
setResult(-1, intent);
}
public final void V0() {
Image n2 = this.w.n(c1());
if (n2 != null) {
this.n.setText(f.j.a.c.a.a(this, n2.c()));
s1();
this.N.removeCallbacks(this.O);
this.N.postDelayed(this.O, 1500L);
}
}
public final void W0() {
int checkSelfPermission = ContextCompat.checkSelfPermission(this, "android.permission.CAMERA");
int checkSelfPermission2 = ContextCompat.checkSelfPermission(this, "android.permission.WRITE_EXTERNAL_STORAGE");
if (checkSelfPermission == 0 && checkSelfPermission2 == 0) {
l1();
} else {
ActivityCompat.requestPermissions(this, new String[]{"android.permission.CAMERA", "android.permission.WRITE_EXTERNAL_STORAGE"}, 18);
}
}
public final void X0() {
if (Environment.getExternalStorageState().equals("mounted")) {
if (ContextCompat.checkSelfPermission(this, "android.permission.WRITE_EXTERNAL_STORAGE") == 0) {
j1();
} else {
ActivityCompat.requestPermissions(this, new String[]{"android.permission.WRITE_EXTERNAL_STORAGE"}, 17);
}
}
}
public final void Y0() {
if (this.F) {
this.v.setVisibility(8);
ObjectAnimator duration = ObjectAnimator.ofFloat(this.u, "translationY", 0.0f, r0.getHeight()).setDuration(300L);
duration.addListener(new d());
duration.start();
this.F = false;
}
}
public final void Z0() {
ImageAdapter imageAdapter = this.w;
if (imageAdapter == null) {
return;
}
ArrayList<Image> q = imageAdapter.q();
ArrayList<String> arrayList = new ArrayList<>();
Iterator<Image> it = q.iterator();
while (it.hasNext()) {
arrayList.add(it.next().b());
}
n1(arrayList, false);
}
public final File a1() throws IOException {
String format = String.format("JPEG_%s.jpg", new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date()));
File externalStoragePublicDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
if (!externalStoragePublicDirectory.exists()) {
externalStoragePublicDirectory.mkdir();
}
File file = new File(externalStoragePublicDirectory, format);
if ("mounted".equals(EnvironmentCompat.getStorageState(file))) {
return file;
}
return null;
}
public Uri b1() {
String externalStorageState = Environment.getExternalStorageState();
String format = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date(System.currentTimeMillis()));
ContentValues contentValues = new ContentValues(2);
contentValues.put("_display_name", format);
contentValues.put("mime_type", "image/jpeg");
return externalStorageState.equals("mounted") ? getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues) : getContentResolver().insert(MediaStore.Images.Media.INTERNAL_CONTENT_URI, contentValues);
}
public final int c1() {
return this.x.findFirstVisibleItemPosition();
}
public final void d1() {
this.u.post(new b());
}
public final void e1() {
if (this.G) {
ObjectAnimator.ofFloat(this.n, "alpha", 1.0f, 0.0f).setDuration(300L).start();
this.G = false;
}
}
public final void f1() {
ArrayList<f.j.a.a.a> arrayList = this.y;
if (arrayList == null || arrayList.isEmpty()) {
return;
}
this.H = true;
this.u.setLayoutManager(new LinearLayoutManager(this));
FolderAdapter folderAdapter = new FolderAdapter(this, this.y);
folderAdapter.k(new a());
this.u.setAdapter(folderAdapter);
}
public final void g1() {
if (getResources().getConfiguration().orientation == 1) {
this.x = new GridLayoutManager(this, 3);
} else {
this.x = new GridLayoutManager(this, 5);
}
this.t.setLayoutManager(this.x);
ImageAdapter imageAdapter = new ImageAdapter(this, this.K, this.I, this.J);
this.w = imageAdapter;
this.t.setAdapter(imageAdapter);
this.t.getItemAnimator().setSupportsChangeAnimations(false);
ArrayList<f.j.a.a.a> arrayList = this.y;
if (arrayList != null && !arrayList.isEmpty()) {
o1(this.y.get(0));
}
this.w.x(new o());
this.w.y(new p());
}
public final void h1() {
findViewById(R$id.btn_back).setOnClickListener(new i());
this.s.setOnClickListener(new j());
this.r.setOnClickListener(new k());
findViewById(R$id.btn_folder).setOnClickListener(new l());
this.v.setOnClickListener(new m());
this.t.addOnScrollListener(new n());
}
public final void i1() {
this.t = findViewById(R$id.rv_image);
this.u = findViewById(R$id.rv_folder);
this.p = (TextView) findViewById(R$id.tv_confirm);
this.q = (TextView) findViewById(R$id.tv_preview);
this.r = (FrameLayout) findViewById(R$id.btn_confirm);
this.s = (FrameLayout) findViewById(R$id.btn_preview);
this.o = (TextView) findViewById(R$id.tv_folder_name);
this.n = (TextView) findViewById(R$id.tv_time);
this.v = findViewById(R$id.masking);
}
public final void j1() {
f.j.a.b.a.l(this, new g());
}
public final void l1() {
File file;
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
if (intent.resolveActivity(getPackageManager()) != null) {
Uri uri = null;
if (f.j.a.c.f.d()) {
uri = b1();
} else {
try {
file = a1();
} catch (IOException e2) {
e2.printStackTrace();
file = null;
}
if (file != null) {
this.D = file.getAbsolutePath();
if (f.j.a.c.f.b()) {
uri = FileProvider.getUriForFile(this, getPackageName() + ".imageSelectorProvider", file);
} else {
uri = Uri.fromFile(file);
}
}
}
this.C = uri;
if (uri != null) {
intent.putExtra("output", uri);
intent.addFlags(2);
startActivityForResult(intent, 16);
this.E = System.currentTimeMillis();
}
}
}
public final void m1() {
if (this.F) {
return;
}
this.v.setVisibility(0);
ObjectAnimator duration = ObjectAnimator.ofFloat(this.u, "translationY", r0.getHeight(), 0.0f).setDuration(300L);
duration.addListener(new c());
duration.start();
this.F = true;
}
public final void n1(ArrayList<String> arrayList, boolean z) {
setResult(arrayList, z);
finish();
}
public final void o1(f.j.a.a.a aVar) {
if (aVar == null || this.w == null || aVar.equals(this.z)) {
return;
}
this.z = aVar;
this.o.setText(aVar.c());
this.t.scrollToPosition(0);
this.w.u(aVar.b(), aVar.d());
}
public void onActivityResult(int i2, int i3, Intent intent) {
Uri fromFile;
super/*androidx.fragment.app.FragmentActivity*/.onActivityResult(i2, i3, intent);
if (i2 == 18) {
if (intent != null && intent.getBooleanExtra("is_confirm", false)) {
Z0();
return;
} else {
this.w.notifyDataSetChanged();
p1(this.w.q().size());
return;
}
}
if (i2 == 16) {
if (i3 != -1) {
if (this.M) {
finish();
return;
}
return;
}
ArrayList arrayList = new ArrayList();
if (f.j.a.c.f.d()) {
fromFile = this.C;
arrayList.add(f.j.a.c.e.c(this, fromFile));
} else {
fromFile = Uri.fromFile(new File(this.D));
arrayList.add(this.D);
}
f.j.a.c.c.j(this, fromFile, this.E);
n1(arrayList, true);
}
}
public void onConfigurationChanged(Configuration configuration) {
super.onConfigurationChanged(configuration);
GridLayoutManager gridLayoutManager = this.x;
if (gridLayoutManager == null || this.w == null) {
return;
}
int i2 = configuration.orientation;
if (i2 == 1) {
gridLayoutManager.setSpanCount(3);
} else if (i2 == 2) {
gridLayoutManager.setSpanCount(5);
}
this.w.notifyDataSetChanged();
}
public void onCreate(@Nullable Bundle bundle) {
super.onCreate(bundle);
RequestConfig requestConfig = (RequestConfig) getIntent().getParcelableExtra("key_config");
this.K = requestConfig.s;
this.I = requestConfig.q;
this.J = requestConfig.r;
this.L = requestConfig.o;
this.P = requestConfig.t;
boolean z = requestConfig.p;
this.M = z;
if (z) {
W0();
return;
}
setContentView(R$layout.activity_image_select);
q1();
i1();
h1();
g1();
X0();
d1();
p1(0);
}
public boolean onKeyDown(int i2, KeyEvent keyEvent) {
if (i2 != 4 || keyEvent.getAction() != 0 || !this.F) {
return super.onKeyDown(i2, keyEvent);
}
Y0();
return true;
}
public void onRequestPermissionsResult(int i2, String[] strArr, int[] iArr) {
if (i2 == 17) {
if (iArr.length <= 0 || iArr[0] != 0) {
r1(true);
return;
} else {
j1();
return;
}
}
if (i2 == 18) {
if (iArr.length > 1 && iArr[0] == 0 && iArr[1] == 0) {
l1();
} else {
r1(false);
}
}
}
public void onStart() {
super.onStart();
if (this.A) {
this.A = false;
X0();
}
if (this.B) {
this.B = false;
W0();
}
}
public final void p1(int i2) {
if (i2 == 0) {
this.r.setEnabled(false);
this.s.setEnabled(false);
this.p.setText(R$string.selector_send);
this.q.setText(R$string.selector_preview);
return;
}
this.r.setEnabled(true);
this.s.setEnabled(true);
this.q.setText(getString(R$string.selector_preview) + "(" + i2 + ")");
if (this.I) {
this.p.setText(R$string.selector_send);
return;
}
if (this.K <= 0) {
this.p.setText(getString(R$string.selector_send) + "(" + i2 + ")");
return;
}
this.p.setText(getString(R$string.selector_send) + "(" + i2 + "/" + this.K + ")");
}
public final void q1() {
if (f.j.a.c.f.a()) {
Window window = getWindow();
window.addFlags(Integer.MIN_VALUE);
window.setStatusBarColor(Color.parseColor("#373c3d"));
}
}
public final void r1(boolean z) {
new AlertDialog.Builder(this).setCancelable(false).setTitle(R$string.selector_hint).setMessage(R$string.selector_permissions_hint).setNegativeButton(R$string.selector_cancel, new f()).setPositiveButton(R$string.selector_confirm, new e(z)).show();
}
public final void s1() {
if (this.G) {
return;
}
ObjectAnimator.ofFloat(this.n, "alpha", 0.0f, 1.0f).setDuration(300L).start();
this.G = true;
}
public final void t1() {
Intent intent = new Intent("android.settings.APPLICATION_DETAILS_SETTINGS");
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
}
public final void u1(ArrayList<Image> arrayList, int i2) {
if (arrayList == null || arrayList.isEmpty()) {
return;
}
PreviewActivity.R0(this, arrayList, this.w.q(), this.I, this.K, i2);
}
}