From 3db012d979a3671179049e03e8bd658ffc2d4bd2 Mon Sep 17 00:00:00 2001 From: itgaojian Date: Fri, 28 Jul 2023 14:49:15 +0800 Subject: [PATCH] =?UTF-8?q?Toast=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tengshisoft/BaseMyApplication.java | 6 +- cm_utils/build.gradle | 2 + .../cm_utils/utils/ExceptionHandler.java | 12 +- .../utils/toast/ToastLogInterceptor.java | 2 +- .../cm_utils/utils/toast/ToastUtils.java | 280 +----------------- .../cultural/activitys/base/MainActivity.java | 4 + 6 files changed, 28 insertions(+), 278 deletions(-) diff --git a/app/src/main/java/com/tengshisoft/BaseMyApplication.java b/app/src/main/java/com/tengshisoft/BaseMyApplication.java index 9d2f318..47679f8 100755 --- a/app/src/main/java/com/tengshisoft/BaseMyApplication.java +++ b/app/src/main/java/com/tengshisoft/BaseMyApplication.java @@ -9,11 +9,11 @@ import com.alibaba.android.arouter.launcher.ARouter; import com.baidu.location.BDLocation; import com.baidu.mapapi.CoordType; import com.baidu.mapapi.SDKInitializer; +import com.hjq.toast.Toaster; import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.footer.ClassicsFooter; import com.sucstepsoft.cm_utils.core.widget.refresh.CustomRefreshHeader; import com.sucstepsoft.cm_utils.utils.UserLgUtils; -import com.sucstepsoft.cm_utils.utils.toast.ToastUtils; import com.tengshisoft.cultural.R; import cn.jiguang.share.android.api.JShareInterface; @@ -46,8 +46,8 @@ public class BaseMyApplication extends Application { initShare(); initBaiduMap(); - ToastUtils.init(this); - ToastUtils.setGravity(Gravity.TOP, 0, 80); + Toaster.init(this); + Toaster.setGravity(Gravity.TOP, 0, 100); getConfigCityCode(); } diff --git a/cm_utils/build.gradle b/cm_utils/build.gradle index 6ceaf96..bb2cf69 100755 --- a/cm_utils/build.gradle +++ b/cm_utils/build.gradle @@ -76,4 +76,6 @@ dependencies { implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' //高斯模糊 api 'com.github.mmin18:realtimeblurview:1.2.1' + api 'com.github.getActivity:Toaster:12.3' + } diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/ExceptionHandler.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/ExceptionHandler.java index 47e42f0..d7079fa 100755 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/ExceptionHandler.java +++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/ExceptionHandler.java @@ -29,19 +29,23 @@ public class ExceptionHandler { if (!TextUtils.isEmpty(errorBean.getMsg())) { ToastUtils.showShort(errorBean.getMsg()); } else { - ToastUtils.showShort(errorBean.getMessage()); + if (!TextUtils.isEmpty(errorBean.getMessage())) { + ToastUtils.showShort(errorBean.getMessage()); + } } + } else { + ToastUtils.showShort("网络错误(500)"); } } catch (Exception e1) { - ToastUtils.showShort("网络错误,请稍后重试"); + ToastUtils.showShort("网络错误(500)"); e1.printStackTrace(); } } else if (throwable instanceof JsonParseException) { - ToastUtils.showShort("解析错误"); + ToastUtils.showShort("解析错误(451)"); } else if (throwable instanceof SocketTimeoutException) { ToastUtils.showShort("网络连接超时"); } else { - ToastUtils.showShort("网络错误,请稍后重试"); + ToastUtils.showShort("网络错误(500)"); } } diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/toast/ToastLogInterceptor.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/toast/ToastLogInterceptor.java index b330966..ad31d13 100755 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/toast/ToastLogInterceptor.java +++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/toast/ToastLogInterceptor.java @@ -50,7 +50,7 @@ public class ToastLogInterceptor implements IToastInterceptor { } protected boolean isLogEnable() { - return ToastUtils.isDebugMode(); + return false; } protected void printLog(String msg) { diff --git a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/toast/ToastUtils.java b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/toast/ToastUtils.java index 72364fb..7de19e3 100755 --- a/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/toast/ToastUtils.java +++ b/cm_utils/src/main/java/com/sucstepsoft/cm_utils/utils/toast/ToastUtils.java @@ -5,6 +5,7 @@ import android.content.pm.ApplicationInfo; import android.content.res.Resources; import android.widget.Toast; +import com.hjq.toast.Toaster; import com.sucstepsoft.cm_utils.utils.toast.config.IToastInterceptor; import com.sucstepsoft.cm_utils.utils.toast.config.IToastStrategy; import com.sucstepsoft.cm_utils.utils.toast.config.IToastStyle; @@ -23,141 +24,20 @@ import com.sucstepsoft.cm_utils.utils.toast.style.WhiteToastStyle; @SuppressWarnings("unused") public final class ToastUtils { - /** - * Application 对象 - */ - private static Application sApplication; - - /** - * Toast 处理策略 - */ - private static IToastStrategy sToastStrategy; - - /** - * Toast 样式 - */ - private static IToastStyle sToastStyle; - - /** - * Toast 拦截器(可空) - */ - private static IToastInterceptor sToastInterceptor; - - /** - * 调试模式 - */ - private static Boolean sDebugMode; - - /** - * 不允许被外部实例化 - */ - private ToastUtils() { - } - - /** - * 初始化 Toast,需要在 Application.create 中初始化 - * - * @param application 应用的上下文 - */ - public static void init(Application application) { - init(application, sToastStyle); - } - - public static void init(Application application, IToastStrategy strategy) { - init(application, strategy, null); - } - - public static void init(Application application, IToastStyle style) { - init(application, null, style); - } - - /** - * 初始化 Toast - * - * @param application 应用的上下文 - * @param strategy Toast 策略 - * @param style Toast 样式 - */ - public static void init(Application application, IToastStrategy strategy, IToastStyle style) { - sApplication = application; - - // 初始化 Toast 策略 - if (strategy == null) { - strategy = new ToastStrategy(); - } - setStrategy(strategy); - - // 设置 Toast 样式 - if (style == null) { - style = new BlackToastStyle(); - } - setStyle(style); - } - - /** - * 判断当前框架是否已经初始化 - */ - public static boolean isInit() { - return sApplication != null && sToastStrategy != null && sToastStyle != null; - } - - /** - * 延迟显示 Toast - */ - - public static void delayedShow(int id, long delayMillis) { - delayedShow(stringIdToCharSequence(id), delayMillis); - } - - public static void delayedShow(Object object, long delayMillis) { - delayedShow(objectToCharSequence(object), delayMillis); - } - - public static void delayedShow(CharSequence text, long delayMillis) { - ToastParams params = new ToastParams(); - params.text = text; - params.delayMillis = delayMillis; - show(params); - } - - /** - * debug 模式下显示 Toast - */ - - public static void debugShow(int id) { - debugShow(stringIdToCharSequence(id)); - } - - public static void debugShow(Object object) { - debugShow(objectToCharSequence(object)); - } - - public static void debugShow(CharSequence text) { - if (!isDebugMode()) { - return; - } - ToastParams params = new ToastParams(); - params.text = text; - show(params); - } - /** * 显示一个短 Toast */ public static void showShort(int id) { - showShort(stringIdToCharSequence(id)); + Toaster.showLong(id); } public static void showShort(Object object) { - showShort(objectToCharSequence(object)); + Toaster.showLong(object); } public static void showShort(CharSequence text) { - ToastParams params = new ToastParams(); - params.text = text; - params.duration = Toast.LENGTH_SHORT; - show(params); + Toaster.showShort(text); } /** @@ -165,18 +45,15 @@ public final class ToastUtils { */ public static void showLong(int id) { - showLong(stringIdToCharSequence(id)); + Toaster.showLong(id); } public static void showLong(Object object) { - showLong(objectToCharSequence(object)); + Toaster.showLong(object); } public static void showLong(CharSequence text) { - ToastParams params = new ToastParams(); - params.text = text; - params.duration = Toast.LENGTH_LONG; - show(params); + Toaster.showLong(text); } /** @@ -184,151 +61,14 @@ public final class ToastUtils { */ public static void show(int id) { - show(stringIdToCharSequence(id)); + Toaster.show(id); } public static void show(Object object) { - show(objectToCharSequence(object)); + Toaster.show(object); } public static void show(CharSequence text) { - ToastParams params = new ToastParams(); - params.text = text; - show(params); - } - - public static void show(ToastParams params) { - // 如果是空对象或者空文本就不显示 - if (params.text == null || params.text.length() == 0) { - return; - } - - if (params.strategy == null) { - params.strategy = sToastStrategy; - } - - if (params.interceptor == null) { - if (sToastInterceptor == null) { - sToastInterceptor = new ToastLogInterceptor(); - } - params.interceptor = sToastInterceptor; - } - - if (params.style == null) { - params.style = sToastStyle; - } - - if (params.interceptor.intercept(params)) { - return; - } - - if (params.duration == -1) { - params.duration = params.text.length() > 20 ? Toast.LENGTH_LONG : Toast.LENGTH_SHORT; - } - - params.strategy.showToast(params); - } - - /** - * 取消吐司的显示 - */ - public static void cancel() { - sToastStrategy.cancelToast(); - } - - /** - * 设置吐司的位置 - * - * @param gravity 重心 - */ - public static void setGravity(int gravity) { - setGravity(gravity, 0, 0); - } - - public static void setGravity(int gravity, int xOffset, int yOffset) { - setGravity(gravity, xOffset, yOffset, 0, 0); - } - - public static void setGravity(int gravity, int xOffset, int yOffset, float horizontalMargin, float verticalMargin) { - sToastStyle = new LocationToastStyle(sToastStyle, gravity, xOffset, yOffset, horizontalMargin, verticalMargin); - } - - /** - * 给当前 Toast 设置新的布局 - */ - public static void setView(int id) { - if (id <= 0) { - return; - } - setStyle(new CustomViewToastStyle(id, sToastStyle.getGravity(), - sToastStyle.getXOffset(), sToastStyle.getYOffset(), - sToastStyle.getHorizontalMargin(), sToastStyle.getVerticalMargin())); - } - - /** - * 初始化全局的 Toast 样式 - * - * @param style 样式实现类,框架已经实现两种不同的样式 - * 黑色样式:{@link BlackToastStyle} - * 白色样式:{@link WhiteToastStyle} - */ - public static void setStyle(IToastStyle style) { - sToastStyle = style; - } - - public static IToastStyle getStyle() { - return sToastStyle; - } - - /** - * 设置 Toast 显示策略 - */ - public static void setStrategy(IToastStrategy strategy) { - sToastStrategy = strategy; - sToastStrategy.registerStrategy(sApplication); - } - - public static IToastStrategy getStrategy() { - return sToastStrategy; - } - - /** - * 设置 Toast 拦截器(可以根据显示的内容决定是否拦截这个Toast) - * 场景:打印 Toast 内容日志、根据 Toast 内容是否包含敏感字来动态切换其他方式显示(这里可以使用我的另外一套框架 XToast) - */ - public static void setInterceptor(IToastInterceptor interceptor) { - sToastInterceptor = interceptor; - } - - public static IToastInterceptor getInterceptor() { - return sToastInterceptor; - } - - /** - * 是否为调试模式 - */ - public static void setDebugMode(boolean debug) { - sDebugMode = debug; - } - - static boolean isDebugMode() { - if (sDebugMode == null) { - sDebugMode = (sApplication.getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0; - } - return sDebugMode; - } - - private static CharSequence stringIdToCharSequence(int id) { - try { - // 如果这是一个资源 id - return sApplication.getResources().getText(id); - } catch (Resources.NotFoundException ignored) { - // 如果这是一个 int 整数 - return String.valueOf(id); - } - } - - private static CharSequence objectToCharSequence(Object object) { - return object != null ? object.toString() : "null"; + Toaster.show(text); } } \ No newline at end of file diff --git a/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/activitys/base/MainActivity.java b/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/activitys/base/MainActivity.java index 5df7d46..8637e26 100755 --- a/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/activitys/base/MainActivity.java +++ b/modulemain/src/main/java/com/tengshisoft/mudulemain/cultural/activitys/base/MainActivity.java @@ -35,6 +35,7 @@ import com.sucstepsoft.cm_utils.core.retrofit_net.bean.VersionBean; import com.sucstepsoft.cm_utils.core.widget.base.BaseActivity; import com.sucstepsoft.cm_utils.core.widget.base.FragmentUtils; import com.sucstepsoft.cm_utils.core.widget.views.CenterDialogUpdateView; +import com.sucstepsoft.cm_utils.utils.ExceptionHandler; import com.sucstepsoft.cm_utils.utils.FileUtils; import com.sucstepsoft.cm_utils.utils.LogUtils; import com.sucstepsoft.cm_utils.utils.PermissionUtils; @@ -295,11 +296,14 @@ public class MainActivity extends BaseActivity { @Override public void onNext(Boolean baseSuccessBean) { + LogUtils.e(baseSuccessBean); UserLgUtils.putIsPublicCode(baseSuccessBean); } @Override public void onError(Throwable e) { + e.printStackTrace(); + ExceptionHandler.handleException(e); } @Override