use of com.yydcdut.note.entity.gallery.MediaPhoto in project PhotoNoter by yydcdut.
the class MediaPhotoAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(MediaPhotoViewHolder holder, int position) {
MediaPhoto mediaPhoto = mMediaPhotoList.get(position);
if (mSelectPhotoModel.contains(mediaPhoto.getPath())) {
holder.checkBox.setCheckedWithoutCallback(true);
} else {
holder.checkBox.setCheckedWithoutCallback(false);
}
holder.imageView.setImageDrawable(new ColorDrawable(Color.rgb(mRandom.nextInt(255), mRandom.nextInt(255), mRandom.nextInt(255))));
ImageLoaderManager.displayImage("file:/" + mediaPhoto.getThumbPath(), holder.imageView, ImageLoaderManager.getGalleryOptions());
}
use of com.yydcdut.note.entity.gallery.MediaPhoto in project PhotoNoter by yydcdut.
the class RxGalleryPhotos method findInDatabase.
private void findInDatabase(MediaFolder mediaFolder4All) {
final String[] projectionPhotos = { MediaStore.Images.Media._ID, MediaStore.Images.Media.BUCKET_ID, MediaStore.Images.Media.BUCKET_DISPLAY_NAME, MediaStore.Images.Media.DATA, MediaStore.Images.Media.DATE_TAKEN, MediaStore.Images.Media.ORIENTATION, MediaStore.Images.Thumbnails.DATA };
Cursor cursor = MediaStore.Images.Media.query(mContext.getContentResolver(), MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projectionPhotos, "", null, MediaStore.Images.Media.DATE_TAKEN + " DESC");
if (cursor == null) {
return;
}
while (cursor.moveToNext()) {
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
String thumb = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Thumbnails.DATA));
File file = new File(path);
if (file.exists() && file.length() > 0) {
MediaPhoto mediaPhoto = new MediaPhoto(path, thumb);
String folderName = file.getParentFile().getName();
MediaFolder mediaFolder = mMediaCache.get(folderName);
if (mediaFolder == null) {
List<MediaPhoto> mediaPhotoList = new ArrayList<>();
mediaPhotoList.add(mediaPhoto);
mediaFolder = new MediaFolder(folderName, mediaPhotoList);
mMediaCache.put(folderName, mediaFolder);
} else {
mediaFolder.getMediaPhotoList().add(mediaPhoto);
}
mediaFolder4All.getMediaPhotoList().add(mediaPhoto);
}
}
}
use of com.yydcdut.note.entity.gallery.MediaPhoto in project PhotoNoter by yydcdut.
the class PhotoDetailPresenterImpl method initViewPager.
@Override
public void initViewPager() {
if (isPreviewSelected) {
List<String> selectedPathList = null;
mAdapterPathList = new ArrayList<>(mSelectPhotoModel.getCount());
for (int i = 0; i < mSelectPhotoModel.getCount(); i++) {
mAdapterPathList.add(mSelectPhotoModel.get(i));
}
mPhotoDetailView.setAdapter(mAdapterPathList, mInitPage);
mPhotoDetailView.initAdapterData(isPreviewSelected, selectedPathList);
mPhotoDetailView.setToolbarTitle((mPhotoDetailView.getCurrentPosition() + 1) + "/" + mAdapterPathList.size());
} else {
mRxGalleryPhotos.findByMedia().observeOn(AndroidSchedulers.mainThread()).subscribe(stringMediaFolderMap -> {
List<MediaPhoto> mediaPhotoList = stringMediaFolderMap.get(mFolderName).getMediaPhotoList();
List<String> selectedPathList = null;
mAdapterPathList = new ArrayList<>(mediaPhotoList.size());
for (MediaPhoto mediaPhoto : mediaPhotoList) {
mAdapterPathList.add(mediaPhoto.getPath());
}
selectedPathList = new ArrayList<>(mSelectPhotoModel.getCount());
for (int i = 0; i < mSelectPhotoModel.getCount(); i++) {
selectedPathList.add(mSelectPhotoModel.get(i));
}
mPhotoDetailView.setAdapter(mAdapterPathList, mInitPage);
mPhotoDetailView.initAdapterData(isPreviewSelected, selectedPathList);
mPhotoDetailView.setToolbarTitle((mPhotoDetailView.getCurrentPosition() + 1) + "/" + mAdapterPathList.size());
}, (throwable -> YLog.e(throwable)));
}
}
use of com.yydcdut.note.entity.gallery.MediaPhoto in project PhotoNoter by yydcdut.
the class PhotoModel method findByMedia.
@NonNull
public Map<String, MediaFolder> findByMedia(@NonNull Context context) {
WeakReference<Context> contextWeakReference = new WeakReference<>(context);
if (mMediaCache == null) {
mMediaCache = new HashMap<>();
MediaFolder mediaFolder4All = new MediaFolder(MediaFolder.ALL, new ArrayList<MediaPhoto>());
mMediaCache.put(MediaFolder.ALL, mediaFolder4All);
final String[] projectionPhotos = { MediaStore.Images.Media._ID, MediaStore.Images.Media.BUCKET_ID, MediaStore.Images.Media.BUCKET_DISPLAY_NAME, MediaStore.Images.Media.DATA, MediaStore.Images.Media.DATE_TAKEN, MediaStore.Images.Media.ORIENTATION, MediaStore.Images.Thumbnails.DATA };
Cursor cursor = MediaStore.Images.Media.query(contextWeakReference.get().getContentResolver(), MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projectionPhotos, "", null, MediaStore.Images.Media.DATE_TAKEN + " DESC");
if (cursor == null) {
return mMediaCache;
}
while (cursor.moveToNext()) {
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
String thumb = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Thumbnails.DATA));
File file = new File(path);
if (file.exists() && file.length() > 0) {
MediaPhoto mediaPhoto = new MediaPhoto(path, thumb);
String folderName = file.getParentFile().getName();
MediaFolder mediaFolder = mMediaCache.get(folderName);
if (mediaFolder == null) {
List<MediaPhoto> mediaPhotoList = new ArrayList<>();
mediaPhotoList.add(mediaPhoto);
mediaFolder = new MediaFolder(folderName, mediaPhotoList);
mMediaCache.put(folderName, mediaFolder);
} else {
mediaFolder.getMediaPhotoList().add(mediaPhoto);
}
mediaFolder4All.getMediaPhotoList().add(mediaPhoto);
}
}
}
contextWeakReference.clear();
return mMediaCache;
}
use of com.yydcdut.note.entity.gallery.MediaPhoto in project PhotoNoter by yydcdut.
the class RxGalleryPhotos method findByMedia.
@NonNull
public Observable<Map<String, MediaFolder>> findByMedia() {
return Observable.create(new Observable.OnSubscribe<Map<String, MediaFolder>>() {
@Override
public void call(Subscriber<? super Map<String, MediaFolder>> subscriber) {
if (mMediaCache == null || mMediaCache.size() == 0) {
mMediaCache = new HashMap<>();
MediaFolder mediaFolder4All = new MediaFolder(MediaFolder.ALL, new ArrayList<MediaPhoto>());
mMediaCache.put(MediaFolder.ALL, mediaFolder4All);
findInDatabase(mediaFolder4All);
}
subscriber.onNext(mMediaCache);
}
}).subscribeOn(Schedulers.io());
}
Aggregations