package com.netease.nim.uikit.common.media.picker.model; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import com.netease.nim.uikit.session.constant.Extras; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.os.Bundle; public class PickerContract { // NOTE MAINTAIN PICKER ACTIVITY CLASS NAME private static final String PICKER_CLASS = "im.yixin.media.picker.activity.PickerAlbumActivity"; public static final Intent makeLaunchIntent(Context context, boolean mutiSelectMode, int mutiSelectLimitSize, boolean isSupportOrig) { Intent intent = new Intent(); intent.setComponent(new ComponentName(context, PICKER_CLASS)); intent.putExtra(Extras.EXTRA_MUTI_SELECT_MODE, mutiSelectMode); intent.putExtra(Extras.EXTRA_MUTI_SELECT_SIZE_LIMIT, mutiSelectLimitSize); intent.putExtra(Extras.EXTRA_SUPPORT_ORIGINAL, isSupportOrig); return intent; } public static final Intent makeDataIntent(List<PhotoInfo> photos, boolean origin) { Intent intent = new Intent(); intent.putExtra(Extras.EXTRA_PHOTO_LISTS, new ArrayList<PhotoInfo>(photos)); intent.putExtra(Extras.EXTRA_IS_ORIGINAL, origin); return intent; } public static final Intent makeDataIntent(List<PhotoInfo> photos) { Intent intent = new Intent(); intent.putExtra(Extras.EXTRA_PHOTO_LISTS, new ArrayList<PhotoInfo>(photos)); return intent; } public static final Intent makePreviewDataIntent(List<PhotoInfo> photos, List<PhotoInfo> selectPhotos) { Intent intent = new Intent(); intent.putExtra(Extras.EXTRA_PHOTO_LISTS, new ArrayList<PhotoInfo>(photos)); intent.putExtra(Extras.EXTRA_SELECTED_IMAGE_LIST, new ArrayList<PhotoInfo>(selectPhotos)); return intent; } public static final Intent makePreviewDataIntent(List<PhotoInfo> photos, List<PhotoInfo> selectPhotos, boolean origin) { Intent intent = new Intent(); intent.putExtra(Extras.EXTRA_PHOTO_LISTS, new ArrayList<PhotoInfo>(photos)); intent.putExtra(Extras.EXTRA_SELECTED_IMAGE_LIST, new ArrayList<PhotoInfo>(selectPhotos)); intent.putExtra(Extras.EXTRA_IS_ORIGINAL, origin); return intent; } public static final Bundle makeDataBundle(List<PhotoInfo> photos, boolean mutiMode, int mutiSelectLimitSize) { Bundle bundle = new Bundle(); bundle.putSerializable(Extras.EXTRA_PHOTO_LISTS, new ArrayList<PhotoInfo>(photos)); bundle.putBoolean(Extras.EXTRA_MUTI_SELECT_MODE, mutiMode); bundle.putInt(Extras.EXTRA_MUTI_SELECT_SIZE_LIMIT, mutiSelectLimitSize); return bundle; } public static final List<PhotoInfo> getPhotos(Bundle bundle) { return toPhotos(bundle.getSerializable(Extras.EXTRA_PHOTO_LISTS)); } public static final List<PhotoInfo> getPhotos(Intent intent) { return toPhotos(intent.getSerializableExtra(Extras.EXTRA_PHOTO_LISTS)); } public static final List<PhotoInfo> getSelectPhotos(Intent intent) { return toPhotos(intent.getSerializableExtra(Extras.EXTRA_SELECTED_IMAGE_LIST)); } @SuppressWarnings("unchecked") private static final List<PhotoInfo> toPhotos(Serializable sPhotos) { if (sPhotos != null && sPhotos instanceof List<?>) { return (List<PhotoInfo>) sPhotos; } return null; } }