package hello.dcsms.omzen.serajrblur;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Point;
import android.view.Display;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.Window;
public class DisplayUtils {
private static int mBottomOffset = 0;
private static int mRightOffset = 0;
private static int mTopOffset = 0;
public static void setFullScreenActivity(Window window, View view) {
int flags = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
// setam os flags
window.getDecorView().setSystemUiVisibility(flags);
// setam as margens
view.setPadding(0, mTopOffset, mRightOffset, mBottomOffset);
view.requestLayout();
}
public static boolean deviceHasOnScreenButtons(Context context) {
return !ViewConfiguration.get(context).hasPermanentMenuKey();
}
public static int getActionBarHeight(Context context) {
TypedArray styledAttributes = context.getTheme()
.obtainStyledAttributes(
new int[] { android.R.attr.actionBarSize });
int actionBarSize = (int) styledAttributes.getDimension(0, 0);
styledAttributes.recycle();
return actionBarSize;
}
public static void updateConfiguration(Context context, Display display,
int actionBarHeight) {
Resources res = context.getResources();
boolean landscape = display.getRotation() == Configuration.ORIENTATION_LANDSCAPE ? true
: false;
// top
int statusBarHeightResId = res.getIdentifier("status_bar_height",
"dimen", "android");
mTopOffset = statusBarHeightResId > 0 ? res
.getDimensionPixelSize(statusBarHeightResId) : 0;
// adiciona a action bar ao top
mTopOffset = mTopOffset + actionBarHeight;
// bottom
int navigationBarHeightResId = res.getIdentifier(
"navigation_bar_height", "dimen", "android");
int bottomOffset = navigationBarHeightResId > 0 ? res
.getDimensionPixelSize(navigationBarHeightResId) : 0;
// n�o tem os bot�es na tela !!!
if (!deviceHasOnScreenButtons(context)) {
bottomOffset = 0;
}
// landscape ?
if (landscape) {
mRightOffset = 0;
mBottomOffset = bottomOffset;
return;
}
Point point = new Point();
Point point1 = new Point();
display.getSize(point);
display.getRealSize(point1);
// inverte ?
if (point.x < point1.x) {
mRightOffset = bottomOffset;
mBottomOffset = 0;
return;
} else {
mRightOffset = 0;
mBottomOffset = bottomOffset;
return;
}
}
}