RoomEmojiDialog.java 3.96 KB
package com.chudiangameplay.android.dialog;

import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Rect;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.StyleRes;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewTreeObserver;
import android.view.WindowManager;
import android.view.inputmethod.EditorInfo;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.chudiangameplay.android.R;
import com.chudiangameplay.android.interface_.CommCallBack;
import com.chudiangameplay.android.interface_.OkHttpCallBack;
import com.chudiangameplay.android.manager.API_RoomManager;
import com.chudiangameplay.android.module_im.ui.view.IM_EmojiGridViewV2;
import com.chudiangameplay.android.responce.BaseResponce;
import com.chudiangameplay.android.responce.EmojiInfoResponce;
import com.chudiangameplay.android.tool.Log;
import com.chudiangameplay.android.util.AnimUtil;
import com.chudiangameplay.android.util.StatusBarUtil_Dialog;
import com.chudiangameplay.android.util.Util;
import com.rockerhieu.emojicon.EmojiconEditText;

/**
 * Created by Administrator on 2018/8/29.
 */

public class RoomEmojiDialog extends Dialog implements View.OnClickListener {


    Context context;
    View view_bg;
    IM_EmojiGridViewV2 emojigridview;
    EmojiInfoResponce responce;
    CommCallBack callBack;

    public RoomEmojiDialog(@NonNull Context context, CommCallBack callBack) {
        super(context, R.style.myDialog);
        this.context = context;
        this.callBack = callBack;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_room_emoji);
        initView();
        StatusBarUtil_Dialog.setImmersiveStatusBar(this, true);
    }


    private void initView() {
        view_bg = findViewById(R.id.view_bg);
        view_bg.setOnClickListener(this);
        AnimUtil.fadeIn(view_bg);
        emojigridview = findViewById(R.id.emojigridview);
        getEmoji();
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.view_bg:
                dismissWithAnim();
                break;
            case R.id.ll_content:
                //不处理,只消耗点击事件
                break;
            case R.id.tv_cancel:
                dismissWithAnim();
                break;
        }
    }

    public void dismissWithAnim() {
        if (view_bg.getAnimation() != null) return;
        AnimUtil.fadeOut(view_bg, new CommCallBack() {
            @Override
            public void onResult(Object obj) {
                dismiss();
            }
        });
    }

    @Override
    public void onBackPressed() {
        dismissWithAnim();
    }

    private void getEmoji(){

        API_RoomManager.chat_face(context,  new OkHttpCallBack() {
            @Override
            public void onSuccess(BaseResponce baseResponce) {
                if (BaseResponce.Status_Success.equals(baseResponce.status)) {
                    responce = (EmojiInfoResponce) baseResponce;
                    if (responce.data != null &&responce.data.size() > 0) {
                        emojigridview.setEmojiList(responce.data, new CommCallBack() {
                            @Override
                            public void onResult(Object obj) {
                                if(callBack != null){
                                    callBack.onResult(obj);
                                }
                                dismissWithAnim();
                            }
                        });
                    }
                }
            }

            @Override
            public void onFailure(BaseResponce baseResponce) {
            }
        });
    }
}