package org.dhis2.utils;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.Drawable;

import androidx.annotation.ColorRes;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.core.content.ContextCompat;

import static android.text.TextUtils.isEmpty;

public class ObjectStyleUtils {

    public static Drawable getIconResource(Context context, String resourceName, int defaultResource) {
        if (defaultResource == -1) {
            return null;
        }
        Drawable defaultDrawable = AppCompatResources.getDrawable(context, defaultResource);

        if (!isEmpty(resourceName)) {
            Resources resources = context.getResources();
            String iconName = resourceName.startsWith("ic_") ? resourceName : "ic_" + resourceName;
            int iconResource = resources.getIdentifier(iconName, "drawable", context.getPackageName());

            Drawable drawable = AppCompatResources.getDrawable(context, iconResource);

            if (drawable != null)
                drawable.mutate();

            return drawable != null ? drawable : defaultDrawable;
        } else
            return defaultDrawable;
    }

    public static int getColorResource(Context context, String styleColor, @ColorRes int defaultColorResource) {
        if (styleColor == null) {
            return ContextCompat.getColor(context, defaultColorResource);
        } else {
            String color = styleColor.startsWith("#") ? styleColor : "#" + styleColor;
            int colorRes;
            if (color.length() == 4)
                return ContextCompat.getColor(context, defaultColorResource);
            else
                colorRes = Color.parseColor(color);

            return colorRes;
        }
    }
}