Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class ImageGallery extends AppCompatActivity {
- public static ArrayList<Model_images> al_images = new ArrayList<>();
- boolean boolean_folder;
- Adapter_PhotosFolder obj_adapter;
- GridView gv_folder;
- private static final int REQUEST_PERMISSIONS = 100;
- int int_position;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_image_gallery);
- gv_folder = (GridView) findViewById(android.R.id.list);
- obj_adapter = new Adapter_PhotosFolder(this,al_images,int_position);
- gv_folder.setAdapter(obj_adapter);
- final ImageButton button1 = (ImageButton) findViewById(R.id.button1);
- final ImageButton button2 = (ImageButton) findViewById(R.id.button2);
- final ImageButton button3 = (ImageButton) findViewById(R.id.button3);
- final ImageButton button4 = (ImageButton) findViewById(R.id.button4);
- final ImageButton button5 = (ImageButton) findViewById(R.id.button5);
- button1.setVisibility(View.GONE);
- button2.setVisibility(View.GONE);
- button3.setVisibility(View.GONE);
- button4.setVisibility(View.GONE);
- button5.setVisibility(View.GONE);
- gv_folder.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
- Intent intent = new Intent(getApplicationContext(), PhotosActivity.class);
- intent.putExtra("value",i);
- startActivity(intent);
- }
- });
- gv_folder.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
- @Override
- public boolean onItemLongClick(AdapterView<?> adapterView, View view,final int i, long l) {
- for (int j = 0; j < adapterView.getChildCount(); j++)
- adapterView.getChildAt(j).setBackgroundColor(Color.TRANSPARENT);
- // change the background color of the selected element
- view.setBackgroundColor(Color.LTGRAY);
- button1.setVisibility(View.VISIBLE);
- button2.setVisibility(View.VISIBLE);
- button3.setVisibility(View.VISIBLE);
- button4.setVisibility(View.VISIBLE);
- button5.setVisibility(View.VISIBLE);
- button3.setOnClickListener(
- new View.OnClickListener() {
- public void onClick(View view) {
- AlertDialog.Builder builder1 = new AlertDialog.Builder(ImageGallery.this);
- builder1.setMessage("Are you sure you want to delete it ?");
- builder1.setCancelable(true);
- builder1.setPositiveButton(
- "Yes",
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- File file = new File(al_images.get(int_position).getAl_imagepath().get(i));
- file.delete();
- al_images.remove(i);
- obj_adapter.notifyDataSetChanged();
- finish();
- }
- });
- builder1.setNegativeButton(
- "No",
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- });
- AlertDialog alert11 = builder1.create();
- alert11.show();
- }
- });
- return true;
- }
- });
- if ((ContextCompat.checkSelfPermission(getApplicationContext(),
- Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) && (ContextCompat.checkSelfPermission(getApplicationContext(),
- Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)) {
- if ((ActivityCompat.shouldShowRequestPermissionRationale(ImageGallery.this,
- Manifest.permission.WRITE_EXTERNAL_STORAGE)) && (ActivityCompat.shouldShowRequestPermissionRationale( ImageGallery.this,
- Manifest.permission.READ_EXTERNAL_STORAGE))) {
- } else {
- ActivityCompat.requestPermissions( ImageGallery.this,
- new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE},
- REQUEST_PERMISSIONS);
- }
- }else {
- Log.e("Else","Else");
- fn_imagespath();
- }
- }
- public ArrayList<Model_images> fn_imagespath() {
- al_images.clear();
- int int_position = 0;
- Uri uri;
- Cursor cursor;
- int column_index_data, column_index_folder_name;
- String absolutePathOfImage;
- uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
- String[] projection = {MediaStore.MediaColumns.DATA, MediaStore.Images.Media.BUCKET_DISPLAY_NAME};
- final String orderBy = MediaStore.Images.Media.DATE_TAKEN;
- cursor = getApplicationContext().getContentResolver().query(uri, projection, null, null, orderBy + " DESC");
- column_index_data = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
- column_index_folder_name = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.BUCKET_DISPLAY_NAME);
- while (cursor.moveToNext()) {
- absolutePathOfImage = cursor.getString(column_index_data);
- Log.e("Column", absolutePathOfImage);
- Log.e("Folder", cursor.getString(column_index_folder_name));
- for (int i = 0; i < al_images.size(); i++) {
- if (al_images.get(i).getStr_folder().equals(cursor.getString(column_index_folder_name))) {
- boolean_folder = true;
- int_position = i;
- break;
- } else {
- boolean_folder = false;
- }
- }
- if (boolean_folder) {
- ArrayList<String> al_path = new ArrayList<>();
- al_path.addAll(al_images.get(int_position).getAl_imagepath());
- al_path.add(absolutePathOfImage);
- al_images.get(int_position).setAl_imagepath(al_path);
- } else {
- ArrayList<String> al_path = new ArrayList<>();
- al_path.add(absolutePathOfImage);
- Model_images obj_model = new Model_images();
- obj_model.setStr_folder(cursor.getString(column_index_folder_name));
- obj_model.setAl_imagepath(al_path);
- al_images.add(obj_model);
- }
- }
- for (int i = 0; i < al_images.size(); i++) {
- Log.e("FOLDER", al_images.get(i).getStr_folder());
- for (int j = 0; j < al_images.get(i).getAl_imagepath().size(); j++) {
- Log.e("FILE", al_images.get(i).getAl_imagepath().get(j));
- }
- }
- obj_adapter = new Adapter_PhotosFolder(getApplicationContext(),al_images,int_position);
- gv_folder.setAdapter(obj_adapter);
- return al_images;
- }
- @Override
- public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- switch (requestCode) {
- case REQUEST_PERMISSIONS: {
- for (int i = 0; i < grantResults.length; i++) {
- if (grantResults.length > 0 && grantResults[i] == PackageManager.PERMISSION_GRANTED) {
- fn_imagespath();
- } else {
- Toast.makeText(ImageGallery.this, "The app was not allowed to read or write to your storage. Hence, it cannot function properly. Please consider granting it this permission", Toast.LENGTH_LONG).show();
- }
- }
- }
- }
- }
- }
- public class PhotosActivity extends AppCompatActivity {
- int int_position;
- private GridView gridView;
- GridViewAdapter adapter;
- Adapter_PhotosFolder obj_adapter;
- ArrayList<Model_images> al_menu = new ArrayList<>();
- boolean boolean_folder;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_image_gallery);
- final ImageButton button1 = (ImageButton) findViewById(R.id.button1);
- final ImageButton button2 = (ImageButton) findViewById(R.id.button2);
- final ImageButton button3 = (ImageButton) findViewById(R.id.button3);
- final ImageButton button4 = (ImageButton) findViewById(R.id.button4);
- final ImageButton button5 = (ImageButton) findViewById(R.id.button5);
- button1.setVisibility(View.GONE);
- button2.setVisibility(View.GONE);
- button3.setVisibility(View.GONE);
- button4.setVisibility(View.GONE);
- button5.setVisibility(View.GONE);
- gridView = (GridView) findViewById(android.R.id.list);
- int_position = getIntent().getIntExtra("value", 0);
- adapter = new GridViewAdapter(this, al_images, int_position);
- gridView.setAdapter(adapter);
- fn_imagespath();
- gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- String abc = "file://" + al_images.get(int_position).getAl_imagepath().get(position);
- Intent i = new Intent(getApplicationContext(), FullImageActivity.class);
- i.putExtra("id", position);
- i.putExtra("folderPosition", int_position);
- i.putExtra("abc", abc);
- startActivity(i);
- }
- });
- gridView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
- @Override
- public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
- for (int j = 0; j < parent.getChildCount(); j++)
- parent.getChildAt(j).setBackgroundColor(Color.TRANSPARENT);
- // change the background color of the selected element
- view.setBackgroundColor(Color.LTGRAY);
- button1.setVisibility(View.VISIBLE);
- button2.setVisibility(View.VISIBLE);
- button3.setVisibility(View.VISIBLE);
- button4.setVisibility(View.VISIBLE);
- button5.setVisibility(View.VISIBLE);
- button3.setOnClickListener(
- new View.OnClickListener() {
- public void onClick(View view) {
- AlertDialog.Builder builder1 = new AlertDialog.Builder(PhotosActivity.this);
- builder1.setMessage("Are you sure you want to delete it ?");
- builder1.setCancelable(true);
- builder1.setPositiveButton(
- "Yes",
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- File file = new File( al_menu.get(int_position).getAl_imagepath().get(position));
- file.delete();
- MediaScannerConnection.scanFile(PhotosActivity.this,new String[] { file.toString() }, null,
- new MediaScannerConnection.OnScanCompletedListener() {
- public void onScanCompleted(String path, Uri uri) {
- Log.i("ExternalStorage", "Scanned " + path + ":");
- Log.i("ExternalStorage", "-> uri=" + uri);
- }
- });
- al_menu.remove(position);
- adapter.notifyDataSetChanged();
- finish();
- }
- });
- builder1.setNegativeButton(
- "No",
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- });
- AlertDialog alert11 = builder1.create();
- alert11.show();
- }
- });
- return true;
- }
- });
- }
- public ArrayList<Model_images> fn_imagespath() {
- al_menu.clear();
- int int_position = 0;
- Uri uri;
- Cursor cursor;
- int column_index_data, column_index_folder_name;
- String absolutePathOfImage;
- uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
- String[] projection = {MediaStore.MediaColumns.DATA, MediaStore.Images.Media.BUCKET_DISPLAY_NAME};
- final String orderBy = MediaStore.Images.Media.DATE_TAKEN;
- cursor = getApplication().getContentResolver().query(uri, projection, null, null, orderBy + " DESC");
- column_index_data = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
- column_index_folder_name = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.BUCKET_DISPLAY_NAME);
- while (cursor.moveToNext()) {
- absolutePathOfImage = cursor.getString(column_index_data);
- Log.e("Column", absolutePathOfImage);
- Log.e("Folder", cursor.getString(column_index_folder_name));
- for (int i = 0; i < al_menu.size(); i++) {
- if (al_menu.get(i).getStr_folder().equals(cursor.getString(column_index_folder_name))) {
- boolean_folder = true;
- int_position = i;
- break;
- } else {
- boolean_folder = false;
- }
- }
- if (boolean_folder) {
- ArrayList<String> al_path = new ArrayList<>();
- al_path.addAll(al_menu.get(int_position).getAl_imagepath());
- al_path.add(absolutePathOfImage);
- al_menu.get(int_position).setAl_imagepath(al_path);
- } else {
- ArrayList<String> al_path = new ArrayList<>();
- al_path.add(absolutePathOfImage);
- Model_images obj_model = new Model_images();
- obj_model.setStr_folder(cursor.getString(column_index_folder_name));
- obj_model.setAl_imagepath(al_path);
- al_menu.add(obj_model);
- }
- }
- for (int i = 0; i < al_menu.size(); i++) {
- Log.e("FOLDER", al_menu.get(i).getStr_folder());
- for (int j = 0; j < al_menu.get(i).getAl_imagepath().size(); j++) {
- Log.e("FILE", al_menu.get(i).getAl_imagepath().get(j));
- }
- }
- adapter = new GridViewAdapter(this, al_menu,int_position);
- gridView.setAdapter(adapter);
- return al_menu;
- }
- }
- public class Adapter_PhotosFolder extends ArrayAdapter<Model_images> {
- Context context;
- ViewHolder viewHolder;
- ArrayList<Model_images> al_menu = new ArrayList<>();
- int int_position;
- public Adapter_PhotosFolder(Context context, ArrayList<Model_images> al_menu,int position) {
- super(context, R.layout.activity_adapter__photos_folder, al_menu);
- this.al_menu = al_menu;
- this.context = context;
- this.int_position=position;
- }
- @Override
- public int getCount() {
- Log.e("ADAPTER LIST SIZE", al_menu.size() + "");
- return al_menu.size();
- }
- @Override
- public int getItemViewType(int position) {
- return position;
- }
- @Override
- public int getViewTypeCount() {
- if (al_menu.size() > 0) {
- return al_menu.size();
- } else {
- return 1;
- }
- }
- @Override
- public long getItemId(int position) {
- return position;
- }
- @Override
- public View getView(final int position, View convertView, ViewGroup parent) {
- if (convertView == null) {
- viewHolder = new ViewHolder();
- convertView = LayoutInflater.from(getContext()).inflate(R.layout.activity_adapter__photos_folder, parent, false);
- viewHolder.tv_foldern = (TextView) convertView.findViewById(R.id.tv_folder);
- viewHolder.tv_foldersize = (TextView) convertView.findViewById(R.id.tv_folder2);
- viewHolder.iv_image = (ImageView) convertView.findViewById(R.id.iv_image);
- convertView.setTag(viewHolder);
- } else {
- viewHolder = (ViewHolder) convertView.getTag();
- }
- viewHolder.tv_foldern.setText(al_menu.get(position).getStr_folder());
- viewHolder.tv_foldersize.setText(al_menu.get(position).getAl_imagepath().size()+"");
- Glide.with(context).load("file://" + al_menu.get(position).getAl_imagepath().get(0))
- .diskCacheStrategy(DiskCacheStrategy.NONE)
- .skipMemoryCache(true)
- .into(viewHolder.iv_image);
- return convertView;
- }
- private static class ViewHolder {
- TextView tv_foldern, tv_foldersize;
- ImageView iv_image;
- }
Add Comment
Please, Sign In to add comment