diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
index 1f71170..4515aa3 100644
--- a/.idea/kotlinc.xml
+++ b/.idea/kotlinc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/baselib/build.gradle b/baselib/build.gradle
index 9ff93df..a462409 100755
--- a/baselib/build.gradle
+++ b/baselib/build.gradle
@@ -92,7 +92,7 @@ dependencies {
api 'me.rosuh:AndroidFilePicker:0.8.3'
//toast
- api 'com.github.getActivity:ToastUtils:9.5'
+ api 'com.github.getActivity:Toaster:12.3'
//图片压缩
api "top.zibin:Luban:$rootProject.ext.lubanVersio"
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/app/BaseAppContext.java b/baselib/src/main/java/com/tenlionsoft/baselib/app/BaseAppContext.java
index 3c43bbb..574c89a 100644
--- a/baselib/src/main/java/com/tenlionsoft/baselib/app/BaseAppContext.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/app/BaseAppContext.java
@@ -6,7 +6,10 @@ import android.net.NetworkInfo;
import android.os.PowerManager;
import android.view.Gravity;
-import com.hjq.toast.ToastUtils;
+import androidx.multidex.MultiDex;
+import androidx.multidex.MultiDexApplication;
+
+import com.hjq.toast.Toaster;
import com.scwang.smart.refresh.footer.ClassicsFooter;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tenlionsoft.baselib.constant.BroadcastConstant;
@@ -15,9 +18,6 @@ import com.tenlionsoft.baselib.core.listener.ScreenListener;
import com.tenlionsoft.baselib.core.widget.refresh.BezierCircleHeader;
import com.tenlionsoft.baselib.utils.LogUtils;
-import androidx.multidex.MultiDex;
-import androidx.multidex.MultiDexApplication;
-
/**
* 作者: adam
* 日期: 2021/10/29 - 9:48 上午
@@ -58,8 +58,8 @@ public class BaseAppContext extends MultiDexApplication {
public void onCreate() {
super.onCreate();
app = this;
- ToastUtils.init(this);
- ToastUtils.setGravity(Gravity.BOTTOM, 0, 100);
+ Toaster.init(this);
+ Toaster.setGravity(Gravity.TOP, 0, 120);
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
isScreenOn = powerManager.isInteractive();
screenTurningOff();
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java b/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java
index 47ef85e..2b4f158 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java
@@ -573,4 +573,8 @@ public class PathConfig {
public static final String PATH_MODULE_COMMON_FRAGMENT_INCIDENT_STATISTICS = "/modulecommon/fragment/incidentLeaderStatistics";//事件统计
public static final String PATH_MODULE_COMMON_FRAGMENT_POPULACE_STATISTICS = "/modulecommon/fragment/populaceLeaderStatistics";//人口统计
public static final String PATH_MODULE_COMMON_FRAGMENT_GRID_STATISTICS = "/modulecommon/fragment/gridLeaderStatistics";//网格统计
+
+ public static final String ACTION_UPDATE_ERROR = "com.tenlionsoft.commandclient.update_error";
+ public static final String ACTION_UPDATE_PROGRESS = "com.tenlionsoft.commandclient.update_progress";
+ public static final String ACTION_UPDATE_SUCCESS = "com.tenlionsoft.commandclient.update_success";
}
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/beans/BallTypeBean.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/beans/BallTypeBean.java
new file mode 100644
index 0000000..c94439b
--- /dev/null
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/beans/BallTypeBean.java
@@ -0,0 +1,22 @@
+package com.tenlionsoft.baselib.core.beans;
+
+public class BallTypeBean {
+ private String typeName;
+ private String typePercent;
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName = typeName;
+ }
+
+ public String getTypePercent() {
+ return typePercent;
+ }
+
+ public void setTypePercent(String typePercent) {
+ this.typePercent = typePercent;
+ }
+}
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/network/update/service/DownloadService.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/network/update/service/DownloadService.java
index 43d1c1a..c7acfc7 100644
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/network/update/service/DownloadService.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/network/update/service/DownloadService.java
@@ -4,19 +4,19 @@ import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
-import com.hjq.toast.ToastUtils;
+import androidx.annotation.Nullable;
+
+import com.tenlionsoft.baselib.utils.ToastUtils;
+import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.network.HttpUtils;
import com.tenlionsoft.baselib.core.network.response.DownloadResponseHandler;
-import com.tenlionsoft.baselib.core.network.update.utils.ApkUtils;
import com.tenlionsoft.baselib.core.network.update.utils.Constants;
-import com.tenlionsoft.baselib.core.network.update.utils.NotificationBarUtil;
import com.tenlionsoft.baselib.core.network.update.utils.NotificationHelper;
import com.tenlionsoft.baselib.core.network.update.utils.StorageUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.io.File;
-import androidx.annotation.Nullable;
-
/**
* 下载服务
*/
@@ -48,33 +48,40 @@ public class DownloadService extends Service {
private void downLoadFile() {
- HttpUtils.getInstance().download(downInfo.getUrl(), downInfo.getSavePath(), downInfo.getApkName(), new DownloadResponseHandler() {
- @Override
- public void onFinish(File download_file) {
- //收起通知栏
- NotificationBarUtil.setNotificationBarVisibility(DownloadService.this, false);
- //安装
- ApkUtils.installAPk(DownloadService.this, download_file);
- notificationHelper.cancel();
- stopSelf();
- }
+ HttpUtils.getInstance()
+ .download(downInfo.getUrl(), downInfo.getSavePath(), downInfo.getApkName(),
+ new DownloadResponseHandler() {
+ @Override
+ public void onFinish(File download_file) {
+ //收起通知栏
+ Intent intent = new Intent();
+ intent.setAction(PathConfig.ACTION_UPDATE_SUCCESS);
+ intent.putExtra("apkFile", download_file);
+ sendBroadcast(intent);
+ stopSelf();
+ }
- @Override
- public void onProgress(long currentBytes, long totalBytes) {
- int progress = (int) ((currentBytes * 1.0 / totalBytes) * 100);
- if (progress != oldProgress) {
- notificationHelper.updateProgress(progress);
- }
- oldProgress = progress;
- }
+ @Override
+ public void onProgress(long currentBytes, long totalBytes) {
+ int progress = (int) ((currentBytes * 1.0 / totalBytes) * 100);
+ if (progress != oldProgress) {
+ Intent intent = new Intent();
+ intent.setAction(PathConfig.ACTION_UPDATE_PROGRESS);
+ intent.putExtra("progress", progress);
+ sendBroadcast(intent);
+ }
+ oldProgress = progress;
+ }
- @Override
- public void onFailure(String error_msg) {
- ToastUtils.show("App下载失败,请稍后重试");
- notificationHelper.cancel();
- stopSelf();
- }
- });
+ @Override
+ public void onFailure(String error_msg) {
+ ToastUtils.show("App下载失败,请稍后重试");
+ Intent intent = new Intent();
+ intent.setAction(PathConfig.ACTION_UPDATE_ERROR);
+ sendBroadcast(intent);
+ stopSelf();
+ }
+ });
}
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java
index eba3c31..0ff0cb8 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/retrofit_net/BaseUrlApi.java
@@ -7,9 +7,9 @@ package com.tenlionsoft.baselib.core.retrofit_net;
*/
public class BaseUrlApi {
- public static final String IP = "http://192.168.0.15:7011/";/* 测试IP */
+ public static final String IP = "http://192.168.0.15:7011/";/* 测试IP */
// public static final String IP = "http://10.25.242.183:80/";/* 测试IP */
-// public static final String IP = "http://www.wlcbsyzl.cn/";/* 正式IP */
+// public static final String IP = "http://www.wlcbsyzl.cn/";/* 正式IP */
public static final String SYS_USERCENTER = "usercenter/";
public static final String SYS_POPULATION = "populationhouse/";/*人口系统*/
public static final String SYS_CASE = "case/";/*事件部件*/
@@ -20,12 +20,13 @@ public class BaseUrlApi {
public static final String SYS_VISITS = "visits/";/*信访系统*/
public static final String BASE_MAIN_IP = IP + SYS_USERCENTER;
-// public static final String BASE_CASE_IP = IP + SYS_CASE;
+ // public static final String BASE_CASE_IP = IP + SYS_CASE;
public static final String BASE_CASE_IP = "http://192.168.0.120:9000/" + SYS_CASE;
- public static final String BASE_CASE_LOCAL_IP="http://49.233.36.36:58099/case/";
+ public static final String BASE_CASE_LOCAL_IP = "http://49.233.36.36:58099/case/";
public static final String BASE_LIBRARY_IP = IP + SYS_LIBRARY;
public static final String BASE_TASK_IP = IP + SYS_TASK;
- public static final String BASE_PERSON_IP = IP + SYS_POPULATION;
+ // public static final String BASE_PERSON_IP = IP + SYS_POPULATION;
+ public static final String BASE_PERSON_IP = "http://192.168.0.115:8080/" + SYS_POPULATION;
public static final String BASE_HOUSE_IP = IP + SYS_HOUSE;
public static final String BASE_SECURITY_IP = IP + SYS_SECURITY;
public static final String BASE_VISITS_IP = IP + SYS_VISITS;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/PhotoActivity.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/PhotoActivity.java
index 20e7902..8b68bc7 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/PhotoActivity.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/PhotoActivity.java
@@ -11,12 +11,13 @@ import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.Target;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.R2;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.photoview.adapter.ImageAdapter;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import java.io.File;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/TakeVideoActivity.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/TakeVideoActivity.java
index 7a9b74d..ecfa6a0 100644
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/TakeVideoActivity.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/TakeVideoActivity.java
@@ -8,7 +8,7 @@ import android.util.Log;
import android.view.View;
import com.alibaba.android.arouter.facade.annotation.Route;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.luck.picture.lib.tools.BitmapUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.R2;
@@ -19,6 +19,7 @@ import com.tenlionsoft.baselib.core.camera.listener.JCameraListener;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.utils.ImageUtils;
import com.tenlionsoft.baselib.utils.LogUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.io.File;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/BaseActivity.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/BaseActivity.java
index 171c109..135a7db 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/BaseActivity.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/BaseActivity.java
@@ -43,11 +43,12 @@ import android.widget.TextView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.widget.views.AfxTextView;
import com.tenlionsoft.baselib.utils.LogUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UserLgUtils;
import java.util.ArrayList;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/ConditionAllAreaAdapter.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/ConditionAllAreaAdapter.java
new file mode 100644
index 0000000..e768228
--- /dev/null
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/ConditionAllAreaAdapter.java
@@ -0,0 +1,56 @@
+package com.tenlionsoft.baselib.core.widget.base;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.tenlionsoft.baselib.R;
+import com.tenlionsoft.baselib.core.beans.AreaSimpleBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 作者: adam
+ * 日期: 2021/10/20 - 11:18 上午
+ * 邮箱: itgaojian@163.com
+ * 描述:区域筛选
+ */
+public class ConditionAllAreaAdapter extends BaseRecyclerAdapter {
+ public List mSelBeans = new ArrayList<>();
+
+ public ConditionAllAreaAdapter(Context ctx, List list) {
+ super(ctx, list);
+ }
+
+ @Override
+ public ConditionHolder createHolder(ViewGroup parent, int viewType) {
+ View view = LayoutInflater.from(mContext).inflate(R.layout.item_all_area_sel, parent, false);
+ return new ConditionHolder(view);
+ }
+
+ @Override
+ public void bindHolder(ConditionHolder holder, int i) {
+ AreaSimpleBean bean = mData.get(i);
+ holder.mTvName.setText(bean.getName());
+ holder.mCbCheck.setOnCheckedChangeListener(null);
+ holder.mTvName.setTextColor(bean.isChecked() ? Color.parseColor("#1296db") : Color.BLACK);
+ holder.mCbCheck.setChecked(bean.isChecked());
+ holder.mCbCheck.setOnCheckedChangeListener((buttonView, isChecked) -> mLis.onItemCheckChange(bean, isChecked, i));
+ if (mLis != null) {
+ holder.itemView.setOnClickListener(v -> mLis.onItemCheckChange(bean, !bean.isChecked(), i));
+ }
+ }
+
+ private OnItemCheckChange mLis;
+
+ public void addOnitemCheckChange(OnItemCheckChange lis) {
+ this.mLis = lis;
+ }
+
+ public interface OnItemCheckChange {
+ void onItemCheckChange(AreaSimpleBean bean, boolean isCheck, int pos);
+ }
+}
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AddCarPersonDialog.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AddCarPersonDialog.java
index 34081a5..7d87db4 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AddCarPersonDialog.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AddCarPersonDialog.java
@@ -19,10 +19,11 @@ import android.widget.TextView;
import com.bigkoo.pickerview.builder.TimePickerBuilder;
import com.bigkoo.pickerview.view.TimePickerView;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.utils.RegexUtils;
import com.tenlionsoft.baselib.utils.TimeUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import androidx.appcompat.widget.SwitchCompat;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AddPersonDialog.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AddPersonDialog.java
index a0c341f..08c68e3 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AddPersonDialog.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AddPersonDialog.java
@@ -21,9 +21,10 @@ import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ImageView;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.utils.RegexUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import androidx.appcompat.widget.SwitchCompat;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AppraiseDialog.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AppraiseDialog.java
index 7b69aca..fc6c1c1 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AppraiseDialog.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AppraiseDialog.java
@@ -16,9 +16,10 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.RatingBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.utils.RegexUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import androidx.appcompat.widget.AppCompatRatingBar;
import androidx.appcompat.widget.SwitchCompat;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AreaChooseDialog.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AreaChooseDialog.java
index a49b91d..f4f4d22 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AreaChooseDialog.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AreaChooseDialog.java
@@ -17,12 +17,13 @@ import android.widget.TextView;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.AreaBean;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/BallView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/BallView.java
new file mode 100644
index 0000000..24901d5
--- /dev/null
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/BallView.java
@@ -0,0 +1,232 @@
+package com.tenlionsoft.baselib.core.widget.views;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Rect;
+import android.util.AttributeSet;
+import android.view.View;
+
+import androidx.annotation.Nullable;
+
+import com.tenlionsoft.baselib.core.beans.BallTypeBean;
+import com.tenlionsoft.baselib.utils.ConvertUtils;
+import com.tenlionsoft.baselib.utils.LogUtils;
+import com.tenlionsoft.baselib.utils.RandomColor;
+
+import java.util.List;
+import java.util.Random;
+
+public class BallView extends View {
+
+ private Random mRandom;
+
+
+ // private int mCount = 1; // 小球个数
+ private int maxRadius; // 小球最大半径
+ private int minRadius; // 小球最小半径
+ private int minSpeed = 1; // 小球最小移动速度
+ private int maxSpeed = 1; // 小球最大移动速度
+
+ private int mWidth = 200;
+ private int mHeight = 200;
+ private List mDatas;
+
+ public Ball[] mBalls; // 用来保存所有小球的数组
+
+ public BallView(Context context) {
+ super(context);
+ init();
+ }
+
+ public BallView(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public BallView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ public BallView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init();
+ }
+
+ public void init() {
+ // 初始化所有球(设置颜色和画笔, 初始化移动的角度)
+ mRandom = new Random();
+ // 圆心和半径测量的时候才设置
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ mWidth = resolveSize(mWidth, widthMeasureSpec);
+ mHeight = resolveSize(mHeight, heightMeasureSpec);
+ setMeasuredDimension(mWidth, mHeight);
+ }
+
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ long startTime = System.currentTimeMillis();
+ if (mDatas != null && mDatas.size() > 0) {
+ // 先画出所有圆
+ for (int i = 0; i < mDatas.size(); i++) {
+ Ball ball = mBalls[i];
+ canvas.drawCircle(ball.cx, ball.cy, ball.radius, ball.paint);
+ //计算文章高度
+ canvas.drawText(ball.bigTxt, ball.cx, ball.cy, ball.bigPaint);
+
+ Rect smallRect = new Rect();
+ ball.smallPaint.getTextBounds(ball.smallTxt, 0, ball.smallTxt.length(), smallRect);
+ int smallHeight = smallRect.height();
+ canvas.drawText(ball.smallTxt, ball.cx, ball.cy + smallHeight + 5, ball.smallPaint);
+ }
+
+ // 球碰撞边界
+ for (int i = 0; i < mDatas.size(); i++) {
+ Ball ball = mBalls[i];
+ collisionDetectingAndChangeSpeed(ball); // 碰撞边界的计算
+ ball.move(); // 移动
+ }
+
+ long stopTime = System.currentTimeMillis();
+ long runTime = stopTime - startTime;
+ //移动动画 16毫秒执行一次
+ postInvalidateDelayed(Math.abs(runTime - 16));
+ } else {
+ Paint emptyPaint = new Paint();
+ emptyPaint.setTextAlign(Paint.Align.CENTER);
+ emptyPaint.setColor(Color.parseColor("#FFA900"));
+ emptyPaint.setStyle(Paint.Style.FILL);
+ emptyPaint.setTextSize(ConvertUtils.sp2px(14f));
+ canvas.drawText("暂无数据", canvas.getHeight() / 2, canvas.getWidth() / 2, emptyPaint);
+ }
+ }
+
+
+ // 判断球是否碰撞碰撞边界
+ public void collisionDetectingAndChangeSpeed(Ball ball) {
+ int left = getLeft();
+ int top = getTop();
+ int right = getRight();
+ int bottom = getBottom();
+
+ float speedX = ball.vx;
+ float speedY = ball.vy;
+
+ // 碰撞左右,X的速度取反。 speed的判断是防止重复检测碰撞,然后黏在墙上了=。=
+ if (ball.left() <= left && speedX < 0) {
+ ball.vx = -ball.vx;
+ } else if (ball.top() <= top && speedY < 0) {
+ ball.vy = -ball.vy;
+ } else if (ball.right() >= right && speedX > 0) {
+ ball.vx = -ball.vx;
+ } else if (ball.bottom() >= bottom && speedY > 0) {
+ ball.vy = -ball.vy;
+ }
+ }
+
+ /**
+ * 设置数据
+ */
+ public void setData(List beans) {
+ mDatas = beans;
+
+ if (mDatas == null || mDatas.size() == 0) {
+ invalidate();
+ } else {
+ RandomColor randomColor = new RandomColor(); // 随机生成好看的颜色
+ maxRadius = mWidth / mDatas.size();
+ minRadius = maxRadius / 2;
+ LogUtils.e("宽度:" + mWidth + "\n最大半径:" + maxRadius + "\n最小半径:" + minRadius);
+ mBalls = new Ball[mDatas.size()];
+ for (int i = 0; i < mDatas.size(); i++) {
+ mBalls[i] = new Ball();
+ // 设置画笔
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ paint.setColor(randomColor.randomColor());
+ paint.setStyle(Paint.Style.FILL);
+ paint.setAlpha(180);
+ paint.setStrokeWidth(0);
+ //文字画笔
+ Paint strPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ strPaint.setColor(Color.WHITE);
+ strPaint.setStyle(Paint.Style.FILL);
+ strPaint.setTextSize(ConvertUtils.sp2px(10));
+ strPaint.setTextAlign(Paint.Align.CENTER);
+
+ Paint bigPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ bigPaint.setColor(Color.WHITE);
+ bigPaint.setStyle(Paint.Style.FILL);
+ bigPaint.setTextSize(ConvertUtils.sp2px(12));
+ bigPaint.setTextAlign(Paint.Align.CENTER);
+ // 设置速度
+ float speedX = (mRandom.nextInt(maxSpeed - minSpeed + 1) + 5) / 10f;
+ float speedY = (mRandom.nextInt(maxSpeed - minSpeed + 1) + 5) / 10f;
+ mBalls[i].paint = paint;
+ mBalls[i].smallPaint = strPaint;
+ mBalls[i].bigPaint = bigPaint;
+ mBalls[i].vx = mRandom.nextBoolean() ? speedX : -speedX;
+ mBalls[i].vy = mRandom.nextBoolean() ? speedY : -speedY;
+ mBalls[i].smallTxt = mDatas.get(i).getTypePercent();
+ mBalls[i].bigTxt = mDatas.get(i).getTypeName();
+ }
+
+ // 初始化圆的半径和圆心
+ for (int i = 0; i < mBalls.length; i++) {
+ //半径根据文字的长度进行缩放
+ Rect txtRect = new Rect();
+ mBalls[i].bigPaint.getTextBounds(mBalls[i].bigTxt, 0, mBalls[i].bigTxt.length(), txtRect);
+
+// mBalls[i].radius = mRandom.nextInt(maxRadius + 1 - minRadius) + minRadius;
+ mBalls[i].radius = txtRect.width() / 2 + mRandom.nextInt(15) + 20;
+ mBalls[i].cx = mRandom.nextInt(mWidth - mBalls[i].radius) + mBalls[i].radius;
+ mBalls[i].cy = mRandom.nextInt(mHeight - mBalls[i].radius) + mBalls[i].radius;
+ }
+
+ invalidate();
+ }
+ }
+
+
+ class Ball {
+ int radius; // 半径
+ float cx; // 圆心
+ float cy; // 圆心
+ float vx; // X轴速度
+ float vy; // Y轴速度
+ Paint paint;
+ Paint smallPaint;
+ Paint bigPaint;
+ String bigTxt;
+ String smallTxt;
+
+ // 移动
+ void move() {
+ //向角度的方向移动,偏移圆心
+ cx += vx;
+ cy += vy;
+ }
+
+ int left() {
+ return (int) (cx - radius);
+ }
+
+ int right() {
+ return (int) (cx + radius);
+ }
+
+ int bottom() {
+ return (int) (cy + radius);
+ }
+
+ int top() {
+ return (int) (cy - radius);
+ }
+ }
+}
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/BaseAreaListDialog.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/BaseAreaListDialog.java
index 86556fb..ba9a8f7 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/BaseAreaListDialog.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/BaseAreaListDialog.java
@@ -18,9 +18,10 @@ import android.view.WindowManager;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.core.beans.UserLoginBean;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UserInfoSPUtils;
import java.lang.reflect.Type;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/ButtomDialogCommentView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/ButtomDialogCommentView.java
index 940f4d0..d29ffd1 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/ButtomDialogCommentView.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/ButtomDialogCommentView.java
@@ -17,10 +17,11 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import com.bumptech.glide.Glide;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.core.beans.AddPhotoBean;
import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi;
+import com.tenlionsoft.baselib.utils.ToastUtils;
/**
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterBaseInputView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterBaseInputView.java
index fc3ff47..aed83f2 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterBaseInputView.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterBaseInputView.java
@@ -16,8 +16,9 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import com.bigkoo.pickerview.view.TimePickerView;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.text.SimpleDateFormat;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterChooseAreaDialogView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterChooseAreaDialogView.java
index d20a837..de71621 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterChooseAreaDialogView.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterChooseAreaDialogView.java
@@ -17,13 +17,14 @@ import android.widget.TextView;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.AreaBean;
import com.tenlionsoft.baselib.core.beans.DicBean;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputChooseView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputChooseView.java
index 9376426..6957f6b 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputChooseView.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputChooseView.java
@@ -17,8 +17,9 @@ import android.widget.EditText;
import android.widget.RadioGroup;
import com.bigkoo.pickerview.view.TimePickerView;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.text.SimpleDateFormat;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputView.java
index 7abab9e..41ac343 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputView.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputView.java
@@ -15,8 +15,9 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import com.bigkoo.pickerview.view.TimePickerView;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.text.SimpleDateFormat;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputViewBase.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputViewBase.java
index 200092e..adbfee7 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputViewBase.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterInputViewBase.java
@@ -14,8 +14,9 @@ import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
+import com.tenlionsoft.baselib.utils.ToastUtils;
/**
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterProgressUpdateView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterProgressUpdateView.java
new file mode 100755
index 0000000..1d7efd0
--- /dev/null
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterProgressUpdateView.java
@@ -0,0 +1,146 @@
+package com.tenlionsoft.baselib.core.widget.views;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.graphics.Rect;
+import android.graphics.drawable.ColorDrawable;
+import android.os.Bundle;
+import android.util.DisplayMetrics;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.TouchDelegate;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.EditText;
+import android.widget.ImageView;
+
+import com.tenlionsoft.baselib.R;
+
+
+/**
+ * 作者 : Adam on 2018/7/23.
+ * 邮箱 : itgaojian@163.com
+ * 描述 : 升级进度条
+ */
+public class CenterProgressUpdateView extends Dialog {
+
+ private View view;
+ private Context context;
+ private OnChoseListener mListener;
+ public ImageView mIvImg;
+ private String content;
+ private CircleProgress mCpProgress;
+
+ private CenterProgressUpdateView(Context context, String content) {
+ super(context, R.style.dialog_center);
+ this.context = context;
+ this.content = content;
+ }
+
+ /**
+ * 将view的点击区域放大
+ *
+ * @param view 需要放大的view
+ * @param expandTouchWidth 放大的宽度
+ */
+ public void setTouchDelegate(final View view, final int expandTouchWidth) {
+ final View parentView = (View) view.getParent();
+ parentView.post(() -> {
+ final Rect rect = new Rect();
+ view.getHitRect(rect);
+ rect.top -= expandTouchWidth;
+ rect.bottom += expandTouchWidth;
+ rect.left -= expandTouchWidth;
+ rect.right += expandTouchWidth;
+ TouchDelegate touchDelegate = new TouchDelegate(rect, view);
+ parentView.setTouchDelegate(touchDelegate);
+ });
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ view = LayoutInflater.from(context).inflate(R.layout.dialog_center_update_progress, null);
+ mCpProgress = view.findViewById(R.id.cp_progress);
+ setContentView(view);
+ setCancelable(false);
+ setCanceledOnTouchOutside(false);
+ DisplayMetrics dm = new DisplayMetrics();
+ WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
+ windowManager.getDefaultDisplay().getMetrics(dm);
+ Window window = this.getWindow();
+ window.setGravity(Gravity.CENTER);
+ window.setWindowAnimations(R.style.Dialog_ChoseFile);
+ WindowManager.LayoutParams params = window.getAttributes();
+ params.width = (int) (dm.widthPixels * 0.7);
+ params.height = WindowManager.LayoutParams.WRAP_CONTENT;
+ window.setAttributes(params);
+ window.setBackgroundDrawable(new ColorDrawable());
+ }
+
+ /**
+ * 设置当前进度
+ */
+ public void setCurrentProgress(int progress) {
+ if (mCpProgress != null) {
+ mCpProgress.setCurrentProgress(progress);
+ }
+ }
+
+ private void showSoftKeyBoardDialog(EditText editText) {
+ if (editText != null) {
+ editText.setFocusable(true);
+ editText.setFocusableInTouchMode(true);
+ //请求获得焦点
+ editText.requestFocus();
+ //调用系统输入法
+ InputMethodManager inputManager =
+ (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
+ inputManager.showSoftInput(editText, 0);
+ }
+ }
+
+ public void addOnChoseListener(OnChoseListener listener) {
+ this.mListener = listener;
+ }
+
+ /**
+ * 选择
+ *
+ * @param i
+ */
+ private void choseType(int i) {
+ if (mListener != null) {
+ switch (i) {
+ case 1:
+ mListener.doUpdate();
+ break;
+ }
+ }
+ this.dismiss();
+ }
+
+ public interface OnChoseListener {
+ void doUpdate();
+ }
+
+ public static class DialogBuilder {
+ private Context mContext;
+ private String content;
+
+ public DialogBuilder(Context context) {
+ this.mContext = context;
+ }
+
+ public CenterProgressUpdateView build() {
+ return new CenterProgressUpdateView(this.mContext, this.content);
+ }
+
+ public DialogBuilder setContent(String content) {
+ this.content = content;
+ return this;
+ }
+ }
+}
\ No newline at end of file
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterTextAndInputView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterTextAndInputView.java
index 00dc44f..81d4d19 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterTextAndInputView.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterTextAndInputView.java
@@ -15,8 +15,9 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.TextView;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
+import com.tenlionsoft.baselib.utils.ToastUtils;
/**
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterTimeAndIntputView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterTimeAndIntputView.java
index 411390d..019a8ae 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterTimeAndIntputView.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CenterTimeAndIntputView.java
@@ -22,12 +22,13 @@ import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.builder.TimePickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.bigkoo.pickerview.view.TimePickerView;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.AreaBean;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/ChangePwdDialog.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/ChangePwdDialog.java
index 444b62d..2a937d4 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/ChangePwdDialog.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/ChangePwdDialog.java
@@ -25,12 +25,13 @@ import android.widget.TextView;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.beans.AreaBean;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CircleChartView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CircleChartView.java
new file mode 100644
index 0000000..0691546
--- /dev/null
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CircleChartView.java
@@ -0,0 +1,196 @@
+package com.tenlionsoft.baselib.core.widget.views;
+
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Rect;
+import android.graphics.RectF;
+import android.util.AttributeSet;
+import android.view.View;
+
+import androidx.annotation.Nullable;
+
+import com.tenlionsoft.baselib.R;
+import com.tenlionsoft.baselib.utils.ConvertUtils;
+import com.tenlionsoft.baselib.utils.LogUtils;
+
+/**
+ * 圆环图表
+ */
+public class CircleChartView extends View {
+ private Paint mColorPaint;
+ private Paint mGrayPaint;
+ private Paint mWhitePaint;
+
+ private int mRadius;
+ private int mHoleRadius;
+ private int mWidth;
+ private int mHeight;
+ private int mCenterX;
+ private int mCenterY;
+ private Paint mCirclePaint;
+ private Paint mTextPaint;
+ private Bitmap mBitmap;
+ private Paint mPaint;
+ private int mSmallCirRadius = 25; //圆环上小圆的半径
+ private int mPadding = 25;//圆环距离视图的距离
+ private int mDisCircle = 35;//中心圆与圆环的间距
+ private double mStartAngle = 0;//开始角度
+ private double mSweepAngle = 0;//角度
+ private double mSurplusAngle = 360;//
+ private String mCenterStr = "0%";
+
+ public CircleChartView(Context context) {
+ super(context);
+ init();
+ }
+
+ public CircleChartView(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ init();
+ }
+
+ public CircleChartView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ init();
+ }
+
+ public CircleChartView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ init();
+ }
+
+ /**
+ * 初始化
+ */
+ private void init() {
+ //初始化画笔
+ mColorPaint = new Paint();
+ mColorPaint.setColor(Color.parseColor("#FFA800"));
+ mColorPaint.setStyle(Paint.Style.FILL);
+ mColorPaint.setAntiAlias(true);
+
+ mGrayPaint = new Paint();
+ mGrayPaint.setColor(Color.parseColor("#E7E7E7"));
+ mGrayPaint.setStyle(Paint.Style.FILL);
+ mGrayPaint.setAntiAlias(true);
+
+ mWhitePaint = new Paint();
+ mWhitePaint.setColor(Color.WHITE);
+ mWhitePaint.setStyle(Paint.Style.FILL);
+ mWhitePaint.setAntiAlias(true);
+
+ mTextPaint = new Paint();
+ mTextPaint.setColor(Color.parseColor("#FFA800"));
+ mTextPaint.setStyle(Paint.Style.FILL);
+ mTextPaint.setTextSize(ConvertUtils.sp2px(12));
+ mTextPaint.setAntiAlias(true);
+ mTextPaint.setFakeBoldText(true);//加粗
+
+
+ mCirclePaint = new Paint();
+ mCirclePaint.setColor(Color.parseColor("#E7E7E7"));
+ mCirclePaint.setStyle(Paint.Style.FILL);
+ mCirclePaint.setAntiAlias(true);
+ mCirclePaint.setShadowLayer(3, 4, 4, Color.parseColor("#E5E5E5"));
+
+ mBitmap = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.ic_statistics_count_percent_icon);
+ mPaint = new Paint();
+ mPaint.setColor(Color.BLACK);
+ mPaint.setStyle(Paint.Style.FILL);
+ mPaint.setStrokeWidth(10f);
+
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+ mWidth = resolveSize(mWidth, widthMeasureSpec);
+ mHeight = resolveSize(mHeight, heightMeasureSpec);
+ setMeasuredDimension(
+ Math.max(getSuggestedMinimumWidth(),
+ resolveSize(mWidth,
+ widthMeasureSpec)),
+ Math.max(getSuggestedMinimumHeight(),
+ resolveSize(mHeight,
+ heightMeasureSpec)));
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ super.onDraw(canvas);
+ LogUtils.e("绘制");
+ mWidth = getWidth();
+ mHeight = getHeight();
+ //中心点
+ mCenterX = mWidth / 2;
+ mCenterY = mHeight / 2;
+ mRadius = mWidth / 2 - mPadding;//最外圈圆
+
+ int left = mCenterX - mRadius;
+ int top = mCenterY - mRadius;
+ int right = mCenterX + mRadius;
+ int bottom = mCenterY + mRadius;
+ //绘制数据
+ RectF oval = new RectF(left, top, right, bottom);
+ canvas.drawArc(oval, (float) mStartAngle, (float) mSweepAngle, true, mColorPaint);
+ //绘制剩余
+ RectF rectF1 = new RectF(left, top, right, bottom);
+ canvas.drawArc(rectF1, (float) mSweepAngle, (float) mSurplusAngle, true, mGrayPaint);
+
+ mHoleRadius = mRadius - mDisCircle;//中心圆的半径
+
+ double radius = mRadius - mDisCircle / 2; // 圆环的半径
+ double angle = mSweepAngle; // 角度(单位为度)
+
+ float centerX = mCenterX; // 圆心的x坐标
+ float centerY = mCenterY; // 圆心的y坐标
+
+ float angleInRadians = (float) Math.toRadians(angle); // 将角度转换为弧度
+ double startRadian = Math.toRadians(mStartAngle);
+ float x1 = Math.abs((float) (centerX + radius * Math.cos(angleInRadians))); // 第一个点的x坐标
+ float y1 = Math.abs((float) (centerY + radius * Math.sin(angleInRadians))); // 第一个点的y坐标
+ int startX = (int) (centerX + radius * Math.cos(startRadian));
+ int startY = (int) (centerY - radius * Math.sin(startRadian));
+ //绘制中心圆
+ canvas.drawCircle(mCenterX, mCenterY, mHoleRadius, mWhitePaint);//绘制中心圆
+ //绘制圆环上的小圆
+ canvas.drawCircle(startX, startY, mSmallCirRadius, mCirclePaint);
+ canvas.drawCircle(x1, y1, mSmallCirRadius, mCirclePaint);
+ //绘制中心的图片
+ int bitMapCenterX = mCenterX;
+ int bitmapCenterY = mCenterY - 20;
+ Rect dstRect = new Rect();
+ int l = bitMapCenterX - 40;
+ int t = bitmapCenterY - 40;
+ int r = bitMapCenterX + 40;
+ int b = bitmapCenterY + 40;
+ dstRect.set(l, t, r, b);
+ canvas.drawBitmap(mBitmap, null, dstRect, mTextPaint);
+ //计算文字的宽度
+ Rect textRect = new Rect();
+ mTextPaint.getTextBounds(mCenterStr, 0, mCenterStr.length(), textRect);
+ int textHalf = textRect.width() / 2;
+ int h = textRect.height() + 25;
+ canvas.drawText(mCenterStr, mCenterX - textHalf, mCenterY + h, mTextPaint);
+ }
+
+ /**
+ * 设置数据
+ */
+ public void setData(double percent) {
+ //计算绘制角度
+ mSweepAngle = percent * 360 / 100D;
+ //剩余
+ mSurplusAngle = 360 - mSweepAngle;
+ mCenterStr = percent + "%";
+ LogUtils.e("所要绘制的角度:" + mSweepAngle + "\n剩余角度:" + mSurplusAngle);
+
+ //重新绘制
+ invalidate();
+ }
+}
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CircleProgress.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CircleProgress.java
new file mode 100755
index 0000000..9f0d84b
--- /dev/null
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CircleProgress.java
@@ -0,0 +1,506 @@
+package com.tenlionsoft.baselib.core.widget.views; /**
+ * CircleProgress 2017-10-28
+ * Copyright (c) 2017 KL Co.Ltd. All right reserved.
+ */
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ValueAnimator;
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.LinearGradient;
+import android.graphics.Paint;
+import android.graphics.Path;
+import android.graphics.PointF;
+import android.graphics.RectF;
+import android.graphics.Shader;
+import android.os.Build;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.animation.LinearInterpolator;
+
+import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
+
+import com.tenlionsoft.baselib.R;
+import com.tenlionsoft.baselib.utils.ConvertUtils;
+
+import java.text.DecimalFormat;
+
+
+/**
+ * 圆形进度条
+ *
+ * @author Adam
+ * since 2023 6 23
+ */
+public class CircleProgress extends View {
+ private Context mContext;
+
+ /**
+ * 默认进度圆环渐变色值集合
+ */
+ private int[] mDefColors = {Color.rgb(0, 187, 238), Color.rgb(0, 34, 255)};
+ /**
+ * 100%进度圆环渐变色值集合
+ */
+ private int[] mEndColors = {Color.rgb(255, 196, 0), Color.rgb(255, 110, 77)};
+ private int mStartColor = Color.rgb(101, 226, 175);
+ private int mEndColor = Color.rgb(88, 181, 250);
+
+ // 圆心x坐标
+ private float centerX, centerY;
+ // 圆的半径
+ private float radius;
+ // 进度
+ private float mProgress;
+ // 当前进度
+ private float currentProgress;
+ // 圆形进度条底色画笔
+ private Paint circleBgPaint;
+ // 圆形进度条进度画笔
+ private Paint progressPaint;
+ // 进度条背景颜色
+ private int circleBgColor = Color.rgb(225, 229, 232);
+ // 进度条颜色
+ private int progressColor = Color.RED;
+ // 默认圆环的宽度
+ private int defaultStrokeWidth = 10;
+ // 圆形背景画笔宽度
+ private int circleBgStrokeWidth = defaultStrokeWidth;
+ // 圆形进度画笔宽度
+ private int progressStrokeWidth = defaultStrokeWidth;
+ private int lineWidth;
+ private boolean isDrawCenterProgressText;
+ private int centerProgressTextSize = 23;
+ private int centerProgressTextColor = Color.BLACK;
+ private int targetTextSize = 10;
+ private int targetTextColor = Color.GRAY;
+ private int targetNumSize = 20;
+ private int targetNumColor = Color.BLACK;
+ private int lineColor = Color.GRAY;
+
+ // 各种画笔
+ private Paint centerProgressTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ private Paint trainPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ private Paint linePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ private Paint targetTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+// private Paint targetNumPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+
+ // 扇形所在矩形
+ private RectF rectF = new RectF();
+ // 进度动画
+ private ValueAnimator progressAnimator;
+ // 动画执行时间
+ private int duration = 1000;
+ // 动画延时启动时间
+ private int startDelay = 500;
+
+ private ProgressListener progressListener;
+ private String targetText;
+ private String targetNum = "0";
+ private int dp1, dp2, dp4, dp5, dp6, dp7, dp8, dp30;
+
+ public CircleProgress(Context context) {
+ this(context, null);
+ }
+
+ public CircleProgress(Context context, @Nullable AttributeSet attrs) {
+ super(context, attrs);
+ mContext = context;
+ dp1 = ConvertUtils.dp2px(1);
+ dp2 = ConvertUtils.dp2px(2);
+ dp4 = ConvertUtils.dp2px(4);
+ dp5 = ConvertUtils.dp2px(5);
+ dp6 = ConvertUtils.dp2px(6);
+ dp7 = ConvertUtils.dp2px(7);
+ dp8 = ConvertUtils.dp2px(8);
+ dp30 = ConvertUtils.dp2px(30);
+ getAttr(attrs);
+ initPaint();
+ }
+
+ private void getAttr(AttributeSet attrs) {
+ TypedArray typedArray = mContext.obtainStyledAttributes(attrs, R.styleable.CircleProgressBarView);
+
+ circleBgStrokeWidth =
+ typedArray.getDimensionPixelOffset(R.styleable.CircleProgressBarView_circleBgStrokeWidth,
+ defaultStrokeWidth);
+ progressStrokeWidth =
+ typedArray.getDimensionPixelOffset(R.styleable.CircleProgressBarView_progressStrokeWidth,
+ defaultStrokeWidth);
+
+ circleBgColor = typedArray.getColor(R.styleable.CircleProgressBarView_circleBgColor, circleBgColor);
+ progressColor = typedArray.getColor(R.styleable.CircleProgressBarView_progressColor, progressColor);
+
+ duration = typedArray.getColor(R.styleable.CircleProgressBarView_circleAnimationDuration, duration);
+
+ isDrawCenterProgressText = typedArray.getBoolean(R.styleable.CircleProgressBarView_isDrawCenterProgressText,
+ false);
+
+ centerProgressTextColor = typedArray.getColor(R.styleable.CircleProgressBarView_centerProgressTextColor,
+ mEndColor);
+ centerProgressTextSize =
+ typedArray.getDimensionPixelOffset(R.styleable.CircleProgressBarView_centerProgressTextSize,
+ ConvertUtils.sp2px(centerProgressTextSize));
+ lineWidth = typedArray.getDimensionPixelOffset(R.styleable.CircleProgressBarView_lineWidth,
+ ConvertUtils.dp2px(1));
+ lineColor = typedArray.getColor(R.styleable.CircleProgressBarView_lineColor, circleBgColor);
+ targetNumColor = typedArray.getColor(R.styleable.CircleProgressBarView_targetNumColor, targetNumColor);
+ targetNumSize = typedArray.getDimensionPixelSize(R.styleable.CircleProgressBarView_targetNumSize,
+ ConvertUtils.sp2px(20));
+ targetTextSize = typedArray.getDimensionPixelSize(R.styleable.CircleProgressBarView_targetTextSize,
+ ConvertUtils.sp2px(12));
+ targetTextColor = typedArray.getColor(R.styleable.CircleProgressBarView_targetTextColor, targetTextColor);
+ targetText = typedArray.getString(R.styleable.CircleProgressBarView_target_text);
+ typedArray.recycle();
+ }
+
+ public void setCenterProgressTextColor(int color) {
+ this.centerProgressTextColor = color;
+ centerProgressTextPaint.setColor(color);
+ }
+
+ private void initPaint() {
+ circleBgPaint = getPaint(circleBgStrokeWidth, circleBgColor);
+
+ progressPaint = getPaint(progressStrokeWidth, progressColor);
+ trainPaint = getPaint(ConvertUtils.dp2px(1), progressColor);
+ trainPaint.setStyle(Paint.Style.FILL);
+
+ linePaint = getPaint(lineWidth, lineColor);
+
+ // 目标文本画笔配置
+ targetTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ targetTextPaint.setTextSize(targetTextSize);
+ targetTextPaint.setColor(targetTextColor);
+ targetTextPaint.setTextAlign(Paint.Align.CENTER);
+
+ // 目标数字画笔配置
+// targetNumPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+// targetNumPaint.setTextSize(targetNumSize);
+// targetNumPaint.setColor(targetNumColor);
+// targetNumPaint.setTextAlign(Paint.Align.CENTER);
+
+ // 中间文本画笔配置
+ centerProgressTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ centerProgressTextPaint.setTextSize(centerProgressTextSize);
+ centerProgressTextPaint.setColor(centerProgressTextColor);
+ centerProgressTextPaint.setTextAlign(Paint.Align.CENTER);
+ }
+
+ private Paint getPaint(int strokeWidth, int color) {
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ paint.setStrokeWidth(strokeWidth);
+ paint.setColor(color);
+ paint.setAntiAlias(true);
+ paint.setStrokeCap(Paint.Cap.ROUND);
+ paint.setStyle(Paint.Style.STROKE);
+ return paint;
+ }
+
+ private LinearGradient mShader;
+
+ private void configShader() {
+// Log.d("201801251336", "progress = " + mProgress);
+// int colors[] = {
+// Color.rgb(97, 212, 198), Color.rgb(100, 225, 176),
+// Color.rgb(93, 198, 221), Color.rgb(90, 187, 239)
+// };
+// float positions[] = {
+// 0.2f, 0.3f, 0.3f, 0.2f
+// };
+ // 清空画笔
+ progressPaint.setShader(null);
+ if (mProgress >= 100) {
+ mShader = new LinearGradient(centerX, 0, centerX, getHeight(),
+ mEndColors, null, Shader.TileMode.CLAMP);
+ } else {
+ mShader = new LinearGradient(centerX, 0, centerX, getHeight(),
+ mDefColors, null, Shader.TileMode.CLAMP);
+ }
+
+ // 圆内纵向直径为着色路径,圆环的左半边和右半边的色值有点对称的感觉
+// mShader = new LinearGradient(centerX, centerY - radius, centerX, centerY + radius,
+// mColors,
+// null, Shader.TileMode.CLAMP);
+ // 圆内横向直径为着色路径,可以达到首尾渐变效果,但进度不超过50%,看不出渐变后的效果
+// mShader = new LinearGradient(centerX + radius, centerY, centerX - radius, centerY,
+// mColors,
+// null, Shader.TileMode.CLAMP);
+
+// mShader = new SweepGradient(centerX,centerY,mColors,new float[]{0.5f,0.5f});
+// mShader = new SweepGradient(centerX,centerY,colors,null);
+// mShader = new SweepGradient(centerX,centerY,mEndColor,mStartColor);
+// mShader = new RadialGradient(centerX,centerY,radius,mColors,null, Shader.TileMode.CLAMP);
+
+ progressPaint.setShader(mShader);
+ }
+
+ @Override
+ protected void onDetachedFromWindow() {
+ super.onDetachedFromWindow();
+ if (progressAnimator != null) {
+ progressAnimator.cancel();
+ }
+ }
+
+ private boolean proAnimIsEnd = false;
+
+ private void initAnimation() {
+ proAnimIsEnd = false;
+ progressAnimator = ValueAnimator.ofFloat(0, mProgress);
+ progressAnimator.setDuration(duration);
+ progressAnimator.setStartDelay(startDelay);
+ progressAnimator.setInterpolator(new LinearInterpolator());
+ progressAnimator.addUpdateListener(valueAnimator -> {
+ float value = (float) valueAnimator.getAnimatedValue();
+ mProgress = value;
+ currentProgress = value * 360 / 100;
+ if (progressListener != null) {
+ progressListener.currentProgressListener(value);
+ }
+ invalidate();
+ });
+ progressAnimator.addListener(new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ super.onAnimationEnd(animation);
+ proAnimIsEnd = true;
+ invalidate();
+ }
+ });
+ }
+
+ public void setTargetNum(String num) {
+ targetNum = num;
+ }
+
+ @Override
+ protected void onSizeChanged(int w, int h, int oldW, int oldH) {
+ super.onSizeChanged(w, h, oldW, oldH);
+ centerX = w / 2;
+ centerY = h / 2;
+
+ // 半径再缩小点,给小三角形空出距离
+ radius = Math.min(w, h) / 2 - Math.max(circleBgStrokeWidth, progressStrokeWidth) - dp4;
+
+ rectF.set(centerX - radius,
+ centerY - radius,
+ centerX + radius,
+ centerY + radius);
+ trainPaint.setColor(circleBgColor);
+
+ configShader();
+ }
+
+ public void setColors(int[] colors) {
+ mDefColors = colors;
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ super.onDraw(canvas);
+// LogUtil.logD("201801251106", "centerX = " + centerX + "->centerY = "
+// + centerY + "->mProgress = " + mProgress);
+ canvas.drawCircle(centerX, centerY, radius, circleBgPaint);
+ canvas.drawArc(rectF, -90, currentProgress, false, progressPaint);
+ if (isDrawCenterProgressText) {
+ drawCenterProgressText(canvas, formatNum(mProgress) + "%");
+ }
+ if (proAnimIsEnd) {
+ drawTriangle(canvas);
+ }
+ }
+
+ private void drawCenterProgressText(Canvas canvas, String currentProgress) {
+ Paint.FontMetricsInt fontMetrics1 = centerProgressTextPaint.getFontMetricsInt();
+ int baseline = (int) ((rectF.bottom + rectF.top - fontMetrics1.bottom - fontMetrics1.top) / 2);
+ //文字绘制到整个布局的中心位置
+// canvas.drawLine(centerX - dp30, centerY, centerX + dp30, centerY, linePaint);
+// canvas.drawText(currentProgress, rectF.centerX(), centerY - dp5, centerProgressTextPaint);
+ canvas.drawText(currentProgress, rectF.centerX(), rectF.centerY()+dp5, centerProgressTextPaint);
+
+// Paint.FontMetricsInt fontMetrics2 = targetNumPaint.getFontMetricsInt();
+// int baseline2 = baseline + (fontMetrics2.bottom - fontMetrics2.top);
+// canvas.drawText("升级中...", rectF.centerX(), baseline + dp7, targetTextPaint);
+
+// canvas.drawText(targetNum, rectF.centerX(), baseline2 + dp5, targetNumPaint);
+ }
+
+ /**
+ * 绘制三角形
+ *
+ * @param canvas
+ */
+ private void drawTriangle(Canvas canvas) {
+ Path path = new Path();
+ PointF pf1, pf2, pf3;
+// LogUtil.logD("20190124", "绘制小三角 mProgress = " + mProgress);
+ if (mProgress < 49) {
+ trainPaint.setColor(circleBgColor);
+ pf1 = new PointF(centerX - dp8, centerY * 2 - progressStrokeWidth - dp2);
+ pf2 = new PointF(centerX - dp1, getHeight() - dp2);
+ pf3 = new PointF(centerX + dp6, centerY * 2 - progressStrokeWidth - dp2);
+ } else if (mProgress >= 49 && mProgress < 51) {
+ float[] positions;
+ int pro = (int) (mProgress * 100);
+ if (mProgress >= 49 && pro < 49.2 * 100) {
+ positions = new float[]{0.39f, 0.39f};
+// LogUtil.logD("20190124", "阶段1 -> pro = " + pro);
+ } else if (pro >= 49.2 * 100 && pro < 49.4 * 100) {
+ positions = new float[]{0.46f, 0.46f};
+// LogUtil.logD("20190124", "阶段2");
+ } else if (pro >= 49.4 * 100 && pro < 49.6 * 100) {
+ positions = new float[]{0.5f, 0.5f};
+// LogUtil.logD("20190124", "阶段3 -> pro = " + pro);
+ } else if (pro >= 49.6 * 100 && pro < 49.8 * 100) {
+ positions = new float[]{0.62f, 0.38f};
+// LogUtil.logD("20190124", "阶段4 -> pro = " + pro);
+ } else if (pro >= 49.8 * 100 && pro < 50 * 100) {
+ positions = new float[]{0.64f, 0.36f};
+// LogUtil.logD("20190124", "阶段5 -> pro = " + pro);
+ } else if (pro >= 50 * 100 && pro < 50.2 * 100) {
+ positions = new float[]{0.7f, 0.3f};
+// LogUtil.logD("20190124", "阶段6 -> pro = " + pro);
+ } else if (pro >= 50.2 * 100 && pro < 50.4 * 100) {
+ positions = new float[]{0.75f, 0.25f};
+// LogUtil.logD("20190124", "阶段7 -> pro = " + pro);
+ } else if (pro >= 50.4 * 100 && pro < 50.6 * 100) {
+ positions = new float[]{0.8f, 0.2f};
+// LogUtil.logD("20190124", "阶段8 -> pro = " + pro);
+ } else if (pro >= 50.6 * 100 && pro <= 50.8 * 100) {
+ positions = new float[]{0.9f, 0.1f};
+// LogUtil.logD("20190124", "阶段9 -> pro = " + pro);
+ } else {
+ positions = new float[]{1.0f, 0.f};
+// LogUtil.logD("20190124", "阶段 else");
+ }
+ LinearGradient triangleGdt = new LinearGradient(
+ centerX + dp6,
+ 0,
+ centerX - dp8,
+ 0,
+ new int[]{Color.rgb(88, 181, 250), Color.rgb(225, 229, 232)},
+ positions, Shader.TileMode.CLAMP);
+ trainPaint.setShader(triangleGdt);
+ pf1 = new PointF(centerX - dp8, centerY * 2 - progressStrokeWidth - dp2);
+ pf2 = new PointF(centerX - dp1, getHeight() - dp2);
+ pf3 = new PointF(centerX + dp6, centerY * 2 - progressStrokeWidth - dp2);
+ } else {
+ trainPaint.setShader(null); // 不要忘记清空着色器,不能设置的color没有效果,会优先显示shader
+ if (mProgress >= 100) {
+ trainPaint.setColor(mEndColors[mEndColors.length - 1]);
+ } else {
+ trainPaint.setColor(mDefColors[mDefColors.length - 1]);
+ }
+ pf1 = new PointF(centerX - dp8, centerY * 2 - progressStrokeWidth - dp2);
+ pf2 = new PointF(centerX - dp1, getHeight());
+ pf3 = new PointF(centerX + dp6, centerY * 2 - progressStrokeWidth - dp2);
+ }
+ path.moveTo(pf1.x, pf1.y);
+ path.lineTo(pf2.x, pf2.y);
+ path.lineTo(pf3.x, pf3.y);
+ canvas.drawPath(path, trainPaint);
+ path.reset();
+ }
+
+
+ public void startProgressAnimation() {
+ progressAnimator.start();
+ }
+
+ @RequiresApi(api = Build.VERSION_CODES.KITKAT)
+ public void pauseProgressAnimation() {
+ progressAnimator.pause();
+ }
+
+ @RequiresApi(api = Build.VERSION_CODES.KITKAT)
+ public void resumeProgressAnimation() {
+ progressAnimator.resume();
+ }
+
+ public void stopProgressAnimation() {
+ progressAnimator.end();
+ }
+
+
+ /**
+ * 传入一个进度值,从0到progress动画变化
+ *
+ * @param progress
+ * @return
+ */
+ public CircleProgress setProgressWithAnimation(float progress) {
+// if (progress <= 0f || String.valueOf(progress).equals(String.valueOf(Float.NaN))) {
+ if (progress <= 0f || Float.isNaN(progress)) {
+ setCurrentProgress(0f, true);
+ return this;
+ }
+ mProgress = progress;
+// if (progress >= 100) {
+// configShader();
+// }else{
+ configShader();
+// }
+ initAnimation();
+ startProgressAnimation();
+ return this;
+ }
+
+ /**
+ * 实时进度,适用于下载进度回调时候之类的场景
+ *
+ * @param progress
+ * @return
+ */
+ public CircleProgress setCurrentProgress(float progress) {
+ mProgress = progress;
+ currentProgress = progress * 360 / 100;
+ if (progress >= 100) {
+ configShader();
+ }
+ invalidate();
+ return this;
+ }
+
+ /**
+ * 实时进度,适用于下载进度回调时候之类的场景
+ *
+ * @param progress
+ * @param isArrow 是否有小箭头
+ * @return
+ */
+ public CircleProgress setCurrentProgress(float progress, boolean isArrow) {
+ proAnimIsEnd = isArrow;
+ setCurrentProgress(progress);
+ return this;
+ }
+
+ /**
+ * 格式化数字(保留两位小数)
+ *
+ * @param money
+ * @return
+ */
+ public static String formatNum(float money) {
+ if (((int) money * 100) == (int) (money * 100)) {
+ //如果是一个整数
+ return String.valueOf((int) money);
+ }
+ DecimalFormat format = new DecimalFormat("0.00");
+ return format.format(money);
+ }
+
+ public interface ProgressListener {
+ void currentProgressListener(float currentProgress);
+ }
+
+ public CircleProgress setProgressListener(ProgressListener listener) {
+ progressListener = listener;
+ return this;
+ }
+}
+
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/ConditionAllAreaPopup.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/ConditionAllAreaPopup.java
new file mode 100644
index 0000000..0c4feba
--- /dev/null
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/ConditionAllAreaPopup.java
@@ -0,0 +1,290 @@
+package com.tenlionsoft.baselib.core.widget.views;
+
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.graphics.Color;
+import android.text.TextUtils;
+import android.util.DisplayMetrics;
+import android.view.Gravity;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.tenlionsoft.baselib.R;
+import com.tenlionsoft.baselib.core.beans.AreaSimpleBean;
+import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
+import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService;
+import com.tenlionsoft.baselib.core.widget.base.ConditionAllAreaAdapter;
+import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
+import com.tenlionsoft.baselib.utils.UIUtil;
+import com.tenlionsoft.baselib.utils.UserLgUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
+import io.reactivex.rxjava3.core.Observer;
+import io.reactivex.rxjava3.disposables.Disposable;
+import io.reactivex.rxjava3.schedulers.Schedulers;
+import razerdp.basepopup.BasePopupWindow;
+
+/**
+ * 作者: adam
+ * 日期: 2021/9/30 - 2:58 下午
+ * 邮箱: itgaojian@163.com
+ * 描述: 地区选择
+ */
+public class ConditionAllAreaPopup extends BasePopupWindow {
+ private final TextView mTvCurrentArea;
+ private final RecyclerView mRlvArea1;
+ private final RecyclerView mRlvArea2;
+ private final RecyclerView mRlvArea3;
+ private final Context mCtx;
+ private final ConditionAllAreaAdapter mAreaAdapter1;
+ private final ConditionAllAreaAdapter mAreaAdapter2;
+ private final ConditionAllAreaAdapter mAreaAdapter3;
+ private final TextView mTvConfirm;
+ private List mAreaList1;
+ private List mAreaList2;
+ private List mAreaList3;
+ private AreaSimpleBean mSelArea1;//旗县区
+ private AreaSimpleBean mSelArea2;//乡镇街道
+ private AreaSimpleBean mSelArea3;//村、社区
+ private String mCurrentAreaStr;
+ private String mAreaCode0;
+ private int mUserLevel = -1;
+ private OnListPopupItemClickListener mOnListPopupItemClickListener;
+
+ public ConditionAllAreaPopup(Context context, String currentArea, int userLevel) {
+ super(context);
+ mCtx = context;
+ View view = createPopupById(R.layout.popup_all_area_layout);
+ mCurrentAreaStr = currentArea;
+ mUserLevel = userLevel;
+ mTvCurrentArea = view.findViewById(R.id.tv_current_area);
+ mTvCurrentArea.setText(mCurrentAreaStr);
+ mRlvArea1 = view.findViewById(R.id.rlv_area_1);
+ mRlvArea2 = view.findViewById(R.id.rlv_area_2);
+ mRlvArea3 = view.findViewById(R.id.rlv_area_3);
+ mTvConfirm = view.findViewById(R.id.tv_confirm);
+ mTvConfirm.setOnClickListener(v -> doConfirm());
+ mAreaList1 = new ArrayList<>();
+ mAreaList2 = new ArrayList<>();
+ mAreaList3 = new ArrayList<>();
+ mAreaAdapter1 = new ConditionAllAreaAdapter(mCtx, mAreaList1);
+ mAreaAdapter2 = new ConditionAllAreaAdapter(mCtx, mAreaList2);
+ mAreaAdapter3 = new ConditionAllAreaAdapter(mCtx, mAreaList3);
+
+ mRlvArea1.setLayoutManager(new LinearLayoutManager(mCtx));
+ mRlvArea2.setLayoutManager(new LinearLayoutManager(mCtx));
+ mRlvArea3.setLayoutManager(new LinearLayoutManager(mCtx));
+
+ mRlvArea1.setAdapter(mAreaAdapter1);
+ mRlvArea2.setAdapter(mAreaAdapter2);
+ mRlvArea3.setAdapter(mAreaAdapter3);
+
+ mAreaAdapter1.addOnitemCheckChange((bean, isCheck, pos) -> {
+ if (mAreaAdapter1.mSelBeans.size() > 0) {
+ if (bean.getId().equals(mAreaAdapter1.mSelBeans.get(0).getId())) {
+ return;
+ }
+ }
+ mAreaAdapter1.mSelBeans.clear();
+ mAreaAdapter1.mSelBeans.add(bean);
+ for (int i = 0; i < mAreaAdapter1.getData().size(); i++) {
+ mAreaAdapter1.getData().get(i).setChecked(false);
+ }
+ bean.setChecked(true);
+ mSelArea1 = bean;
+ mSelArea2 = null;
+ mSelArea3 = null;
+ mAreaAdapter1.notifyDataSetChanged();
+ mAreaList2.clear();
+ mAreaAdapter2.setData(mAreaList2);
+ mAreaList3.clear();
+ mAreaAdapter3.setData(mAreaList3);
+ //获取下一级
+ setAreaNames("");
+ getAreaList(bean.getId(), 2);
+ });
+ mAreaAdapter2.addOnitemCheckChange((bean, isCheck, pos) -> {
+ if (mAreaAdapter2.mSelBeans.size() > 0) {
+ if (bean.getId().equals(mAreaAdapter2.mSelBeans.get(0).getId())) {
+ return;
+ }
+ }
+ mAreaAdapter2.mSelBeans.clear();
+ mAreaAdapter2.mSelBeans.add(bean);
+ for (int i = 0; i < mAreaAdapter2.getData().size(); i++) {
+ mAreaAdapter2.getData().get(i).setChecked(false);
+ }
+ bean.setChecked(true);
+ mSelArea2 = bean;
+ mSelArea3 = null;
+ mAreaAdapter2.notifyDataSetChanged();
+ mAreaList3.clear();
+ mAreaAdapter3.setData(mAreaList3);
+ //获取下一级
+ setAreaNames("");
+ getAreaList(bean.getId(), 3);
+ });
+ mAreaAdapter3.addOnitemCheckChange((bean, isCheck, pos) -> {
+ mAreaAdapter3.mSelBeans.clear();
+ mAreaAdapter3.mSelBeans.add(bean);
+ for (int i = 0; i < mAreaAdapter3.getData().size(); i++) {
+ mAreaAdapter3.getData().get(i).setChecked(false);
+ }
+ bean.setChecked(true);
+ mSelArea3 = bean;
+ setAreaNames(bean.getName());
+ mAreaAdapter3.notifyDataSetChanged();
+ });
+ switch (mUserLevel) {
+ case 1://市
+ mAreaCode0 = UserLgUtils.getUserAreaCode();
+ getAreaList(mAreaCode0, 1);
+ break;
+ case 2://旗县区
+ mRlvArea1.setVisibility(View.GONE);
+ mSelArea1 = new AreaSimpleBean();
+ mSelArea1.setId(UserLgUtils.getUserAreaCode());
+ mRlvArea2.setVisibility(View.VISIBLE);
+ mRlvArea3.setVisibility(View.VISIBLE);
+ getAreaList(mSelArea1.getId(), 2);
+ break;
+ case 3://乡镇街道
+ mRlvArea1.setVisibility(View.GONE);
+ mRlvArea2.setVisibility(View.GONE);
+ mSelArea2 = new AreaSimpleBean();
+ mSelArea2.setId(UserLgUtils.getUserAreaCode());
+ mRlvArea3.setVisibility(View.VISIBLE);
+ getAreaList(mSelArea2.getId(), 3);
+ break;
+ case 4://村社区
+ mSelArea3 = new AreaSimpleBean();
+ mSelArea3.setId(UserLgUtils.getUserAreaCode());
+ mRlvArea1.setVisibility(View.GONE);
+ mRlvArea2.setVisibility(View.GONE);
+ mRlvArea3.setVisibility(View.GONE);
+// getAreaList(mSelArea2.getId(), 3);
+ break;
+ }
+ setContentView(view);
+ setBackgroundColor(Color.parseColor("#11000000"));
+ setPopupGravity(Gravity.CENTER | Gravity.BOTTOM);
+ DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
+ int height = (int) (displayMetrics.heightPixels * 0.3);
+ setHeight(height);
+ setWidth(displayMetrics.widthPixels);
+
+ }
+
+ /**
+ * 设置当前选择的区域
+ *
+ * @param name
+ */
+ private void setAreaNames(String name) {
+ StringBuilder sb = new StringBuilder();
+ if (mSelArea1 != null) {
+ sb.append("/");
+ sb.append(mSelArea1.getName());
+ }
+ if (mSelArea2 != null) {
+ sb.append("/");
+ sb.append(mSelArea2.getName());
+ }
+ if (mSelArea3 != null) {
+ sb.append("/");
+ sb.append(name);
+ }
+ mTvCurrentArea.setText(UserLgUtils.getUserFullAreaName() + sb);
+ }
+
+ private void getAreaList(String id, int type) {
+ ProgressDialog dialog = UIUtil.initDialog(mCtx, "获取中...");
+ dialog.show();
+ RetrofitManager.getInstance()
+ .create(BaseApiService.class)
+ .getAreaListByCode(id, UserLgUtils.getToken())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(Disposable d) {
+ }
+
+ @Override
+ public void onNext(List areaListBeans) {
+ dialog.dismiss();
+ if (null != areaListBeans && areaListBeans.size() > 0) {
+ switch (type) {
+ case 1: //area1
+ mAreaList1 = areaListBeans;
+ mAreaAdapter1.setData(mAreaList1);
+ break;
+ case 2://area2
+ mAreaList2 = areaListBeans;
+ mAreaAdapter2.setData(mAreaList2);
+ break;
+ case 3://area3
+ mAreaList3 = areaListBeans;
+ mAreaAdapter3.setData(mAreaList3);
+ break;
+ }
+ } else {
+ ToastUtils.show("暂无区域数据");
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ dialog.dismiss();
+ ExceptionHandler.handleException(e);
+ }
+
+ @Override
+ public void onComplete() {
+
+ }
+ });
+ }
+
+ /**
+ * 确定选择
+ */
+ private void doConfirm() {
+ String areaCode = "";
+ if (mSelArea1 != null) {
+ areaCode = mSelArea1.getId();
+ }
+ if (mSelArea2 != null) {
+ areaCode = mSelArea2.getId();
+ }
+ if (mSelArea3 != null) {
+ areaCode = mSelArea3.getId();
+ }
+ if (mOnListPopupItemClickListener != null) {
+ String areaName = mTvCurrentArea.getText().toString().trim();
+ if (TextUtils.isEmpty(areaCode)) {
+ areaCode = mAreaCode0;
+ }
+ mOnListPopupItemClickListener.onItemClick(areaName, areaCode);
+ }
+ }
+
+ public OnListPopupItemClickListener getOnListPopupItemClickListener() {
+ return mOnListPopupItemClickListener;
+ }
+
+ public void setOnListPopupItemClickListener(OnListPopupItemClickListener onListPopupItemClickListener) {
+ mOnListPopupItemClickListener = onListPopupItemClickListener;
+ }
+
+ public interface OnListPopupItemClickListener {
+ void onItemClick(String areaNames, String areaCode);
+ }
+}
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CorrectionDialog.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CorrectionDialog.java
index 9972e5e..536e680 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CorrectionDialog.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/CorrectionDialog.java
@@ -15,8 +15,9 @@ import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import androidx.appcompat.widget.AppCompatRatingBar;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/DiffcultDialog.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/DiffcultDialog.java
index f7d42e0..77105b6 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/DiffcultDialog.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/DiffcultDialog.java
@@ -15,8 +15,9 @@ import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import androidx.appcompat.widget.AppCompatRatingBar;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/LimitEmojiEditText.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/LimitEmojiEditText.java
index 2750a90..5ee6ff4 100644
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/LimitEmojiEditText.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/LimitEmojiEditText.java
@@ -7,9 +7,10 @@ import android.util.AttributeSet;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.utils.LogUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/Pie3DView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/Pie3DView.java
new file mode 100644
index 0000000..c61703b
--- /dev/null
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/Pie3DView.java
@@ -0,0 +1,106 @@
+package com.tenlionsoft.baselib.core.widget.views;
+
+import android.content.Context;
+import android.graphics.BlurMaskFilter;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.RectF;
+import android.graphics.Typeface;
+import android.view.View;
+
+public class Pie3DView extends View {
+
+ private int[] data; //数据
+ private String[] info; //信息
+ private float[] percent; //比例
+ private float depth; //深度
+ private int[] colors = //颜色
+ new int[]{Color.RED, Color.YELLOW, Color.BLUE, Color.GREEN, Color.CYAN};
+ private Paint mainPaint; //轮廓画笔
+ private int ScrHeight; //屏幕高度
+ private int ScrWidth; //屏幕宽度
+ private Paint arrPaint; //填充画笔
+ private Paint textPaint = null; //文本画笔
+
+ //构造函数
+ public Pie3DView(Context context, int[] data, String[] info) {
+ super(context);
+
+ this.data = data;
+ this.info = info;
+ initData();
+ initPaint();
+ }
+
+ //初始化画笔
+ private void initPaint() {
+ mainPaint = new Paint();
+ mainPaint.setAntiAlias(true);
+ mainPaint.setColor(Color.WHITE);
+ mainPaint.setStyle(Paint.Style.STROKE);
+ mainPaint.setStrokeWidth(3);
+
+ arrPaint = new Paint();
+ arrPaint.setStyle(Paint.Style.FILL);
+ BlurMaskFilter PaintBGBlur = new BlurMaskFilter(
+ 2, BlurMaskFilter.Blur.SOLID);
+ arrPaint.setMaskFilter(PaintBGBlur);
+
+ textPaint = new Paint();
+ textPaint.setColor(Color.BLUE);
+ textPaint.setTextSize(16);
+ textPaint.setTypeface(Typeface.DEFAULT_BOLD);
+ }
+
+ //数据转化比例
+ private void initData() {
+ int sum = 0;
+ for (int i = 0; i < data.length; i++) {
+ sum += data[i];
+ }
+ percent = new float[data.length];
+ for (int i = 0; i < data.length; i++) {
+ percent[i] = (float) data[i] / sum * 360;
+ }
+ }
+
+ //绘图
+ protected void onDraw(Canvas canvas) {
+ super.onDraw(canvas);
+
+ ScrHeight = getHeight();
+ ScrWidth = getWidth();
+
+ float cirX = ScrWidth / 2;
+ float cirY = ScrHeight / 3;
+ float radius = ScrHeight / 4;
+ depth = radius / 5;
+
+ final float p = 0.5f;
+ float arcLeft = cirX - radius;
+ float arcTop = cirY - radius * p;
+ float arcRight = cirX + radius;
+ float arcBottom = cirY + radius * p;
+ RectF arcRF0;
+ for (int j = (int) depth; j >= 0; j--) {
+ arcRF0 = new RectF(arcLeft, arcTop + j, arcRight, arcBottom + j);
+ float CurrPer = -20;
+ for (int i = 0; i < percent.length; i++) {
+ arrPaint.setColor(colors[i]);
+ canvas.drawArc(arcRF0, CurrPer, percent[i], true, arrPaint);
+ if (j == 1 && CurrPer > 0 && CurrPer < 180)
+ canvas.drawLine(cirX + (float) Math.cos(CurrPer / 180 * Math.PI) * radius,
+ cirY + (float) Math.sin(CurrPer / 180 * Math.PI) * radius * p,
+ cirX + (float) Math.cos(CurrPer / 180 * Math.PI) * radius,
+ cirY + (float) Math.sin(CurrPer / 180 * Math.PI) * radius * p + 1f + depth,
+ mainPaint);
+ if (j == 0 || j == depth)
+ canvas.drawArc(arcRF0, CurrPer, percent[i], true, mainPaint);
+ CurrPer += percent[i];
+ }
+ }
+
+ }
+
+}
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/SearchPersonDialogView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/SearchPersonDialogView.java
index e02a051..1602bc2 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/SearchPersonDialogView.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/SearchPersonDialogView.java
@@ -20,7 +20,7 @@ import android.widget.TextView;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.R;
import com.tenlionsoft.baselib.core.beans.DictionaryBean;
import com.tenlionsoft.baselib.core.beans.PersonSearchBean;
@@ -29,6 +29,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.LogUtils;
import com.tenlionsoft.baselib.utils.RegexUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/utils/ColorInfo.java b/baselib/src/main/java/com/tenlionsoft/baselib/utils/ColorInfo.java
new file mode 100644
index 0000000..613407f
--- /dev/null
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/utils/ColorInfo.java
@@ -0,0 +1,50 @@
+package com.tenlionsoft.baselib.utils;
+
+
+import java.util.List;
+
+public class ColorInfo {
+ Range hueRange;
+ Range saturationRange;
+ Range brightnessRange;
+ List lowerBounds;
+
+ public ColorInfo(Range hueRange, Range saturationRange, Range brightnessRange, List lowerBounds) {
+ this.hueRange = hueRange;
+ this.saturationRange = saturationRange;
+ this.brightnessRange = brightnessRange;
+ this.lowerBounds = lowerBounds;
+ }
+
+ public Range getHueRange() {
+ return hueRange;
+ }
+
+ public void setHueRange(Range hueRange) {
+ this.hueRange = hueRange;
+ }
+
+ public Range getSaturationRange() {
+ return saturationRange;
+ }
+
+ public void setSaturationRange(Range saturationRange) {
+ this.saturationRange = saturationRange;
+ }
+
+ public Range getBrightnessRange() {
+ return brightnessRange;
+ }
+
+ public void setBrightnessRange(Range brightnessRange) {
+ this.brightnessRange = brightnessRange;
+ }
+
+ public List getLowerBounds() {
+ return lowerBounds;
+ }
+
+ public void setLowerBounds(List lowerBounds) {
+ this.lowerBounds = lowerBounds;
+ }
+}
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/utils/ExceptionHandler.java b/baselib/src/main/java/com/tenlionsoft/baselib/utils/ExceptionHandler.java
index 5617379..0e0f947 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/utils/ExceptionHandler.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/utils/ExceptionHandler.java
@@ -5,7 +5,7 @@ import android.view.TextureView;
import com.google.gson.Gson;
import com.google.gson.JsonParseException;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.core.beans.ErrorBean;
import java.net.SocketTimeoutException;
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/utils/RandomColor.java b/baselib/src/main/java/com/tenlionsoft/baselib/utils/RandomColor.java
new file mode 100644
index 0000000..51659ff
--- /dev/null
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/utils/RandomColor.java
@@ -0,0 +1,421 @@
+package com.tenlionsoft.baselib.utils;
+
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Random;
+
+public class RandomColor {
+ private static final String TAG = "RandomColor";
+ private Random random;
+
+ public static enum SaturationType {
+ RANDOM, MONOCHROME
+ }
+
+ public static enum Luminosity {
+ BRIGHT, LIGHT, DARK, RANDOM
+ }
+
+ public static class Options {
+ int hue;
+ SaturationType saturationType;
+ Luminosity luminosity;
+
+ public int getHue() {
+ return hue;
+ }
+
+ public void setHue(int hue) {
+ this.hue = hue;
+ }
+
+ public SaturationType getSaturationType() {
+ return saturationType;
+ }
+
+ public void setSaturationType(SaturationType saturationType) {
+ this.saturationType = saturationType;
+ }
+
+ public Luminosity getLuminosity() {
+ return luminosity;
+ }
+
+ public void setLuminosity(Luminosity luminosity) {
+ this.luminosity = luminosity;
+ }
+ }
+
+ private HashMap colors = new HashMap<>();
+
+ public RandomColor() {
+ loadColorBounds();
+ random = new Random();
+ }
+
+ public RandomColor(long seed){
+ loadColorBounds();
+ random = new Random();
+ random.setSeed(seed);
+ }
+
+ private int getColor(int hue, int saturation, int brightness) {
+ return android.graphics.Color.HSVToColor(new float[] {hue, saturation, brightness});
+ }
+
+ public int randomColor() {
+ return randomColor(0, null, null);
+ }
+
+ public int randomColor(int value, SaturationType saturationType, Luminosity luminosity) {
+ int hue = value;
+ hue = pickHue(hue);
+ int saturation = pickSaturation(hue, saturationType, luminosity);
+ int brightness = pickBrightness(hue, saturation, luminosity);
+
+ int color = getColor(hue, saturation, brightness);
+ return color;
+ }
+
+ public int[] randomColor(int count) {
+ if (count <= 0) {
+ throw new IllegalArgumentException("count must be greater than 0");
+ }
+
+ int[] colors = new int[count];
+ for (int i = 0; i < count; i++) {
+ colors[i] = randomColor();
+ }
+
+ return colors;
+ }
+
+ public int randomColor(Color color) {
+ int hue = pickHue(color.name());
+ int saturation = pickSaturation(color, null, null);
+ int brightness = pickBrightness(color, saturation, null);
+
+ int colorValue = getColor(hue, saturation, brightness);
+ return colorValue;
+ }
+
+ public int[] random(Color color, int count) {
+ if (count <= 0) {
+ throw new IllegalArgumentException("count must be greater than 0");
+ }
+
+ int[] colors = new int[count];
+ for (int i = 0; i < count; i++) {
+ colors[i] = randomColor(color);
+ }
+
+ return colors;
+ }
+
+ private int pickHue(int hue) {
+ Range hueRange = getHueRange(hue);
+ return doPickHue(hueRange);
+ }
+
+ private int doPickHue(Range hueRange) {
+ int hue = randomWithin(hueRange);
+
+ // Instead of storing red as two seperate ranges,
+ // we group them, using negative numbers
+ if (hue < 0) {
+ hue = 360 + hue;
+ }
+
+ return hue;
+ }
+
+ private int pickHue(String name) {
+ Range hueRange = getHueRange(name);
+ return doPickHue(hueRange);
+ }
+
+ private Range getHueRange(int number) {
+ if (number < 360 && number > 0) {
+ return new Range(number, number);
+ }
+
+ return new Range(0, 360);
+ }
+
+ private Range getHueRange(String name) {
+ if (colors.containsKey(name)) {
+ return colors.get(name).getHueRange();
+ }
+
+ return new Range(0, 360);
+ }
+
+ private int pickSaturation(int hue, SaturationType saturationType, Luminosity luminosity) {
+ return pickSaturation(getColorInfo(hue), saturationType, luminosity);
+ }
+
+ private int pickSaturation(Color color, SaturationType saturationType, Luminosity luminosity) {
+ ColorInfo colorInfo = colors.get(color.name());
+ return pickSaturation(colorInfo, saturationType, luminosity);
+ }
+
+ private int pickSaturation(ColorInfo colorInfo, SaturationType saturationType, Luminosity luminosity) {
+ if (saturationType != null) {
+ switch (saturationType) {
+ case RANDOM:
+ return randomWithin(new Range(0, 100));
+ case MONOCHROME:
+ return 0;
+ }
+ }
+
+ if (colorInfo == null) {
+ return 0;
+ }
+
+ Range saturationRange = colorInfo.getSaturationRange();
+
+ int min = saturationRange.start;
+ int max = saturationRange.end;
+
+ if (luminosity != null) {
+ switch (luminosity) {
+ case LIGHT:
+ min = 55;
+ break;
+ case BRIGHT:
+ min = max - 10;
+ break;
+ case DARK:
+ max = 55;
+ break;
+ }
+ }
+
+ return randomWithin(new Range(min, max));
+ }
+
+ private int pickBrightness(int hue, int saturation, Luminosity luminosity) {
+ ColorInfo colorInfo = getColorInfo(hue);
+
+ return pickBrightness(colorInfo, saturation, luminosity);
+ }
+
+ private int pickBrightness(Color color, int saturation, Luminosity luminosity) {
+ ColorInfo colorInfo = colors.get(color.name());
+
+ return pickBrightness(colorInfo, saturation, luminosity);
+ }
+
+ private int pickBrightness(ColorInfo colorInfo, int saturation, Luminosity luminosity) {
+ int min = getMinimumBrightness(colorInfo, saturation),
+ max = 100;
+
+ if (luminosity != null) {
+ switch (luminosity) {
+
+ case DARK:
+ max = min + 20;
+ break;
+
+ case LIGHT:
+ min = (max + min) / 2;
+ break;
+
+ case RANDOM:
+ min = 0;
+ max = 100;
+ break;
+ }
+ }
+
+ return randomWithin(new Range(min, max));
+ }
+
+ private int getMinimumBrightness(ColorInfo colorInfo, int saturation) {
+ if (colorInfo == null) {
+ return 0;
+ }
+
+ List lowerBounds = colorInfo.getLowerBounds();
+ for (int i = 0; i < lowerBounds.size() - 1; i++) {
+
+ int s1 = lowerBounds.get(i).start,
+ v1 = lowerBounds.get(i).end;
+
+ if (i == lowerBounds.size() - 1) {
+ break;
+ }
+ int s2 = lowerBounds.get(i + 1).start,
+ v2 = lowerBounds.get(i + 1).end;
+
+ if (saturation >= s1 && saturation <= s2) {
+
+ float m = (v2 - v1)/(float) (s2 - s1),
+ b = v1 - m*s1;
+
+ return (int) (m*saturation + b);
+ }
+
+ }
+
+ return 0;
+ }
+
+ private ColorInfo getColorInfo(int hue) {
+ // Maps red colors to make picking hue easier
+ if (hue >= 334 && hue <= 360) {
+ hue-= 360;
+ }
+
+ for(String key : colors.keySet()) {
+ ColorInfo colorInfo = colors.get(key);
+ if (colorInfo.getHueRange() != null && colorInfo.getHueRange().contain(hue)) {
+ return colorInfo;
+ }
+ }
+
+ return null;
+ }
+
+ private int randomWithin (Range range) {
+ return (int) Math.floor(range.start + random.nextDouble()*(range.end + 1 - range.start));
+ }
+
+ public void defineColor(String name, Range hueRange, List lowerBounds) {
+ int sMin = lowerBounds.get(0).start;
+ int sMax = lowerBounds.get(lowerBounds.size() - 1).start;
+ int bMin = lowerBounds.get(lowerBounds.size() - 1).end;
+ int bMax = lowerBounds.get(0).end;
+
+ colors.put(name, new ColorInfo(hueRange, new Range(sMin, sMax), new Range(bMin, bMax), lowerBounds));
+ }
+
+ private void loadColorBounds() {
+ List lowerBounds1 = new ArrayList<>();
+ lowerBounds1.add(new Range(0, 0));
+ lowerBounds1.add(new Range(100, 0));
+ defineColor(
+ Color.MONOCHROME.name(),
+ null,
+ lowerBounds1
+ );
+
+ List lowerBounds2 = new ArrayList<>();
+ lowerBounds2.add(new Range(20, 100));
+ lowerBounds2.add(new Range(30, 92));
+ lowerBounds2.add(new Range(40, 89));
+ lowerBounds2.add(new Range(50, 85));
+ lowerBounds2.add(new Range(60, 78));
+ lowerBounds2.add(new Range(70, 70));
+ lowerBounds2.add(new Range(80, 60));
+ lowerBounds2.add(new Range(90, 55));
+ lowerBounds2.add(new Range(100, 50));
+ defineColor(
+ Color.RED.name(),
+ new Range(-26, 18),
+ lowerBounds2
+ );
+
+ List lowerBounds3 = new ArrayList();
+ lowerBounds3.add(new Range(20, 100));
+ lowerBounds3.add(new Range(30, 93));
+ lowerBounds3.add(new Range(40, 88));
+ lowerBounds3.add(new Range(50, 86));
+ lowerBounds3.add(new Range(60, 85));
+ lowerBounds3.add(new Range(70, 70));
+ lowerBounds3.add(new Range(100, 70));
+ defineColor(
+ Color.ORANGE.name(),
+ new Range(19, 46),
+ lowerBounds3
+ );
+
+ List lowerBounds4 = new ArrayList<>();
+ lowerBounds4.add(new Range(25, 100));
+ lowerBounds4.add(new Range(40, 94));
+ lowerBounds4.add(new Range(50, 89));
+ lowerBounds4.add(new Range(60, 86));
+ lowerBounds4.add(new Range(70, 84));
+ lowerBounds4.add(new Range(80, 82));
+ lowerBounds4.add(new Range(90, 80));
+ lowerBounds4.add(new Range(100, 75));
+
+ defineColor(
+ Color.YELLOW.name(),
+ new Range(47, 62),
+ lowerBounds4
+ );
+
+ List lowerBounds5 = new ArrayList<>();
+ lowerBounds5.add(new Range(30, 100));
+ lowerBounds5.add(new Range(40, 90));
+ lowerBounds5.add(new Range(50, 85));
+ lowerBounds5.add(new Range(60, 81));
+ lowerBounds5.add(new Range(70, 74));
+ lowerBounds5.add(new Range(80, 64));
+ lowerBounds5.add(new Range(90, 50));
+ lowerBounds5.add(new Range(100, 40));
+
+ defineColor(
+ Color.GREEN.name(),
+ new Range(63,178),
+ lowerBounds5
+ );
+
+ List lowerBounds6 = new ArrayList<>();
+ lowerBounds6.add(new Range(20, 100));
+ lowerBounds6.add(new Range(30, 86));
+ lowerBounds6.add(new Range(40, 80));
+ lowerBounds6.add(new Range(50, 74));
+ lowerBounds6.add(new Range(60, 60));
+ lowerBounds6.add(new Range(70, 52));
+ lowerBounds6.add(new Range(80, 44));
+ lowerBounds6.add(new Range(90, 39));
+ lowerBounds6.add(new Range(100, 35));
+
+ defineColor(
+ Color.BLUE.name(),
+ new Range(179, 257),
+ lowerBounds6
+ );
+
+ List lowerBounds7 = new ArrayList<>();
+ lowerBounds7.add(new Range(20, 100));
+ lowerBounds7.add(new Range(30, 87));
+ lowerBounds7.add(new Range(40, 79));
+ lowerBounds7.add(new Range(50, 70));
+ lowerBounds7.add(new Range(60, 65));
+ lowerBounds7.add(new Range(70, 59));
+ lowerBounds7.add(new Range(80, 52));
+ lowerBounds7.add(new Range(90, 45));
+ lowerBounds7.add(new Range(100, 42));
+
+ defineColor(
+ Color.PURPLE.name(),
+ new Range(258, 282),
+ lowerBounds7
+ );
+
+ List lowerBounds8 = new ArrayList<>();
+ lowerBounds8.add(new Range(20, 100));
+ lowerBounds8.add(new Range(30, 90));
+ lowerBounds8.add(new Range(40, 86));
+ lowerBounds8.add(new Range(60, 84));
+ lowerBounds8.add(new Range(80, 80));
+ lowerBounds8.add(new Range(90, 75));
+ lowerBounds8.add(new Range(100, 73));
+
+ defineColor(
+ Color.PINK.name(),
+ new Range(283, 334),
+ lowerBounds8
+ );
+ }
+
+ public static enum Color {
+ MONOCHROME, RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE, PINK
+ }
+}
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/utils/Range.java b/baselib/src/main/java/com/tenlionsoft/baselib/utils/Range.java
new file mode 100644
index 0000000..d13c7af
--- /dev/null
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/utils/Range.java
@@ -0,0 +1,20 @@
+package com.tenlionsoft.baselib.utils;
+
+public class Range {
+ int start;
+ int end;
+
+ public Range(int start, int end) {
+ this.start = start;
+ this.end = end;
+ }
+
+ public boolean contain(int value) {
+ return value >= start && value <= end;
+ }
+
+ @Override
+ public String toString() {
+ return "start: " + start + " end: " + end;
+ }
+}
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/utils/TimeUtils.java b/baselib/src/main/java/com/tenlionsoft/baselib/utils/TimeUtils.java
index a9ccc0b..855af82 100755
--- a/baselib/src/main/java/com/tenlionsoft/baselib/utils/TimeUtils.java
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/utils/TimeUtils.java
@@ -117,6 +117,11 @@ public final class TimeUtils {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.format(date);
}
+ public static String getCurrentTimeHHMM(){
+ Date date = new Date();
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ return format.format(date);
+ }
public static String getCurrentDate() {
Date date = new Date();
diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/utils/ToastUtils.java b/baselib/src/main/java/com/tenlionsoft/baselib/utils/ToastUtils.java
new file mode 100644
index 0000000..63b2604
--- /dev/null
+++ b/baselib/src/main/java/com/tenlionsoft/baselib/utils/ToastUtils.java
@@ -0,0 +1,18 @@
+package com.tenlionsoft.baselib.utils;
+
+import com.hjq.toast.Toaster;
+import com.tenlionsoft.baselib.utils.ToastUtils;
+
+public class ToastUtils {
+ public static void show(String content) {
+ Toaster.show(content);
+ }
+
+ public static void show(int content) {
+ Toaster.show(content);
+ }
+
+ public static void showLong(String content) {
+ Toaster.showLong(content);
+ }
+}
diff --git a/baselib/src/main/res/drawable-xhdpi/ic_rb_normal_icon.png b/baselib/src/main/res/drawable-xhdpi/ic_rb_normal_icon.png
new file mode 100644
index 0000000..dcb1c7f
Binary files /dev/null and b/baselib/src/main/res/drawable-xhdpi/ic_rb_normal_icon.png differ
diff --git a/baselib/src/main/res/drawable-xhdpi/ic_rb_sel_point.png b/baselib/src/main/res/drawable-xhdpi/ic_rb_sel_point.png
new file mode 100644
index 0000000..4801373
Binary files /dev/null and b/baselib/src/main/res/drawable-xhdpi/ic_rb_sel_point.png differ
diff --git a/baselib/src/main/res/drawable-xhdpi/ic_statistics_count_percent_icon.png b/baselib/src/main/res/drawable-xhdpi/ic_statistics_count_percent_icon.png
new file mode 100644
index 0000000..d641360
Binary files /dev/null and b/baselib/src/main/res/drawable-xhdpi/ic_statistics_count_percent_icon.png differ
diff --git a/baselib/src/main/res/drawable/sel_radio_item_hook.xml b/baselib/src/main/res/drawable/sel_radio_item_hook.xml
new file mode 100644
index 0000000..aba2734
--- /dev/null
+++ b/baselib/src/main/res/drawable/sel_radio_item_hook.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/baselib/src/main/res/drawable/shp_rectangle_shade_white_blue.xml b/baselib/src/main/res/drawable/shp_rectangle_shade_white_blue.xml
new file mode 100755
index 0000000..5b0bd49
--- /dev/null
+++ b/baselib/src/main/res/drawable/shp_rectangle_shade_white_blue.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/baselib/src/main/res/drawable/shp_rectangle_top_left_bottom.xml b/baselib/src/main/res/drawable/shp_rectangle_top_left_bottom.xml
new file mode 100755
index 0000000..f43ac4a
--- /dev/null
+++ b/baselib/src/main/res/drawable/shp_rectangle_top_left_bottom.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/baselib/src/main/res/drawable/shp_rectangle_yellow_shallow.xml b/baselib/src/main/res/drawable/shp_rectangle_yellow_shallow.xml
new file mode 100755
index 0000000..a53512a
--- /dev/null
+++ b/baselib/src/main/res/drawable/shp_rectangle_yellow_shallow.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/baselib/src/main/res/layout/dialog_center_update_progress.xml b/baselib/src/main/res/layout/dialog_center_update_progress.xml
new file mode 100755
index 0000000..be5f4e9
--- /dev/null
+++ b/baselib/src/main/res/layout/dialog_center_update_progress.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/baselib/src/main/res/layout/item_all_area_sel.xml b/baselib/src/main/res/layout/item_all_area_sel.xml
new file mode 100644
index 0000000..35d706b
--- /dev/null
+++ b/baselib/src/main/res/layout/item_all_area_sel.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/baselib/src/main/res/layout/popup_all_area_layout.xml b/baselib/src/main/res/layout/popup_all_area_layout.xml
new file mode 100644
index 0000000..7b6b880
--- /dev/null
+++ b/baselib/src/main/res/layout/popup_all_area_layout.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/baselib/src/main/res/values/attrs.xml b/baselib/src/main/res/values/attrs.xml
index 9933a0c..ec47df2 100755
--- a/baselib/src/main/res/values/attrs.xml
+++ b/baselib/src/main/res/values/attrs.xml
@@ -194,4 +194,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/baselib/src/main/res/values/colors.xml b/baselib/src/main/res/values/colors.xml
index 152ece6..0cc078c 100755
--- a/baselib/src/main/res/values/colors.xml
+++ b/baselib/src/main/res/values/colors.xml
@@ -60,6 +60,7 @@
#fa5148
#ffffffff
+ #9C8EC6
#31EAE7E7
#80ffffff
#F2F0F0
diff --git a/baselib/src/main/res/values/dimens.xml b/baselib/src/main/res/values/dimens.xml
index ab67a49..ca1755e 100755
--- a/baselib/src/main/res/values/dimens.xml
+++ b/baselib/src/main/res/values/dimens.xml
@@ -8,6 +8,7 @@
22dp
14dp
12dp
+ 10dp
15dp
16dp
168dp
diff --git a/build.gradle b/build.gradle
index 05509fd..6adaebc 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.kotlin_version = '1.6.0'
+ ext.kotlin_version = '1.4.0-rc'
repositories {
google()
jcenter()
@@ -13,7 +13,7 @@ buildscript {
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
classpath "com.alibaba:arouter-register:1.0.2"
classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.6'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/AddressListActivity.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/AddressListActivity.java
index 0d9ffe9..5f0b452 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/AddressListActivity.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/AddressListActivity.java
@@ -15,7 +15,7 @@ import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.github.promeg.pinyinhelper.Pinyin;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.chatmodule.R;
import com.tengshisoft.chatmodule.R2;
import com.tengshisoft.chatmodule.fragments.OftenContactFragment;
@@ -31,6 +31,7 @@ import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.BaseViewPage2Adapter;
import com.tenlionsoft.baselib.core.widget.base.ViewPageNavigatorAdapter;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/AddressListSearchActivity.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/AddressListSearchActivity.java
index d3b53a0..98d484c 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/AddressListSearchActivity.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/AddressListSearchActivity.java
@@ -11,7 +11,7 @@ import android.widget.ProgressBar;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.chatmodule.R;
import com.tengshisoft.chatmodule.R2;
@@ -23,6 +23,7 @@ import com.tenlionsoft.baselib.core.db.UserDao;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider;
import com.tenlionsoft.baselib.core.widget.views.TypeFaceTextView;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.util.ArrayList;
import java.util.List;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/AddressUserDetailActivity.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/AddressUserDetailActivity.java
index 1b54611..601bde3 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/AddressUserDetailActivity.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/AddressUserDetailActivity.java
@@ -18,7 +18,7 @@ import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkCallInfo;
import com.huawei.ecterminalsdk.models.TsdkCommonResult;
import com.huawei.ecterminalsdk.models.call.TsdkCall;
@@ -57,6 +57,7 @@ import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.utils.AppUtils;
import com.tenlionsoft.baselib.utils.EncryptedSPTool;
import com.tenlionsoft.baselib.utils.LogUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/CallSingleActivity.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/CallSingleActivity.java
index e3df9cc..8bf1719 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/CallSingleActivity.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/CallSingleActivity.java
@@ -8,7 +8,7 @@ import android.view.WindowManager;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.chatmodule.CallSessionCallback;
import com.tengshisoft.chatmodule.R;
import com.tengshisoft.chatmodule.beans.EnumType;
@@ -21,6 +21,7 @@ import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.constant.PermissionConstants;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.utils.PermissionUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.util.UUID;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/ChatActivity.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/ChatActivity.java
index 4ede050..5713985 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/ChatActivity.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/ChatActivity.java
@@ -22,7 +22,7 @@ import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkCallInfo;
import com.huawei.ecterminalsdk.models.TsdkCommonResult;
import com.huawei.ecterminalsdk.models.call.TsdkCall;
@@ -75,6 +75,7 @@ import com.tenlionsoft.baselib.utils.EncryptedSPTool;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.LogUtils;
import com.tenlionsoft.baselib.utils.PermissionUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/InvitedPointCallActivity.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/InvitedPointCallActivity.java
index 61dd06a..1aa2a1c 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/InvitedPointCallActivity.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/InvitedPointCallActivity.java
@@ -22,7 +22,7 @@ import android.widget.TextView;
import com.allen.library.SuperTextView;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkConfRole;
import com.huawei.ecterminalsdk.base.TsdkLdapContactsInfo;
import com.huawei.ecterminalsdk.base.TsdkMobileAuidoRoute;
@@ -82,6 +82,7 @@ import com.tenlionsoft.baselib.constant.ConfConstant;
import com.tenlionsoft.baselib.core.beans.Member;
import com.tenlionsoft.baselib.utils.EncryptedSPTool;
import com.tenlionsoft.baselib.utils.LogUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.io.File;
import java.util.ArrayList;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/ParticipantsActivityV2.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/ParticipantsActivityV2.java
index 20b213e..8634d5b 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/ParticipantsActivityV2.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/ParticipantsActivityV2.java
@@ -17,7 +17,7 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import com.google.android.material.bottomsheet.BottomSheetDialog;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkConfAttendeeInfo;
import com.huawei.ecterminalsdk.base.TsdkConfSpeaker;
import com.huawei.ecterminalsdk.base.TsdkConfTerminalType;
@@ -42,6 +42,7 @@ import com.tengshisoft.chatmodule.hwclud.utils.UIUtil;
import com.tenlionsoft.baselib.constant.ConstantsV2;
import com.tenlionsoft.baselib.core.beans.Member;
import com.tenlionsoft.baselib.utils.EncryptedSPTool;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.util.ArrayList;
import java.util.List;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/SponsorMeetingActivity.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/SponsorMeetingActivity.java
index e9ae3b4..56ece14 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/SponsorMeetingActivity.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/activity/SponsorMeetingActivity.java
@@ -31,7 +31,7 @@ import android.widget.TextView;
import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkConfRole;
import com.huawei.ecterminalsdk.base.TsdkMobileAuidoRoute;
import com.huawei.ecterminalsdk.base.TsdkNotifyHandUpAttendee;
@@ -106,6 +106,7 @@ import com.tenlionsoft.baselib.constant.BroadcastConstant;
import com.tenlionsoft.baselib.constant.ConfConstant;
import com.tenlionsoft.baselib.core.beans.Member;
import com.tenlionsoft.baselib.utils.EncryptedSPTool;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.util.ArrayList;
import java.util.Iterator;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/LoginMangerV2.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/LoginMangerV2.java
index bc188c1..9d3e7a1 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/LoginMangerV2.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/manager/LoginMangerV2.java
@@ -4,7 +4,7 @@ package com.tengshisoft.chatmodule.hwclud.manager;
import android.os.Build;
import android.text.TextUtils;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkAuthType;
import com.huawei.ecterminalsdk.base.TsdkFailedInfo;
import com.huawei.ecterminalsdk.base.TsdkForceLogoutInfo;
@@ -38,6 +38,7 @@ import com.tenlionsoft.baselib.constant.BroadcastConstant;
import com.tenlionsoft.baselib.constant.ConstantsV2;
import com.tenlionsoft.baselib.utils.EncryptedSPTool;
import com.tenlionsoft.baselib.utils.LogUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UserLgUtils;
import androidx.annotation.RequiresApi;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/AuxSendService.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/AuxSendService.java
index 5a6953d..a345260 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/AuxSendService.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/AuxSendService.java
@@ -20,7 +20,7 @@ import android.view.ViewConfiguration;
import android.view.WindowManager;
import android.widget.LinearLayout;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.models.call.TsdkCall;
import com.tengshisoft.chatmodule.R;
import com.tengshisoft.chatmodule.activity.SponsorMeetingActivity;
@@ -39,6 +39,7 @@ import com.tengshisoft.chatmodule.hwclud.utils.Platform;
import com.tenlionsoft.baselib.constant.BroadcastConstant;
import com.tenlionsoft.baselib.constant.ConstantsV2;
import com.tenlionsoft.baselib.core.beans.Member;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import androidx.annotation.RequiresApi;
import androidx.core.app.NotificationCompat;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/FloatingViewService.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/FloatingViewService.java
index 2d861b9..973fa91 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/FloatingViewService.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/FloatingViewService.java
@@ -17,12 +17,13 @@ import android.widget.Chronometer;
import android.widget.FrameLayout;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.chatmodule.R;
import com.tengshisoft.chatmodule.activity.SponsorMeetingActivity;
import com.tengshisoft.chatmodule.hwclud.listener.FloatingViewListener;
import com.tengshisoft.chatmodule.hwclud.manager.FloatingViewManager;
import com.tengshisoft.chatmodule.hwclud.utils.LogUtil;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import androidx.annotation.RequiresApi;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/MinimizeService.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/MinimizeService.java
index 7886759..859753a 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/MinimizeService.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/MinimizeService.java
@@ -20,7 +20,7 @@ import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.TextView;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkWatchSvcAttendees;
import com.huawei.ecterminalsdk.models.call.TsdkCall;
import com.tengshisoft.chatmodule.R;
@@ -49,6 +49,7 @@ import com.tenlionsoft.baselib.app.BaseAppContext;
import com.tenlionsoft.baselib.constant.BroadcastConstant;
import com.tenlionsoft.baselib.core.beans.Member;
import com.tenlionsoft.baselib.utils.EncryptedSPTool;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.util.List;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/ServiceNotifyV2.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/ServiceNotifyV2.java
index 766a82e..9c93240 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/ServiceNotifyV2.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/serivce/ServiceNotifyV2.java
@@ -6,7 +6,7 @@ import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkAttendee;
import com.huawei.ecterminalsdk.base.TsdkAudioNetQuality;
import com.huawei.ecterminalsdk.base.TsdkAuxTokenOwnerInd;
@@ -91,6 +91,7 @@ import com.tenlionsoft.baselib.constant.ConstantsV2;
import com.tenlionsoft.baselib.core.beans.Member;
import com.tenlionsoft.baselib.utils.EncryptedSPTool;
import com.tenlionsoft.baselib.utils.LogUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.util.TimerTask;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/AuxMeetingFragment.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/AuxMeetingFragment.java
index 1ef0c3a..afc131d 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/AuxMeetingFragment.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/AuxMeetingFragment.java
@@ -9,7 +9,7 @@ import android.os.Looper;
import android.util.Log;
import android.widget.FrameLayout;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.huawei.ecterminalsdk.base.TsdkWatchSvcAttendees;
import com.tengshisoft.chatmodule.R;
import com.tengshisoft.chatmodule.R2;
@@ -22,6 +22,7 @@ import com.tengshisoft.chatmodule.hwclud.receiver.LocalBroadcast;
import com.tengshisoft.chatmodule.hwclud.receiver.LocalBroadcastReceiver;
import com.tengshisoft.chatmodule.hwclud.utils.LogUtil;
import com.tenlionsoft.baselib.constant.BroadcastConstant;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/BaseMvpActivityV2.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/BaseMvpActivityV2.java
index 476a5c7..1e8fe44 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/BaseMvpActivityV2.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/BaseMvpActivityV2.java
@@ -14,7 +14,7 @@ import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.chatmodule.R;
import com.tengshisoft.chatmodule.activity.ChatActivity;
import com.tengshisoft.chatmodule.activity.InvitedPointCallActivity;
@@ -35,6 +35,7 @@ import com.tenlionsoft.baselib.app.BaseAppContext;
import com.tenlionsoft.baselib.constant.ConstantsV2;
import com.tenlionsoft.baselib.core.widget.views.LoadingDialog;
import com.tenlionsoft.baselib.utils.EncryptedSPTool;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.io.File;
import java.util.concurrent.TimeUnit;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/LazyloadFragment.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/LazyloadFragment.java
index 512badb..e7111a5 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/LazyloadFragment.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/LazyloadFragment.java
@@ -8,9 +8,10 @@ import android.view.View;
import android.view.ViewGroup;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.chatmodule.hwclud.listener.OrientationListener;
import com.tengshisoft.chatmodule.hwclud.utils.LogUtil;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.lang.ref.WeakReference;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/SvcVideoFragment.kt b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/SvcVideoFragment.kt
index 82fe854..d912df7 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/SvcVideoFragment.kt
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/ui/SvcVideoFragment.kt
@@ -7,7 +7,6 @@ import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.RelativeLayout
import androidx.annotation.RequiresApi
-import com.hjq.toast.ToastUtils
import com.huawei.ecterminalsdk.base.TsdkConfSpeakerInfo
import com.huawei.ecterminalsdk.base.TsdkWatchSvcAttendees
import com.tengshisoft.chatmodule.R
@@ -24,6 +23,7 @@ import com.tengshisoft.chatmodule.hwclud.utils.*
import com.tenlionsoft.baselib.constant.BroadcastConstant
import com.tenlionsoft.baselib.constant.ConfConstant
import com.tenlionsoft.baselib.core.beans.Member
+import com.tenlionsoft.baselib.utils.ToastUtils
import kotlinx.android.synthetic.main.fragment_svc_video.*
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/HuaweiUtils.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/HuaweiUtils.java
index 0357504..0b32ffe 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/HuaweiUtils.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/HuaweiUtils.java
@@ -14,7 +14,8 @@ import android.os.Build;
import android.util.Log;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.lang.reflect.Method;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/PhoneUtil.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/PhoneUtil.java
index aaacf6d..58644da 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/PhoneUtil.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/PhoneUtil.java
@@ -9,9 +9,10 @@ import android.provider.Settings;
import android.telephony.TelephonyManager;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.chatmodule.R;
import com.tenlionsoft.baselib.app.BaseAppContext;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.util.Calendar;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/UIUtil.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/UIUtil.java
index 7fdec07..03e7cee 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/UIUtil.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/hwclud/utils/UIUtil.java
@@ -40,12 +40,13 @@ import android.widget.Spinner;
import android.widget.SpinnerAdapter;
import android.widget.TextView;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.chatmodule.R;
import com.tenlionsoft.baselib.app.BaseAppContext;
import com.tenlionsoft.baselib.core.beans.Member;
import com.tenlionsoft.baselib.utils.EncryptedSPTool;
import com.tenlionsoft.baselib.utils.LogUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.lang.reflect.Field;
import java.security.InvalidParameterException;
diff --git a/chatmodule/src/main/java/com/tengshisoft/chatmodule/keeplive/services/VoipReceiver.java b/chatmodule/src/main/java/com/tengshisoft/chatmodule/keeplive/services/VoipReceiver.java
index d5f10d2..09b90ed 100644
--- a/chatmodule/src/main/java/com/tengshisoft/chatmodule/keeplive/services/VoipReceiver.java
+++ b/chatmodule/src/main/java/com/tengshisoft/chatmodule/keeplive/services/VoipReceiver.java
@@ -6,7 +6,8 @@ import android.content.Intent;
import android.media.AsyncPlayer;
import android.util.Log;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import java.util.ArrayList;
diff --git a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/DeptSelActivity.java b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/DeptSelActivity.java
index 680899c..0f06c09 100644
--- a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/DeptSelActivity.java
+++ b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/DeptSelActivity.java
@@ -11,7 +11,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import com.alibaba.android.arouter.facade.annotation.Route;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commandmodule.R;
import com.tengshisoft.commandmodule.R2;
@@ -22,6 +22,7 @@ import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAcceptDetailActivity.java b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAcceptDetailActivity.java
index e444715..ac8d962 100644
--- a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAcceptDetailActivity.java
+++ b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAcceptDetailActivity.java
@@ -35,7 +35,7 @@ import com.baidu.mapapi.model.LatLng;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.gson.Gson;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.commandmodule.R;
import com.tengshisoft.commandmodule.R2;
import com.tengshisoft.commonmodule.adapters.IncidentTagListAdapter;
@@ -64,6 +64,7 @@ import com.tenlionsoft.baselib.core.widget.views.DiffcultDialog;
import com.tenlionsoft.baselib.core.widget.views.OperatePopup;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.LogUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAcceptListActivity.java b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAcceptListActivity.java
index 7b4a9f3..b73c497 100644
--- a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAcceptListActivity.java
+++ b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAcceptListActivity.java
@@ -14,7 +14,7 @@ import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commandmodule.R;
import com.tengshisoft.commandmodule.R2;
@@ -26,6 +26,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAlterDetailActivity.java b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAlterDetailActivity.java
index 3750bde..e908bab 100644
--- a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAlterDetailActivity.java
+++ b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAlterDetailActivity.java
@@ -42,7 +42,7 @@ import com.bigkoo.pickerview.view.TimePickerView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.gson.Gson;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.commandmodule.R;
import com.tengshisoft.commandmodule.R2;
import com.tengshisoft.commonmodule.adapters.CommunityUserListBean;
@@ -70,6 +70,7 @@ import com.tenlionsoft.baselib.core.widget.videorecord.MediaManager;
import com.tenlionsoft.baselib.core.widget.views.OperatePopup;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.TimeUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAlterListActivity.java b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAlterListActivity.java
index db9f448..edbba44 100644
--- a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAlterListActivity.java
+++ b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAlterListActivity.java
@@ -18,7 +18,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commandmodule.R;
import com.tengshisoft.commandmodule.R2;
@@ -30,6 +30,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAnewListActivity.java b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAnewListActivity.java
index 1e6debe..40d52c5 100644
--- a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAnewListActivity.java
+++ b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentAnewListActivity.java
@@ -18,7 +18,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commandmodule.R;
import com.tengshisoft.commandmodule.R2;
@@ -30,6 +30,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentDispatchDetailActivity.java b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentDispatchDetailActivity.java
index 6bbbd97..0d73ffe 100644
--- a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentDispatchDetailActivity.java
+++ b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentDispatchDetailActivity.java
@@ -42,7 +42,7 @@ import com.bigkoo.pickerview.view.TimePickerView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.gson.Gson;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.commandmodule.R;
import com.tengshisoft.commandmodule.R2;
import com.tengshisoft.commonmodule.adapters.CommunityUserListBean;
@@ -68,6 +68,7 @@ import com.tenlionsoft.baselib.core.widget.videorecord.MediaManager;
import com.tenlionsoft.baselib.core.widget.views.OperatePopup;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.TimeUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentDispatchListActivity.java b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentDispatchListActivity.java
index de4efa8..78097ef 100644
--- a/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentDispatchListActivity.java
+++ b/commandmodule/src/main/java/com/tengshisoft/commandmodule/activitys/incident/IncidentDispatchListActivity.java
@@ -14,7 +14,7 @@ import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commandmodule.R;
import com.tengshisoft.commandmodule.R2;
@@ -26,6 +26,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentArchiveListActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentArchiveListActivity.java
index bc05bdc..34426e9 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentArchiveListActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentArchiveListActivity.java
@@ -15,7 +15,7 @@ import androidx.viewpager2.widget.ViewPager2;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
import com.tenlionsoft.baselib.constant.PathConfig;
@@ -27,6 +27,7 @@ import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.BaseViewPage2Adapter;
import com.tenlionsoft.baselib.core.widget.base.ViewPageNavigatorAdapter;
import com.tenlionsoft.baselib.core.widget.views.ConditionAreaPopup;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentAreaListActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentAreaListActivity.java
index 98747a7..e620ea7 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentAreaListActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentAreaListActivity.java
@@ -19,7 +19,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
@@ -34,6 +34,7 @@ import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.views.ConditionAreaPopup;
import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCenterCheckDetailActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCenterCheckDetailActivity.java
index be4d6c1..9f322c3 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCenterCheckDetailActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCenterCheckDetailActivity.java
@@ -34,7 +34,7 @@ import com.baidu.mapapi.model.LatLng;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.gson.Gson;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
@@ -64,6 +64,7 @@ import com.tenlionsoft.baselib.core.widget.views.CenterInputViewBase;
import com.tenlionsoft.baselib.core.widget.views.CenterTextAndInputView;
import com.tenlionsoft.baselib.core.widget.views.OperatePopup;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCenterCheckListActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCenterCheckListActivity.java
index 2b40e29..79cd674 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCenterCheckListActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCenterCheckListActivity.java
@@ -14,7 +14,7 @@ import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
@@ -27,6 +27,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCheckDetailActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCheckDetailActivity.java
index 60acfe5..52d1c83 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCheckDetailActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCheckDetailActivity.java
@@ -36,7 +36,7 @@ import com.baidu.mapapi.model.LatLng;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.gson.Gson;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
@@ -61,6 +61,7 @@ import com.tenlionsoft.baselib.core.widget.base.BaseShowPhotoAdapter;
import com.tenlionsoft.baselib.core.widget.videorecord.MediaManager;
import com.tenlionsoft.baselib.core.widget.views.ButtomDialogView;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCheckListActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCheckListActivity.java
index 89761a3..a88f9fe 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCheckListActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentCheckListActivity.java
@@ -15,7 +15,7 @@ import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.jakewharton.rxbinding3.widget.RxTextView;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.R;
@@ -28,6 +28,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentComponentSelActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentComponentSelActivity.java
index be565a9..6aa23ff 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentComponentSelActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentComponentSelActivity.java
@@ -9,7 +9,7 @@ import android.widget.ProgressBar;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
@@ -20,6 +20,7 @@ import com.tenlionsoft.baselib.constant.PathConfig;
import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDeferExamineDetailActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDeferExamineDetailActivity.java
index 3007d27..c330c02 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDeferExamineDetailActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDeferExamineDetailActivity.java
@@ -30,7 +30,7 @@ import com.baidu.mapapi.model.LatLng;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.gson.Gson;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
import com.tengshisoft.commonmodule.adapters.IncidentTagListAdapter;
@@ -55,6 +55,7 @@ import com.tenlionsoft.baselib.core.widget.base.BaseShowPhotoAdapter;
import com.tenlionsoft.baselib.core.widget.videorecord.MediaManager;
import com.tenlionsoft.baselib.core.widget.views.OperatePopup;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDeferExamineListActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDeferExamineListActivity.java
index 5d527d5..0ff19df 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDeferExamineListActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDeferExamineListActivity.java
@@ -6,7 +6,7 @@ import android.view.View;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
import com.tenlionsoft.baselib.constant.PathConfig;
@@ -14,6 +14,7 @@ import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.BaseViewPage2Adapter;
import com.tenlionsoft.baselib.core.widget.base.ViewPageNavigatorAdapter;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import net.lucode.hackware.magicindicator.MagicIndicator;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDetailActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDetailActivity.java
index bb4c1fe..055908b 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDetailActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDetailActivity.java
@@ -39,7 +39,7 @@ import com.baidu.mapapi.model.LatLng;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.gson.Gson;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
@@ -75,6 +75,7 @@ import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider;
import com.tenlionsoft.baselib.core.widget.views.OperatePopup;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.LogUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDoneListActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDoneListActivity.java
index 3f86d52..746083d 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDoneListActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentDoneListActivity.java
@@ -15,7 +15,7 @@ import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.jakewharton.rxbinding3.widget.RxTextView;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.R;
@@ -28,6 +28,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentEditActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentEditActivity.java
index c67861b..f04cc91 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentEditActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentEditActivity.java
@@ -29,7 +29,7 @@ import com.baidu.mapapi.model.LatLng;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.gson.Gson;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
@@ -49,6 +49,7 @@ import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.base.BaseShowPhotoAdapter;
import com.tenlionsoft.baselib.core.widget.videorecord.MediaManager;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentHandleActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentHandleActivity.java
index f5c8046..b216cff 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentHandleActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentHandleActivity.java
@@ -42,7 +42,7 @@ import com.baidu.mapapi.model.LatLng;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.gson.Gson;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
import com.tengshisoft.commonmodule.adapters.DeferRecordAdapter;
@@ -75,6 +75,7 @@ import com.tenlionsoft.baselib.core.widget.views.CenterInputView;
import com.tenlionsoft.baselib.core.widget.views.CenterTimeAndIntputView;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.LogUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentHandleListActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentHandleListActivity.java
index adfb5f5..caa9bb0 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentHandleListActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentHandleListActivity.java
@@ -15,7 +15,7 @@ import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.jakewharton.rxbinding3.widget.RxTextView;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.R;
@@ -28,6 +28,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentListActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentListActivity.java
index f1f3de3..dbad5f6 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentListActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentListActivity.java
@@ -15,7 +15,7 @@ import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.jakewharton.rxbinding3.widget.RxTextView;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.R;
@@ -28,6 +28,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentOverseeDetailOrReplyActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentOverseeDetailOrReplyActivity.java
index c840da4..402aa51 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentOverseeDetailOrReplyActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentOverseeDetailOrReplyActivity.java
@@ -10,7 +10,7 @@ import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.google.gson.Gson;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
import com.tengshisoft.commonmodule.beans.IncidentOverseeDetailBean;
@@ -22,6 +22,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentReportActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentReportActivity.java
index f597ab1..20c66c7 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentReportActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentReportActivity.java
@@ -37,7 +37,7 @@ import com.bigkoo.pickerview.view.OptionsPickerView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.google.gson.Gson;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
import com.tengshisoft.commonmodule.beans.AreaGridListBean;
@@ -66,6 +66,7 @@ import com.tenlionsoft.baselib.core.widget.views.AreaChooseDialog;
import com.tenlionsoft.baselib.core.widget.views.ButtomDialogView;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.PermissionUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentReturnRecordActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentReturnRecordActivity.java
index 4fde9c0..c839bca 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentReturnRecordActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentReturnRecordActivity.java
@@ -6,7 +6,7 @@ import android.view.View;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentReturnRecordAddActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentReturnRecordAddActivity.java
index 0dac0bd..07967dc 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentReturnRecordAddActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentReturnRecordAddActivity.java
@@ -15,7 +15,7 @@ import com.bigkoo.pickerview.builder.TimePickerBuilder;
import com.bigkoo.pickerview.view.OptionsPickerView;
import com.bigkoo.pickerview.view.TimePickerView;
import com.google.gson.Gson;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
import com.tengshisoft.commonmodule.beans.SaveFloatingBean;
@@ -28,6 +28,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager;
import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.utils.ExceptionHandler;
import com.tenlionsoft.baselib.utils.TimeUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import com.tenlionsoft.baselib.utils.UserLgUtils;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentSpecialActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentSpecialActivity.java
index 8b72641..c554444 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentSpecialActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentSpecialActivity.java
@@ -7,7 +7,7 @@ import android.view.View;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.gyf.immersionbar.ImmersionBar;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
import com.tenlionsoft.baselib.constant.PathConfig;
@@ -16,6 +16,7 @@ import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.BaseViewPage2Adapter;
import com.tenlionsoft.baselib.core.widget.base.ViewPageNavigatorAdapter;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import net.lucode.hackware.magicindicator.MagicIndicator;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentSpecialDeptActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentSpecialDeptActivity.java
index 0a66ec7..a2a4079 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentSpecialDeptActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/IncidentSpecialDeptActivity.java
@@ -5,7 +5,7 @@ import android.view.View;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
-import com.hjq.toast.ToastUtils;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tengshisoft.commonmodule.R;
import com.tengshisoft.commonmodule.R2;
import com.tenlionsoft.baselib.constant.PathConfig;
@@ -14,6 +14,7 @@ import com.tenlionsoft.baselib.core.widget.base.BaseActivity;
import com.tenlionsoft.baselib.core.widget.base.BaseFragment;
import com.tenlionsoft.baselib.core.widget.base.BaseViewPage2Adapter;
import com.tenlionsoft.baselib.core.widget.base.ViewPageNavigatorAdapter;
+import com.tenlionsoft.baselib.utils.ToastUtils;
import com.tenlionsoft.baselib.utils.UIUtil;
import net.lucode.hackware.magicindicator.MagicIndicator;
diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/TaskConverIncidentDetailActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/TaskConverIncidentDetailActivity.java
index 2828db0..978c91e 100644
--- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/TaskConverIncidentDetailActivity.java
+++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/TaskConverIncidentDetailActivity.java
@@ -127,6 +127,7 @@ public class TaskConverIncidentDetailActivity extends BaseActivity {
private void getDetailData() {
Observable incidentDetailById = RetrofitManager.getInstance().create(GridApis.class).getIncidentDetailById(mReportId, UserLgUtils.getToken());
Observable taskReportDetailById = RetrofitManager.getInstance().create(GridApis.class).getTaskReportDetailById(mRecordId, UserLgUtils.getToken());
+
Observable.mergeDelayError(incidentDetailById, taskReportDetailById)
.compose(RxTransformer.getTransformer())
.subscribe(new Observer