package com.lemenzo.gallery.util;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;

import com.lemenzo.gallery.R;
import com.lemenzo.gallery.model.MediaItem;

import java.util.ArrayList;
import java.util.List;

public final class IntentUtils {
    private IntentUtils() {}

    public static void share(Context context, Uri uri, String mimeType) {
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType(mimeType == null ? "*/*" : mimeType);
        intent.putExtra(Intent.EXTRA_STREAM, uri);
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        context.startActivity(Intent.createChooser(intent, context.getString(R.string.share)));
    }

    public static void shareMultiple(Context context, List<MediaItem> items) {
        if (items == null || items.isEmpty()) return;
        if (items.size() == 1) {
            MediaItem item = items.get(0);
            share(context, item.uri, item.mimeType);
            return;
        }

        ArrayList<Uri> uris = new ArrayList<>();
        boolean onlyImages = true;
        boolean onlyVideos = true;
        for (MediaItem item : items) {
            uris.add(item.uri);
            String mime = item.mimeType == null ? "" : item.mimeType;
            onlyImages &= mime.startsWith("image/");
            onlyVideos &= mime.startsWith("video/");
        }

        Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
        intent.setType(onlyImages ? "image/*" : onlyVideos ? "video/*" : "*/*");
        intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        context.startActivity(Intent.createChooser(intent, context.getString(R.string.share)));
    }
}
