admin
2022-01-07 8dfe5354073b700af45d5cb472dd5f003e6f3f25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package com.ysvideo.zhibo.app.ui.video;
 
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.drawable.ColorDrawable;
import android.os.Handler;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.ViewGroup.LayoutParams;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.PopupWindow;
import android.widget.Toast;
 
import com.ysvideo.zhibo.app.R;
import com.ysvideo.zhibo.app.util.LoginUtil;
import com.ysvideo.zhibo.lib.common.util.common.StringUtils;
 
import androidx.fragment.app.FragmentActivity;
 
public class VideoReviewPopupWindow extends PopupWindow {
    private LayoutInflater mInflater;
    private View conentView;
    private EditText tv_review_edit;
    private Button tv_review_deliver;
    private FragmentActivity mContext;
    private String videoId;// 影片ID
    private String thirdType;// 影片类型分辨
    private boolean reviewFlag;// true为评论 false为回复
    private String editHint;// hint文字
 
    public VideoReviewPopupWindow(final FragmentActivity context,
                                  String videoId, String thirdType, final boolean reviewFlag,
                                  String editHint) {
        mContext = context;
        this.videoId = videoId;
        this.thirdType = thirdType;
        this.reviewFlag = reviewFlag;
        mInflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        SharedPreferences preferences = context.getSharedPreferences("user",
                Context.MODE_PRIVATE);
        isLogin = !StringUtils.isEmpty(preferences.getString("LoginUid", ""));
        conentView = mInflater.inflate(R.layout.popupwindow_video_review, null);
        this.setContentView(conentView);
 
        this.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
        // 软键盘不会挡着popupwindow
        this.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
        this.setWidth(LayoutParams.MATCH_PARENT);
        this.setHeight(LayoutParams.WRAP_CONTENT);
 
        this.setFocusable(true);
        this.setOutsideTouchable(false);
        ColorDrawable dw = new ColorDrawable(0000000000);
        this.setBackgroundDrawable(dw);
        this.update();
 
        tv_review_edit = conentView
                .findViewById(R.id.tv_review_edit);
        tv_review_deliver = conentView
                .findViewById(R.id.tv_review_deliver);
 
        if (!StringUtils.isBlank(editHint)) {
            tv_review_edit.setHint(editHint);
        }
 
        tv_review_deliver.setOnClickListener(new OnClickListener() {
 
            @Override
            public void onClick(View v) {
 
                if (isLogin) {
                    if (!StringUtils.isBlank(tv_review_edit.getEditableText()
                            .toString())) {
 
                    } else {
                        Toast.makeText(mContext, "请输入内容", Toast.LENGTH_SHORT)
                                .show();
                    }
                } else {
                    setLogin();
                }
                dismiss();
            }
        });
 
        tv_review_edit.setOnFocusChangeListener(new OnFocusChangeListener() {
 
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus) {
                    setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
                }
            }
        });
 
    }
 
    /**
     * 显示popupWindow
     *
     * @param parent
     */
    public void showPopupWindow(View parent) {
        if (!this.isShowing()) {
            // this.showAsDropDown(parent, 0, 0, Gravity.BOTTOM);
            this.showAtLocation(parent, Gravity.BOTTOM, 0, 0);
            openKeyboard(new Handler(), 200);
        } else {
            this.dismiss();
        }
    }
 
    /**
     * 打开软键盘
     */
    private void openKeyboard(Handler mHandler, int s) {
        mHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
                InputMethodManager imm = (InputMethodManager) mContext
                        .getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
            }
        }, s);
    }
 
    /**
     * 发布评论还是登录
     */
    private boolean isLogin = false;// false为未登录,true为已经为登录状态
 
    /**
     * 登录
     */
    private void setLogin() {
        LoginUtil.goLogin(mContext);
    }
 
 
}