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() { diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/TaskConverIncidentReportActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/TaskConverIncidentReportActivity.java index a21908f..da81ed3 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/TaskConverIncidentReportActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/cases/TaskConverIncidentReportActivity.java @@ -28,7 +28,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.commonmodule.R; import com.tengshisoft.commonmodule.R2; import com.tengshisoft.commonmodule.beans.AreaGridListBean; @@ -56,6 +56,7 @@ import com.tenlionsoft.baselib.utils.ExceptionHandler; import com.tenlionsoft.baselib.utils.LogUtils; import com.tenlionsoft.baselib.utils.PermissionUtils; 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/department/ChooseCommunityUserActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseCommunityUserActivity.java index b59df58..afaef2e 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseCommunityUserActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseCommunityUserActivity.java @@ -14,7 +14,7 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.google.android.flexbox.FlexDirection; import com.google.android.flexbox.FlexWrap; import com.google.android.flexbox.FlexboxLayoutManager; -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; @@ -30,6 +30,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.UserLgUtils; import java.util.ArrayList; diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseDeptActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseDeptActivity.java index 24d3d8c..3ff6d7e 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseDeptActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseDeptActivity.java @@ -11,7 +11,7 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.google.android.flexbox.FlexDirection; import com.google.android.flexbox.FlexWrap; import com.google.android.flexbox.FlexboxLayoutManager; -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.RetrofitManager; import com.tenlionsoft.baselib.core.widget.base.BaseActivity; import com.tenlionsoft.baselib.utils.ExceptionHandler; 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/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseDeptKnowLedgeActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseDeptKnowLedgeActivity.java index 4118b71..e88edb9 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseDeptKnowLedgeActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseDeptKnowLedgeActivity.java @@ -11,7 +11,7 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.google.android.flexbox.FlexDirection; import com.google.android.flexbox.FlexWrap; import com.google.android.flexbox.FlexboxLayoutManager; -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; @@ -30,6 +30,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.UserLgUtils; import java.util.ArrayList; diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseDeptUserActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseDeptUserActivity.java index e307736..bd99eb0 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseDeptUserActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseDeptUserActivity.java @@ -10,7 +10,7 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.google.android.flexbox.FlexDirection; import com.google.android.flexbox.FlexWrap; import com.google.android.flexbox.FlexboxLayoutManager; -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; @@ -26,6 +26,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.UserLgUtils; import java.util.ArrayList; diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseGridActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseGridActivity.java index 081494b..73c1169 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseGridActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseGridActivity.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; @@ -21,6 +21,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.UserLgUtils; import java.util.ArrayList; diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseGridUserActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseGridUserActivity.java index aafec3b..0b2756a 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseGridUserActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseGridUserActivity.java @@ -14,7 +14,7 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.google.android.flexbox.FlexDirection; import com.google.android.flexbox.FlexWrap; import com.google.android.flexbox.FlexboxLayoutManager; -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; @@ -29,6 +29,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.UserLgUtils; import java.util.ArrayList; diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseOrgAreaActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseOrgAreaActivity.java index 8183694..a8ac068 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseOrgAreaActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChooseOrgAreaActivity.java @@ -10,7 +10,7 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.google.android.flexbox.FlexDirection; import com.google.android.flexbox.FlexWrap; import com.google.android.flexbox.FlexboxLayoutManager; -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; @@ -24,6 +24,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.UserLgUtils; import java.util.ArrayList; diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChoosePersonActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChoosePersonActivity.java index d9f54fc..e3521e8 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChoosePersonActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/department/ChoosePersonActivity.java @@ -12,7 +12,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; @@ -23,6 +23,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/journal/JournalListActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/journal/JournalListActivity.java index a8cdec1..54efcc4 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/journal/JournalListActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/journal/JournalListActivity.java @@ -16,7 +16,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; @@ -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/logs/StatisticsCommandActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/logs/StatisticsCommandActivity.java index 8da716b..bc8e969 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/logs/StatisticsCommandActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/logs/StatisticsCommandActivity.java @@ -89,6 +89,7 @@ public class StatisticsCommandActivity extends BaseActivity { commonNavigator.setAdapter(new ViewPageWhiteNavigatorAdapter(this, mTitles, mVpContent)); commonNavigator.setAdjustMode(false); mMiTabs.setNavigator(commonNavigator); + mVpContent.setUserInputEnabled(false); UIUtil.bindViewPager2(mMiTabs, mVpContent, null); } diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/logs/StatisticsGridActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/logs/StatisticsGridActivity.java index e78a0c2..ff9f5eb 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/logs/StatisticsGridActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/logs/StatisticsGridActivity.java @@ -17,7 +17,7 @@ import com.github.mikephil.charting.data.BarDataSet; import com.github.mikephil.charting.data.BarEntry; import com.github.mikephil.charting.formatter.LargeValueFormatter; 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.tengshisoft.commonmodule.beans.GridStatistCountBean; @@ -27,6 +27,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.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/populace/CensusBaseDetailActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/populace/CensusBaseDetailActivity.java index 67581bf..df5a9e1 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/populace/CensusBaseDetailActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/populace/CensusBaseDetailActivity.java @@ -7,7 +7,7 @@ import android.widget.Button; 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.tengshisoft.commonmodule.R; import com.tengshisoft.commonmodule.R2; import com.tengshisoft.commonmodule.beans.SuccessBean; @@ -19,6 +19,7 @@ import com.tenlionsoft.baselib.core.widget.base.BaseActivity; import com.tenlionsoft.baselib.core.widget.views.CenterBaseInputView; import com.tenlionsoft.baselib.utils.ExceptionHandler; import com.tenlionsoft.baselib.utils.IDCard; +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/populace/PopulaceAreaListActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/populace/PopulaceAreaListActivity.java index 539e0b1..57b87b0 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/populace/PopulaceAreaListActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/populace/PopulaceAreaListActivity.java @@ -19,7 +19,6 @@ 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.scwang.smart.refresh.layout.SmartRefreshLayout; import com.tengshisoft.commonmodule.R; import com.tengshisoft.commonmodule.R2; @@ -36,6 +35,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; @@ -262,13 +262,9 @@ public class PopulaceAreaListActivity extends BaseActivity { AreaSimpleBean bean2 = new AreaSimpleBean(); bean2.setId("2"); bean2.setName("户籍人口(外出)"); - AreaSimpleBean bean3 = new AreaSimpleBean(); - bean3.setId("3"); - bean3.setName("非户籍人口"); mTypeList = new ArrayList<>(); mTypeList.add(bean1); mTypeList.add(bean2); - mTypeList.add(bean3); } diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeAskAddActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeAskAddActivity.java index da2fb8c..697ddf5 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeAskAddActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeAskAddActivity.java @@ -10,7 +10,7 @@ import android.widget.TextView; import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.launcher.ARouter; 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.DeptBean; @@ -23,6 +23,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/repository/KnowLedgeAskDetailActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeAskDetailActivity.java index 8fb77a3..04b4cbb 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeAskDetailActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeAskDetailActivity.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.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.KnowAskDetailBean; @@ -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.CenterBaseInputView; 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/repository/KnowLedgeDetailActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeDetailActivity.java index cbdff07..0d014f8 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeDetailActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeDetailActivity.java @@ -18,7 +18,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.scwang.smart.refresh.layout.SmartRefreshLayout; import com.tengshisoft.commonmodule.R; import com.tengshisoft.commonmodule.R2; @@ -37,6 +37,7 @@ import com.tenlionsoft.baselib.core.widget.views.CorrectionDialog; import com.tenlionsoft.baselib.core.widget.views.ItemSplitDivider; import com.tenlionsoft.baselib.core.widget.views.NestedScrollWebView; 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/repository/KnowLedgeListActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeListActivity.java index 2b50a98..b491d20 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeListActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeListActivity.java @@ -9,7 +9,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.tengshisoft.commonmodule.nets.GridApis; @@ -24,6 +24,7 @@ import com.tenlionsoft.baselib.core.widget.base.BaseViewPage2Adapter; import com.tenlionsoft.baselib.core.widget.base.ViewPageNavigatorAdapter; import com.tenlionsoft.baselib.core.widget.views.ConditionDicPopup; 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/repository/KnowLedgeManageAddActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeManageAddActivity.java index b62003a..4603e70 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeManageAddActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeManageAddActivity.java @@ -13,7 +13,7 @@ import com.alibaba.android.arouter.launcher.ARouter; import com.bigkoo.pickerview.builder.OptionsPickerBuilder; import com.bigkoo.pickerview.view.OptionsPickerView; 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.CaseTypeBean; @@ -30,6 +30,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/repository/KnowLedgeManageDetailActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeManageDetailActivity.java index 631f9a6..6112c39 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeManageDetailActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeManageDetailActivity.java @@ -12,7 +12,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.tengshisoft.commonmodule.R; import com.tengshisoft.commonmodule.R2; import com.tengshisoft.commonmodule.beans.KnowReportDetailBean; @@ -23,6 +23,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/repository/KnowLedgeManageListActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeManageListActivity.java index 338038e..27858c6 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeManageListActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/repository/KnowLedgeManageListActivity.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; @@ -19,6 +19,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer; import com.tenlionsoft.baselib.core.widget.base.BaseActivity; import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter; import com.tenlionsoft.baselib.utils.ExceptionHandler; +import com.tenlionsoft.baselib.utils.ToastUtils; import com.tenlionsoft.baselib.utils.UserLgUtils; import java.util.ArrayList; diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/usercenter/ForgetPwdActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/usercenter/ForgetPwdActivity.java index 73aeb88..dcd5939 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/usercenter/ForgetPwdActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/usercenter/ForgetPwdActivity.java @@ -13,7 +13,7 @@ import android.widget.ImageView; 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.tenlionsoft.baselib.constant.PathConfig; @@ -27,6 +27,7 @@ import com.tenlionsoft.baselib.core.widget.base.BaseActivity; import com.tenlionsoft.baselib.utils.EncryptUtils; import com.tenlionsoft.baselib.utils.ExceptionHandler; import com.tenlionsoft.baselib.utils.RegexUtils; +import com.tenlionsoft.baselib.utils.ToastUtils; import com.tenlionsoft.baselib.utils.UIUtil; import java.util.concurrent.TimeUnit; diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/usercenter/UserCenterActivity.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/usercenter/UserCenterActivity.java index 743c4cc..5fce215 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/usercenter/UserCenterActivity.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/usercenter/UserCenterActivity.java @@ -20,7 +20,7 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.bumptech.glide.Glide; import com.bumptech.glide.load.resource.bitmap.CircleCrop; import com.bumptech.glide.request.RequestOptions; -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.BaseConfig; @@ -40,6 +40,7 @@ import com.tenlionsoft.baselib.utils.AppUtils; import com.tenlionsoft.baselib.utils.ExceptionHandler; import com.tenlionsoft.baselib.utils.FileUtils; import com.tenlionsoft.baselib.utils.ProiderUtil; +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/usercenter/UserCenterFragment.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/usercenter/UserCenterFragment.java index a190a01..ced401c 100755 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/usercenter/UserCenterFragment.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/activitys/usercenter/UserCenterFragment.java @@ -26,7 +26,7 @@ import com.bumptech.glide.load.resource.bitmap.CircleCrop; import com.bumptech.glide.request.RequestOptions; import com.github.promeg.pinyinhelper.Pinyin; 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.ChangePwdBean; @@ -61,6 +61,7 @@ import com.tenlionsoft.baselib.utils.ExceptionHandler; import com.tenlionsoft.baselib.utils.FileUtils; import com.tenlionsoft.baselib.utils.LogUtils; import com.tenlionsoft.baselib.utils.ProiderUtil; +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/adapters/GridPersonCountAdapter.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/GridPersonCountAdapter.java new file mode 100644 index 0000000..e9a3c62 --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/GridPersonCountAdapter.java @@ -0,0 +1,56 @@ +package com.tengshisoft.commonmodule.adapters; + +import android.content.Context; +import android.graphics.Color; +import android.graphics.Typeface; +import android.text.SpannableString; +import android.text.style.ForegroundColorSpan; +import android.text.style.RelativeSizeSpan; +import android.text.style.StyleSpan; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.tengshisoft.commonmodule.R; +import com.tengshisoft.commonmodule.beans.AreaGridLowCountBean; +import com.tengshisoft.commonmodule.holders.GridCountItemHolder; +import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter; + +import java.util.List; + +/** + * 作者: adam + * 日期: 2021/9/26 - 3:01 下午 + * 邮箱: itgaojian@163.com + * 描述: 网格员 + */ +public class GridPersonCountAdapter extends BaseRecyclerAdapter { + + public GridPersonCountAdapter(Context ctx, List list) { + super(ctx, list); + } + + @Override + public GridCountItemHolder createHolder(ViewGroup parent, int viewType) { + View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_grid_count_percent, parent, false); + return new GridCountItemHolder(itemView); + } + + @Override + public void bindHolder(GridCountItemHolder h, int i) { + AreaGridLowCountBean.DataBean bean = mData.get(i); + h.mTvName.setText(bean.getAreaName()); + String content = bean.getTotal() + " 人"; + SpannableString gridCount = generateGridCount(content); + h.mTvCount.setText(gridCount); + } + + private SpannableString generateGridCount(String content) { + SpannableString s = new SpannableString(content); + s.setSpan(new RelativeSizeSpan(1.2f), 0, content.indexOf(" 人"), 0); + s.setSpan(new RelativeSizeSpan(0.6f), content.indexOf(" 人"), content.length(), 0); + s.setSpan(new ForegroundColorSpan(Color.parseColor("#F6B37F")), 0, content.indexOf(" 人"), 0); + s.setSpan(new StyleSpan(Typeface.BOLD), 0, content.length(), 0); + return s; + } +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/IncidentStatisticsAdapter.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/IncidentStatisticsAdapter.java new file mode 100644 index 0000000..649e326 --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/IncidentStatisticsAdapter.java @@ -0,0 +1,83 @@ +package com.tengshisoft.commonmodule.adapters; + +import android.content.Context; +import android.graphics.Color; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.tengshisoft.commonmodule.R; +import com.tengshisoft.commonmodule.beans.IncidentTop7Bean; +import com.tengshisoft.commonmodule.holders.IncidentStatisticsHolder; +import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter; + +import java.util.List; + +/** + * 作者: adam + * 日期: 2021/9/26 - 3:01 下午 + * 邮箱: itgaojian@163.com + * 描述: 网格员上报事件排行 + */ +public class IncidentStatisticsAdapter extends BaseRecyclerAdapter { + + public IncidentStatisticsAdapter(Context ctx, List list) { + super(ctx, list); + } + + @Override + public IncidentStatisticsHolder createHolder(ViewGroup parent, int viewType) { + View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_grid_incident_statistics, parent, false); + return new IncidentStatisticsHolder(itemView); + } + + @Override + public void bindHolder(IncidentStatisticsHolder h, int i) { + if (i == 0) { + h.mTvNumber.setText("排名"); + h.mTvName.setText("网格员姓名"); + h.mTvRanking.setText("上报事件"); + h.mTvNumber.setTextColor(Color.parseColor("#FFFFFF")); + h.mTvNumber.setBackgroundResource(0); + h.mTvName.setTextColor(Color.parseColor("#FFFFFF")); + h.mTvRanking.setTextColor(Color.parseColor("#FFFFFF")); + h.mLlItemContent.setBackgroundResource(R.drawable.shp_rectangle_shade_white_blue); + } else { + h.mLlItemContent.setBackgroundResource(0); + if (mData.get(i).getPm() == 1) { + h.mTvNumber.setTextColor(Color.parseColor("#FFFFFF")); + h.mTvName.setTextColor(Color.parseColor("#46494D")); + h.mTvRanking.setTextColor(Color.parseColor("#46494D")); + h.mTvNumber.setBackgroundResource(R.drawable.ic_statistics_one); + h.mTvRanking.setText(mData.get(i).getReportNum() + ""); + h.mTvName.setText(mData.get(i).getUserName()); + h.mTvNumber.setText(mData.get(i).getPm() + ""); + } else if (mData.get(i).getPm() == 2) { + h.mTvNumber.setBackgroundResource(R.drawable.ic_statistics_two); + h.mTvNumber.setTextColor(Color.parseColor("#FFFFFF")); + h.mTvName.setTextColor(Color.parseColor("#46494D")); + h.mTvRanking.setTextColor(Color.parseColor("#46494D")); + h.mTvRanking.setText(mData.get(i).getReportNum() + ""); + h.mTvName.setText(mData.get(i).getUserName()); + h.mTvNumber.setText(mData.get(i).getPm() + ""); + } else if (mData.get(i).getPm() == 3) { + h.mTvNumber.setBackgroundResource(R.drawable.ic_statistics_third); + h.mTvNumber.setTextColor(Color.parseColor("#FFFFFF")); + h.mTvName.setTextColor(Color.parseColor("#46494D")); + h.mTvRanking.setTextColor(Color.parseColor("#46494D")); + h.mTvRanking.setText(mData.get(i).getReportNum() + ""); + h.mTvName.setText(mData.get(i).getUserName()); + h.mTvNumber.setText(mData.get(i).getPm() + ""); + } else { + h.mTvNumber.setBackgroundResource(0); + h.mTvNumber.setTextColor(Color.parseColor("#46494D")); + h.mTvName.setTextColor(Color.parseColor("#46494D")); + h.mTvRanking.setTextColor(Color.parseColor("#46494D")); + h.mTvRanking.setText(mData.get(i).getReportNum() + ""); + h.mTvName.setText(mData.get(i).getUserName()); + h.mTvNumber.setText(mData.get(i).getPm() + ""); + } + } + } + +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/LabelAdapter.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/LabelAdapter.java index ea8e033..c835827 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/LabelAdapter.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/LabelAdapter.java @@ -1,7 +1,6 @@ package com.tengshisoft.commonmodule.adapters; import android.content.Context; -import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -34,7 +33,7 @@ public class LabelAdapter extends BaseRecyclerAdapter { @Override public void bindHolder(LabelHolder h, int i) { LabelBean bean = mData.get(i); - h.mIvLabel.setBackgroundColor(Color.parseColor(bean.getColor())); + h.mIvLabel.setBackgroundColor(bean.getColor()); h.mTvHint.setText(bean.getHint()); } diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/PopulaceCountAdapter.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/PopulaceCountAdapter.java new file mode 100644 index 0000000..0002855 --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/PopulaceCountAdapter.java @@ -0,0 +1,40 @@ +package com.tengshisoft.commonmodule.adapters; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.tengshisoft.commonmodule.R; +import com.tengshisoft.commonmodule.beans.AreaPopulaceBean; +import com.tengshisoft.commonmodule.holders.PopulaceItemHolder; +import com.tenlionsoft.baselib.core.widget.base.BaseRecyclerAdapter; + +import java.util.List; + +/** + * 作者: adam + * 日期: 2021/9/26 - 3:01 下午 + * 邮箱: itgaojian@163.com + * 描述: 人口 + */ +public class PopulaceCountAdapter extends BaseRecyclerAdapter { + + public PopulaceCountAdapter(Context ctx, List list) { + super(ctx, list); + } + + @Override + public PopulaceItemHolder createHolder(ViewGroup parent, int viewType) { + View itemView = LayoutInflater.from(mContext).inflate(R.layout.item_populace_percent, parent, false); + return new PopulaceItemHolder(itemView); + } + + @Override + public void bindHolder(PopulaceItemHolder h, int i) { + AreaPopulaceBean.ItemBean bean = mData.get(i); + h.mTvName.setText(bean.getName()); + h.mTvCount.setText(bean.getCount()); + } + +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaGridCountBean.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaGridCountBean.java new file mode 100644 index 0000000..f102590 --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaGridCountBean.java @@ -0,0 +1,35 @@ +package com.tengshisoft.commonmodule.beans; + +public class AreaGridCountBean { + + private DataBean data; + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public static class DataBean { + private int count; + private int total; + + public int getCount() { + return count; + } + + public void setCount(int count) { + this.count = count; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + } +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaGridLowCountBean.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaGridLowCountBean.java new file mode 100644 index 0000000..39a992d --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaGridLowCountBean.java @@ -0,0 +1,55 @@ +package com.tengshisoft.commonmodule.beans; + +import java.util.List; + +public class AreaGridLowCountBean { + + private List data; + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public static class DataBean { + private String areaCode; + private String areaId; + private String areaName; + private int total; + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getAreaId() { + return areaId; + } + + public void setAreaId(String areaId) { + this.areaId = areaId; + } + + public String getAreaName() { + return areaName; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + } +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaIncidentCategoryBean.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaIncidentCategoryBean.java new file mode 100644 index 0000000..ac30557 --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaIncidentCategoryBean.java @@ -0,0 +1,68 @@ +package com.tengshisoft.commonmodule.beans; + +public class AreaIncidentCategoryBean { + + private int noOverNum; + private int overNum; + private int reportNum; + private String reportScale; + private String typeId; + private String typeName1; + private String typeName2; + + public int getNoOverNum() { + return noOverNum; + } + + public void setNoOverNum(int noOverNum) { + this.noOverNum = noOverNum; + } + + public int getOverNum() { + return overNum; + } + + public void setOverNum(int overNum) { + this.overNum = overNum; + } + + public int getReportNum() { + return reportNum; + } + + public void setReportNum(int reportNum) { + this.reportNum = reportNum; + } + + public String getReportScale() { + return reportScale; + } + + public void setReportScale(String reportScale) { + this.reportScale = reportScale; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + + public String getTypeName1() { + return typeName1; + } + + public void setTypeName1(String typeName1) { + this.typeName1 = typeName1; + } + + public String getTypeName2() { + return typeName2; + } + + public void setTypeName2(String typeName2) { + this.typeName2 = typeName2; + } +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaIncidentHotBean.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaIncidentHotBean.java new file mode 100644 index 0000000..134a9c5 --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaIncidentHotBean.java @@ -0,0 +1,68 @@ +package com.tengshisoft.commonmodule.beans; + +public class AreaIncidentHotBean { + + private int noOverNum; + private int overNum; + private int reportNum; + private String reportScale; + private String typeId; + private String typeName1; + private String typeName2; + + public int getNoOverNum() { + return noOverNum; + } + + public void setNoOverNum(int noOverNum) { + this.noOverNum = noOverNum; + } + + public int getOverNum() { + return overNum; + } + + public void setOverNum(int overNum) { + this.overNum = overNum; + } + + public int getReportNum() { + return reportNum; + } + + public void setReportNum(int reportNum) { + this.reportNum = reportNum; + } + + public String getReportScale() { + return reportScale; + } + + public void setReportScale(String reportScale) { + this.reportScale = reportScale; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + + public String getTypeName1() { + return typeName1; + } + + public void setTypeName1(String typeName1) { + this.typeName1 = typeName1; + } + + public String getTypeName2() { + return typeName2; + } + + public void setTypeName2(String typeName2) { + this.typeName2 = typeName2; + } +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaIncidentPercentBean.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaIncidentPercentBean.java new file mode 100644 index 0000000..8299b1a --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaIncidentPercentBean.java @@ -0,0 +1,81 @@ +package com.tengshisoft.commonmodule.beans; + +public class AreaIncidentPercentBean { + + + private DataBean data; + + public DataBean getData() { + return data; + } + + public void setData(DataBean data) { + this.data = data; + } + + public static class DataBean { + private String dataTime; + private String nowAreaName; + private int nowAreaReportNum; + private String nowAreaReportScale; + private String otherAreaName; + private int otherAreaReportNum; + private String otherAreaReportScale; + + public String getDataTime() { + return dataTime; + } + + public void setDataTime(String dataTime) { + this.dataTime = dataTime; + } + + public String getNowAreaName() { + return nowAreaName; + } + + public void setNowAreaName(String nowAreaName) { + this.nowAreaName = nowAreaName; + } + + public int getNowAreaReportNum() { + return nowAreaReportNum; + } + + public void setNowAreaReportNum(int nowAreaReportNum) { + this.nowAreaReportNum = nowAreaReportNum; + } + + public String getNowAreaReportScale() { + return nowAreaReportScale; + } + + public void setNowAreaReportScale(String nowAreaReportScale) { + this.nowAreaReportScale = nowAreaReportScale; + } + + public String getOtherAreaName() { + return otherAreaName; + } + + public void setOtherAreaName(String otherAreaName) { + this.otherAreaName = otherAreaName; + } + + public int getOtherAreaReportNum() { + return otherAreaReportNum; + } + + public void setOtherAreaReportNum(int otherAreaReportNum) { + this.otherAreaReportNum = otherAreaReportNum; + } + + public String getOtherAreaReportScale() { + return otherAreaReportScale; + } + + public void setOtherAreaReportScale(String otherAreaReportScale) { + this.otherAreaReportScale = otherAreaReportScale; + } + } +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaIncidentScaleBean.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaIncidentScaleBean.java index f6d057e..2bb1509 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaIncidentScaleBean.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaIncidentScaleBean.java @@ -47,7 +47,8 @@ public class AreaIncidentScaleBean { private int reportNum; private String reportScale; private String typeId; - private String typeName; + private String typeName1; + private String typeName2; public int getNoOverNum() { return noOverNum; @@ -89,12 +90,20 @@ public class AreaIncidentScaleBean { this.typeId = typeId; } - public String getTypeName() { - return typeName; + public String getTypeName1() { + return typeName1; } - public void setTypeName(String typeName) { - this.typeName = typeName; + public void setTypeName1(String typeName1) { + this.typeName1 = typeName1; + } + + public String getTypeName2() { + return typeName2; + } + + public void setTypeName2(String typeName2) { + this.typeName2 = typeName2; } } } diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaPopulaceBean.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaPopulaceBean.java new file mode 100644 index 0000000..fd6cc8d --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/AreaPopulaceBean.java @@ -0,0 +1,268 @@ +package com.tengshisoft.commonmodule.beans; + +import java.util.List; + +public class AreaPopulaceBean { + + private int liuShiYiShang;//60以上 + private int dangYuan;//党员 + private int waiChuHuJi;//户籍外出 + private String zhanQuanShi;//占全市 + private String freshTime;//刷新时间 + private String shiJianLv;//事件率 + private String chuZhongYiShangZhanBi;//初中以上学历占比 + private String liuShiYiShangZhanBi;//60岁以上学历占比 + private String dangYuanZhanBi;//党员占比 + private int nanXing;//男性 + private int chuZhongYiShang;//初中以上人数 + private int nvXing;//女性 + private String hanZuZhanBi;//汉族占比 + private int zongShu;//总人口数 + private int changZhu;//常住人口 + private int hanZu;//汉族人口 + private String nanXingZhanBi;//男性占比 + private String nvXingZhanBi;//女性占比 + private int sheQuCun;//社区/村 + private boolean isGrid; + + private int huJi; + + + public boolean isGrid() { + return isGrid; + } + + public void setGrid(boolean grid) { + isGrid = grid; + } + + public int getHuJi() { + return huJi; + } + + public void setHuJi(int huJi) { + this.huJi = huJi; + } + + private List renKouShiJian; + + public int getLiuShiYiShang() { + return liuShiYiShang; + } + + public void setLiuShiYiShang(int liuShiYiShang) { + this.liuShiYiShang = liuShiYiShang; + } + + public int getDangYuan() { + return dangYuan; + } + + public void setDangYuan(int dangYuan) { + this.dangYuan = dangYuan; + } + + public int getWaiChuHuJi() { + return waiChuHuJi; + } + + public void setWaiChuHuJi(int waiChuHuJi) { + this.waiChuHuJi = waiChuHuJi; + } + + public String getZhanQuanShi() { + return zhanQuanShi; + } + + public void setZhanQuanShi(String zhanQuanShi) { + this.zhanQuanShi = zhanQuanShi; + } + + public String getFreshTime() { + return freshTime; + } + + public void setFreshTime(String freshTime) { + this.freshTime = freshTime; + } + + public String getShiJianLv() { + return shiJianLv; + } + + public void setShiJianLv(String shiJianLv) { + this.shiJianLv = shiJianLv; + } + + public String getChuZhongYiShangZhanBi() { + return chuZhongYiShangZhanBi; + } + + public void setChuZhongYiShangZhanBi(String chuZhongYiShangZhanBi) { + this.chuZhongYiShangZhanBi = chuZhongYiShangZhanBi; + } + + public String getLiuShiYiShangZhanBi() { + return liuShiYiShangZhanBi; + } + + public void setLiuShiYiShangZhanBi(String liuShiYiShangZhanBi) { + this.liuShiYiShangZhanBi = liuShiYiShangZhanBi; + } + + public String getDangYuanZhanBi() { + return dangYuanZhanBi; + } + + public void setDangYuanZhanBi(String dangYuanZhanBi) { + this.dangYuanZhanBi = dangYuanZhanBi; + } + + public int getNanXing() { + return nanXing; + } + + public void setNanXing(int nanXing) { + this.nanXing = nanXing; + } + + public int getChuZhongYiShang() { + return chuZhongYiShang; + } + + public void setChuZhongYiShang(int chuZhongYiShang) { + this.chuZhongYiShang = chuZhongYiShang; + } + + public int getNvXing() { + return nvXing; + } + + public void setNvXing(int nvXing) { + this.nvXing = nvXing; + } + + public String getHanZuZhanBi() { + return hanZuZhanBi; + } + + public void setHanZuZhanBi(String hanZuZhanBi) { + this.hanZuZhanBi = hanZuZhanBi; + } + + public int getZongShu() { + return zongShu; + } + + public void setZongShu(int zongShu) { + this.zongShu = zongShu; + } + + public int getChangZhu() { + return changZhu; + } + + public void setChangZhu(int changZhu) { + this.changZhu = changZhu; + } + + public int getHanZu() { + return hanZu; + } + + public void setHanZu(int hanZu) { + this.hanZu = hanZu; + } + + public String getNanXingZhanBi() { + return nanXingZhanBi; + } + + public void setNanXingZhanBi(String nanXingZhanBi) { + this.nanXingZhanBi = nanXingZhanBi; + } + + public String getNvXingZhanBi() { + return nvXingZhanBi; + } + + public void setNvXingZhanBi(String nvXingZhanBi) { + this.nvXingZhanBi = nvXingZhanBi; + } + + public int getSheQuCun() { + return sheQuCun; + } + + public void setSheQuCun(int sheQuCun) { + this.sheQuCun = sheQuCun; + } + + public List getRenKouShiJian() { + return renKouShiJian; + } + + public void setRenKouShiJian(List renKouShiJian) { + this.renKouShiJian = renKouShiJian; + } + + public static class RenKouShiJianBean { + private String areaCode; + private String areaName; + private int caseCount; + private int personCount; + + public String getAreaCode() { + return areaCode; + } + + public void setAreaCode(String areaCode) { + this.areaCode = areaCode; + } + + public String getAreaName() { + return areaName; + } + + public void setAreaName(String areaName) { + this.areaName = areaName; + } + + public int getCaseCount() { + return caseCount; + } + + public void setCaseCount(int caseCount) { + this.caseCount = caseCount; + } + + public int getPersonCount() { + return personCount; + } + + public void setPersonCount(int personCount) { + this.personCount = personCount; + } + } + + public static class ItemBean { + private String name; + private String count; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCount() { + return count; + } + + public void setCount(String count) { + this.count = count; + } + } +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/IncidentTop7Bean.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/IncidentTop7Bean.java new file mode 100644 index 0000000..56a27a8 --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/IncidentTop7Bean.java @@ -0,0 +1,95 @@ +package com.tengshisoft.commonmodule.beans; + +public class IncidentTop7Bean { + + private String countDate; + private String countGridUserId; + private int noOverNum; + private int noSelfNum; + private int overNum; + private int pm; + private int reportNum; + private int selfNum; + private String userId; + private String userName; + + public String getCountDate() { + return countDate; + } + + public void setCountDate(String countDate) { + this.countDate = countDate; + } + + public String getCountGridUserId() { + return countGridUserId; + } + + public void setCountGridUserId(String countGridUserId) { + this.countGridUserId = countGridUserId; + } + + public int getNoOverNum() { + return noOverNum; + } + + public void setNoOverNum(int noOverNum) { + this.noOverNum = noOverNum; + } + + public int getNoSelfNum() { + return noSelfNum; + } + + public void setNoSelfNum(int noSelfNum) { + this.noSelfNum = noSelfNum; + } + + public int getOverNum() { + return overNum; + } + + public void setOverNum(int overNum) { + this.overNum = overNum; + } + + public int getPm() { + return pm; + } + + public void setPm(int pm) { + this.pm = pm; + } + + public int getReportNum() { + return reportNum; + } + + public void setReportNum(int reportNum) { + this.reportNum = reportNum; + } + + public int getSelfNum() { + return selfNum; + } + + public void setSelfNum(int selfNum) { + this.selfNum = selfNum; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/LabelBean.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/LabelBean.java index 912c3e2..1d5713f 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/LabelBean.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/LabelBean.java @@ -1,11 +1,20 @@ package com.tengshisoft.commonmodule.beans; public class LabelBean { - private String color; + private int color; private String hint; private String hintId; + private String reportScale; + public String getReportScale() { + return reportScale; + } + + public void setReportScale(String reportScale) { + this.reportScale = reportScale; + } + public String getHintId() { return hintId; } @@ -14,11 +23,11 @@ public class LabelBean { this.hintId = hintId; } - public String getColor() { + public int getColor() { return color; } - public void setColor(String color) { + public void setColor(int color) { this.color = color; } diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/GridLeaderStatisticsFragment.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/GridLeaderStatisticsFragment.java index 2db7a2c..6a76212 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/GridLeaderStatisticsFragment.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/GridLeaderStatisticsFragment.java @@ -1,14 +1,58 @@ package com.tengshisoft.commonmodule.fragments; +import android.app.ProgressDialog; +import android.graphics.Color; +import android.graphics.Typeface; +import android.text.SpannableString; +import android.text.style.ForegroundColorSpan; +import android.text.style.RelativeSizeSpan; +import android.text.style.StyleSpan; import android.view.View; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import com.alibaba.android.arouter.facade.annotation.Route; +import com.github.mikephil.charting.animation.Easing; +import com.github.mikephil.charting.charts.PieChart; +import com.github.mikephil.charting.data.PieData; +import com.github.mikephil.charting.data.PieDataSet; +import com.github.mikephil.charting.data.PieEntry; +import com.github.mikephil.charting.formatter.ValueFormatter; +import com.github.mikephil.charting.utils.MPPointF; import com.tengshisoft.commonmodule.R; +import com.tengshisoft.commonmodule.R2; +import com.tengshisoft.commonmodule.adapters.GridPersonCountAdapter; +import com.tengshisoft.commonmodule.adapters.IncidentStatisticsAdapter; +import com.tengshisoft.commonmodule.beans.AreaGridCountBean; +import com.tengshisoft.commonmodule.beans.AreaGridLowCountBean; +import com.tengshisoft.commonmodule.beans.AreaIncidentPercentBean; +import com.tengshisoft.commonmodule.beans.IncidentTop7Bean; +import com.tengshisoft.commonmodule.nets.CenterApis; import com.tenlionsoft.baselib.constant.PathConfig; +import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager; import com.tenlionsoft.baselib.core.widget.base.BaseFragment; +import com.tenlionsoft.baselib.core.widget.views.CircleChartView; +import com.tenlionsoft.baselib.core.widget.views.ConditionAllAreaPopup; +import com.tenlionsoft.baselib.utils.TimeUtils; +import com.tenlionsoft.baselib.utils.UIUtil; +import com.tenlionsoft.baselib.utils.UserLgUtils; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.List; + +import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.annotations.NonNull; +import io.reactivex.rxjava3.core.Observer; +import io.reactivex.rxjava3.disposables.Disposable; +import io.reactivex.rxjava3.schedulers.Schedulers; /** * 作者: adam @@ -19,14 +63,338 @@ import butterknife.Unbinder; @Route(path = PathConfig.PATH_MODULE_COMMON_FRAGMENT_GRID_STATISTICS) public class GridLeaderStatisticsFragment extends BaseFragment { + @BindView(R2.id.tv_area) + TextView mTvArea; + @BindView(R2.id.ll_area) + LinearLayout mLlArea; + @BindView(R2.id.tv_current_time) + TextView mTvCurrentTime; + @BindView(R2.id.tv_grid_count) + TextView mTvGridCount; + @BindView(R2.id.tv_grid_percent) + TextView mTvGridPercent; + @BindView(R2.id.rlv_grid_count) + RecyclerView mRlvGridCount; + @BindView(R2.id.rlv_grid_incident) + RecyclerView mRlvGridIncident; + @BindView(R2.id.tv_percent_area) + TextView mTvPercentArea; + @BindView(R2.id.pc_community_percent) + PieChart mPieChart; + @BindView(R2.id.ccv_percent) + CircleChartView mCcvPercent; + @BindView(R2.id.tv_grid_hint) + TextView mTvGridCountHint; private Unbinder mBind; + private String mCurrentAreaCode; + private ProgressDialog mDialog; + private List mTop7BeanList; + private IncidentStatisticsAdapter mTop7Adapter; + private List mLowCountDatas; + private GridPersonCountAdapter mGridCountAdapter; @Override protected void setDataToView(View dataView) { mBind = ButterKnife.bind(this, dataView); - setStateView(STATE_LOAD); + setStateView(STATE_SUCCESS); + mSrlView.setEnableLoadMore(false); + mSrlView.setEnableRefresh(false); + initViews(); + getData(); } + /** + * 获取数据 + */ + private void getData() { + + RetrofitManager.getInstance() + .create(CenterApis.class) + .getAreaReportTop7(mCurrentAreaCode, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull List areaIncidentCategoryBeans) { + if (mDialog != null && mDialog.isShowing()) { + mDialog.dismiss(); + } + areaIncidentCategoryBeans.add(0, new IncidentTop7Bean()); + mTop7BeanList = areaIncidentCategoryBeans; + mTop7Adapter.setData(mTop7BeanList); + } + + @Override + public void onError(@NonNull Throwable e) { + if (mDialog != null && mDialog.isShowing()) { + mDialog.dismiss(); + } + } + + @Override + public void onComplete() { + + } + }); + RetrofitManager.getInstance() + .create(CenterApis.class) + .getAreaGridPercent(mCurrentAreaCode, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull AreaIncidentPercentBean areaIncidentCategoryBeans) { + if (mDialog != null && mDialog.isShowing()) { + mDialog.dismiss(); + } + setAreaIncidentPercent(areaIncidentCategoryBeans); + } + + @Override + public void onError(@NonNull Throwable e) { + if (mDialog != null && mDialog.isShowing()) { + mDialog.dismiss(); + } + } + + @Override + public void onComplete() { + + } + }); + + //获取辖区内网格员 + RetrofitManager.getInstance() + .create(CenterApis.class) + .getAreaGrid(mCurrentAreaCode, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull AreaGridCountBean areaPopulaceBean) { + setGridCount(areaPopulaceBean); + } + + @Override + public void onError(@NonNull Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); + //获取辖区下级网格员 + RetrofitManager.getInstance() + .create(CenterApis.class) + .getAreaLowerGrid(mCurrentAreaCode, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull AreaGridLowCountBean areaPopulaceBeans) { + if (areaPopulaceBeans.getData() != null && areaPopulaceBeans.getData().size() > 0) { + mRlvGridCount.setVisibility(View.VISIBLE); + mTvGridCountHint.setVisibility(View.GONE); + mLowCountDatas = areaPopulaceBeans.getData(); + mGridCountAdapter.setData(mLowCountDatas); + } else { + mRlvGridCount.setVisibility(View.GONE); + mTvGridCountHint.setVisibility(View.VISIBLE); + } + } + + @Override + public void onError(@NonNull Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); + + } + + /** + * 设置辖区网格员数量 + * + * @param bean + */ + private void setGridCount(AreaGridCountBean bean) { + // 将其中一个操作数强制转换为double类型,使得除法运算得到浮点数结果 + if (bean.getData().getTotal() != 0) { + double percent = ((double) bean.getData().getCount() / bean.getData().getTotal()) * 100; + DecimalFormat format = new DecimalFormat("#0.00"); + String percentStr = format.format(percent); + //计算占用比例 + mCcvPercent.setData(Double.parseDouble(percentStr)); + String countStr = bean.getData().getCount() + " 人"; + SpannableString formatCountStr = generateGridCount(countStr); + mTvGridCount.setText(formatCountStr); + String percentCount = percentStr + " %"; + SpannableString formatPercent = generateGridPercent(percentCount); + mTvGridPercent.setText(formatPercent); + } + + } + + /** + * 初始化 + */ + private void initViews() { + mTop7BeanList = new ArrayList<>(); + mTvCurrentTime.setText("数据更新时间:" + TimeUtils.getCurrentTimeHHMM()); + mRlvGridIncident.setLayoutManager(new LinearLayoutManager(mActivity)); + mTop7Adapter = new IncidentStatisticsAdapter(mActivity, mTop7BeanList); + mRlvGridIncident.setAdapter(mTop7Adapter); + + mLowCountDatas = new ArrayList<>(); + mGridCountAdapter = new GridPersonCountAdapter(mActivity, mLowCountDatas); + mRlvGridCount.setLayoutManager(new GridLayoutManager(mActivity, 1, GridLayoutManager.HORIZONTAL, false)); + mRlvGridCount.setAdapter(mGridCountAdapter); + + mCurrentAreaCode = UserLgUtils.getUserAreaCode(); + initPieChart(); + mLlArea.setOnClickListener(v -> onShowArea()); + mTvArea.setText(UserLgUtils.getUserFullAreaName()); + mDialog = UIUtil.initDialog(mActivity, "加载中..."); + mDialog.show(); + } + + /** + * 初始化占比 + */ + private void initPieChart() { + mPieChart.setUsePercentValues(true); + mPieChart.getDescription().setEnabled(false); + mPieChart.setExtraOffsets(5, 10, 5, 5); + mPieChart.setDragDecelerationFrictionCoef(0.95f); + mPieChart.setDrawHoleEnabled(false);//是否绘制数据体内的label + mPieChart.setHoleColor(Color.YELLOW); + mPieChart.setDrawEntryLabels(true); + mPieChart.setTransparentCircleColor(Color.WHITE); + mPieChart.setTransparentCircleAlpha(110); + mPieChart.setDrawCenterText(true); + mPieChart.setRotationAngle(0); + mPieChart.setRotationEnabled(true); + mPieChart.setHighlightPerTapEnabled(true); + mPieChart.animateY(1400, Easing.EaseInOutQuad); + mPieChart.setEntryLabelColor(Color.YELLOW); + mPieChart.setEntryLabelTextSize(12f); + mPieChart.getLegend().setEnabled(false); + mPieChart.setNoDataText("当前区域无事件数据"); + } + + private void onShowArea() { + if (UserLgUtils.getUserAreaLevel() < 4 && UserLgUtils.getUserAreaLevel() != -1) { + ConditionAllAreaPopup areaPopup = new ConditionAllAreaPopup(mActivity, + UserLgUtils.getUserFullAreaName(), + UserLgUtils.getUserAreaLevel()); + areaPopup.setOnListPopupItemClickListener((areaNames, areaCode) -> { + mTvArea.setText(areaNames); + //刷新数据 + mCurrentAreaCode = areaCode; + if (mDialog != null) { + mDialog.show(); + } + getData(); + areaPopup.dismiss(); + }); + areaPopup.setOffsetY(10); + areaPopup.showPopupWindow(mTvArea); + } + + } + + /** + * 显示网格员上报事件占比 + */ + private void setAreaIncidentPercent(AreaIncidentPercentBean bean) { + ArrayList entries = new ArrayList<>(); + + mPieChart.clear(); + if (bean.getData() == null) return; + if (bean.getData().getNowAreaReportNum() == 0 && bean.getData().getOtherAreaReportNum() == 0) return; + mTvPercentArea.setText(bean.getData().getNowAreaName()); + + ArrayList colors = new ArrayList<>(); + //当前区域上报 + float currentNum = Float.parseFloat(bean.getData().getNowAreaReportScale()); + entries.add(new PieEntry(currentNum, "共计" + bean.getData().getNowAreaReportNum() + "件", "")); + colors.add(Color.parseColor("#6685EF")); + + float otherNum = Float.parseFloat(bean.getData().getOtherAreaReportScale()); + entries.add(new PieEntry(otherNum, "共计" + bean.getData().getOtherAreaReportNum() + "件", "")); + colors.add(Color.parseColor("#EF7D62")); + PieDataSet dataSet = new PieDataSet(entries, ""); + PieData data = new PieData(dataSet); + //其他区域上报 + dataSet.setDrawIcons(false); + dataSet.setSliceSpace(0f); + dataSet.setIconsOffset(new MPPointF(0, 20)); + dataSet.setDrawValues(true);//绘制百分比 + dataSet.setSelectionShift(5f); + dataSet.setYValuePosition(PieDataSet.ValuePosition.INSIDE_SLICE);//百分比在外 + dataSet.setColors(colors); + dataSet.setValueLinePart1Length(0.3f); + dataSet.setValueLinePart2Length(0.4f); + dataSet.setValueLinePart1OffsetPercentage(100.0f); + dataSet.setValueLineColor(Color.parseColor("#FF6191F7")); + + data.setValueFormatter(new ValueFormatter() { + @Override + public String getFormattedValue(float value) { + return "占比" + value + "%"; + } + }); + data.setDrawValues(true); + data.setValueTextSize(11f); + data.setValueTextColor(Color.YELLOW); + mPieChart.setData(data); + mPieChart.highlightValues(null); + mPieChart.invalidate(); + } + + private SpannableString generateGridCount(String content) { + SpannableString s = new SpannableString(content); + s.setSpan(new RelativeSizeSpan(1.2f), 0, content.indexOf(" 人"), 0); + s.setSpan(new RelativeSizeSpan(0.6f), content.indexOf(" 人"), content.length(), 0); + s.setSpan(new ForegroundColorSpan(Color.parseColor("#9C8EC6")), 0, content.indexOf(" 人"), 0); + s.setSpan(new StyleSpan(Typeface.BOLD), 0, content.indexOf(" 人"), 0); + return s; + } + + private SpannableString generateGridPercent(String content) { + SpannableString s = new SpannableString(content); + s.setSpan(new RelativeSizeSpan(1.2f), 0, content.indexOf(" %"), 0); + s.setSpan(new RelativeSizeSpan(0.6f), content.indexOf(" %"), content.length(), 0); + s.setSpan(new ForegroundColorSpan(Color.parseColor("#2F5CFB")), 0, content.indexOf(" %"), 0); + s.setSpan(new StyleSpan(Typeface.BOLD), 0, content.indexOf(" %"), 0); + return s; + } @Override protected void refreshView() { diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentLeaderStatisticsFragment.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentLeaderStatisticsFragment.java index 87d42c1..9bef3ba 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentLeaderStatisticsFragment.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentLeaderStatisticsFragment.java @@ -1,7 +1,15 @@ package com.tengshisoft.commonmodule.fragments; +import android.app.ProgressDialog; import android.graphics.Color; +import android.graphics.Typeface; +import android.text.SpannableString; +import android.text.style.ForegroundColorSpan; +import android.text.style.RelativeSizeSpan; +import android.text.style.StyleSpan; +import android.text.style.UnderlineSpan; import android.view.View; +import android.widget.LinearLayout; import android.widget.TextView; import androidx.recyclerview.widget.GridLayoutManager; @@ -13,26 +21,33 @@ import com.github.mikephil.charting.charts.HorizontalBarChart; import com.github.mikephil.charting.charts.PieChart; import com.github.mikephil.charting.components.XAxis; import com.github.mikephil.charting.components.YAxis; +import com.github.mikephil.charting.data.BarData; +import com.github.mikephil.charting.data.BarDataSet; +import com.github.mikephil.charting.data.BarEntry; import com.github.mikephil.charting.data.PieData; import com.github.mikephil.charting.data.PieDataSet; import com.github.mikephil.charting.data.PieEntry; import com.github.mikephil.charting.formatter.DefaultValueFormatter; import com.github.mikephil.charting.formatter.LargeValueFormatter; -import com.github.mikephil.charting.formatter.PercentFormatter; import com.github.mikephil.charting.utils.MPPointF; -import com.hjq.toast.ToastUtils; import com.tengshisoft.commonmodule.R; import com.tengshisoft.commonmodule.R2; import com.tengshisoft.commonmodule.adapters.LabelAdapter; +import com.tengshisoft.commonmodule.beans.AreaIncidentCategoryBean; +import com.tengshisoft.commonmodule.beans.AreaIncidentHotBean; import com.tengshisoft.commonmodule.beans.AreaIncidentScaleBean; -import com.tengshisoft.commonmodule.beans.CaseTypeBean; import com.tengshisoft.commonmodule.beans.LabelBean; import com.tengshisoft.commonmodule.nets.CenterApis; -import com.tengshisoft.commonmodule.nets.GridApis; +import com.tengshisoft.commonmodule.utils.PiePercentFormater; +import com.tengshisoft.commonmodule.views.MyIncidentMarkerView; import com.tenlionsoft.baselib.constant.PathConfig; import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager; +import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer; import com.tenlionsoft.baselib.core.widget.base.BaseFragment; +import com.tenlionsoft.baselib.core.widget.views.ConditionAllAreaPopup; import com.tenlionsoft.baselib.utils.ExceptionHandler; +import com.tenlionsoft.baselib.utils.LogUtils; +import com.tenlionsoft.baselib.utils.UIUtil; import com.tenlionsoft.baselib.utils.UserLgUtils; import java.util.ArrayList; @@ -43,11 +58,10 @@ import java.util.Random; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder; -import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; import io.reactivex.rxjava3.annotations.NonNull; +import io.reactivex.rxjava3.core.Observable; import io.reactivex.rxjava3.core.Observer; import io.reactivex.rxjava3.disposables.Disposable; -import io.reactivex.rxjava3.schedulers.Schedulers; /** * 作者: adam @@ -57,6 +71,10 @@ import io.reactivex.rxjava3.schedulers.Schedulers; */ @Route(path = PathConfig.PATH_MODULE_COMMON_FRAGMENT_INCIDENT_STATISTICS) public class IncidentLeaderStatisticsFragment extends BaseFragment { + @BindView(R2.id.tv_area) + TextView mTvArea; + @BindView(R2.id.ll_area) + LinearLayout mLlArea; @BindView(R2.id.rlv_label) RecyclerView mRlvLabel; @BindView(R2.id.pie_chart) @@ -67,64 +85,92 @@ public class IncidentLeaderStatisticsFragment extends BaseFragment { TextView mTvDoIncident; @BindView(R2.id.hbc_category_chart) HorizontalBarChart mHbcChart; + @BindView(R2.id.tv_hot_type_1) + TextView mTvHotType1; + @BindView(R2.id.tv_hot_type_2) + TextView mTvHotType2; + @BindView(R2.id.tv_hot_detail) + TextView mTvHotDetail; private Unbinder mBind; private LabelAdapter mLabelAdapter; private List mLabelBeanList; - private List labelColors = Arrays.asList(Color.parseColor("#FF6191F7"), - Color.parseColor("#FF60D8A8"), - Color.parseColor("#FFFFA800"), - Color.parseColor("#FF154CFF"), - Color.parseColor("#FFFFDA2D"), - Color.parseColor("#FF60D8A8")); private List labelHint = null; + private String mCurrentAreaCode; + private ProgressDialog mDialog; @Override protected void setDataToView(View dataView) { mBind = ButterKnife.bind(this, dataView); setStateView(STATE_SUCCESS); + mSrlView.setEnableLoadMore(false); + mSrlView.setEnableRefresh(false); initViews(); - getTypeList(); getData(); } /** - * 获取事件类型 + * 获取数据 */ - private void getTypeList() { - RetrofitManager.getInstance() - .create(GridApis.class) - .getCaseTypeListAll(UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { + private void getData() { + + + //获取事件分类占比 + Observable areaTypeScale = RetrofitManager.getInstance() + .create(CenterApis.class) + .getAreaTypeScale(mCurrentAreaCode, UserLgUtils.getToken()); + //热点事件 + Observable areaHot = RetrofitManager.getInstance() + .create(CenterApis.class) + .getAreaHot(mCurrentAreaCode, UserLgUtils.getToken()); + //事件分类 + Observable> areaIncidentCategory = RetrofitManager.getInstance() + .create(CenterApis.class) + .getAreaIncidentCategory(mCurrentAreaCode, UserLgUtils.getToken()); + Observable.mergeDelayError(areaTypeScale, areaHot, areaIncidentCategory) + .compose(RxTransformer.getTransformer()) + .subscribe(new Observer() { @Override public void onSubscribe(@NonNull Disposable d) { } @Override - public void onNext(@NonNull List componentTypeBeans) { - if (componentTypeBeans != null && componentTypeBeans.size() > 0) { - for (int i = 0; i < componentTypeBeans.size(); i++) { - int col = Color.parseColor("#FF154CFF"); - if (labelColors.size() < componentTypeBeans.size()) { - col = labelColors.get(i); - } else { - col = getRandomColor(); + public void onNext(@NonNull Object o) { + if (o instanceof AreaIncidentScaleBean) { + AreaIncidentScaleBean b = (AreaIncidentScaleBean) o; + if (b.getReportTypeList() != null && b.getReportTypeList().size() > 0) { + mLabelBeanList.clear(); + mLabelAdapter.setData(mLabelBeanList); + for (int i = 0; i < b.getReportTypeList().size(); i++) { + int col = getRandomColor(); + LabelBean bean = new LabelBean(); + bean.setHint(b.getReportTypeList().get(i).getTypeName1()); + bean.setColor(col); + bean.setHintId(b.getReportTypeList().get(i).getTypeId()); + bean.setReportScale(b.getReportTypeList().get(i).getReportScale()); + mLabelBeanList.add(bean); } + mLabelAdapter.setData(mLabelBeanList); + setInfoToView(b, mLabelBeanList); } - } else { - ToastUtils.show("暂无数据"); - setStateView(STATE_EMPTY); - mSrlView.setEnableLoadMore(false); + } else if (o instanceof AreaIncidentHotBean) { + AreaIncidentHotBean b = (AreaIncidentHotBean) o; + setHotDataToView(b); + } else if (o instanceof List) { + List b = (List) o; + setIncidentCategory(b); + } + if (mDialog != null && mDialog.isShowing()) { + mDialog.dismiss(); } } @Override public void onError(@NonNull Throwable e) { + if (mDialog != null && mDialog.isShowing()) { + mDialog.dismiss(); + } ExceptionHandler.handleException(e); - setStateView(STATE_ERROR); - mSrlView.setEnableLoadMore(false); } @Override @@ -135,68 +181,63 @@ public class IncidentLeaderStatisticsFragment extends BaseFragment { } /** - * 获取数据 + * 显示热门事件数据 */ - private void getData() { -// Observable areaTypeScale = - RetrofitManager.getInstance() - .create(CenterApis.class) - .getAreaTypeScale(UserLgUtils.getUserAreaCode(), UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { + private void setHotDataToView(AreaIncidentHotBean hotBean) { + mTvHotType1.setText(hotBean.getTypeName1()); + mTvHotType2.setText(hotBean.getTypeName2()); + mTvHotDetail.setText(generateHotTxt("共计上报" + hotBean.getReportNum() + "件\n占比" + hotBean.getReportScale() + "%")); + } - } + private SpannableString generateHotTxt(String content) { + SpannableString s = new SpannableString(content); + s.setSpan(new RelativeSizeSpan(1.4f), content.lastIndexOf("报") + 1, content.indexOf("件"), 0); + s.setSpan(new UnderlineSpan(), content.lastIndexOf("报"), content.indexOf("件"), 0); - @Override - public void onNext(@NonNull AreaIncidentScaleBean b) { - setInfoToView(b); - } - - @Override - public void onError(@NonNull Throwable e) { - - } - - @Override - public void onComplete() { - - } - }) - ;//事件分类占比 + s.setSpan(new RelativeSizeSpan(1.4f), content.indexOf("比") + 1, content.length() - 1, 0); + s.setSpan(new UnderlineSpan(), content.lastIndexOf("比") + 1, content.length() - 1, 0); + s.setSpan(new StyleSpan(Typeface.BOLD), content.lastIndexOf("报") + 1, content.indexOf("件"), 0); + s.setSpan(new StyleSpan(Typeface.BOLD), content.lastIndexOf("比") + 1, content.length() - 1, 0); + return s; } /** * 显示事件分类占比 */ - private void setInfoToView(AreaIncidentScaleBean b) { + private void setInfoToView(AreaIncidentScaleBean b, List list) { + //设置文字数据 + + mTvDoIncident.setText(generateDisTxt("上报事件已处理\n" + b.getOverNum() + "件")); + mTvUndoIncident.setText(generateDisTxt("上报事件未处理\n" + b.getNoOverNum() + "件")); + ArrayList entries = new ArrayList<>(); - if (b.getReportTypeList() == null || b.getReportTypeList().size() == 0) return; + if (list == null || list.size() == 0) return; + ArrayList colors = new ArrayList<>(); for (int i = 0; i < b.getReportTypeList().size(); i++) { - float num = Float.parseFloat(b.getReportTypeList().get(i).getReportScale()); + float num = Float.parseFloat(list.get(i).getReportScale()); entries.add(new PieEntry(num, "", "")); + colors.add(list.get(i).getColor()); } PieDataSet dataSet = new PieDataSet(entries, ""); dataSet.setDrawIcons(false); dataSet.setSliceSpace(0f); - dataSet.setIconsOffset(new MPPointF(0, 40)); + dataSet.setIconsOffset(new MPPointF(0, 20)); + dataSet.setDrawValues(true);//绘制百分比 dataSet.setSelectionShift(5f); - ArrayList colors = new ArrayList<>(); - colors.add(Color.rgb(3, 197, 145)); - colors.add(Color.rgb(37, 121, 251)); - colors.add(Color.rgb(255, 154, 5)); + dataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);//百分比在外 dataSet.setColors(colors); + dataSet.setValueLinePart1Length(0.2f); + dataSet.setValueLinePart2Length(0.5f); + dataSet.setValueLinePart1OffsetPercentage(80.0f); + dataSet.setValueLineColor(Color.parseColor("#FF6191F7")); PieData data = new PieData(dataSet); - data.setValueFormatter(new PercentFormatter()); - data.setDrawValues(false); + data.setValueFormatter(new PiePercentFormater()); + data.setDrawValues(true); data.setValueTextSize(11f); - data.setValueTextColor(Color.WHITE); - float total = 0; -//TODO mPieChart.setCenterText(generateCenterSpannableText(total)); + data.setValueTextColors(colors); + mPieChart.setCenterText(generateCenterSpannableText(b.getReportNum())); mPieChart.setData(data); mPieChart.highlightValues(null); mPieChart.invalidate(); @@ -206,17 +247,38 @@ public class IncidentLeaderStatisticsFragment extends BaseFragment { * 初始化视图 */ private void initViews() { -// mLabelBeanList = new ArrayList<>(); -// for (int i = 0; i < labelColors.size(); i++) { -// LabelBean b = new LabelBean(); -// b.setColor(labelColors.get(i)); -// b.setHint(labelHint.get(i)); -// mLabelBeanList.add(b); -// } -// mLabelAdapter = new LabelAdapter(mActivity, mLabelBeanList); -// mRlvLabel.setLayoutManager(new GridLayoutManager(mActivity, 3)); -// mRlvLabel.setAdapter(mLabelAdapter); -// initPieChart(); + mLabelBeanList = new ArrayList<>(); + mLabelAdapter = new LabelAdapter(mActivity, mLabelBeanList); + mRlvLabel.setLayoutManager(new GridLayoutManager(mActivity, 3)); + mRlvLabel.setAdapter(mLabelAdapter); + mCurrentAreaCode = UserLgUtils.getUserAreaCode(); + initPieChart(); + initHoChart(); + mLlArea.setOnClickListener(v -> onShowArea()); + mTvArea.setText(UserLgUtils.getUserFullAreaName()); + mDialog = UIUtil.initDialog(mActivity, "加载中..."); + mDialog.show(); + } + + private void onShowArea() { + if (UserLgUtils.getUserAreaLevel() < 4 && UserLgUtils.getUserAreaLevel() != -1) { + ConditionAllAreaPopup areaPopup = new ConditionAllAreaPopup(mActivity, + UserLgUtils.getUserFullAreaName(), + UserLgUtils.getUserAreaLevel()); + areaPopup.setOnListPopupItemClickListener((areaNames, areaCode) -> { + mTvArea.setText(areaNames); + //刷新数据 + mCurrentAreaCode = areaCode; + if (mDialog != null) { + mDialog.show(); + } + getData(); + areaPopup.dismiss(); + }); + areaPopup.setOffsetY(10); + areaPopup.showPopupWindow(mTvArea); + } + } /** @@ -227,19 +289,13 @@ public class IncidentLeaderStatisticsFragment extends BaseFragment { mPieChart.getDescription().setEnabled(false); mPieChart.setExtraOffsets(5, 10, 5, 5); mPieChart.setDragDecelerationFrictionCoef(0.95f); - - mPieChart.setDrawHoleEnabled(true); mPieChart.setHoleColor(Color.WHITE); - mPieChart.setTransparentCircleColor(Color.WHITE); mPieChart.setTransparentCircleAlpha(110); - - mPieChart.setHoleRadius(90f);//饼状图中间圆的半径大小 - mPieChart.setTransparentCircleRadius(120f);//圆环的半径 - + mPieChart.setHoleRadius(80f);//饼状图中间圆的半径大小 + mPieChart.setTransparentCircleRadius(80f);//圆环的半径 mPieChart.setDrawCenterText(true); - mPieChart.setRotationAngle(0); mPieChart.setRotationEnabled(true); mPieChart.setHighlightPerTapEnabled(true); @@ -251,33 +307,55 @@ public class IncidentLeaderStatisticsFragment extends BaseFragment { mPieChart.setNoDataText("当前区域无事件数据"); } + /** + * 构建事件分类占比图中心展示的文字 + */ + private SpannableString generateCenterSpannableText(int total) { + String content = "上报事件总数\n" + total + "件"; + SpannableString s = new SpannableString(content); + s.setSpan(new RelativeSizeSpan(0.8f), 0, content.indexOf("数") + 1, 0); + s.setSpan(new RelativeSizeSpan(0.8f), content.lastIndexOf("件"), content.length(), 0); + s.setSpan(new RelativeSizeSpan(1.8f), content.indexOf("数") + 1, content.length() - 1, 0); + s.setSpan(new ForegroundColorSpan(Color.parseColor("#2F5CFB")), content.indexOf("数") + 1, content.length(), 0); + s.setSpan(new StyleSpan(Typeface.BOLD), content.indexOf("数") + 1, content.length(), 0); + return s; + } + + private SpannableString generateDisTxt(String content) { + SpannableString s = new SpannableString(content); + s.setSpan(new RelativeSizeSpan(0.6f), content.lastIndexOf("件"), content.length(), 0); + s.setSpan(new RelativeSizeSpan(1.4f), content.indexOf("理") + 1, content.length() - 1, 0); + s.setSpan(new ForegroundColorSpan(Color.parseColor("#2F5CFB")), content.indexOf("理") + 1, content.length(), 0); + s.setSpan(new StyleSpan(Typeface.BOLD), content.indexOf("理") + 1, content.length(), 0); + return s; + } + /** * 初始化 */ private void initHoChart() { mHbcChart.getDescription().setEnabled(false); - mHbcChart.getLegend().setEnabled(false); mHbcChart.setExtraOffsets(0, 10, 10, 10); mHbcChart.setNoDataText("当前区域无数据"); mHbcChart.setScaleXEnabled(true); mHbcChart.setScaleYEnabled(false); mHbcChart.setDrawGridBackground(false);//不绘制网格 - setAxis(); + mHbcChart.getLegend().setEnabled(false); } - private void setAxis() { + private void setAxis(List datas) { XAxis xAxis = mHbcChart.getXAxis(); xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); xAxis.setDrawGridLines(false); xAxis.setTextSize(12f); - xAxis.setLabelCount(6); + xAxis.setLabelCount(datas.size()); + xAxis.setDrawAxisLine(false); xAxis.setGranularity(1f);//防止放大图后,标签错乱 - final String label[] = {"市容环境", "宣传广告", "施工管理", "街面秩序", "突发事件", "其他事件"}; xAxis.setValueFormatter(new LargeValueFormatter() { @Override public String getFormattedValue(float value) { try { - return label[(int) value]; + return datas.get((int) value).getTypeName1(); } catch (Exception e) { return ""; } @@ -285,18 +363,76 @@ public class IncidentLeaderStatisticsFragment extends BaseFragment { }); YAxis axisRight = mHbcChart.getAxisRight(); axisRight.setAxisMinimum(0f); - axisRight.setDrawGridLines(true);//绘制网格 - axisRight.enableGridDashedLine(5f, 20f, 0f); - axisRight.setAxisMaximum(100f); + axisRight.setDrawGridLines(false);//绘制网格 + axisRight.enableGridDashedLine(5f, 10f, 0f); + axisRight.setDrawAxisLine(false); + axisRight.setAxisMaximum(50f); axisRight.setTextSize(12f); axisRight.setValueFormatter(new DefaultValueFormatter(0));//显示整数 //不显示顶部的轴 YAxis axisLeft = mHbcChart.getAxisLeft(); axisLeft.setAxisMinimum(0f); - axisLeft.setAxisMaximum(100f); + axisLeft.setAxisMaximum(50f); axisLeft.setEnabled(false); } + /** + * 显示事件分类 + */ + private void setIncidentCategory(List datas) { + if (datas != null && datas.size() > 0) { + setAxis(datas); + float maxiNum = getMaxNum(datas); + LogUtils.e("最大值=" + maxiNum); + YAxis axisRight = mHbcChart.getAxisRight(); + axisRight.setEnabled(false); + axisRight.setAxisMinimum(0f); + axisRight.setAxisMaximum(maxiNum); + axisRight.setValueFormatter(new DefaultValueFormatter(0));//显示整数 + YAxis axisLeft = mHbcChart.getAxisLeft(); + axisLeft.setAxisMinimum(0f); + axisLeft.setAxisMaximum(maxiNum); + List entryList = new ArrayList<>(); + for (int i = 0; i < datas.size(); i++) { + entryList.add(new BarEntry(i, new float[]{datas.get(i).getOverNum(), datas.get(i).getNoOverNum()})); + } + BarDataSet barDataSet = new BarDataSet(entryList, ""); + barDataSet.setColors(Color.rgb(47, 92, 251), + Color.rgb(255, 168, 0)); + barDataSet.setDrawValues(false); +// barDataSet.setValueTextColor(Color.WHITE); +// barDataSet.setValueFormatter(new DefaultValueFormatter(0));//柱子上面的数 +// barDataSet.setValueTextSize(6f); + BarData data = new BarData(barDataSet); + data.setBarWidth(0.4f);//设置柱子的宽度 + mHbcChart.setData(data); + MyIncidentMarkerView mv = new MyIncidentMarkerView(mActivity); + mv.setChartView(mHbcChart); // For bounds control + mHbcChart.setMarker(mv); // Set the marker to the chart + + } else { + mHbcChart.clear(); + mHbcChart.setNoDataText("当前区域内无数据"); + } + mHbcChart.invalidate(); + } + + + private float getMaxNum(List datas) { + float max = datas.get(0).getNoOverNum() + datas.get(0).getOverNum(); + for (int i = 0; i < datas.size(); i++) { + if (max < (datas.get(i).getOverNum() + datas.get(i).getNoOverNum())) { + max = datas.get(i).getOverNum(); + } + } + if (max > 99) { + max += 100; + } else { + max += 10; + } + return max; + } + /** * 获取随机颜色值 */ diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentNoFileListFragment.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentNoFileListFragment.java index e180149..d07ce7f 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentNoFileListFragment.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentNoFileListFragment.java @@ -12,7 +12,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.alibaba.android.arouter.facade.annotation.Route; -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.activitys.cases.IncidentArchiveListActivity; @@ -26,6 +26,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer; import com.tenlionsoft.baselib.core.widget.base.BaseFragment; 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.UserLgUtils; import java.util.ArrayList; diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentYetFileListFragment.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentYetFileListFragment.java index 3b4b4f6..232e7aa 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentYetFileListFragment.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/IncidentYetFileListFragment.java @@ -13,7 +13,7 @@ import androidx.recyclerview.widget.RecyclerView; 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.tengshisoft.commonmodule.activitys.cases.IncidentDetailActivity; @@ -26,6 +26,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer; import com.tenlionsoft.baselib.core.widget.base.BaseFragment; 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.UserLgUtils; import java.util.ArrayList; diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/KnowLedgeDeptListFragment.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/KnowLedgeDeptListFragment.java index 77063bb..3750568 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/KnowLedgeDeptListFragment.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/KnowLedgeDeptListFragment.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.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; @@ -28,6 +28,7 @@ import com.tenlionsoft.baselib.core.widget.base.BaseFragment; import com.tenlionsoft.baselib.core.widget.views.CenterBaseInputView; import com.tenlionsoft.baselib.core.widget.views.TypeFaceTextView; 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/fragments/KnowLedgeListByDeptFragment.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/KnowLedgeListByDeptFragment.java index da15a19..9f9d67e 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/KnowLedgeListByDeptFragment.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/KnowLedgeListByDeptFragment.java @@ -9,7 +9,7 @@ import android.widget.ProgressBar; 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; @@ -24,6 +24,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager; import com.tenlionsoft.baselib.core.widget.base.BaseFragment; import com.tenlionsoft.baselib.core.widget.views.TypeFaceTextView; 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/fragments/KnowLedgeListFragment.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/KnowLedgeListFragment.java index ed11606..40cf053 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/KnowLedgeListFragment.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/KnowLedgeListFragment.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.tengshisoft.commonmodule.adapters.KnowLedgeListAdapter; @@ -17,6 +17,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager; import com.tenlionsoft.baselib.core.widget.base.BaseFragment; 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.UserLgUtils; import java.util.ArrayList; diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/PopulaceLeaderStatisticsFragment.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/PopulaceLeaderStatisticsFragment.java index 3fbc3db..82b31f6 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/PopulaceLeaderStatisticsFragment.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/PopulaceLeaderStatisticsFragment.java @@ -1,14 +1,52 @@ package com.tengshisoft.commonmodule.fragments; +import android.app.ProgressDialog; +import android.graphics.Color; import android.view.View; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; import com.alibaba.android.arouter.facade.annotation.Route; +import com.github.mikephil.charting.charts.HorizontalBarChart; +import com.github.mikephil.charting.components.XAxis; +import com.github.mikephil.charting.components.YAxis; +import com.github.mikephil.charting.data.BarData; +import com.github.mikephil.charting.data.BarDataSet; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.formatter.DefaultValueFormatter; +import com.github.mikephil.charting.formatter.LargeValueFormatter; import com.tengshisoft.commonmodule.R; +import com.tengshisoft.commonmodule.R2; +import com.tengshisoft.commonmodule.adapters.PopulaceCountAdapter; +import com.tengshisoft.commonmodule.beans.AreaPopulaceBean; +import com.tengshisoft.commonmodule.nets.CenterApis; +import com.tengshisoft.commonmodule.views.MyMarkerView; import com.tenlionsoft.baselib.constant.PathConfig; +import com.tenlionsoft.baselib.core.beans.BallTypeBean; +import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager; import com.tenlionsoft.baselib.core.widget.base.BaseFragment; +import com.tenlionsoft.baselib.core.widget.views.BallView; +import com.tenlionsoft.baselib.core.widget.views.ConditionAllAreaPopup; +import com.tenlionsoft.baselib.core.widget.views.TypeBoldTextView; +import com.tenlionsoft.baselib.utils.ExceptionHandler; +import com.tenlionsoft.baselib.utils.LogUtils; +import com.tenlionsoft.baselib.utils.UserLgUtils; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder; +import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; +import io.reactivex.rxjava3.annotations.NonNull; +import io.reactivex.rxjava3.core.Observer; +import io.reactivex.rxjava3.disposables.Disposable; +import io.reactivex.rxjava3.schedulers.Schedulers; /** * 作者: adam @@ -19,14 +57,331 @@ import butterknife.Unbinder; @Route(path = PathConfig.PATH_MODULE_COMMON_FRAGMENT_POPULACE_STATISTICS) public class PopulaceLeaderStatisticsFragment extends BaseFragment { + @BindView(R2.id.tv_area) + TextView mTvArea; + @BindView(R2.id.ll_area) + LinearLayout mLlArea; + @BindView(R2.id.tv_total_populace) + TypeBoldTextView mTvTotalPopulace; + @BindView(R2.id.tv_populace_percent) + TypeBoldTextView mTvPopulacePercent; + @BindView(R2.id.tv_populace_incident_percent) + TypeBoldTextView mTvPopulaceIncidentPercent; + @BindView(R2.id.tv_populace_community) + TypeBoldTextView mTvPopulaceCommunity; + @BindView(R2.id.rlv_category_percent) + RecyclerView mRlvCategoryPercent; + @BindView(R2.id.tv_category) + TypeBoldTextView mTvCategory; + @BindView(R2.id.hbc_category_chart) + HorizontalBarChart mHbcChart; + @BindView(R2.id.bv_type) + BallView mBvType; + @BindView(R2.id.tv_refresh_time) + TextView mTvRefreshTime; private Unbinder mBind; + private String mCurrentAreaCode; + private ProgressDialog mDialog; + private PopulaceCountAdapter mPopulaceCountAdapter; + private List mCountDatas; @Override protected void setDataToView(View dataView) { mBind = ButterKnife.bind(this, dataView); - setStateView(STATE_LOAD); + setStateView(STATE_SUCCESS); + mSrlView.setEnableLoadMore(false); + mSrlView.setEnableRefresh(false); + initViews(); + getData(); } + /** + * 获取数据 + */ + private void getData() { + + RetrofitManager.getInstance() + .create(CenterApis.class) + .getAreaPopulaceStatistics(mCurrentAreaCode, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull AreaPopulaceBean bean) { + if (mDialog != null && mDialog.isShowing()) { + mDialog.dismiss(); + } + setInfoToView(bean); + } + + @Override + public void onError(@NonNull Throwable e) { + if (mDialog != null && mDialog.isShowing()) { + mDialog.dismiss(); + } + ExceptionHandler.handleException(e); + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 展示数据 + * + * @param bean + */ + private void setInfoToView(AreaPopulaceBean bean) { + mTvRefreshTime.setText("数据更新时间 : " + bean.getFreshTime()); + mTvTotalPopulace.setText(bean.getZongShu() + "");//总人口 + mTvPopulacePercent.setText(bean.getZhanQuanShi() + "%");//占全市 + mTvPopulaceIncidentPercent.setText(bean.getShiJianLv() + "%"); + mTvPopulaceCommunity.setText(bean.getSheQuCun() + ""); + + mCountDatas.clear(); + mPopulaceCountAdapter.setData(mCountDatas); + + AreaPopulaceBean.ItemBean pB = new AreaPopulaceBean.ItemBean(); + pB.setName("党员"); + pB.setCount(bean.getDangYuan() + ""); + + + AreaPopulaceBean.ItemBean pB1 = new AreaPopulaceBean.ItemBean(); + pB1.setName("户籍人口(外出)"); + pB1.setCount(bean.getWaiChuHuJi() + ""); + + + AreaPopulaceBean.ItemBean pB2 = new AreaPopulaceBean.ItemBean(); + pB2.setName("男性"); + pB2.setCount(bean.getNanXing() + ""); + + + AreaPopulaceBean.ItemBean pB3 = new AreaPopulaceBean.ItemBean(); + pB3.setName("女性"); + pB3.setCount(bean.getNvXing() + ""); + + + AreaPopulaceBean.ItemBean pB4 = new AreaPopulaceBean.ItemBean(); + pB4.setName("初中以上学历"); + pB4.setCount(bean.getChuZhongYiShang() + ""); + + AreaPopulaceBean.ItemBean pB5 = new AreaPopulaceBean.ItemBean(); + pB5.setName("非户籍人口"); + pB5.setCount(bean.getChangZhu() + ""); + + AreaPopulaceBean.ItemBean pB6 = new AreaPopulaceBean.ItemBean(); + pB6.setName("户籍人口"); + pB6.setCount(bean.getHuJi() + ""); + + AreaPopulaceBean.ItemBean pB7 = new AreaPopulaceBean.ItemBean(); + pB7.setName("汉族人口"); + pB7.setCount(bean.getHanZu() + ""); + + mCountDatas.add(pB7);//汉族 + mCountDatas.add(pB2);//男性 + mCountDatas.add(pB3);//女性 + mCountDatas.add(pB6);//户籍人口 + mCountDatas.add(pB1);//户籍人口外出 + mCountDatas.add(pB5);//非户籍人口 + mCountDatas.add(pB);//党员 + mCountDatas.add(pB4); + mPopulaceCountAdapter.setData(mCountDatas); + +// 气泡 + List typeBeans = new ArrayList<>(); + BallTypeBean b = new BallTypeBean(); + b.setTypeName("初中以上学历"); + b.setTypePercent(bean.getChuZhongYiShangZhanBi() + "%"); + + BallTypeBean b1 = new BallTypeBean(); + b1.setTypeName("60岁以上"); + b1.setTypePercent(bean.getLiuShiYiShangZhanBi() + "%"); + + BallTypeBean b2 = new BallTypeBean(); + b2.setTypeName("党员"); + b2.setTypePercent(bean.getDangYuanZhanBi() + "%"); + + BallTypeBean b3 = new BallTypeBean(); + b3.setTypeName("汉族"); + b3.setTypePercent(bean.getHanZuZhanBi() + "%"); + + BallTypeBean b4 = new BallTypeBean(); + b4.setTypeName("男性"); + b4.setTypePercent(bean.getNanXingZhanBi() + "%"); + + BallTypeBean b5 = new BallTypeBean(); + b5.setTypeName("女性"); + b5.setTypePercent(bean.getNvXingZhanBi() + "%"); + typeBeans.add(b); + typeBeans.add(b1); + typeBeans.add(b2); + typeBeans.add(b3); + typeBeans.add(b4); + typeBeans.add(b5); + + mBvType.setData(typeBeans); + + setCommunityData(bean.getRenKouShiJian()); + } + + + private void setCommunityData(List datas) { + if (datas != null && datas.size() > 0) { + setAxis(datas); + float maxiNum = getMaxNum(datas); + LogUtils.e("最大值=" + maxiNum); + YAxis axisRight = mHbcChart.getAxisRight(); + axisRight.setEnabled(false); + axisRight.setAxisMinimum(0f); + axisRight.setAxisMaximum(maxiNum); + axisRight.setValueFormatter(new DefaultValueFormatter(0));//显示整数 + YAxis axisLeft = mHbcChart.getAxisLeft(); + axisLeft.setAxisMinimum(0f); + axisLeft.setAxisMaximum(maxiNum); + List entryList = new ArrayList<>(); + for (int i = 0; i < datas.size(); i++) { + entryList.add(new BarEntry(i, new float[]{datas.get(i).getPersonCount(), datas.get(i).getCaseCount()})); + } + BarDataSet barDataSet = new BarDataSet(entryList, ""); + barDataSet.setColors(Color.rgb(47, 92, 251), + Color.rgb(255, 168, 0)); + barDataSet.setDrawValues(false);//是否绘制柱子上的数 + barDataSet.setValueTextColor(Color.WHITE); + barDataSet.setValueFormatter(new DefaultValueFormatter(0));//柱子上面的数 + barDataSet.setValueTextSize(6f); + BarData data = new BarData(barDataSet); + data.setBarWidth(0.4f);//设置柱子的宽度 + mHbcChart.setData(data); + MyMarkerView mv = new MyMarkerView(mActivity, datas); + mv.setChartView(mHbcChart); // For bounds control + mHbcChart.setMarker(mv); // Set the marker to the chart + } else { + mHbcChart.setNoDataText("当前区域内无数据"); + } + mHbcChart.invalidate(); + } + + private float getMaxNum(List datas) { + float max = datas.get(0).getCaseCount(); + for (int i = 0; i < datas.size(); i++) { + if (max < datas.get(i).getCaseCount()) { + max = datas.get(i).getCaseCount(); + } + if (max < datas.get(i).getPersonCount()) { + max = datas.get(i).getPersonCount(); + } + } + if (max > 99) { + max += 100; + } else { + max += 10; + } + return max; + } + + /** + * 初始化 + */ + private void initViews() { + mCurrentAreaCode = UserLgUtils.getUserAreaCode(); + initHoChart(); + mCountDatas = new ArrayList<>(); + mPopulaceCountAdapter = new PopulaceCountAdapter(mActivity, mCountDatas); + mRlvCategoryPercent.setLayoutManager(new GridLayoutManager(mActivity, 1, GridLayoutManager.HORIZONTAL, false)); + mRlvCategoryPercent.setAdapter(mPopulaceCountAdapter); + mLlArea.setOnClickListener(v -> onShowArea()); + mTvArea.setText(UserLgUtils.getUserFullAreaName()); +// mDialog = UIUtil.initDialog(mActivity, "加载中..."); +// mDialog.show(); + } + + + /** + * 地区选择 + */ + private void onShowArea() { + if (UserLgUtils.getUserAreaLevel() < 4 && UserLgUtils.getUserAreaLevel() != -1) { + ConditionAllAreaPopup areaPopup = new ConditionAllAreaPopup(mActivity, + UserLgUtils.getUserFullAreaName(), + UserLgUtils.getUserAreaLevel()); + areaPopup.setOnListPopupItemClickListener((areaNames, areaCode) -> { + mTvArea.setText(areaNames); + //刷新数据 + mCurrentAreaCode = areaCode; +// if (mDialog != null) { +// mDialog.show(); +// } + getData(); + areaPopup.dismiss(); + }); + areaPopup.setOffsetY(10); + areaPopup.showPopupWindow(mTvArea); + } + + } + + /** + * 初始化 + */ + private void initHoChart() { + mHbcChart.getDescription().setEnabled(false); + mHbcChart.setExtraOffsets(0, 10, 10, 10); + mHbcChart.setNoDataText("当前区域无数据"); + mHbcChart.setScaleXEnabled(true); + mHbcChart.setScaleYEnabled(false); + mHbcChart.setDrawGridBackground(false);//不绘制网格 + mHbcChart.getLegend().setEnabled(false); + } + + private void setAxis(List datas) { + XAxis xAxis = mHbcChart.getXAxis(); + xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); + xAxis.setDrawGridLines(false); + xAxis.setTextSize(12f); + xAxis.setLabelCount(datas.size()); + xAxis.setDrawAxisLine(false); + xAxis.setGranularity(1f);//防止放大图后,标签错乱 + xAxis.setValueFormatter(new LargeValueFormatter() { + @Override + public String getFormattedValue(float value) { + try { + return datas.get((int) value).getAreaName(); + } catch (Exception e) { + return ""; + } + } + }); + YAxis axisRight = mHbcChart.getAxisRight(); + axisRight.setAxisMinimum(0f); + axisRight.setDrawGridLines(false);//绘制网格 + axisRight.enableGridDashedLine(5f, 10f, 0f); + axisRight.setDrawAxisLine(false); + axisRight.setAxisMaximum(50f); + axisRight.setTextSize(12f); + axisRight.setValueFormatter(new DefaultValueFormatter(0));//显示整数 + //不显示顶部的轴 + YAxis axisLeft = mHbcChart.getAxisLeft(); + axisLeft.setAxisMinimum(0f); + axisLeft.setAxisMaximum(50f); + axisLeft.setEnabled(false); + } + + /** + * 获取随机颜色值 + */ + private int getRandomColor() { + Random rnd = new Random(); + int color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); + return color; + } @Override protected void refreshView() { diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/GridCountItemHolder.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/GridCountItemHolder.java new file mode 100644 index 0000000..0b1d63c --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/GridCountItemHolder.java @@ -0,0 +1,20 @@ +package com.tengshisoft.commonmodule.holders; + +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.tengshisoft.commonmodule.R; + +public class GridCountItemHolder extends RecyclerView.ViewHolder { + public TextView mTvName; + public TextView mTvCount; + + public GridCountItemHolder(@NonNull View itemView) { + super(itemView); + mTvName = itemView.findViewById(R.id.tv_name); + mTvCount = itemView.findViewById(R.id.tv_count); + } +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/IncidentStatisticsHolder.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/IncidentStatisticsHolder.java new file mode 100644 index 0000000..35296d6 --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/IncidentStatisticsHolder.java @@ -0,0 +1,25 @@ +package com.tengshisoft.commonmodule.holders; + +import android.view.View; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.tengshisoft.commonmodule.R; + +public class IncidentStatisticsHolder extends RecyclerView.ViewHolder { + public TextView mTvNumber; + public TextView mTvName; + public TextView mTvRanking; + public LinearLayout mLlItemContent; + + public IncidentStatisticsHolder(@NonNull View itemView) { + super(itemView); + mTvNumber = itemView.findViewById(R.id.tv_number); + mTvName = itemView.findViewById(R.id.tv_name); + mTvRanking = itemView.findViewById(R.id.tv_ranking); + mLlItemContent= itemView.findViewById(R.id.ll_item_content); + } +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/PopulaceItemHolder.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/PopulaceItemHolder.java new file mode 100644 index 0000000..30e5f7b --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/PopulaceItemHolder.java @@ -0,0 +1,20 @@ +package com.tengshisoft.commonmodule.holders; + +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.tengshisoft.commonmodule.R; + +public class PopulaceItemHolder extends RecyclerView.ViewHolder { + public TextView mTvName; + public TextView mTvCount; + + public PopulaceItemHolder(@NonNull View itemView) { + super(itemView); + mTvName = itemView.findViewById(R.id.tv_name); + mTvCount = itemView.findViewById(R.id.tv_count); + } +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/nets/CenterApis.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/nets/CenterApis.java index f69ec91..2ef1169 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/nets/CenterApis.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/nets/CenterApis.java @@ -1,8 +1,14 @@ package com.tengshisoft.commonmodule.nets; import com.tengshisoft.commonmodule.adapters.CommunityUserListBean; +import com.tengshisoft.commonmodule.beans.AreaGridCountBean; import com.tengshisoft.commonmodule.beans.AreaGridListBean; +import com.tengshisoft.commonmodule.beans.AreaGridLowCountBean; +import com.tengshisoft.commonmodule.beans.AreaIncidentCategoryBean; +import com.tengshisoft.commonmodule.beans.AreaIncidentHotBean; +import com.tengshisoft.commonmodule.beans.AreaIncidentPercentBean; import com.tengshisoft.commonmodule.beans.AreaIncidentScaleBean; +import com.tengshisoft.commonmodule.beans.AreaPopulaceBean; import com.tengshisoft.commonmodule.beans.DeferDetailBean; import com.tengshisoft.commonmodule.beans.DepartmentListBean; import com.tengshisoft.commonmodule.beans.DisposeDetailBean; @@ -18,6 +24,7 @@ import com.tengshisoft.commonmodule.beans.IncidentDeferListBean; import com.tengshisoft.commonmodule.beans.IncidentListBean; import com.tengshisoft.commonmodule.beans.IncidentMineOverseeListBean; import com.tengshisoft.commonmodule.beans.IncidentOverseeDetailBean; +import com.tengshisoft.commonmodule.beans.IncidentTop7Bean; import com.tengshisoft.commonmodule.beans.JournalListBean; import com.tengshisoft.commonmodule.beans.KnowAskDetailBean; import com.tengshisoft.commonmodule.beans.KnowAskListBean; @@ -434,4 +441,60 @@ public interface CenterApis { @GET("app/report/count/count-area-type-scale/{areaCode}") Observable getAreaTypeScale(@Path("areaCode") String areaCode, @Header("token") String token); + + /** + * 获取热门事件 + */ + @Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/report/count/count-area-hot-report-type/{areaCode}") + Observable getAreaHot(@Path("areaCode") String areaCode, + @Header("token") String token); + + /** + * 获取事件分类 + */ + @Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/report/count/count-area-hot-report-type-over/{areaCode}") + Observable> getAreaIncidentCategory(@Path("areaCode") String areaCode, + @Header("token") String token); + + /** + * 获取网格员上报排行TOP7 + */ + @Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/countgriduser/get-area-year-grid-user-top-seven/{areaCode}") + Observable> getAreaReportTop7(@Path("areaCode") String areaCode, + @Header("token") String token); + + /** + * 获取乡镇事件占比 + */ + @Headers({"base_url_name:case", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/countgriduser/count-nowareaandother-reportnum/{areaCode}") + Observable getAreaGridPercent(@Path("areaCode") String areaCode, + @Header("token") String token); + + /** + * 人口数据统计 + */ + @Headers({"base_url_name:person", "Content-Type: application/json", "Accept: application/json"}) + @GET("app/basepopulationinfo/population-center-count-data/{areaCode}") + Observable getAreaPopulaceStatistics(@Path("areaCode") String areaCode, + @Header("token") String token); + + /** + * 辖区网格员统计 + */ + @Headers({"Content-Type: application/json", "Accept: application/json"}) + @GET("app/user-expand/count-grid-member/area-code-like/{areaCodeLike}") + Observable getAreaGrid(@Path("areaCodeLike") String areaCode, + @Header("token") String token); + + /** + * 辖区下级网格员统计 + */ + @Headers({"Content-Type: application/json", "Accept: application/json"}) + @GET("app/user-expand/count-sub-area-grid-member/area-code/{areaCode}") + Observable getAreaLowerGrid(@Path("areaCode") String areaCode, + @Header("token") String token); } diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/utils/PiePercentFormater.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/utils/PiePercentFormater.java new file mode 100644 index 0000000..3819db4 --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/utils/PiePercentFormater.java @@ -0,0 +1,39 @@ +package com.tengshisoft.commonmodule.utils; + +import com.github.mikephil.charting.components.AxisBase; +import com.github.mikephil.charting.data.Entry; +import com.github.mikephil.charting.formatter.ValueFormatter; +import com.github.mikephil.charting.utils.ViewPortHandler; + +import java.text.DecimalFormat; + +public class PiePercentFormater extends ValueFormatter { + protected DecimalFormat mFormat; + + public PiePercentFormater() { + mFormat = new DecimalFormat("###,###,##0.0"); + } + + /** + * Allow a custom decimalformat + * + * @param format + */ + public PiePercentFormater(DecimalFormat format) { + this.mFormat = format; + } + + @Override + public String getFormattedValue(float value) { + return mFormat.format(value) + " %"; + } + +// @Override +// public String getFormattedValue(float value, AxisBase axis) { +// return mFormat.format(value) + " %"; +// } + + public int getDecimalDigits() { + return 1; + } +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/views/MyIncidentMarkerView.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/views/MyIncidentMarkerView.java new file mode 100644 index 0000000..15f8965 --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/views/MyIncidentMarkerView.java @@ -0,0 +1,50 @@ +package com.tengshisoft.commonmodule.views; + +import android.content.Context; +import android.widget.TextView; + +import com.github.mikephil.charting.components.MarkerView; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.Entry; +import com.github.mikephil.charting.highlight.Highlight; +import com.github.mikephil.charting.utils.MPPointF; +import com.tengshisoft.commonmodule.R; +import com.tenlionsoft.baselib.utils.LogUtils; + +public class MyIncidentMarkerView extends MarkerView { + + private final TextView mTvDo; + private final TextView mTvUnDo; + + public MyIncidentMarkerView(Context context) { + super(context, R.layout.multi_incident_mark_view); + mTvDo = findViewById(R.id.tv_do); + mTvUnDo = findViewById(R.id.tv_undo); + } + + + @Override + public void refreshContent(Entry e, Highlight highlight) { + try { + if (e instanceof BarEntry) { + BarEntry entry = (BarEntry) e; + float[] yVals = entry.getYVals(); + LogUtils.e(yVals[0] + "===" + yVals[1]); + int populaceCount = (int) yVals[0]; + int incidentCount = (int) yVals[1]; + mTvDo.setText(incidentCount + "件"); + mTvUnDo.setText(populaceCount + "件"); + } + } catch (Exception err) { + + } + super.refreshContent(e, highlight); + } + + @Override + public MPPointF getOffset() { + return new MPPointF(-(getWidth() / 2), -getHeight()); + } + + +} diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/views/MyMarkerView.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/views/MyMarkerView.java new file mode 100644 index 0000000..edc4b95 --- /dev/null +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/views/MyMarkerView.java @@ -0,0 +1,59 @@ +package com.tengshisoft.commonmodule.views; + +import android.content.Context; +import android.widget.TextView; + +import com.github.mikephil.charting.components.MarkerView; +import com.github.mikephil.charting.data.BarData; +import com.github.mikephil.charting.data.BarEntry; +import com.github.mikephil.charting.data.Entry; +import com.github.mikephil.charting.highlight.Highlight; +import com.github.mikephil.charting.utils.MPPointF; +import com.tengshisoft.commonmodule.R; +import com.tengshisoft.commonmodule.beans.AreaPopulaceBean; +import com.tenlionsoft.baselib.utils.LogUtils; + +import java.util.List; + +public class MyMarkerView extends MarkerView { + + private final TextView mTvIncidentCount; + private final TextView mTvPersonCount; + private TextView mDateTv; + private BarData mBarData; + private List mDateList; + private int[] mLineColorArr = {0xff45D6E1, 0xff675AAD, 0xffFB80D8, 0xff0e7e71, 0xff0066cc, 0xffFF8040, 0xffDD5246, 0xffF2350D}; + + public MyMarkerView(Context context, List dateList) { + super(context, R.layout.multi_mark_view); + this.mDateList = dateList; + mTvIncidentCount = findViewById(R.id.tv_incident_count); + mTvPersonCount = findViewById(R.id.tv_populace_count); + } + + + @Override + public void refreshContent(Entry e, Highlight highlight) { + try { + if (e instanceof BarEntry) { + BarEntry entry = (BarEntry) e; + float[] yVals = entry.getYVals(); + LogUtils.e(yVals[0] + "===" + yVals[1]); + int populaceCount = (int) yVals[0]; + int incidentCount = (int) yVals[1]; + mTvIncidentCount.setText(incidentCount + "件"); + mTvPersonCount.setText(populaceCount + "人"); + } + }catch (Exception error){ + + } + super.refreshContent(e, highlight); + } + + @Override + public MPPointF getOffset() { + return new MPPointF(-getWidth(), -(getHeight() / 2)); + } + + +} diff --git a/commonmodule/src/main/res/drawable-xhdpi/ic_grid_statistics_count.png b/commonmodule/src/main/res/drawable-xhdpi/ic_grid_statistics_count.png new file mode 100644 index 0000000..de1650b Binary files /dev/null and b/commonmodule/src/main/res/drawable-xhdpi/ic_grid_statistics_count.png differ diff --git a/commonmodule/src/main/res/drawable-xhdpi/ic_point_blue_text_title.png b/commonmodule/src/main/res/drawable-xhdpi/ic_point_blue_text_title.png new file mode 100644 index 0000000..2476f9d Binary files /dev/null and b/commonmodule/src/main/res/drawable-xhdpi/ic_point_blue_text_title.png differ diff --git a/commonmodule/src/main/res/drawable-xhdpi/ic_point_yellow_text_title.png b/commonmodule/src/main/res/drawable-xhdpi/ic_point_yellow_text_title.png new file mode 100644 index 0000000..47f9baf Binary files /dev/null and b/commonmodule/src/main/res/drawable-xhdpi/ic_point_yellow_text_title.png differ diff --git a/commonmodule/src/main/res/drawable-xhdpi/ic_statistics_one.png b/commonmodule/src/main/res/drawable-xhdpi/ic_statistics_one.png new file mode 100755 index 0000000..f300589 Binary files /dev/null and b/commonmodule/src/main/res/drawable-xhdpi/ic_statistics_one.png differ diff --git a/commonmodule/src/main/res/drawable-xhdpi/ic_statistics_pillar_icon.png b/commonmodule/src/main/res/drawable-xhdpi/ic_statistics_pillar_icon.png new file mode 100755 index 0000000..46415bb Binary files /dev/null and b/commonmodule/src/main/res/drawable-xhdpi/ic_statistics_pillar_icon.png differ diff --git a/commonmodule/src/main/res/drawable-xhdpi/ic_statistics_populace_title_icon.png b/commonmodule/src/main/res/drawable-xhdpi/ic_statistics_populace_title_icon.png new file mode 100755 index 0000000..faf24c3 Binary files /dev/null and b/commonmodule/src/main/res/drawable-xhdpi/ic_statistics_populace_title_icon.png differ diff --git a/commonmodule/src/main/res/drawable-xhdpi/ic_statistics_third.png b/commonmodule/src/main/res/drawable-xhdpi/ic_statistics_third.png new file mode 100755 index 0000000..73542c2 Binary files /dev/null and b/commonmodule/src/main/res/drawable-xhdpi/ic_statistics_third.png differ diff --git a/commonmodule/src/main/res/drawable-xhdpi/ic_statistics_two.png b/commonmodule/src/main/res/drawable-xhdpi/ic_statistics_two.png new file mode 100755 index 0000000..485e25e Binary files /dev/null and b/commonmodule/src/main/res/drawable-xhdpi/ic_statistics_two.png differ diff --git a/commonmodule/src/main/res/drawable-xhdpi/marker2.png b/commonmodule/src/main/res/drawable-xhdpi/marker2.png new file mode 100755 index 0000000..5805428 Binary files /dev/null and b/commonmodule/src/main/res/drawable-xhdpi/marker2.png differ diff --git a/commonmodule/src/main/res/drawable/shp_rec_border_green.xml b/commonmodule/src/main/res/drawable/shp_rec_border_green.xml new file mode 100644 index 0000000..fab2c8b --- /dev/null +++ b/commonmodule/src/main/res/drawable/shp_rec_border_green.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/commonmodule/src/main/res/layout/custom_marker_view.xml b/commonmodule/src/main/res/layout/custom_marker_view.xml new file mode 100755 index 0000000..62d9d95 --- /dev/null +++ b/commonmodule/src/main/res/layout/custom_marker_view.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/commonmodule/src/main/res/layout/fragment_grid_leader_statistics.xml b/commonmodule/src/main/res/layout/fragment_grid_leader_statistics.xml index e100926..c7253af 100644 --- a/commonmodule/src/main/res/layout/fragment_grid_leader_statistics.xml +++ b/commonmodule/src/main/res/layout/fragment_grid_leader_statistics.xml @@ -4,7 +4,378 @@ android:id="@+id/ll_page" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical"> + android:orientation="vertical" + tools:background="@color/gray"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/commonmodule/src/main/res/layout/fragment_incident_leader_statistics.xml b/commonmodule/src/main/res/layout/fragment_incident_leader_statistics.xml index eff7d25..0ede883 100644 --- a/commonmodule/src/main/res/layout/fragment_incident_leader_statistics.xml +++ b/commonmodule/src/main/res/layout/fragment_incident_leader_statistics.xml @@ -14,6 +14,7 @@ android:padding="10dp"> @@ -21,7 +22,7 @@ @@ -30,23 +31,13 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="5dp" - android:clickable="true" android:drawableRight="@drawable/ic_arrow_sort_gray" android:drawablePadding="5dp" - android:focusable="true" android:textColor="#4261FF" android:textSize="12dp" tools:text="乌兰察布市/集宁区/XXXX县/XXXX镇/XXX村" /> - @@ -85,7 +76,8 @@ android:layout_height="wrap_content" android:layout_marginLeft="5dp" android:text="事件分类占比" - android:textColor="@color/black" /> + android:textColor="@color/black" + android:textSize="@dimen/text_14" /> @@ -113,10 +105,11 @@ android:id="@+id/tv_undo_incident" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="10dp" - android:text="未处理事件\n11件" + android:padding="5dp" + android:text="无" android:textColor="#464E58" - android:textSize="@dimen/text_12" /> + android:textSize="@dimen/text_12" + tools:text="上报事件未处理\n11件" /> @@ -131,8 +124,8 @@ android:padding="5dp"> @@ -140,10 +133,11 @@ android:id="@+id/tv_do_incident" android:layout_width="match_parent" android:layout_height="wrap_content" - android:padding="10dp" - android:text="已处理事件\n11件" + android:padding="5dp" + android:text="无" android:textColor="#464E58" - android:textSize="@dimen/text_12" /> + android:textSize="@dimen/text_12" + tools:text="上报事件已处理\n11件" /> @@ -151,7 +145,7 @@ + android:layout_height="240dp" /> + android:textColor="@color/black" + android:textSize="@dimen/text_14" /> + tools:text="" /> + android:textSize="@dimen/text_14" + tools:text="" /> @@ -259,12 +257,12 @@ + android:background="@drawable/ic_hot_incident_detail_bg" + android:minHeight="72dp"> + android:textSize="@dimen/text_12" + tools:text="" /> @@ -315,7 +316,8 @@ android:layout_marginLeft="5dp" android:layout_toRightOf="@id/iv_category" android:text="事件分类" - android:textColor="@color/black" /> + android:textColor="@color/black" + android:textSize="@dimen/text_14" /> diff --git a/commonmodule/src/main/res/layout/fragment_populace_leader_statistics.xml b/commonmodule/src/main/res/layout/fragment_populace_leader_statistics.xml index e100926..bcae799 100644 --- a/commonmodule/src/main/res/layout/fragment_populace_leader_statistics.xml +++ b/commonmodule/src/main/res/layout/fragment_populace_leader_statistics.xml @@ -4,7 +4,341 @@ android:id="@+id/ll_page" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="vertical"> + android:orientation="vertical" + tools:background="@color/gray"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/commonmodule/src/main/res/layout/item_grid_count_percent.xml b/commonmodule/src/main/res/layout/item_grid_count_percent.xml new file mode 100644 index 0000000..d71b980 --- /dev/null +++ b/commonmodule/src/main/res/layout/item_grid_count_percent.xml @@ -0,0 +1,33 @@ + + + + + + + \ No newline at end of file diff --git a/commonmodule/src/main/res/layout/item_grid_incident_statistics.xml b/commonmodule/src/main/res/layout/item_grid_incident_statistics.xml new file mode 100644 index 0000000..d57c649 --- /dev/null +++ b/commonmodule/src/main/res/layout/item_grid_incident_statistics.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/commonmodule/src/main/res/layout/item_populace_percent.xml b/commonmodule/src/main/res/layout/item_populace_percent.xml new file mode 100644 index 0000000..ea0e52b --- /dev/null +++ b/commonmodule/src/main/res/layout/item_populace_percent.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/commonmodule/src/main/res/layout/multi_incident_mark_view.xml b/commonmodule/src/main/res/layout/multi_incident_mark_view.xml new file mode 100644 index 0000000..3620cd7 --- /dev/null +++ b/commonmodule/src/main/res/layout/multi_incident_mark_view.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/commonmodule/src/main/res/layout/multi_mark_view.xml b/commonmodule/src/main/res/layout/multi_mark_view.xml new file mode 100644 index 0000000..1d1bafd --- /dev/null +++ b/commonmodule/src/main/res/layout/multi_mark_view.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mainmodule/src/main/java/com/tengshisoft/mainmodule/MainActivity.java b/mainmodule/src/main/java/com/tengshisoft/mainmodule/MainActivity.java index ecc48b5..bf272ed 100644 --- a/mainmodule/src/main/java/com/tengshisoft/mainmodule/MainActivity.java +++ b/mainmodule/src/main/java/com/tengshisoft/mainmodule/MainActivity.java @@ -18,7 +18,7 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.load.resource.bitmap.CircleCrop; import com.bumptech.glide.request.RequestOptions; import com.google.gson.Gson; -import com.hjq.toast.ToastUtils; +import com.tenlionsoft.baselib.utils.ToastUtils; import com.tenlionsoft.baselib.constant.BaseConfig; import com.tenlionsoft.baselib.constant.PathConfig; import com.tenlionsoft.baselib.constant.PermissionConstants; @@ -34,6 +34,7 @@ import com.tenlionsoft.baselib.core.retrofit_net.api.BaseApiService; import com.tenlionsoft.baselib.core.retrofit_net.bean.VersionBean; import com.tenlionsoft.baselib.core.retrofit_net.conver.RxTransformer; import com.tenlionsoft.baselib.core.widget.base.BaseActivity; +import com.tenlionsoft.baselib.utils.ToastUtils; import com.tenlionsoft.baselib.utils.UserLgUtils; import com.tengshisoft.mainmodule.beans.GirdPBean; import com.tengshisoft.mainmodule.net.MainApi; diff --git a/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/CustomPushMsgActivity.java b/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/CustomPushMsgActivity.java index d269bf6..cd65b8a 100644 --- a/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/CustomPushMsgActivity.java +++ b/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/CustomPushMsgActivity.java @@ -11,7 +11,7 @@ import android.view.View; 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.tapadoo.alerter.Alerter; import com.tengshisoft.mainmodule.R; import com.tenlionsoft.baselib.app.BaseAppContext; diff --git a/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/LoginActivity.java b/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/LoginActivity.java index 04e46e9..c09724f 100755 --- a/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/LoginActivity.java +++ b/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/LoginActivity.java @@ -20,7 +20,6 @@ import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.launcher.ARouter; import com.google.gson.Gson; import com.gyf.immersionbar.ImmersionBar; -import com.hjq.toast.ToastUtils; import com.tengshisoft.mainmodule.R; import com.tengshisoft.mainmodule.R2; import com.tenlionsoft.baselib.app.BaseAppContext; @@ -45,6 +44,7 @@ import com.tenlionsoft.baselib.utils.AppUtils; import com.tenlionsoft.baselib.utils.EncryptUtils; import com.tenlionsoft.baselib.utils.ExceptionHandler; import com.tenlionsoft.baselib.utils.LogUtils; +import com.tenlionsoft.baselib.utils.ToastUtils; import com.tenlionsoft.baselib.utils.UserLgUtils; import butterknife.BindView; @@ -166,9 +166,9 @@ public class LoginActivity extends BaseActivity { setTouchDelegate(mIvClosePhone, 40); mIvClosePhone.setOnClickListener(v -> mEtUserPhone.setText("")); initDatabase(); - mTvChangePwd.setOnClickListener(v->ARouter.getInstance() - .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_FORGET_PWD) - .navigation()); + mTvChangePwd.setOnClickListener(v -> ARouter.getInstance() + .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_FORGET_PWD) + .navigation()); } private void initDatabase() { @@ -213,100 +213,100 @@ public class LoginActivity extends BaseActivity { String obj = gson.toJson(info); RequestBody body = RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), obj); RetrofitManager.getInstance() - .create(BaseApiService.class) - .doLogin(body) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(BaseApiService.class) + .doLogin(body) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(BaseSuccessBean baseUserBean) { + @Override + public void onNext(BaseSuccessBean baseUserBean) { - if (!TextUtils.isEmpty(baseUserBean.getData())) { - byte[] decode = Base64.decode(baseUserBean.getData(), Base64.DEFAULT); - try { - String loginUserInfo = AesUtil.aesCommonDecoder(PathConfig.SECRET, new String(decode, "UTF-8")); - LogUtils.e(loginUserInfo); - if (!TextUtils.isEmpty(loginUserInfo)) { - AppTokenUser appTokenUser = gson.fromJson(loginUserInfo, AppTokenUser.class); - boolean tag = false; - if (appTokenUser.getRoles() == null || appTokenUser.getRoles().size() <= 0) { - ToastUtils.show("您不是区域管理员,无法登录"); - } else { - for (int i = 0; i < appTokenUser.getRoles().size(); i++) { - if (PathConfig.USER_TYPE_CENTER.equals(appTokenUser.getRoles().get(i).getRoleId())) { - tag = true; - break; + if (!TextUtils.isEmpty(baseUserBean.getData())) { + byte[] decode = Base64.decode(baseUserBean.getData(), Base64.DEFAULT); + try { + String loginUserInfo = AesUtil.aesCommonDecoder(PathConfig.SECRET, new String(decode, "UTF-8")); + LogUtils.e(loginUserInfo); + if (!TextUtils.isEmpty(loginUserInfo)) { + AppTokenUser appTokenUser = gson.fromJson(loginUserInfo, AppTokenUser.class); + boolean tag = false; + if (appTokenUser.getRoles() == null || appTokenUser.getRoles().size() <= 0) { + ToastUtils.show("您不是区域管理员,无法登录"); + } else { + for (int i = 0; i < appTokenUser.getRoles().size(); i++) { + if (PathConfig.USER_TYPE_CENTER.equals(appTokenUser.getRoles().get(i).getRoleId())) { + tag = true; + break; + } } } - } - refreshLoginState(12); - if (tag) { - //专管员 - UserLgUtils.setLoginInfo(loginUserInfo); - UserLgUtils.setPassword(pwd); - UserLgUtils.setAvatar(appTokenUser.getAvatar()); - UserLgUtils.setEmail(appTokenUser.getEmail()); - UserLgUtils.setId(appTokenUser.getId()); - UserLgUtils.setName(appTokenUser.getName()); - UserLgUtils.setUserName(appTokenUser.getUsername()); - UserLgUtils.setPhone(appTokenUser.getPhone()); - UserLgUtils.setToken(baseUserBean.getData()); - GlobalProvider.save(mActivity, "token", baseUserBean.getData()); - GlobalProvider.save(mActivity, "userId", appTokenUser.getId()); - GlobalProvider.save(mActivity, "userName", appTokenUser.getUsername()); - GlobalProvider.save(mActivity, "name", appTokenUser.getName()); - if (isRememberPwd) { + refreshLoginState(12); + if (tag) { + //专管员 + UserLgUtils.setLoginInfo(loginUserInfo); UserLgUtils.setPassword(pwd); + UserLgUtils.setAvatar(appTokenUser.getAvatar()); + UserLgUtils.setEmail(appTokenUser.getEmail()); + UserLgUtils.setId(appTokenUser.getId()); + UserLgUtils.setName(appTokenUser.getName()); + UserLgUtils.setUserName(appTokenUser.getUsername()); + UserLgUtils.setPhone(appTokenUser.getPhone()); + UserLgUtils.setToken(baseUserBean.getData()); + GlobalProvider.save(mActivity, "token", baseUserBean.getData()); + GlobalProvider.save(mActivity, "userId", appTokenUser.getId()); + GlobalProvider.save(mActivity, "userName", appTokenUser.getUsername()); + GlobalProvider.save(mActivity, "name", appTokenUser.getName()); + if (isRememberPwd) { + UserLgUtils.setPassword(pwd); + } + ARouter.getInstance() + .build(PathConfig.PATH_MODULE_MAIN_NAVIGATION_HOME) + .withString(LionActions.EXTRA_PUSH_MSG, getIntent().getStringExtra(LionActions.EXTRA_PUSH_MSG)) + .withInt(LionActions.EXTRA_MSG_TYPE, getIntent().getIntExtra(LionActions.EXTRA_MSG_TYPE, -1)) + .withInt("status", getIntent().getIntExtra("status", -1)) + .withString("to", getIntent().getStringExtra("to")) + .withString("time", getIntent().getStringExtra("time")) + .withString(LionActions.EXTRA_MSG_CONF_ID, getIntent().getStringExtra(LionActions.EXTRA_MSG_CONF_ID)) + .navigation(); + finish(); + } else { + //不是网格员 + ToastUtils.show("您不是区域管理员,无法登录"); } - ARouter.getInstance() - .build(PathConfig.PATH_MODULE_MAIN_NAVIGATION_HOME) - .withString(LionActions.EXTRA_PUSH_MSG, getIntent().getStringExtra(LionActions.EXTRA_PUSH_MSG)) - .withInt(LionActions.EXTRA_MSG_TYPE, getIntent().getIntExtra(LionActions.EXTRA_MSG_TYPE, -1)) - .withInt("status", getIntent().getIntExtra("status", -1)) - .withString("to", getIntent().getStringExtra("to")) - .withString("time", getIntent().getStringExtra("time")) - .withString(LionActions.EXTRA_MSG_CONF_ID, getIntent().getStringExtra(LionActions.EXTRA_MSG_CONF_ID)) - .navigation(); - finish(); } else { - //不是网格员 - ToastUtils.show("您不是区域管理员,无法登录"); + ToastUtils.show("登录失败,请稍后重试."); + refreshLoginState(12); } - } else { + } catch (Exception e) { + e.printStackTrace(); ToastUtils.show("登录失败,请稍后重试."); refreshLoginState(12); } - } catch (Exception e) { - e.printStackTrace(); + } else { ToastUtils.show("登录失败,请稍后重试."); refreshLoginState(12); } - } else { - ToastUtils.show("登录失败,请稍后重试."); + } + + @Override + public void onError(Throwable e) { + e.printStackTrace(); refreshLoginState(12); + int i = ExceptionHandler.handleExceptionWithLogin(e); + if (i == 40502) { + checkPermission(); + } } - } - @Override - public void onError(Throwable e) { - e.printStackTrace(); - refreshLoginState(12); - int i = ExceptionHandler.handleExceptionWithLogin(e); - if (i == 40502) { - checkPermission(); + @Override + public void onComplete() { + } - } - - @Override - public void onComplete() { - - } - }); + }); } /** @@ -314,44 +314,46 @@ public class LoginActivity extends BaseActivity { */ private void checkPermission() { RetrofitManager.getInstance() - .create(BaseApiService.class) - .doCheckAppVersion(BaseUrlApi.APP_VERSION_ID) - .compose(RxTransformer.getTransformer()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(BaseApiService.class) + .doCheckAppVersion(BaseUrlApi.APP_VERSION_ID) + .compose(RxTransformer.getTransformer()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(VersionBean successBean) { - if (successBean != null && successBean.getData() > 0) { - if (CheckUpdateUtils.checkcode(LoginActivity.this, successBean.getData() + "")) { - startDownloadApk(); + @Override + public void onNext(VersionBean successBean) { + if (successBean != null && successBean.getData() > 0) { + if (CheckUpdateUtils.checkcode(LoginActivity.this, successBean.getData() + "")) { + startDownloadApk(); + } } } - } - @Override - public void onError(Throwable e) { + @Override + public void onError(Throwable e) { - } + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } + /** * 开始下载Apk */ private void startDownloadApk() { - ToastUtils.show("检测到新版本,开始下载,请在通知栏查看下载进度"); + ToastUtils.show("检测到新版本,开始下载"); Intent intent = new Intent(mActivity, DownloadService.class); intent.putExtra(Constants.APK_DOWNLOAD_URL, BaseUrlApi.APP_DOWNLOAD_URL); startService(intent); } + @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { diff --git a/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/MainTabActivity.java b/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/MainTabActivity.java index 51cb90c..c8129e5 100644 --- a/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/MainTabActivity.java +++ b/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/MainTabActivity.java @@ -17,6 +17,9 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; +import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.core.content.ContextCompat; import androidx.viewpager2.widget.ViewPager2; @@ -26,7 +29,6 @@ import com.alibaba.android.arouter.launcher.ARouter; import com.baidu.location.BDLocation; import com.google.gson.JsonObject; import com.gyf.immersionbar.ImmersionBar; -import com.hjq.toast.ToastUtils; import com.huawei.ecterminalsdk.base.TsdkConfJoinParam; import com.huawei.ecterminalsdk.base.TsdkLocalAddress; import com.huawei.ecterminalsdk.models.TsdkManager; @@ -63,6 +65,7 @@ import com.tenlionsoft.baselib.core.beans.UserExpandInfoBean; import com.tenlionsoft.baselib.core.db.AppDatabase; import com.tenlionsoft.baselib.core.network.update.CheckUpdateUtils; import com.tenlionsoft.baselib.core.network.update.service.DownloadService; +import com.tenlionsoft.baselib.core.network.update.utils.ApkUtils; import com.tenlionsoft.baselib.core.network.update.utils.Constants; import com.tenlionsoft.baselib.core.retrofit_net.BaseUrlApi; import com.tenlionsoft.baselib.core.retrofit_net.RetrofitManager; @@ -74,11 +77,13 @@ import com.tenlionsoft.baselib.core.widget.base.BaseFragment; import com.tenlionsoft.baselib.core.widget.base.BaseViewPage2Adapter; import com.tenlionsoft.baselib.core.widget.base.FragmentUtils; import com.tenlionsoft.baselib.core.widget.base.NotificationUtils; +import com.tenlionsoft.baselib.core.widget.views.CenterProgressUpdateView; import com.tenlionsoft.baselib.utils.AppUtils; import com.tenlionsoft.baselib.utils.GpsUtils; import com.tenlionsoft.baselib.utils.IntentWrapper; import com.tenlionsoft.baselib.utils.KeyBoardListener; import com.tenlionsoft.baselib.utils.LogUtils; +import com.tenlionsoft.baselib.utils.ToastUtils; import com.tenlionsoft.baselib.utils.UIUtil; import com.tenlionsoft.baselib.utils.UserLgUtils; @@ -86,6 +91,7 @@ import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; +import java.io.File; import java.util.ArrayList; import java.util.List; @@ -135,6 +141,9 @@ public class MainTabActivity extends BaseActivity implements LoginView, LocalBro BroadcastConstant.ACTION_FIRST_CHANGE_PWD}; private String mConfId; private ProgressDialog mDialog; + private CenterProgressUpdateView mUpdateView; + private File mApkFile; + private ActivityResultLauncher mInstallLauncher; @Override protected int setLayoutId() { @@ -148,6 +157,20 @@ public class MainTabActivity extends BaseActivity implements LoginView, LocalBro refreshView(STATE_LOAD_SUCCESS); mFragments = new ArrayList<>(); initContentView(); + mInstallLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), + result -> { + boolean b = false; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && Build.VERSION.SDK_INT < Build.VERSION_CODES.R) { + LogUtils.e("是否可以安装:" + b); + b = getPackageManager().canRequestPackageInstalls(); + if (b) { + installApk(mApkFile); + } else { + mApkFile = null; + ToastUtils.showLong("您未授权安装未知应用,无法安装,请前往设置自行授权."); + } + } + }); getAppConfig(); //不能拨打 getUserExpand(); @@ -243,6 +266,15 @@ public class MainTabActivity extends BaseActivity implements LoginView, LocalBro } } + /** + * 更新dialog + */ + private void showUpdateProgress() { + mUpdateView = new CenterProgressUpdateView.DialogBuilder(mActivity) + .build(); + mUpdateView.show(); + } + /** * 打开悬浮窗权限提示 */ @@ -366,6 +398,7 @@ public class MainTabActivity extends BaseActivity implements LoginView, LocalBro } } + /** * App版本校验 */ @@ -406,7 +439,8 @@ public class MainTabActivity extends BaseActivity implements LoginView, LocalBro * 开始下载Apk */ private void startDownloadApk() { - ToastUtils.show("检测到新版本,开始下载,请在通知栏查看下载进度"); + ToastUtils.show("检测到新版本,开始下载."); + showUpdateProgress(); Intent intent = new Intent(mActivity, DownloadService.class); intent.putExtra(Constants.APK_DOWNLOAD_URL, BaseUrlApi.APP_DOWNLOAD_URL); startService(intent); @@ -466,6 +500,9 @@ public class MainTabActivity extends BaseActivity implements LoginView, LocalBro filter.addAction(PathConfig.ACTION_LOGIN_OUT);//强制退出 filter.addAction(PathConfig.ACTION_SOCKET_NOT_ALIVE);//重新连接socket filter.addAction(PathConfig.ACTION_RELINK_HW_RHTX);//重新登录融合通信 + filter.addAction(PathConfig.ACTION_UPDATE_SUCCESS);//下载成功 + filter.addAction(PathConfig.ACTION_UPDATE_ERROR);//下载失败 + filter.addAction(PathConfig.ACTION_UPDATE_PROGRESS);//进度更新 registerReceiver(mReceiver, filter); } @@ -580,7 +617,7 @@ public class MainTabActivity extends BaseActivity implements LoginView, LocalBro if (mDialog != null && mDialog.isShowing()) { mDialog.dismiss(); } - ToastUtils.show("登录失败,请稍后重试"); + ToastUtils.show("融合通信登录失败,请稍后重试"); LogUtils.e("登录失败"); Intent intent = new Intent(); intent.setAction(PathConfig.ACTION_CALL_LOGIN_FAIL); @@ -600,7 +637,7 @@ public class MainTabActivity extends BaseActivity implements LoginView, LocalBro mFragments.get(2).refreshContentView("success"); } } - ToastUtils.show("登录成功"); + ToastUtils.show("融合通信登录成功"); int status = getIntent().getIntExtra("status", -1); if (status != -1) { if (status == 111) { @@ -805,10 +842,68 @@ public class MainTabActivity extends BaseActivity implements LoginView, LocalBro int logout = LoginMangerV2.getInstance().logout(); LogUtils.e("退出登录===" + logout); getAppConfig(); + } else if (PathConfig.ACTION_UPDATE_ERROR.equals(action)) { + //下载失败 + if (mUpdateView != null && mUpdateView.isShowing()) { + mUpdateView.dismiss(); + } + } else if (PathConfig.ACTION_UPDATE_PROGRESS.equals(action)) { + //进度更新 + if (mUpdateView != null && mUpdateView.isShowing()) { + int progress = intent.getIntExtra("progress", 0); + LogUtils.e("当前进度:" + progress); + mUpdateView.setCurrentProgress(progress); + } + } else if (PathConfig.ACTION_UPDATE_SUCCESS.equals(action)) { + //下载成功 + if (mUpdateView != null && mUpdateView.isShowing()) { + mUpdateView.dismiss(); + } + //判断是否可以安装 + File apkFile = (File) intent.getSerializableExtra("apkFile"); + installApk(apkFile); } } + } + + /** + * 安装Apk + * + * @param file + */ + private void installApk(File file) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && Build.VERSION.SDK_INT < Build.VERSION_CODES.R) { + boolean b = getPackageManager().canRequestPackageInstalls(); + if (b) { + ApkUtils.installAPk(mActivity, file); + } else { + //申请权限 + mApkFile = file; + Uri packageURI = Uri.parse("package:" + mActivity.getPackageName()); + Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI); + mInstallLauncher.launch(intent); +// startActivityForResult(intent, 298); + } + } else { + ApkUtils.installAPk(mActivity, file); + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 298) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && Build.VERSION.SDK_INT < Build.VERSION_CODES.R) { + boolean b = getPackageManager().canRequestPackageInstalls(); + if (b) { + installApk(mApkFile); + } else { + ToastUtils.showLong("您未授权\"安装未知应用\"权限,导致无法安装软件,请自行前往设置授权。"); + } + } + } } /** diff --git a/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/SplashActivity.java b/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/SplashActivity.java index 61b2f18..c718e34 100644 --- a/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/SplashActivity.java +++ b/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/SplashActivity.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.gyf.immersionbar.ImmersionBar; -import com.hjq.toast.ToastUtils; +import com.tenlionsoft.baselib.utils.ToastUtils; import com.tenlionsoft.baselib.constant.LionActions; import com.tenlionsoft.baselib.constant.PathConfig; import com.tenlionsoft.baselib.constant.PermissionConstants; diff --git a/modulemap/src/main/java/com/tengshisoft/modulemap/activitys/SelPointActivity.java b/modulemap/src/main/java/com/tengshisoft/modulemap/activitys/SelPointActivity.java index 32afed4..9bd2506 100644 --- a/modulemap/src/main/java/com/tengshisoft/modulemap/activitys/SelPointActivity.java +++ b/modulemap/src/main/java/com/tengshisoft/modulemap/activitys/SelPointActivity.java @@ -27,7 +27,7 @@ import com.baidu.mapapi.search.geocode.GeoCoder; import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener; import com.baidu.mapapi.search.geocode.ReverseGeoCodeOption; import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult; -import com.hjq.toast.ToastUtils; +import com.tenlionsoft.baselib.utils.ToastUtils; import com.tengshisoft.modulemap.R; import com.tengshisoft.modulemap.R2; import com.tengshisoft.modulemap.common.Location84; @@ -35,6 +35,7 @@ import com.tengshisoft.modulemap.common.PointUtils; import com.tenlionsoft.baselib.app.BaseAppContext; import com.tenlionsoft.baselib.constant.PathConfig; import com.tenlionsoft.baselib.core.widget.base.BaseActivity; +import com.tenlionsoft.baselib.utils.ToastUtils; import com.tenlionsoft.baselib.utils.UIUtil; import butterknife.BindView;