CookieBarPermiss.java
5.72 KB
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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
package com.wd.common.notify;
import android.app.Activity;
import android.view.Gravity;
import android.view.ViewGroup;
import androidx.annotation.ColorRes;
import androidx.annotation.StringRes;
/**
* CookieBar is a lightweight library for showing a brief message at the top or bottom of the screen.
* <p>
* <pre>
* new CookieBar
* .Builder(MainActivity.this)
* .setTitle("TITLE")
* .setMessage("MESSAGE")
* .setAction(new OnActionClickListener() {})
* .show();
* </pre>
* <p>
*/
public class CookieBarPermiss {
private static final String TAG = "cookie";
private CookiePermiss cookieView;
private Activity context;
private CookieBarPermiss() {
}
private CookieBarPermiss(Activity context, Params params) {
this.context = context;
cookieView = new CookiePermiss(context);
cookieView.setParams(params);
}
public void show() {
if (cookieView != null) {
final ViewGroup decorView = (ViewGroup) context.getWindow().getDecorView();
final ViewGroup content = decorView.findViewById(android.R.id.content);
if (cookieView.getParent() == null) {
if (cookieView.getLayoutGravity() == Gravity.BOTTOM) {
content.addView(cookieView);
} else {
decorView.addView(cookieView);
}
}
}
}
/**
* 提醒弹框消失
*/
public void dismiss() {
if (cookieView != null) {
cookieView.destroy();
}
}
public static class Builder {
private Params params = new Params();
public Activity activity;
public Builder(Activity activity) {
this.activity = activity;
}
public Builder setTitle(String title) {
params.title = title;
return this;
}
public Builder setTitle(@StringRes int resId) {
params.title = activity.getString(resId);
return this;
}
public Builder setMessage(String message) {
params.message = message;
return this;
}
public Builder setMessage(@StringRes int resId) {
params.message = activity.getString(resId);
return this;
}
public Builder setImgUrl(String imgUrl) {
params.imgUrl = imgUrl;
return this;
}
public Builder setPushScene(int pushScene) {
params.pushScene = pushScene;
return this;
}
public Builder setLiveStatus(String liveStatus) {
params.liveStatus = liveStatus;
return this;
}
public Builder setOrder(boolean isOrder) {
params.isOrder = isOrder;
return this;
}
public Builder setPlanStartTime(long planStartTimeLong) {
params.planStartTimeLong = planStartTimeLong;
return this;
}
public Builder setTargetId(String targetId) {
params.targetId = targetId;
return this;
}
public Builder setTargetRelIdId(String targetRelIdId) {
params.targetRelIdId = targetRelIdId;
return this;
}
public Builder setDuration(long duration) {
params.duration = duration;
return this;
}
public Builder setTitleColor(@ColorRes int titleColor) {
params.titleColor = titleColor;
return this;
}
public Builder setMessageColor(@ColorRes int messageColor) {
params.messageColor = messageColor;
return this;
}
public Builder setBackgroundColor(@ColorRes int backgroundColor) {
params.backgroundColor = backgroundColor;
return this;
}
public Builder setActionListener(OnActionClickListener onActionClickListener) {
params.onActionClickListener = onActionClickListener;
return this;
}
public Builder setDismissListener(OnDismissListener onDismissListener){
params.onDismissListener = onDismissListener;
return this;
}
public Builder setLayoutGravity(int layoutGravity) {
params.layoutGravity = layoutGravity;
return this;
}
public CookieBarPermiss create() {
CookieBarPermiss cookie = new CookieBarPermiss(activity, params);
return cookie;
}
public CookieBarPermiss show() {
final CookieBarPermiss cookie = create();
cookie.show();
return cookie;
}
}
public static class Params {
public String title;
public String message;
public String imgUrl;
public OnActionClickListener onActionClickListener;
public OnDismissListener onDismissListener;
public int backgroundColor;
public int titleColor;
public int messageColor;
public long duration = 2000;
public int layoutGravity = Gravity.TOP;
/**
* 推送场景:pushScene:1:直播提醒;2:用户订阅;3:普通站内通知 0是普通推送 ,5是自定义定位权限提醒
*/
public int pushScene;
/**
* 直播状态"liveStatus":"wait" ,"running"
*
*/
public String liveStatus;
/**
* 是否预约,true已预约
*/
public boolean isOrder;
/**
* 开播时间戳
*/
public long planStartTimeLong;
/**
* 直播Id
*/
public String targetId;
/**
* 直播关系Id
*/
public String targetRelIdId;
}
}