package com.example.asamles.app.saveload; import android.content.Context; import android.content.ContextWrapper; import android.content.Intent; import android.content.SharedPreferences; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Environment; import android.preference.PreferenceManager; import android.provider.MediaStore; import android.widget.Toast; import com.example.asamles.app.R; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; public class SaveLoadFile { static SharedPreferences sPref; static SharedPreferences.Editor ed; private static final String COUNTER = "COUNTER"; private static final String DRAWING = "Drawing"; public static String setName(Context context) { sPref = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()); int counter = sPref.getInt(COUNTER, 0); String name = DRAWING + counter + ".png"; counter++; ed = sPref.edit(); ed.putInt(COUNTER, counter); ed.commit(); return name; } public static void saveToPrivateGallery(Context context, Bitmap bitmap, String fileName) { // showProgressDialogFragment(); if (fileName == null) { fileName = setName(context); } String imgSaved = MediaStore.Images.Media.insertImage( context.getContentResolver(), bitmap, fileName, context.getString(R.string.save_tag)); if (imgSaved != null) { Toast.makeText(context.getApplicationContext(), context.getString(R.string.save_positive_result), Toast.LENGTH_SHORT).show(); } else { Toast.makeText(context.getApplicationContext(), context.getString(R.string.save_negative_result), Toast.LENGTH_SHORT).show(); } } public static void saveToPublicGallery(Context context, Bitmap bitmap, String dirName, String fileName, boolean toGallery) { if (fileName == null) { fileName = setName(context); } File directory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), dirName); File mypath = new File(directory, fileName); FileOutputStream fos; try { fos = new FileOutputStream(mypath); bitmap.compress(Bitmap.CompressFormat.PNG, 90, fos); fos.close(); Toast.makeText(context.getApplicationContext(), context.getString(R.string.save_positive_result), Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); Toast.makeText(context.getApplicationContext(), context.getString(R.string.save_negative_result), Toast.LENGTH_SHORT).show(); } if (toGallery) { galleryAddPic(context, mypath); } } public static void saveToAppPrivateGallery(Context context, Bitmap bitmap, String dirName, String fileName) { ContextWrapper cw = new ContextWrapper(context.getApplicationContext()); File directory = cw.getDir(dirName, Context.MODE_PRIVATE); File mypath = new File(directory, fileName); FileOutputStream fos; try { fos = new FileOutputStream(mypath); bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos); fos.close(); Toast.makeText(context.getApplicationContext(), context.getString(R.string.save_positive_result), Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); Toast.makeText(context.getApplicationContext(), context.getString(R.string.save_negative_result), Toast.LENGTH_SHORT).show(); } } public static String[] loadAllAppPrivateFiles(Context context, String dirName) { String[] savedFiles = context.getApplicationContext().getDir(dirName, Context.MODE_PRIVATE).list(); return savedFiles; } public static String[] loadAllPublicFiles(String dirName) { File directory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), dirName); return directory.list(); } public static Bitmap loadImageFromPrivateStorage(Context context, String dirName, String name) { Bitmap bitmap = null; try { File file = new File(context.getApplicationContext().getDir(dirName, Context.MODE_PRIVATE), name); bitmap = BitmapFactory.decodeStream(new FileInputStream(file)); } catch (FileNotFoundException e) { e.printStackTrace(); } return bitmap; } public static Bitmap loadImageFromPublicStorage(String dirName, String name) { Bitmap bitmap = null; try { File directory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), dirName); File file = new File(directory, name); bitmap = BitmapFactory.decodeStream(new FileInputStream(file)); } catch (FileNotFoundException e) { e.printStackTrace(); } return bitmap; } public static String loadPathFromGallery(Context context, Intent data) { Uri selectedImageUri = data.getData(); String[] projection = {MediaStore.Images.Media.DATA}; Cursor cursor = context.getContentResolver().query(selectedImageUri, projection, null, null, null); String picturePath = null; if (cursor != null) { if (cursor.moveToFirst()) { int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); picturePath = cursor.getString(column_index); } else { Toast.makeText(context.getApplicationContext(), context.getString(R.string.load_negative_result), Toast.LENGTH_SHORT).show(); } } return picturePath; } public static void removeFileFromPublicGallery(String dirName, String name){ File directory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), dirName); File image = new File(directory, name); image.delete(); } private static void galleryAddPic(Context context, File mypath) { Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); Uri contentUri = Uri.fromFile(mypath); mediaScanIntent.setData(contentUri); context.sendBroadcast(mediaScanIntent); } }