package com.lemenzo.gallery.ui;

import android.app.Activity;
import android.graphics.Insets;
import android.view.View;
import android.view.WindowInsets;

import androidx.core.view.WindowCompat;

/**
 * Edge-to-edge layout with explicit safe-area padding.
 * Content begins immediately below status bars / display cutouts and above navigation bars.
 */
public final class SystemInsets {
    private SystemInsets() {}

    public static void apply(Activity activity) {
        if (activity == null) return;
        WindowCompat.setDecorFitsSystemWindows(activity.getWindow(), false);
        applyToView(activity.findViewById(android.R.id.content));
    }

    private static void applyToView(View root) {
        if (root == null) return;
        final int baseLeft = root.getPaddingLeft();
        final int baseTop = root.getPaddingTop();
        final int baseRight = root.getPaddingRight();
        final int baseBottom = root.getPaddingBottom();

        root.setOnApplyWindowInsetsListener((view, windowInsets) -> {
            Insets safe = windowInsets.getInsets(
                    WindowInsets.Type.statusBars()
                            | WindowInsets.Type.navigationBars()
                            | WindowInsets.Type.displayCutout());
            view.setPadding(
                    baseLeft + safe.left,
                    baseTop + safe.top,
                    baseRight + safe.right,
                    baseBottom + safe.bottom);
            return windowInsets;
        });
        root.requestApplyInsets();
    }
}
