use of com.bilibili.boxing.model.entity.impl.ImageMedia in project boxing by Bilibili.
the class BoxingAlbumAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
final AlbumViewHolder albumViewHolder = (AlbumViewHolder) holder;
albumViewHolder.mCoverImg.setImageResource(R.drawable.ic_default_image);
final int adapterPos = holder.getAdapterPosition();
final AlbumEntity album = mAlums.get(adapterPos);
if (album != null && album.hasImages()) {
albumViewHolder.mNameTxt.setText(album.mBucketName);
ImageMedia media = (ImageMedia) album.mImageList.get(0);
if (media != null) {
BoxingMediaLoader.getInstance().displayThumbnail(albumViewHolder.mCoverImg, media.getPath(), 50, 50);
}
albumViewHolder.mLayout.setTag(adapterPos);
albumViewHolder.mLayout.setOnClickListener(this);
albumViewHolder.mCheckedImg.setVisibility(album.mIsSelected ? View.VISIBLE : View.GONE);
albumViewHolder.mSizeTxt.setText(albumViewHolder.mSizeTxt.getResources().getString(R.string.album_images_fmt, album.mCount));
} else {
albumViewHolder.mNameTxt.setText(UNKNOW_ALBUM_NAME);
albumViewHolder.mSizeTxt.setVisibility(View.GONE);
}
}
use of com.bilibili.boxing.model.entity.impl.ImageMedia in project boxing by Bilibili.
the class PickerActivityTest method testCreateMultiImageIntent.
@Test
public void testCreateMultiImageIntent() {
Intent intent = Boxing.of(new BoxingConfig(BoxingConfig.Mode.MULTI_IMG).needGif()).withIntent(mContext, BoxingActivity.class).getIntent();
assertNotNull(intent);
BoxingConfig config = BoxingManager.getInstance().getBoxingConfig();
assertNotNull(config);
assertEquals(config.getMode(), BoxingConfig.Mode.MULTI_IMG);
assertEquals(config.isNeedCamera(), false);
BoxingCropOption cropOptions = config.getCropOption();
assertNull(cropOptions);
ArrayList<BaseMedia> list = intent.getParcelableArrayListExtra(Boxing.EXTRA_SELECTED_MEDIA);
assertEquals(list, null);
Intent intent1 = Boxing.of(new BoxingConfig(BoxingConfig.Mode.MULTI_IMG).needGif()).withIntent(mContext, BoxingActivity.class, new ArrayList<ImageMedia>()).getIntent();
assertNotNull(intent1);
ArrayList<BaseMedia> list1 = intent.getParcelableArrayListExtra(Boxing.EXTRA_SELECTED_MEDIA);
assertEquals(list1, null);
ArrayList<ImageMedia> medias = new ArrayList<>();
medias.add(new ImageMedia("test", "test"));
Intent intent2 = Boxing.of(new BoxingConfig(BoxingConfig.Mode.MULTI_IMG).needGif()).withIntent(mContext, BoxingActivity.class, medias).getIntent();
assertNotNull(intent2);
ArrayList<BaseMedia> list2 = intent2.getParcelableArrayListExtra(Boxing.EXTRA_SELECTED_MEDIA);
assertEquals(list2, medias);
}
use of com.bilibili.boxing.model.entity.impl.ImageMedia in project boxing by Bilibili.
the class PickerActivityTest method testCreateCustomIntent.
@Test
public void testCreateCustomIntent() {
BoxingConfig pickerConfig = new BoxingConfig(BoxingConfig.Mode.MULTI_IMG).needCamera();
Uri destUri = new Uri.Builder().scheme("file").appendPath("test").appendPath(String.format(Locale.US, "%s.jpg", System.currentTimeMillis())).build();
BoxingCropOption cropOptions = new BoxingCropOption(destUri);
ArrayList<ImageMedia> medias = new ArrayList<>();
medias.add(new ImageMedia("test", "test"));
medias.add(new ImageMedia("test1", "test1"));
pickerConfig.withCropOption(cropOptions);
Intent intent = Boxing.of(pickerConfig).withIntent(mContext, BoxingActivity.class, medias).getIntent();
assertNotNull(intent);
BoxingConfig config = BoxingManager.getInstance().getBoxingConfig();
assertNotNull(config);
assertEquals(config.getMode(), BoxingConfig.Mode.MULTI_IMG);
assertEquals(config.isNeedCamera(), true);
assertEquals(config.isNeedGif(), false);
BoxingCropOption cropOptionsResult = pickerConfig.getCropOption();
assertEquals(cropOptions, cropOptionsResult);
ArrayList<BaseMedia> list = intent.getParcelableArrayListExtra(Boxing.EXTRA_SELECTED_MEDIA);
assertEquals(list, medias);
}
use of com.bilibili.boxing.model.entity.impl.ImageMedia in project boxing by Bilibili.
the class AlbumTask method buildAlbumCover.
/**
* get the cover and count
*
* @param buckId album id
*/
private void buildAlbumCover(ContentResolver cr, String buckId, AlbumEntity album) {
String[] photoColumn = new String[] { Media._ID, Media.DATA };
Cursor coverCursor = cr.query(Media.EXTERNAL_CONTENT_URI, photoColumn, SELECTION_ID, new String[] { buckId, "image/jpeg", "image/png", "image/jpg", "image/gif" }, Media.DATE_MODIFIED + " desc");
try {
if (coverCursor != null && coverCursor.moveToFirst()) {
String picPath = coverCursor.getString(coverCursor.getColumnIndex(Media.DATA));
String id = coverCursor.getString(coverCursor.getColumnIndex(Media._ID));
album.mCount = coverCursor.getCount();
album.mImageList.add(new ImageMedia(id, picPath));
if (album.mImageList.size() > 0) {
mBucketMap.put(buckId, album);
}
}
} finally {
if (coverCursor != null) {
coverCursor.close();
}
}
}
use of com.bilibili.boxing.model.entity.impl.ImageMedia in project boxing by Bilibili.
the class ImageTask method buildAlbumList.
private List<ImageMedia> buildAlbumList(ContentResolver cr, String bucketId, int page, @NonNull final IMediaTaskCallback<ImageMedia> callback) {
List<ImageMedia> result = new ArrayList<>();
String[] columns = getColumns();
Cursor cursor = null;
try {
boolean isDefaultAlbum = TextUtils.isEmpty(bucketId);
boolean isNeedPaging = mPickerConfig == null || mPickerConfig.isNeedPaging();
boolean isNeedGif = mPickerConfig != null && mPickerConfig.isNeedGif();
int totalCount = getTotalCount(cr, bucketId, columns, isDefaultAlbum, isNeedGif);
String imageMimeType = isNeedGif ? SELECTION_IMAGE_MIME_TYPE : SELECTION_IMAGE_MIME_TYPE_WITHOUT_GIF;
String[] args = isNeedGif ? SELECTION_ARGS_IMAGE_MIME_TYPE : SELECTION_ARGS_IMAGE_MIME_TYPE_WITHOUT_GIF;
String order = isNeedPaging ? Images.Media.DATE_MODIFIED + " desc" + " LIMIT " + page * IMediaTask.PAGE_LIMIT + " , " + IMediaTask.PAGE_LIMIT : Images.Media.DATE_MODIFIED + " desc";
String selectionId = isNeedGif ? SELECTION_ID : SELECTION_ID_WITHOUT_GIF;
cursor = query(cr, bucketId, columns, isDefaultAlbum, isNeedGif, imageMimeType, args, order, selectionId);
addItem(totalCount, result, cursor, callback);
} finally {
if (cursor != null) {
cursor.close();
}
}
return result;
}
Aggregations