use of org.horaapps.leafpic.data.Media in project LeafPic by HoraApps.
the class MediaAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(final MediaAdapter.ViewHolder holder, int position) {
Media f = medias.get(position);
holder.path.setTag(f);
holder.icon.setVisibility(View.GONE);
if (f.isGif()) {
Ion.with(holder.imageView.getContext()).load(f.getPath()).intoImageView(holder.imageView);
holder.gifIcon.setVisibility(View.VISIBLE);
} else {
Glide.with(holder.imageView.getContext()).load(f.getUri()).asBitmap().signature(f.getSignature()).centerCrop().diskCacheStrategy(DiskCacheStrategy.RESULT).thumbnail(0.5f).placeholder(drawable).animate(org.horaapps.leafpic.R.anim.fade_in).into(holder.imageView);
holder.gifIcon.setVisibility(View.GONE);
}
if (f.isVideo()) {
holder.icon.setVisibility(View.VISIBLE);
holder.path.setVisibility(View.VISIBLE);
holder.path.setText(f.getName());
holder.path.setTextColor(ContextCompat.getColor(holder.path.getContext(), org.horaapps.leafpic.R.color.md_dark_primary_text));
holder.path.setBackgroundColor(ColorPalette.getTransparentColor(ContextCompat.getColor(holder.path.getContext(), org.horaapps.leafpic.R.color.md_black_1000), 100));
holder.icon.setIcon(CommunityMaterial.Icon.cmd_play_circle);
} else {
holder.icon.setVisibility(View.GONE);
holder.path.setVisibility(View.GONE);
}
if (f.isSelected()) {
holder.icon.setIcon(CommunityMaterial.Icon.cmd_check);
holder.icon.setVisibility(View.VISIBLE);
holder.imageView.setColorFilter(0x88000000, PorterDuff.Mode.SRC_ATOP);
holder.layout.setPadding(15, 15, 15, 15);
} else {
holder.imageView.clearColorFilter();
holder.layout.setPadding(0, 0, 0, 0);
}
}
use of org.horaapps.leafpic.data.Media in project LeafPic by HoraApps.
the class MediaStoreProvider method getAlbums.
private static ArrayList<Album> getAlbums(Context context) {
ArrayList<Album> list = new ArrayList<Album>();
String[] projection = new String[] { MediaStore.Files.FileColumns.PARENT, MediaStore.Images.Media.BUCKET_DISPLAY_NAME };
String selection, selectionArgs[];
PreferenceUtil SP = PreferenceUtil.getInstance(context);
boolean includeVideo = SP.getBoolean("set_include_video", true);
if (includeVideo) {
selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "=? or " + MediaStore.Files.FileColumns.MEDIA_TYPE + "=?" + " ) GROUP BY ( " + MediaStore.Files.FileColumns.PARENT + " ";
selectionArgs = new String[] { String.valueOf(MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE), String.valueOf(MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO) };
} else {
selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "=? ) GROUP BY ( " + MediaStore.Files.FileColumns.PARENT + " ";
selectionArgs = new String[] { String.valueOf(MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE) };
}
Cursor cur = context.getContentResolver().query(MediaStore.Files.getContentUri("external"), projection, selection, selectionArgs, null);
if (cur != null) {
if (cur.moveToFirst()) {
int idColumn = cur.getColumnIndex(MediaStore.Files.FileColumns.PARENT);
int nameColumn = cur.getColumnIndex(MediaStore.Images.Media.BUCKET_DISPLAY_NAME);
do {
Media media = getLastMedia(context, cur.getLong(idColumn));
if (media != null && media.getPath() != null) {
String path = StringUtils.getBucketPathByImagePath(media.getPath());
boolean excluded = isExcluded(path);
if (!excluded) {
Album album = new Album(context, path, cur.getLong(idColumn), cur.getString(nameColumn), getAlbumCount(context, cur.getLong(idColumn)));
if (album.addMedia(getLastMedia(context, album.getId())))
list.add(album);
}
}
} while (cur.moveToNext());
}
cur.close();
}
return list;
}
use of org.horaapps.leafpic.data.Media in project LeafPic by HoraApps.
the class StorageProvider method checkAndAddFolder.
private void checkAndAddFolder(Context context, File dir, ArrayList<Album> albumArrayList) {
File[] files = dir.listFiles(new ImageFileFilter(includeVideo));
if (files != null && files.length > 0) {
//valid folder
Album asd = new Album(context, dir.getAbsolutePath(), -1, dir.getName(), files.length);
long lastMod = Long.MIN_VALUE;
File choice = null;
for (File file : files) {
if (file.lastModified() > lastMod) {
choice = file;
lastMod = file.lastModified();
}
}
if (choice != null)
asd.addMedia(new Media(choice.getAbsolutePath(), choice.lastModified()));
albumArrayList.add(asd);
}
}
use of org.horaapps.leafpic.data.Media in project LeafPic by HoraApps.
the class CPHelper method checkAndAddFolder.
private static void checkAndAddFolder(File dir, ObservableEmitter<Album> emitter, boolean includeVideo) {
File[] files = dir.listFiles(new ImageFileFilter(includeVideo));
if (files != null && files.length > 0) {
// valid folder
long lastMod = Long.MIN_VALUE;
File choice = null;
for (File file : files) {
if (file.lastModified() > lastMod) {
choice = file;
lastMod = file.lastModified();
}
}
if (choice != null) {
Album asd = new Album(dir.getAbsolutePath(), dir.getName(), files.length, lastMod);
asd.setLastMedia(new Media(choice.getAbsolutePath()));
emitter.onNext(asd);
}
}
}
use of org.horaapps.leafpic.data.Media in project LeafPic by HoraApps.
the class CPHelper method getMediaFromStorage.
private static Observable<Media> getMediaFromStorage(Context context, Album album) {
return Observable.create(subscriber -> {
File dir = new File(album.getPath());
File[] files = dir.listFiles(new ImageFileFilter(Prefs.showVideos()));
try {
if (files != null && files.length > 0)
for (File file : files) subscriber.onNext(new Media(file));
subscriber.onComplete();
} catch (Exception err) {
subscriber.onError(err);
}
});
}
Aggregations