Skip to content

Commit ac83796

Browse files
author
Ttt
committed
1.增加新的 DevToast 工具类(专门解决, 无通知权限 Toast 不显示问题),并且增加过滤控制、自定义View、样式等功能
2.发布 1.2.7 Former-commit-id: df77895
1 parent 07f6263 commit ac83796

File tree

10 files changed

+1760
-4
lines changed

10 files changed

+1760
-4
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
f8e9582b1184bdf2e9bbfa26c36b24eda418d99d
1+
afa20426a77085a437764714faac09fd61540df7

DevLibUtils/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apply plugin: 'com.android.library'
22

3-
def dev_utils_version = "1.2.6";
3+
def dev_utils_version = "1.2.7";
44

55
android {
66
compileSdkVersion 28

DevLibUtils/src/main/java/dev/DevUtils.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import dev.utils.app.cache.DevCache;
2828
import dev.utils.app.logger.DevLoggerUtils;
2929
import dev.utils.app.share.SharedUtils;
30+
import dev.utils.app.toast.toaster.DevToast;
3031

3132
/**
3233
* detail: 开发工具类
@@ -80,6 +81,8 @@ public static void init(Context context) {
8081
AnalysisRecordUtils.init(context);
8182
// 初始化 DevLogger 配置
8283
DevLoggerUtils.init(context);
84+
// 初始化 Toast
85+
DevToast.init(sApplication);
8386
}
8487

8588
/**
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
package dev.utils.app.toast.toaster;
2+
3+
import android.graphics.Color;
4+
import android.graphics.Typeface;
5+
import android.graphics.drawable.Drawable;
6+
import android.text.TextUtils;
7+
8+
/**
9+
* detail: Toast 默认样式
10+
* Created by Ttt
11+
*/
12+
public class DefaultToastStyle implements IToast.Style {
13+
14+
/**
15+
* Toast 的重心
16+
* @return
17+
*/
18+
@Override
19+
public int getGravity() {
20+
return 0;
21+
}
22+
23+
/**
24+
* X轴偏移
25+
* @return
26+
*/
27+
@Override
28+
public int getXOffset() {
29+
return 0;
30+
}
31+
32+
/**
33+
* Y轴偏移
34+
* @return
35+
*/
36+
@Override
37+
public int getYOffset() {
38+
return 0;
39+
}
40+
41+
/**
42+
* 获取水平边距
43+
* @return
44+
*/
45+
@Override
46+
public int getHorizontalMargin() {
47+
return 0;
48+
}
49+
50+
/**
51+
* 获取垂直边距
52+
* @return
53+
*/
54+
@Override
55+
public int getVerticalMargin() {
56+
return 0;
57+
}
58+
59+
/**
60+
* Toast Z轴坐标阴影
61+
* @return
62+
*/
63+
@Override
64+
public int getZ() {
65+
return 0;
66+
}
67+
68+
/**
69+
* 圆角大小
70+
* @return
71+
*/
72+
@Override
73+
public float getCornerRadius() {
74+
return 5f;
75+
}
76+
77+
/**
78+
* 背景着色颜色
79+
* @return
80+
*/
81+
@Override
82+
public int getBackgroundTintColor() {
83+
return 0xB2000000;
84+
}
85+
86+
/**
87+
* 背景图片
88+
* @return
89+
*/
90+
@Override
91+
public Drawable getBackground() {
92+
return null;
93+
}
94+
95+
// == TextView 相关 ==
96+
97+
/**
98+
* 文本颜色
99+
* @return
100+
*/
101+
@Override
102+
public int getTextColor() {
103+
return Color.WHITE;
104+
}
105+
106+
/**
107+
* 字体大小
108+
* @return
109+
*/
110+
@Override
111+
public float getTextSize() {
112+
return 16f;
113+
}
114+
115+
/**
116+
* 最大行数
117+
* @return
118+
*/
119+
@Override
120+
public int getMaxLines() {
121+
return 0;
122+
}
123+
124+
/**
125+
* Ellipsize 效果
126+
* @return
127+
*/
128+
@Override
129+
public TextUtils.TruncateAt getEllipsize() {
130+
return null;
131+
}
132+
133+
/**
134+
* 字体样式
135+
* @return
136+
*/
137+
@Override
138+
public Typeface getTypeface() {
139+
return Typeface.create("sans-serif-condensed", Typeface.NORMAL);
140+
}
141+
142+
/**
143+
* TextView padding 边距 - new int[] { left, top, right, bottom }
144+
* @return
145+
*/
146+
@Override
147+
public int[] getPadding() {
148+
return new int[] { 25, 10, 25, 10 };
149+
}
150+
}
Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
package dev.utils.app.toast.toaster;
2+
3+
import android.app.Application;
4+
import android.view.View;
5+
6+
/**
7+
* detail: Toast 工具类 (支持子线程弹出 Toast, 处理无通知权限)
8+
* Created by Ttt
9+
* tips:
10+
* 支持子线程弹出 Toast, 可通过开关配置
11+
* 内部解决 Android 7.1.1 崩溃问题
12+
* 已处理 部分ROM 如魅族、小米、三星等关闭应用通知,无法显示 Toast 问题
13+
* ==
14+
* 缺点: 同时间只能显示一个 Toast
15+
*/
16+
public final class DevToast {
17+
18+
private DevToast() {
19+
}
20+
21+
/**
22+
* 包下 IToastImpl 类持有对象
23+
*/
24+
private static final IToast.Operate toast = new IToastImpl();
25+
26+
/**
27+
* 重置默认参数
28+
*/
29+
public static void reset(){
30+
toast.reset();
31+
}
32+
33+
/**
34+
* 设置是否使用 Handler 显示 Toast
35+
* @param isHandler
36+
*/
37+
public static void setIsHandler(boolean isHandler) {
38+
toast.setIsHandler(isHandler);
39+
}
40+
41+
/**
42+
* 设置 Text 为 null 的文本
43+
* @param nullText
44+
*/
45+
public static void setNullText(String nullText) {
46+
toast.setNullText(nullText);
47+
}
48+
49+
/**
50+
* 设置 Toast 文案长度转换 显示时间
51+
* @param textLengthConvertDuration
52+
*/
53+
public static void setTextLength(int textLengthConvertDuration){
54+
toast.setTextLength(textLengthConvertDuration);
55+
}
56+
57+
// =
58+
59+
/**
60+
* Application 初始化调用 (必须调用 -> 内部已经调用)
61+
* @param application
62+
*/
63+
public static void init(Application application) {
64+
toast.init(application);
65+
}
66+
67+
// -- 配置方法 --
68+
69+
/**
70+
* 使用单次 Toast 样式配置
71+
* @param toastStyle Toast 样式
72+
* @return
73+
*/
74+
public static IToast.Operate style(IToast.Style toastStyle) {
75+
return toast.style(toastStyle);
76+
}
77+
78+
/**
79+
* 使用默认 Toast 样式
80+
* @return
81+
*/
82+
public static IToast.Operate defaultStyle() {
83+
return toast.defaultStyle();
84+
}
85+
86+
/**
87+
* 获取 Toast 样式配置
88+
* @return Toast 样式配置
89+
*/
90+
public static IToast.Style getToastStyle() {
91+
return toast.getToastStyle();
92+
}
93+
94+
/**
95+
* 初始化 Toast 样式配置(非单次,一直持续)
96+
* @param toastStyle Toast 样式配置
97+
*/
98+
public static void initStyle(IToast.Style toastStyle) {
99+
toast.initStyle(toastStyle);
100+
}
101+
102+
/**
103+
* 初始化 Toast 过滤器
104+
* @param toastFilter
105+
*/
106+
public static void initToastFilter(IToast.Filter toastFilter) {
107+
toast.initToastFilter(toastFilter);
108+
}
109+
110+
/**
111+
* 设置 Toast 显示的View
112+
* @param view
113+
*/
114+
public static void setView(View view) {
115+
toast.setView(view);
116+
}
117+
118+
/**
119+
* 设置 Toast 显示的View
120+
* @param layoutId
121+
*/
122+
public static void setView(int layoutId) {
123+
toast.setView(layoutId);
124+
}
125+
126+
// ========= 操作方法 =========
127+
128+
/**
129+
* 显示 Toast
130+
* @param content
131+
* @param args
132+
*/
133+
public static void show(String content, Object... args) {
134+
toast.show(content, args);
135+
}
136+
137+
/**
138+
* 显示 R.string.resId Toast
139+
* @param resId
140+
* @param args
141+
*/
142+
public static void show(int resId, Object... args) {
143+
toast.show(resId, args);
144+
}
145+
146+
/**
147+
* 通过 View 显示 Toast
148+
* @param view
149+
*/
150+
public static void show(View view) {
151+
toast.show(view);
152+
}
153+
154+
/**
155+
* 通过 View 显示 Toast
156+
* @param view
157+
* @param duration
158+
*/
159+
public static void show(View view, int duration) {
160+
toast.show(view, duration);
161+
}
162+
163+
// =
164+
165+
/**
166+
* 取消当前显示的 Toast
167+
*/
168+
public static void cancel() {
169+
toast.cancel();
170+
}
171+
}

0 commit comments

Comments
 (0)