package view_inspector.ui.menu; import android.animation.ObjectAnimator; import android.content.Context; import android.content.res.Resources; import android.os.Build; import android.view.Gravity; import android.view.WindowManager; import android.widget.LinearLayout; import view_inspector.R; import view_inspector.ViewInspector; import static android.graphics.PixelFormat.TRANSLUCENT; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR; import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN; import static android.view.WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; import static android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; import static android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL; import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ERROR; public class BaseMenu extends LinearLayout { public BaseMenu(Context context) { super(context); ViewInspector.runtimeComponentMap.get(context).inject(this); } public static WindowManager.LayoutParams createLayoutParams(Context context) { Resources res = context.getResources(); int width = res.getDimensionPixelSize(R.dimen.view_inspector_menu_width); final WindowManager.LayoutParams params = new WindowManager.LayoutParams(width, WRAP_CONTENT, TYPE_SYSTEM_ERROR, FLAG_NOT_FOCUSABLE | FLAG_NOT_TOUCH_MODAL | FLAG_LAYOUT_NO_LIMITS | FLAG_LAYOUT_INSET_DECOR | FLAG_LAYOUT_IN_SCREEN, TRANSLUCENT); params.y = res.getDimensionPixelSize(R.dimen.view_inspector_toolbar_height); if (Build.VERSION.SDK_INT == 23) { // MARSHMALLOW params.y = res.getDimensionPixelSize(R.dimen.view_inspector_toolbar_height_m); } params.gravity = Gravity.TOP | Gravity.RIGHT; return params; } @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); setAlpha(0f); ObjectAnimator animator = ObjectAnimator.ofFloat(this, "alpha", 0f, 1f); animator.setDuration(200); animator.start(); } }