View tintView = findViewById(R.id.window_tint);
if (tintView == null) return;
Window win = getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
winParams.flags |= (WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
winParams.flags |= (WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
// dim the wallpaper somewhat (how much is determined below)
winParams.flags |= (WindowManager.LayoutParams.FLAG_DIM_BEHIND);
if (mDimmed) {
winParams.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
winParams.dimAmount = DIM_BEHIND_AMOUNT_DIMMED;
// show the window tint
tintView.startAnimation(AnimationUtils.loadAnimation(this,
fade ? R.anim.dim
: R.anim.dim_instant));
} else {
winParams.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
winParams.dimAmount = DIM_BEHIND_AMOUNT_NORMAL;
// hide the window tint
tintView.startAnimation(AnimationUtils.loadAnimation(this,
fade ? R.anim.undim
: R.anim.undim_instant));
}
win.setAttributes(winParams);
|