package com.luck.picture.lib.model;
import android.app.Activity;
import android.content.Intent;
import com.luck.picture.lib.R;
import com.luck.picture.lib.ui.PictureExternalPreviewActivity;
import com.luck.picture.lib.ui.PictureImageGridActivity;
import com.luck.picture.lib.ui.PictureVideoPlayActivity;
import com.yalantis.ucrop.entity.LocalMedia;
import com.yalantis.ucrop.util.Utils;
import java.io.Serializable;
import java.util.List;
/**
* author:luck
* project:PictureSelector
* package:com.luck.picture.util
* email:893855882@qq.com
* data:17/1/5
*/
public class PictureConfig {
public FunctionOptions options;
public static PictureConfig sInstance;
public static PictureConfig getInstance() {
if (sInstance == null) {
synchronized (PictureConfig.class) {
if (sInstance == null) {
sInstance = new PictureConfig();
}
}
}
return sInstance;
}
public PictureConfig() {
}
public static OnSelectResultCallback resultCallback;
public static OnSelectResultCallback getResultCallback() {
return resultCallback;
}
public PictureConfig init(FunctionOptions options) {
this.options = options;
return this;
}
/**
* 启动相册
*/
public void openPhoto(Activity activity, OnSelectResultCallback resultCall) {
if (Utils.isFastDoubleClick()) {
return;
}
if (options == null) {
options = new FunctionOptions.Builder().create();
}
Intent intent = new Intent(activity, PictureImageGridActivity.class);
intent.putExtra(FunctionConfig.EXTRA_THIS_CONFIG, options);
activity.startActivity(intent);
activity.overridePendingTransition(R.anim.slide_bottom_in, 0);
// 绑定图片接口回调函数事件
resultCallback = resultCall;
}
/**
* start to camera、preview、crop
*/
public void startOpenCamera(Activity activity, OnSelectResultCallback resultCall) {
if (options == null) {
options = new FunctionOptions.Builder().create();
}
Intent intent = new Intent(activity, PictureImageGridActivity.class);
intent.putExtra(FunctionConfig.EXTRA_THIS_CONFIG, options);
intent.putExtra(FunctionConfig.FUNCTION_TAKE, true);
activity.startActivity(intent);
activity.overridePendingTransition(R.anim.fade, R.anim.hold);
// 绑定图片接口回调函数事件
resultCallback = resultCall;
}
/**
* 外部图片预览
*
* @param position
* @param medias
*/
public void externalPicturePreview(Activity activity, int position, List<LocalMedia> medias) {
if (medias != null && medias.size() > 0) {
Intent intent = new Intent();
intent.putExtra(FunctionConfig.EXTRA_PREVIEW_SELECT_LIST, (Serializable) medias);
intent.putExtra(FunctionConfig.EXTRA_POSITION, position);
intent.setClass(activity, PictureExternalPreviewActivity.class);
activity.startActivity(intent);
activity.overridePendingTransition(R.anim.toast_enter, 0);
}
}
/**
* 外部图片预览
*
* @param position
* @param medias
*/
public void externalPicturePreview(Activity activity, String directory_path, int position, List<LocalMedia> medias) {
if (medias != null && medias.size() > 0) {
Intent intent = new Intent();
intent.putExtra(FunctionConfig.EXTRA_PREVIEW_SELECT_LIST, (Serializable) medias);
intent.putExtra(FunctionConfig.EXTRA_POSITION, position);
intent.putExtra(FunctionConfig.DIRECTORY_PATH, directory_path);
intent.setClass(activity, PictureExternalPreviewActivity.class);
activity.startActivity(intent);
activity.overridePendingTransition(R.anim.toast_enter, 0);
}
}
/**
* 外部视频播放
*
* @param path
*/
public void externalPictureVideo(Activity activity, String path) {
if (!Utils.isNull(path)) {
Intent intent = new Intent();
intent.putExtra("video_path", path);
intent.setClass(activity, PictureVideoPlayActivity.class);
activity.startActivity(intent);
}
}
/**
* 处理结果
*/
public interface OnSelectResultCallback {
/**
* 处理成功
* 多选
*
* @param resultList
*/
void onSelectSuccess(List<LocalMedia> resultList);
/**
* 处理成功
* 单选
*
* @param media
*/
void onSelectSuccess(LocalMedia media);
}
}