导航菜单

页面标题

页面副标题

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

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

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


package com.chinalwb.are.activities;

import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.media.session.PlaybackStateCompat;
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.chinalwb.are.R;
import com.chinalwb.are.adapters.ImagesAdapter;
import com.chinalwb.are.models.BucketEntry;
import java.io.File;
import java.util.ArrayList;

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

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

    private void getGalleryImages() {
        Cursor query = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, "bucket_display_name = \"" + this.bucketName + "\"", null, "datetaken DESC");
        this.entryList = new ArrayList<>();
        if (query.moveToFirst()) {
            int columnIndex = query.getColumnIndex("_data");
            do {
                BucketEntry bucketEntry = new BucketEntry();
                bucketEntry.setImagePath(query.getString(columnIndex));
                this.entryList.add(bucketEntry);
            } while (query.moveToNext());
        }
        query.close();
        ImagesAdapter imagesAdapter = new ImagesAdapter(getApplicationContext(), this.entryList);
        this.adapter = imagesAdapter;
        this.gridView.setAdapter((ListAdapter) imagesAdapter);
    }

    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long j) {
        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();
            findViewById.setVisibility(0);
            this.entryList.get(i).setSelected(true);
            findViewById.setPadding(80, 80, 80, 80);
            this.selectedItems.add(imagePath);
        } else {
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("Error");
            builder.setMessage("You can't select more than " + this.maxCount + " Images").setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i2) {
                    dialogInterface.dismiss();
                }
            });
            builder.create().show();
        }
        if (this.selectedItems.size() >= 1) {
            getSupportActionBar().setTitle(this.selectedItems.size() + " Selected");
            this.sendOkItem.setVisible(true);
            return;
        }
        getSupportActionBar().setTitle("Tap Picture to Select");
        this.sendOkItem.setVisible(false);
    }

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

    @Override
    public boolean onOptionsItemSelected(MenuItem menuItem) {
        int itemId = menuItem.getItemId();
        if (itemId == 16908332) {
            onBackPressed();
            return true;
        }
        if (itemId == R.id.action_ok) {
            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);
    }

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

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

    @Override
    protected void onResume() {
        super.onResume();
    }
}