导航菜单

页面标题

页面副标题

St.John's v1.0.9 - GalleryAlbumImagesActivity.java 源代码

正在查看: St.John's v1.0.9 应用的 GalleryAlbumImagesActivity.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.mcb.stjohnsemschool.activity;

import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.ListAdapter;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import com.mcb.stjohnsemschool.adapter.ImagesAdapter;
import com.mcb.stjohnsemschool.model.BucketEntry;
import com.mcb.stjohnsemschool.utils.Constants;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;

public class GalleryAlbumImagesActivity extends AppCompatActivity implements AdapterView.OnItemClickListener {
    private static final String TAG = "com.mcb.stjohnsemschool.activity.GalleryAlbumImagesActivity";
    public static Activity mActivityObj;
    private ImagesAdapter adapter;
    private boolean allowMultiple;
    private String bucketId;
    private String bucketName;
    private ArrayList<BucketEntry> entryList;
    private GridView gridView;
    private int maxCount = 0;
    private ArrayList<String> selectedItems;
    private MenuItem sendOkItem;

    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.grid_gallery_more_images);
        this.bucketName = getIntent().getStringExtra("BUCKET_NAME");
        this.bucketId = getIntent().getStringExtra("BUCKET_ID");
        GridView gridView = (GridView) findViewById(2131362588);
        this.gridView = gridView;
        gridView.setOnItemClickListener(this);
        mActivityObj = this;
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setTitle("Tap Picture to Select");
        this.selectedItems = new ArrayList<>();
        this.selectedItems = getIntent().getExtras().getStringArrayList("AlreadySelectedFilePaths");
        boolean booleanExtra = getIntent().getBooleanExtra("ALLOW_MULTIPLE", false);
        this.allowMultiple = booleanExtra;
        this.maxCount = 1;
        if (booleanExtra) {
            this.maxCount = 5;
        }
        getGalleryImages();
        setSelectedFileCount();
    }

    private void getGalleryImages() {
        Cursor query = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, "bucket_id = " + this.bucketId, null, "datetaken DESC");
        this.entryList = new ArrayList<>();
        if (query.moveToFirst()) {
            int columnIndex = query.getColumnIndex("_data");
            do {
                BucketEntry bucketEntry = new BucketEntry();
                String string = query.getString(columnIndex);
                bucketEntry.setImagePath(string);
                Iterator<String> it = this.selectedItems.iterator();
                while (true) {
                    if (!it.hasNext()) {
                        break;
                    } else if (it.next().equalsIgnoreCase(string)) {
                        bucketEntry.setSelected(true);
                        break;
                    }
                }
                this.entryList.add(bucketEntry);
            } while (query.moveToNext());
        }
        query.close();
        ListAdapter imagesAdapter = new ImagesAdapter(getApplicationContext(), this.entryList);
        this.adapter = imagesAdapter;
        this.gridView.setAdapter(imagesAdapter);
    }

    private void setSelectedFileCount() {
        ArrayList<String> arrayList = this.selectedItems;
        if (arrayList != null && arrayList.size() >= 1) {
            getSupportActionBar().setTitle(this.selectedItems.size() + " Selected");
            MenuItem menuItem = this.sendOkItem;
            if (menuItem != null) {
                menuItem.setVisible(true);
                return;
            }
            return;
        }
        getSupportActionBar().setTitle("Tap Picture to Select");
        MenuItem menuItem2 = this.sendOkItem;
        if (menuItem2 != null) {
            menuItem2.setVisible(false);
        }
    }

    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long j) {
        String str;
        View findViewById = view.findViewById(R.id.tick_mark_layout);
        if (this.entryList.get(i).isSelected()) {
            findViewById.setVisibility(8);
            this.entryList.get(i).setSelected(false);
            findViewById.setPadding(0, 0, 0, 0);
            this.selectedItems.remove(this.entryList.get(i).getImagePath());
        } else if (this.selectedItems.size() < this.maxCount) {
            String imagePath = this.entryList.get(i).getImagePath();
            int parseInt = Integer.parseInt(String.valueOf(new File(Constants.getPath(this, Uri.parse(imagePath))).length() / 1024));
            if (parseInt > 10240 || getOverAllFileSize(parseInt) > 51200) {
                if (!this.allowMultiple) {
                    str = "File size should not exceed 10 MB";
                } else {
                    str = "Each file size should not exceed 10 MB and Over all files size should not exceed 50 MB";
                }
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setTitle("Error");
                builder.setMessage(str).setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i2) {
                        dialogInterface.dismiss();
                    }
                });
                builder.create().show();
            } else {
                findViewById.setVisibility(0);
                this.entryList.get(i).setSelected(true);
                findViewById.setPadding(80, 80, 80, 80);
                this.selectedItems.add(imagePath);
            }
        } else {
            AlertDialog.Builder builder2 = new AlertDialog.Builder(this);
            builder2.setTitle("Error");
            builder2.setMessage("You can't select more than " + this.maxCount + " files").setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i2) {
                    dialogInterface.dismiss();
                }
            });
            builder2.create().show();
        }
        setSelectedFileCount();
    }

    private long getOverAllFileSize(int i) {
        long j = i;
        while (this.selectedItems.iterator().hasNext()) {
            j += Integer.parseInt(String.valueOf(new File(r7.next()).length() / 1024));
        }
        return j;
    }

    public boolean onOptionsItemSelected(MenuItem menuItem) {
        int itemId = menuItem.getItemId();
        if (itemId == 16908332) {
            onBackPressed();
            return true;
        }
        if (itemId == 2131363594) {
            if (this.selectedItems.size() > 0) {
                Intent intent = new Intent();
                intent.putStringArrayListExtra("FilePaths", this.selectedItems);
                setResult(100, intent);
                finish();
            } else {
                Toast.makeText(getApplicationContext(), "Add at least one photo", 1).show();
            }
            return true;
        }
        return super.onOptionsItemSelected(menuItem);
    }

    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);
        getMenuInflater().inflate(R.menu.send_ok, menu);
        if (menu != null) {
            MenuItem findItem = menu.findItem(R.id.send_ok);
            this.sendOkItem = findItem;
            if (findItem != null && this.selectedItems.size() >= 1) {
                this.sendOkItem.setVisible(true);
            } else {
                this.sendOkItem.setVisible(false);
            }
        }
        return true;
    }

    public void onBackPressed() {
        super.onBackPressed();
    }
}