package com.stardust.scriptdroid.tool;
import android.app.Activity;
import android.content.Intent;
import com.stardust.app.OnActivityResultDelegate;
import com.stardust.scriptdroid.R;
import java.io.FileNotFoundException;
import java.io.InputStream;
/**
* Created by Stardust on 2017/3/5.
*/
public class ImageSelector implements OnActivityResultDelegate {
public interface ImageSelectorCallback {
void onImageSelected(ImageSelector selector, InputStream path);
}
private static final String TAG = ImageSelector.class.getSimpleName();
private static final int REQUEST_CODE = "LOVE EATING".hashCode() >> 16;
private Activity mActivity;
private ImageSelectorCallback mCallback;
public ImageSelector(Activity activity, Mediator mediator, ImageSelectorCallback callback) {
mediator.addDelegate(REQUEST_CODE, this);
mActivity = activity;
mCallback = callback;
}
public void select() {
mActivity.startActivityForResult(Intent.createChooser(
new Intent(Intent.ACTION_GET_CONTENT).setType("image/*"), mActivity.getString(R.string.text_select_image)),
REQUEST_CODE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (data == null) {
mCallback.onImageSelected(this, null);
return;
}
try {
InputStream inputStream = mActivity.getContentResolver().openInputStream(data.getData());
mCallback.onImageSelected(this, inputStream);
} catch (FileNotFoundException e) {
mCallback.onImageSelected(this, null);
}
}
}