Search in sources :

Example 1 with Media

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);
    }
}
Also used : Media(org.horaapps.leafpic.data.Media)

Example 2 with Media

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;
}
Also used : PreferenceUtil(org.horaapps.leafpic.util.PreferenceUtil) ArrayList(java.util.ArrayList) Media(org.horaapps.leafpic.data.Media) Album(org.horaapps.leafpic.data.Album) Cursor(android.database.Cursor)

Example 3 with Media

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);
    }
}
Also used : Media(org.horaapps.leafpic.data.Media) Album(org.horaapps.leafpic.data.Album) ImageFileFilter(org.horaapps.leafpic.data.base.ImageFileFilter) File(java.io.File)

Example 4 with Media

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);
        }
    }
}
Also used : Media(org.horaapps.leafpic.data.Media) Album(org.horaapps.leafpic.data.Album) File(java.io.File) ImageFileFilter(org.horaapps.leafpic.data.filter.ImageFileFilter)

Example 5 with Media

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);
        }
    });
}
Also used : Media(org.horaapps.leafpic.data.Media) File(java.io.File) ImageFileFilter(org.horaapps.leafpic.data.filter.ImageFileFilter)

Aggregations

Media (org.horaapps.leafpic.data.Media)20 ArrayList (java.util.ArrayList)8 Album (org.horaapps.leafpic.data.Album)8 File (java.io.File)7 Uri (android.net.Uri)6 Intent (android.content.Intent)5 DeleteException (org.horaapps.leafpic.util.file.DeleteException)5 DialogInterface (android.content.DialogInterface)4 Bitmap (android.graphics.Bitmap)4 AlertDialog (android.support.v7.app.AlertDialog)4 View (android.view.View)4 EditText (android.widget.EditText)4 Cursor (android.database.Cursor)3 TextView (android.widget.TextView)3 ArgbEvaluator (android.animation.ArgbEvaluator)2 ValueAnimator (android.animation.ValueAnimator)2 Context (android.content.Context)2 ActivityInfo (android.content.pm.ActivityInfo)2 Configuration (android.content.res.Configuration)2 PorterDuffColorFilter (android.graphics.PorterDuffColorFilter)2