changed image path
This commit is contained in:
parent
21e10c6937
commit
2777020637
@ -1,5 +1,6 @@
|
||||
package org.nuclearfog.twidda.activity;
|
||||
|
||||
import android.content.ContentValues;
|
||||
import android.graphics.Bitmap;
|
||||
import android.media.MediaPlayer;
|
||||
import android.media.MediaPlayer.OnErrorListener;
|
||||
@ -8,6 +9,7 @@ import android.media.MediaPlayer.OnPreparedListener;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.provider.MediaStore;
|
||||
import android.view.View;
|
||||
import android.widget.MediaController;
|
||||
import android.widget.ProgressBar;
|
||||
@ -238,10 +240,17 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
|
||||
*
|
||||
* @param status status code of the image saver
|
||||
*/
|
||||
public void onImageSaved(ImageSaver.ImageStat status) {
|
||||
public void onImageSaved(ImageSaver.ImageStat status, String path) {
|
||||
switch (status) {
|
||||
case IMAGE_SAVE_SUCCESS:
|
||||
Toast.makeText(this, R.string.info_image_saved, Toast.LENGTH_LONG).show();
|
||||
// Add image to gallery
|
||||
ContentValues values = new ContentValues();
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q)
|
||||
values.put(MediaStore.Images.Media.DATE_TAKEN, System.currentTimeMillis());
|
||||
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
|
||||
values.put(MediaStore.MediaColumns.DATA, path);
|
||||
getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
|
||||
break;
|
||||
|
||||
case IMAGE_SAVE_FAILED:
|
||||
@ -280,8 +289,8 @@ public class MediaViewer extends AppCompatActivity implements OnImageClickListen
|
||||
String[] links = param.getStringArray(KEY_MEDIA_LINK);
|
||||
if (links != null) {
|
||||
String link = links[pos];
|
||||
imageSave = new ImageSaver(this);
|
||||
imageSave.execute(link, image);
|
||||
imageSave = new ImageSaver(this, image, link);
|
||||
imageSave.execute();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package org.nuclearfog.twidda.backend;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Environment;
|
||||
|
||||
import org.nuclearfog.twidda.activity.MediaViewer;
|
||||
|
||||
@ -14,7 +15,7 @@ import static android.os.Environment.DIRECTORY_PICTURES;
|
||||
/**
|
||||
* this class is for saving images into storage
|
||||
*/
|
||||
public class ImageSaver extends AsyncTask<Object, Void, ImageSaver.ImageStat> {
|
||||
public class ImageSaver extends AsyncTask<Void, Void, ImageSaver.ImageStat> {
|
||||
|
||||
public enum ImageStat {
|
||||
IMAGE_SAVE_SUCCESS,
|
||||
@ -22,28 +23,26 @@ public class ImageSaver extends AsyncTask<Object, Void, ImageSaver.ImageStat> {
|
||||
IMAGE_DUPLICATE
|
||||
}
|
||||
|
||||
private WeakReference<MediaViewer> callback;
|
||||
private File imagePath;
|
||||
private final Bitmap image;
|
||||
private final String link;
|
||||
private final WeakReference<MediaViewer> callback;
|
||||
private File imageFile;
|
||||
|
||||
|
||||
public ImageSaver(MediaViewer activity) {
|
||||
public ImageSaver(MediaViewer activity, Bitmap image, String link) {
|
||||
this.callback = new WeakReference<>(activity);
|
||||
this.image = image;
|
||||
this.link = link;
|
||||
// path where images to save
|
||||
imagePath = activity.getExternalFilesDir(DIRECTORY_PICTURES);
|
||||
if (imagePath == null) {
|
||||
imagePath = activity.getFilesDir();
|
||||
}
|
||||
imageFile = Environment.getExternalStoragePublicDirectory(DIRECTORY_PICTURES);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected ImageStat doInBackground(Object[] data) {
|
||||
protected ImageStat doInBackground(Void... v) {
|
||||
try {
|
||||
String link = (String) data[0];
|
||||
Bitmap image = (Bitmap) data[1];
|
||||
link = link.substring(link.lastIndexOf('/') + 1);
|
||||
String name = "shitter_" + link;
|
||||
File imageFile = new File(imagePath, name);
|
||||
String name = "shitter_" + link.substring(link.lastIndexOf('/') + 1);
|
||||
imageFile = new File(imageFile, name);
|
||||
if (imageFile.exists())
|
||||
return ImageStat.IMAGE_DUPLICATE;
|
||||
FileOutputStream imageWrite = new FileOutputStream(imageFile);
|
||||
@ -61,7 +60,7 @@ public class ImageSaver extends AsyncTask<Object, Void, ImageSaver.ImageStat> {
|
||||
@Override
|
||||
protected void onPostExecute(ImageStat status) {
|
||||
if (callback.get() != null) {
|
||||
callback.get().onImageSaved(status);
|
||||
callback.get().onImageSaved(status, imageFile.toString());
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user