package im.actor.sdk.util;
import android.content.res.Resources;
import im.actor.runtime.android.AndroidContext;
public class Screen {
private static float density;
private static float scaledDensity;
public static int dp(float dp) {
if (density == 0f)
density = AndroidContext.getContext().getResources().getDisplayMetrics().density;
return (int) (dp * density + .5f);
}
public static int sp(float sp) {
if (scaledDensity == 0f)
scaledDensity = AndroidContext.getContext().getResources().getDisplayMetrics().scaledDensity;
return (int) (sp * scaledDensity + .5f);
}
public static int getWidth() {
return AndroidContext.getContext().getResources().getDisplayMetrics().widthPixels;
}
public static int getHeight() {
return AndroidContext.getContext().getResources().getDisplayMetrics().heightPixels;
}
public static int getStatusBarHeight() {
int result = 0;
int resourceId = AndroidContext.getContext().getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = AndroidContext.getContext().getResources().getDimensionPixelSize(resourceId);
}
return result;
}
public static int getNavbarHeight() {
if (hasNavigationBar()) {
int resourceId = AndroidContext.getContext().getResources().getIdentifier("navigation_bar_height", "dimen", "android");
if (resourceId > 0) {
return AndroidContext.getContext().getResources().getDimensionPixelSize(resourceId);
}
}
return 0;
}
public static boolean hasNavigationBar() {
Resources resources = AndroidContext.getContext().getResources();
int id = resources.getIdentifier("config_showNavigationBar", "bool", "android");
return (id > 0) && resources.getBoolean(id);
}
public static float getDensity() {
return density;
}
}