package com.github.florent37.carpaccio.controllers;
import android.content.Context;
import android.util.Log;
import com.github.florent37.carpaccio.Carpaccio;
import java.lang.reflect.Field;
/**
* Created by florentchampigny on 31/07/15.
*/
public class ControllerHelper {
private static final String TAG = "ControllerHelper";
public static float dpFromPx(final Context context, final float px) {
return px / context.getResources().getDisplayMetrics().density;
}
public static float pxFromDp(final Context context, final float dp) {
return dp * context.getResources().getDisplayMetrics().density;
}
public static int getLayoutIdentifierFromString(Context context, String layoutName) {
if(layoutName.startsWith("R.layout."))
layoutName = layoutName.replace("R.layout.","");
if(Carpaccio.IN_EDIT_MODE){
try {
Class test = Class.forName(context.getPackageName()+".R$layout");
Field field = test.getDeclaredField(layoutName);
return field.getInt(null);
} catch (Exception e) {
Log.e(TAG,e.getMessage(),e);
}
}
final int layoutResId = context.getResources().getIdentifier(layoutName, "layout", context.getPackageName());
if(layoutResId == 0) {
Log.e(TAG, "failed to find view layout " + layoutName);
return -1;
}
return layoutResId;
}
}