FloatingInputPopWindow.java 7.36 KB
package com.cnlive.goldenline.ui.widget;

import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.support.annotation.IdRes;
import android.text.InputFilter;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AnimationUtils;
import android.view.inputmethod.EditorInfo;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.RadioGroup;
import android.widget.TextView;

import com.cnlive.goldenline.R;
import com.cnlive.goldenline.model.EventType;
import com.cnlive.goldenline.ui.base.SingleChoiceAdapter;
import com.cnlive.goldenline.util.LogUtils;
import com.cnlive.goldenline.util.StringUtils;

import org.greenrobot.eventbus.EventBus;

/**
 * Description:直播-选座弹框
 * Created on 2017/3/14
 * Author : 萧
 */
public class FloatingInputPopWindow extends PopupWindow {

    private static final String TAG = "ChooseSeatPopWindow";


    public FloatingInputPopWindow(Context mContext, int height, int textLimit, boolean isShowSettings) {
        if (mContext != null) {
            View view = LayoutInflater.from(mContext).inflate(R.layout.layout_floating_input, null);
            view.setAnimation(AnimationUtils.loadAnimation(mContext, R.anim.seat_selection_bottom_bar_in));
            this.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
            ColorDrawable cd = new ColorDrawable(Color.WHITE);
            this.setBackgroundDrawable(cd);
            this.setHeight(height > 0 ? height : ViewGroup.LayoutParams.WRAP_CONTENT);
            this.setFocusable(true);
            this.setContentView(view);
            this.setOutsideTouchable(false);
            this.setAnimationStyle(R.style.popup_anim_slow);

            final EditText et = (EditText) view.findViewById(R.id.floating_input_et);
            if (textLimit > 0)
                et.setFilters(new InputFilter[]{new InputFilter.LengthFilter(textLimit)});

            et.setOnEditorActionListener(new TextView.OnEditorActionListener() {
                @Override
                public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                    if (actionId == EditorInfo.IME_ACTION_SEND) {
                        LogUtils.LOGE(TAG + " v = " + v);
                        if (v != null) {
                            String s = v.getText().toString();
                            if (!StringUtils.isEmpty(s)) {
                                EventType type = new EventType();
                                type.setType(EventType.EVENT_CHAT_ZHIBO);
                                type.setMsg(s);
                                EventBus.getDefault().post(type);
                                et.setText("");
                            }
                        }
                    }
                    return false;
                }
            });

            ImageView img_setting = (ImageView) view.findViewById(R.id.floating_input_img_settings);
            if (!isShowSettings) {
                img_setting.setVisibility(View.GONE);
            } else {
                final LinearLayout layout_settings = (LinearLayout) view.findViewById(R.id.floating_input_layout_settings);
                img_setting.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        if (layout_settings != null) {
                            if (layout_settings.getVisibility() != View.GONE) {
                                layout_settings.setVisibility(View.GONE);
                            } else if (layout_settings.getVisibility() != View.VISIBLE) {
                                layout_settings.setVisibility(View.VISIBLE);
                            }
                        }
                    }
                });

                RadioGroup rg_loc = (RadioGroup) view.findViewById(R.id.floating_input_rg_location);
                rg_loc.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(RadioGroup group, int checkedId) {
                        switch (checkedId) {
                            case R.id.rg_loc_rb_top:
                                break;
                            case R.id.rg_loc_rb_center:
                                break;
                            case R.id.rg_loc_rb_bottom:
                                break;
                        }
                    }
                });
                MultiRowRadioGroup rg_color = (MultiRowRadioGroup) view.findViewById(R.id.floating_input_rg_color);
                rg_color.setOnCheckedChangeListener(new MultiRowRadioGroup.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(MultiRowRadioGroup group, @IdRes int checkedId) {
                        Log.e(TAG, "rg_color.onCheckedChanged: checkId = " + checkedId);
                    }
                });
//            GridView grid = (GridView) view.findViewById(R.id.floating_input_gridview);
//            List<Drawable> dataList = new ArrayList<>();
//            dataList.add(ResLoader.Drawable(mContext, R.drawable.danmu_color_bg_white));
//            dataList.add(ResLoader.Drawable(mContext, R.drawable.danmu_color_bg_orange));
//            dataList.add(ResLoader.Drawable(mContext, R.drawable.danmu_color_bg_lightyellow));
//            dataList.add(ResLoader.Drawable(mContext, R.drawable.danmu_color_bg_yellow));
//            dataList.add(ResLoader.Drawable(mContext, R.drawable.danmu_color_bg_green));
//            dataList.add(ResLoader.Drawable(mContext, R.drawable.danmu_color_bg_skyblue));
//            dataList.add(ResLoader.Drawable(mContext, R.drawable.danmu_color_bg_blue));
//            dataList.add(ResLoader.Drawable(mContext, R.drawable.danmu_color_bg_purple));
//            ColorAdapter adapter = new ColorAdapter(mContext);
//            grid.setAdapter(adapter);
//            adapter.setData(dataList, 0);
//            grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
//                @Override
//                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//
//                }
//            });
            }
        }
    }

    class ColorAdapter extends SingleChoiceAdapter<Drawable> {

        public ColorAdapter(Context context) {
            super(context);
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder;
            if (convertView == null) {
                convertView = inflater.inflate(R.layout.layout_single_checkbox, parent, false);
                holder = new ViewHolder();
                holder.cb = (CheckBox) convertView.findViewById(R.id.single_cb);
                holder.cb.setButtonDrawable(dataList.get(position));
                convertView.setTag(holder);
            } else {
                holder = (ViewHolder) convertView.getTag();
            }

            holder.cb.setChecked(isSelected.get(position));
            return convertView;
        }

        class ViewHolder {
            CheckBox cb;
        }

    }

}