导航菜单

页面标题

页面副标题

漫天星 v3.0.2 - ImageSelectorActivity.java 源代码

正在查看: 漫天星 v3.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);
    }
}