package com.lemenzo.gallery.viewer;

import com.lemenzo.gallery.model.MediaItem;

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

/**
 * Lightweight media-page model used by the viewer. UI rendering remains native so
 * zoom and video controls do not depend on a third-party paging component.
 */
public final class ViewerPagerAdapter {
    private final ArrayList<MediaItem> items = new ArrayList<>();
    private int index;

    public void setItems(List<MediaItem> media, int initialIndex) {
        items.clear();
        if (media != null) items.addAll(media);
        index = items.isEmpty() ? 0 : Math.max(0, Math.min(initialIndex, items.size() - 1));
    }

    public MediaItem current() {
        return items.isEmpty() ? null : items.get(index);
    }

    public boolean next() {
        if (index >= items.size() - 1) return false;
        index++;
        return true;
    }

    public boolean previous() {
        if (index <= 0) return false;
        index--;
        return true;
    }

    public boolean removeCurrent() {
        if (items.isEmpty()) return false;
        items.remove(index);
        if (items.isEmpty()) {
            index = 0;
            return false;
        }
        index = Math.min(index, items.size() - 1);
        return true;
    }

    public int size() {
        return items.size();
    }

    public int index() {
        return index;
    }
}
