package cn.rongcloud.rtc.faceunity.ui; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; import android.app.Dialog; import android.app.DialogFragment; import android.content.DialogInterface; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.TextView; import android.widget.Toast; import cn.rongcloud.rtc.R; import cn.rongcloud.rtc.faceunity.OnFUControlListener; /** Created by wangw on 2020/4/1. */ public abstract class BaseFUDialogFrag extends DialogFragment { protected View mRootView; protected OnFUControlListener mFUControlListener; protected boolean mEnableFu; private FuDialogCallback mDialogCallback; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStyle(STYLE_NO_TITLE, R.style.Dialog); } @Nullable @Override public View onCreateView( LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { if (mRootView == null) { mRootView = onInflateView(inflater, container, savedInstanceState); } else if (mRootView.getParent() != null) { ((ViewGroup) mRootView.getParent()).removeView(mRootView); } return mRootView; } protected abstract View onInflateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState); @Override public void onStart() { super.onStart(); Dialog dialog = getDialog(); if (dialog == null) return; Window window = dialog.getWindow(); window.setLayout(MATCH_PARENT, WRAP_CONTENT); window.setGravity(Gravity.BOTTOM); window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); } @Override public void onDismiss(DialogInterface dialog) { super.onDismiss(dialog); if (mDialogCallback != null) mDialogCallback.onDismiss(mEnableFu); } public OnFUControlListener getFUControlListener() { return mFUControlListener; } public void setFUControlListener(OnFUControlListener FUControlListener) { mFUControlListener = FUControlListener; } public void showDescription(int res) { if (res == 0) return; TextView view = new TextView(getActivity()); view.setText(res); view.setTextColor(Color.WHITE); view.setTextSize(33); view.setPadding(20, 20, 20, 20); view.setBackgroundResource(R.color.blink_transparent); Toast toast = new Toast(getActivity()); toast.setGravity(Gravity.CENTER, 0, 100); toast.setDuration(Toast.LENGTH_SHORT); toast.setView(view); toast.show(); } public FuDialogCallback getDialogCallback() { return mDialogCallback; } public void setDialogCallback(FuDialogCallback dialogCallback) { mDialogCallback = dialogCallback; } interface FuDialogCallback { void onDismiss(boolean enableFu); } }