package com.sunvote.xpadapp.dialog; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.os.Build; import android.os.Handler; import android.os.Looper; import android.view.LayoutInflater; import android.view.View; import android.view.WindowManager; import android.widget.TextView; import com.sunvote.xpadapp.MainActivity; import com.sunvote.xpadapp.R; public class ToastAlertDialog { private AlertDialog dialog; private AlertDialog.Builder builder; private TextView messageView ; private Handler handler; private Context context; public ToastAlertDialog setMessage(CharSequence message) { messageView.setText(message); return this; } public ToastAlertDialog(Context context){ this.context = context; builder = new AlertDialog.Builder(context); handler = new Handler(Looper.getMainLooper()); builder.setCancelable(true); builder.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface d) { handler.postDelayed(hideMenu,10); } }); View rootView = LayoutInflater.from(context).inflate(R.layout.toast_dialog,null); messageView = rootView.findViewById(R.id.message); rootView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(dialog != null){ dialog.dismiss(); } } }); builder.setView(rootView); } Runnable close = new Runnable() { @Override public void run() { if(dialog != null){ dialog.dismiss(); } } }; public void show(){ if(dialog == null){ dialog = builder.create(); } WindowManager.LayoutParams lp= dialog.getWindow().getAttributes(); lp.width=750; lp.height=380; lp.alpha = 0.6f; dialog.getWindow().setAttributes(lp); dialog.show(); hideBottomUIMenu(); handler.postDelayed(close,2000); } public static ToastAlertDialog makeText(Context context, CharSequence text){ return new ToastAlertDialog(context).setMessage(text); } private Runnable hideMenu = new Runnable() { @Override public void run() { hideBottomUIMenu(); } }; public void hideBottomUIMenu(){ if (Build.VERSION.SDK_INT > 11 && Build.VERSION.SDK_INT < 19) { // lower View v = dialog.getWindow().getDecorView(); v.setSystemUiVisibility(View.GONE); } else if (Build.VERSION.SDK_INT >= 19) { View decorView = dialog.getWindow().getDecorView(); if(context instanceof MainActivity){ MainActivity mainActivity = (MainActivity)context; decorView = mainActivity.getWindow().getDecorView(); } int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | 0x00002000; decorView.setSystemUiVisibility(uiOptions); } } }