Search in sources :

Example 11 with ImageMedia

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);
    }
}
Also used : AlbumEntity(com.bilibili.boxing.model.entity.AlbumEntity) ImageMedia(com.bilibili.boxing.model.entity.impl.ImageMedia)

Example 12 with ImageMedia

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);
}
Also used : BoxingConfig(com.bilibili.boxing.model.config.BoxingConfig) BoxingCropOption(com.bilibili.boxing.model.config.BoxingCropOption) ImageMedia(com.bilibili.boxing.model.entity.impl.ImageMedia) BoxingActivity(com.bilibili.boxing_impl.ui.BoxingActivity) ArrayList(java.util.ArrayList) Intent(android.content.Intent) BaseMedia(com.bilibili.boxing.model.entity.BaseMedia) Test(org.junit.Test)

Example 13 with ImageMedia

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);
}
Also used : BoxingConfig(com.bilibili.boxing.model.config.BoxingConfig) BoxingCropOption(com.bilibili.boxing.model.config.BoxingCropOption) ImageMedia(com.bilibili.boxing.model.entity.impl.ImageMedia) ArrayList(java.util.ArrayList) BoxingActivity(com.bilibili.boxing_impl.ui.BoxingActivity) Intent(android.content.Intent) BaseMedia(com.bilibili.boxing.model.entity.BaseMedia) Uri(android.net.Uri) Test(org.junit.Test)

Example 14 with ImageMedia

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();
        }
    }
}
Also used : ImageMedia(com.bilibili.boxing.model.entity.impl.ImageMedia) Cursor(android.database.Cursor)

Example 15 with ImageMedia

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;
}
Also used : ImageMedia(com.bilibili.boxing.model.entity.impl.ImageMedia) ArrayList(java.util.ArrayList) Cursor(android.database.Cursor)

Aggregations

ImageMedia (com.bilibili.boxing.model.entity.impl.ImageMedia)15 BaseMedia (com.bilibili.boxing.model.entity.BaseMedia)7 Test (org.junit.Test)7 ArrayList (java.util.ArrayList)6 BoxingConfig (com.bilibili.boxing.model.config.BoxingConfig)3 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)3 PrepareOnlyThisForTest (org.powermock.core.classloader.annotations.PrepareOnlyThisForTest)3 Intent (android.content.Intent)2 Cursor (android.database.Cursor)2 Uri (android.net.Uri)2 BoxingCropOption (com.bilibili.boxing.model.config.BoxingCropOption)2 BoxingActivity (com.bilibili.boxing_impl.ui.BoxingActivity)2 ContentResolver (android.content.ContentResolver)1 MockContentResolver (android.test.mock.MockContentResolver)1 AlbumEntity (com.bilibili.boxing.model.entity.AlbumEntity)1 ImageCompressor (com.bilibili.boxing.utils.ImageCompressor)1 File (java.io.File)1 HashMap (java.util.HashMap)1 List (java.util.List)1