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 4630afe..66a4229 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java @@ -797,5 +797,6 @@ public class PathConfig { public static final String ACTION_UPDATE_ERROR = "com.tenlionsoft.girdcclient.update_error"; public static final String ACTION_UPDATE_PROGRESS = "com.tenlionsoft.girdcclient.update_progress"; public static final String ACTION_UPDATE_SUCCESS = "com.tenlionsoft.girdcclient.update_success"; + public static final String ACTION_UPDATE_STAET = "com.tenlionsoft.girdcclient.update_start"; } diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/network/HttpUtils.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/network/HttpUtils.java index cd226d3..2b9527e 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/core/network/HttpUtils.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/network/HttpUtils.java @@ -381,15 +381,13 @@ public class HttpUtils { .build(); } + //设置拦截器 client.newBuilder() - .addNetworkInterceptor(new Interceptor() { //设置拦截器 - @Override - public Response intercept(Chain chain) throws IOException { - Response originalResponse = chain.proceed(chain.request()); - return originalResponse.newBuilder() - .body(new ResponseProgressBody(originalResponse.body(), downloadResponseHandler)) - .build(); - } + .addNetworkInterceptor(chain -> { + Response originalResponse = chain.proceed(chain.request()); + return originalResponse.newBuilder() + .body(new ResponseProgressBody(originalResponse.body(), downloadResponseHandler)) + .build(); }) .build() .newCall(request) diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/network/callback/DownloadCallback.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/network/callback/DownloadCallback.java index a583706..8039aff 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/core/network/callback/DownloadCallback.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/network/callback/DownloadCallback.java @@ -23,7 +23,7 @@ public class DownloadCallback implements Callback { private String mFilename; public DownloadCallback(Handler handler, DownloadResponseHandler downloadResponseHandler, - String filedir, String filename) { + String filedir, String filename) { mHandler = handler; mDownloadResponseHandler = downloadResponseHandler; mFileDir = filedir; @@ -44,39 +44,22 @@ public class DownloadCallback implements Callback { @Override public void onResponse(Call call, final Response response) throws IOException { - if(response.isSuccessful()) { + if (response.isSuccessful()) { File file = null; try { file = saveFile(response, mFileDir, mFilename); } catch (final IOException e) { // LogUtils.e("onResponse saveFile fail", e); - - mHandler.post(new Runnable() { - @Override - public void run() { - mDownloadResponseHandler.onFailure("onResponse saveFile fail." + e.toString()); - } - }); + mHandler.post(() -> mDownloadResponseHandler.onFailure("onResponse saveFile fail." + e.toString())); } - final File newFile = file; - mHandler.post(new Runnable() { - @Override - public void run() { - mDownloadResponseHandler.onFinish(newFile); - } - }); + mHandler.post(() -> mDownloadResponseHandler.onFinish(newFile)); } else { // LogUtils.e("onResponse fail status=" + response.code()); - - mHandler.post(new Runnable() { - @Override - public void run() { - mDownloadResponseHandler.onFailure("fail status=" + response.code()); - } - }); + mHandler.post(() -> mDownloadResponseHandler.onFailure("fail status=" + response.code())); } } + //保存文件 private File saveFile(Response response, String filedir, String filename) throws IOException { InputStream is = null; 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 45095d5..2a7aa53 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 @@ -11,6 +11,7 @@ import com.tenlionsoft.baselib.core.network.HttpUtils; import com.tenlionsoft.baselib.core.network.response.DownloadResponseHandler; import com.tenlionsoft.baselib.core.network.update.utils.Constants; import com.tenlionsoft.baselib.core.network.update.utils.StorageUtils; +import com.tenlionsoft.baselib.utils.LogUtils; import com.tenlionsoft.baselib.utils.ToastUtils; import java.io.File; @@ -22,6 +23,7 @@ public class DownloadService extends Service { private DownInfo downInfo; private int oldProgress = 0; + private boolean mIsSuccess = true; @Override public void onCreate() { @@ -44,20 +46,21 @@ public class DownloadService extends Service { private void downLoadFile() { + Intent intent = new Intent(); + intent.setAction(PathConfig.ACTION_UPDATE_STAET); + sendBroadcast(intent); 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); -// NotificationBarUtil.setNotificationBarVisibility(DownloadService.this, false); - //安装 - -// notificationHelper.cancel(); - + LogUtils.e("下载成功"); + if (mIsSuccess) { + //收起通知栏 + Intent intent = new Intent(); + intent.setAction(PathConfig.ACTION_UPDATE_SUCCESS); + intent.putExtra("apkFile", download_file); + sendBroadcast(intent); + } stopSelf(); } @@ -65,7 +68,6 @@ public class DownloadService extends Service { public void onProgress(long currentBytes, long totalBytes) { int progress = (int) ((currentBytes * 1.0 / totalBytes) * 100); if (progress != oldProgress) { -// notificationHelper.updateProgress(progress); Intent intent = new Intent(); intent.setAction(PathConfig.ACTION_UPDATE_PROGRESS); intent.putExtra("progress", progress); @@ -76,11 +78,12 @@ public class DownloadService extends Service { @Override public void onFailure(String error_msg) { + LogUtils.e("下载失败"); + mIsSuccess = false; ToastUtils.show("App下载失败,请稍后重试"); Intent intent = new Intent(); intent.setAction(PathConfig.ACTION_UPDATE_ERROR); sendBroadcast(intent); -// notificationHelper.cancel(); stopSelf(); } }); diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/HalfCircleChartView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/HalfCircleChartView.java new file mode 100644 index 0000000..a735158 --- /dev/null +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/HalfCircleChartView.java @@ -0,0 +1,587 @@ +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.Path; +import android.graphics.RectF; +import android.graphics.Typeface; +import android.text.Layout; +import android.text.SpannableString; +import android.text.StaticLayout; +import android.text.TextPaint; +import android.text.style.ForegroundColorSpan; +import android.text.style.RelativeSizeSpan; +import android.text.style.StyleSpan; +import android.util.AttributeSet; +import android.view.View; + +import androidx.annotation.Nullable; + +import com.tenlionsoft.baselib.utils.ConvertUtils; +import com.tenlionsoft.baselib.utils.LogUtils; + +public class HalfCircleChartView extends View { + + private Path mPath; + private Paint mPaintProgress; + private Paint mPaintProgressColor; + private Paint mColorPaint; + private Paint mPercentPaint; + private TextPaint mTextPaint; + + private Paint mGrayPaint; + private int mPadding = 60; + private int mPaintWidth = 60;//画笔线宽 + + private RectF mRectF; + private int mWidth; + private int mHeight; + private Paint mBlackPaint; + + + public HalfCircleChartView(Context context) { + super(context, null); + } + + public HalfCircleChartView(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + + initView(); + } + + private void initView() { + + mPath = new Path(); + mPath.reset(); + + mRectF = new RectF(); + + + mPaintProgress = new Paint(Paint.ANTI_ALIAS_FLAG); + mPaintProgress.setStrokeWidth(mPaintWidth); + mPaintProgress.setColor(Color.parseColor("#EBF0F6")); + mPaintProgress.setStyle(Paint.Style.STROKE); + mPaintProgress.setStrokeCap(Paint.Cap.ROUND); +// mPaintProgress.setAlpha(40); + mPaintProgress.setShadowLayer(6, 0, 6, Color.parseColor("#E0E0E0")); + + mPaintProgressColor = new Paint(Paint.ANTI_ALIAS_FLAG); + mPaintProgressColor.setStrokeWidth(mPaintWidth); + mPaintProgressColor.setColor(Color.parseColor("#305DFD")); + mPaintProgressColor.setStyle(Paint.Style.STROKE); + mPaintProgressColor.setStrokeCap(Paint.Cap.ROUND); +// mPaintProgressColor.setShadowLayer(6, -5, 5, Color.parseColor("#C2C9E3")); + + mColorPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + mColorPaint.setColor(Color.parseColor("#305DFD")); + mColorPaint.setStyle(Paint.Style.FILL); + mColorPaint.setTextAlign(Paint.Align.CENTER); + mColorPaint.setFakeBoldText(true); + mColorPaint.setTextSize(ConvertUtils.sp2px(20)); + mColorPaint.setTextAlign(Paint.Align.CENTER); + mPercentPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + mPercentPaint.setColor(Color.parseColor("#305DFD")); + mPercentPaint.setStyle(Paint.Style.FILL); + mPercentPaint.setTextAlign(Paint.Align.CENTER); + mPercentPaint.setFakeBoldText(true); + mPercentPaint.setTextSize(ConvertUtils.sp2px(12)); + mPercentPaint.setTextAlign(Paint.Align.CENTER); + + + mGrayPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + mGrayPaint.setColor(Color.parseColor("#8F8F8F")); + mGrayPaint.setStyle(Paint.Style.FILL); + mGrayPaint.setTextAlign(Paint.Align.CENTER); + mGrayPaint.setTextSize(ConvertUtils.sp2px(12)); + + mBlackPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + mBlackPaint.setColor(Color.BLACK); + mBlackPaint.setStyle(Paint.Style.FILL); + mBlackPaint.setStrokeWidth(10); + + mTextPaint = new TextPaint(); + mTextPaint.setColor(Color.parseColor("#305DFD")); + mTextPaint.setTextSize(ConvertUtils.sp2px(14)); + mTextPaint.setTextAlign(Paint.Align.CENTER); + } + + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + mWidth = resolveSize(400, widthMeasureSpec); + mHeight = resolveSize(400, heightMeasureSpec); + setMeasuredDimension( + Math.max(getSuggestedMinimumWidth(), + resolveSize(mWidth, + widthMeasureSpec)), + Math.max(getSuggestedMinimumHeight(), + resolveSize(mHeight, + heightMeasureSpec))); + } + + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + //获取最小一边 + int min = Math.min(mWidth, mHeight); + //中心点 + int centerX = mWidth / 2; + int centerY = mHeight / 2; + + + int startY = centerY - min / 2; + int startX = centerX - min / 2; + int endY = centerY + min / 2; + int endX = centerX + min / 2; + LogUtils.e("矩形:(" + startX + ".." + startY + ")(" + endX + ".." + endY + ")"); +// Rect path = new Rect(startX, startY, endX, endY); +// canvas.drawRect(path, mGrayPaint); + mRectF.set(startX + mPaintWidth, startY + mPaintWidth, endX - mPaintWidth, endY - mPaintWidth); + int offsetY = centerY - mPaintWidth; + LogUtils.e("中心点Y:" + mRectF.centerY() + "==" + centerY); + mRectF.offset(0, offsetY); + //绘制第一个环形背景 + mPath.arcTo(mRectF, 180, 180); + canvas.drawPath(mPath, mPaintProgress); + + //添加进度 + addProgress(canvas); + //绘制文字 + drawText(canvas, "70", offsetY); + } + + + private void drawText(Canvas canvas, String percent, int offsetY) { + //中心点 + canvas.save(); + int centerX = mWidth / 2; + int centerY = mHeight / 2; + SpannableString s = makeTxt("60"); + StaticLayout textLayout = new StaticLayout(s, mTextPaint, canvas.getWidth(), + Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false); + canvas.translate(centerX, centerY + offsetY - mPaintWidth); + textLayout.draw(canvas); + canvas.restore(); + //计算文字所占大小 +// Rect perRect = new Rect(); +// mColorPaint.getTextBounds(percent, 0, percent.length(), perRect); +// +// Rect centRect = new Rect(); +// mPercentPaint.getTextBounds("%", 0, "%".length(), centRect); +// //文字所占长宽 +// int strWidth = perRect.width() + centRect.width(); +// LogUtils.e("文字所占宽度:" + strWidth); +// int strHeight = perRect.height(); +// +// canvas.drawText(percent, centerX - strWidth / 2, centerY + perRect.height() / 2 + offsetY - mPaintWidth, +// mColorPaint);//绘制占比数字 +// +// canvas.drawText("%", centerX + perRect.width() / 2, centerY + centRect.height() + offsetY - mPaintWidth, +// mPercentPaint);//绘制百分号 +// canvas.drawPoint(centerX, centerY + offsetY - mPaintWidth, mBlackPaint); +// +// Rect re = new Rect(); +// String s = "重点青少年占比"; +// mGrayPaint.getTextBounds(s, 0, s.length(), re); +// canvas.drawText(s, centerX - re.width() / 2, +// centerY + strHeight + re.height() / 2 + 10 + offsetY - mPaintWidth, mGrayPaint); + } + + private SpannableString makeTxt(String str) { + String content = str + "%\n重点青少年占比"; + SpannableString s = new SpannableString(content); + s.setSpan(new StyleSpan(Typeface.BOLD), 0, content.indexOf("重"), 0); + s.setSpan(new ForegroundColorSpan(Color.parseColor("#2F5CFB")), 0, content.indexOf("重"), 0); + s.setSpan(new RelativeSizeSpan(1.3f), 0, content.indexOf("重"), 0); + return s; + } + + + private void addProgress(Canvas canvas) { + Path mPathProgress = new Path(); + mPathProgress.reset(); + //70%的进度 + float progress = 0.7f; + float sweepAngle = progress * 180; + mPathProgress.arcTo(mRectF, 180, sweepAngle); + canvas.drawPath(mPathProgress, mPaintProgressColor); + } + + + //Android Canvas沿着Path绘制文字 +// private void addTextPath(Canvas canvas) { +// +// int startAngle = 135; //开始角度 +// int sweepAngle = 45; //总共 270度角,分6次则为 45度 +// +// String[] content = {"0-10W", "10-20W", "20-30W", "30-40W", "40-50W", "50W+"}; +// Paint mTextPaint = new Paint(); +// mTextPaint.setColor(Color.BLACK); +// mTextPaint.setTextSize(40); +// Path path = null; +// +// +// for (int i = 0; i < 6; i++) { +// path = new Path(); +// path.addArc(mRectF2, startAngle, sweepAngle); +// float textLength = mTextPaint.measureText(content[i]);//获得字体长度 +// float hOffset = (float) (mDiam2 * Math.PI * (sweepAngle * 1.0 / 360) / 2 - textLength / 2);//The +// distance along the path +// float vOffset = (float) (mDiam2 / 2 / 6); //垂直路径方向上的偏移 +// canvas.drawTextOnPath(content[i], path, hOffset, vOffset, mTextPaint); +// +//// Log.d("Circle", "hOffset:" + hOffset + " vOffset: " + vOffset); +// startAngle += sweepAngle; +// } +// +// } +// +// +// private void addKeDu1(Canvas canvas) { +// +// int pointX = 500; +// int pointY = 500; +// +// +// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(12); +// +// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(4); +// +// +// float angle = 45; +// //刻度直径 +// int radius = 800 - 40; +// int length = 80; //刻度线长度 +// +// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_1 = pointX - px_a1; +// int py_a_1 = pointY + py_a1; +// +// int radius2 = radius - length; +// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_2 = pointX - px_a2; +// int py_a_2 = pointY + py_a2; +// +// //绘制粗刻度线 +// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine); +// +// //绘制细刻度线 +// int length2 = 50; +// for (int i = 1; i < 9; i++) { +// +// float angle2 = 45 - (i * 45 / 9); +// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_3 = pointX - px_a3; +// int py_a_3 = pointY + py_a3; +// +// int radius3 = radius - length2; +// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_4 = pointX - px_a4; +// int py_a_4 = pointY + py_a4; +// +// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2); +// } +// +// } +// +// private void addKeDu2(Canvas canvas) { +// +// int pointX = 500; +// int pointY = 500; +// +// +// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(12); +// +// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(4); +// +// +// float angle = 0; +// int radius = 800 - 40; +// int length = 80; +// +// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_1 = pointX - px_a1; +// int py_a_1 = pointY + py_a1; +// +// int radius2 = radius - length; +// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_2 = pointX - px_a2; +// int py_a_2 = pointY + py_a2; +// +// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine); +// +// int length2 = 50; +// for (int i = 1; i < 9; i++) { +// +// float angle2 = angle + (i * 45 / 9); +// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_3 = pointX - px_a3; +// int py_a_3 = pointY - py_a3; +// +// int radius3 = radius - length2; +// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_4 = pointX - px_a4; +// int py_a_4 = pointY - py_a4; +// +// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2); +// } +// +// } +// +// private void addKeDu3(Canvas canvas) { +// +// int pointX = 500; +// int pointY = 500; +// +// +// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(12); +// +// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(4); +// +// +// float angle = 45; +// int radius = 800 - 40; +// int length = 80; +// +// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_1 = pointX - px_a1; +// int py_a_1 = pointY - py_a1; +// +// int radius2 = radius - length; +// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_2 = pointX - px_a2; +// int py_a_2 = pointY - py_a2; +// +// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine); +// +// int length2 = 50; +// for (int i = 1; i < 9; i++) { +// +// float angle2 = angle + (i * 45 / 9); +// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_3 = pointX - px_a3; +// int py_a_3 = pointY - py_a3; +// +// int radius3 = radius - length2; +// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_4 = pointX - px_a4; +// int py_a_4 = pointY - py_a4; +// +// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2); +// } +// +// } +// +// private void addKeDu4(Canvas canvas) { +// +// int pointX = 500; +// int pointY = 500; +// +// +// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(12); +// +// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(4); +// +// +// float angle = 90; +// int radius = 800 - 40; +// int length = 80; +// +// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_1 = pointX - px_a1; +// int py_a_1 = pointY - py_a1; +// +// int radius2 = radius - length; +// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_2 = pointX - px_a2; +// int py_a_2 = pointY - py_a2; +// +// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine); +// +// int length2 = 50; +// for (int i = 1; i < 9; i++) { +// +// float angle2 = angle + (i * 45 / 9); +// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_3 = pointX - px_a3; +// int py_a_3 = pointY - py_a3; +// +// int radius3 = radius - length2; +// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_4 = pointX - px_a4; +// int py_a_4 = pointY - py_a4; +// +// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2); +// } +// +// } +// +// private void addKeDu5(Canvas canvas) { +// +// int pointX = 500; +// int pointY = 500; +// +// +// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(12); +// +// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(4); +// +// +// float angle = 135; +// int radius = 800 - 40; +// int length = 80; +// +// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_1 = pointX - px_a1; +// int py_a_1 = pointY - py_a1; +// +// int radius2 = radius - length; +// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_2 = pointX - px_a2; +// int py_a_2 = pointY - py_a2; +// +// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine); +// +// int length2 = 50; +// for (int i = 1; i < 9; i++) { +// +// float angle2 = angle + (i * 45 / 9); +// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_3 = pointX - px_a3; +// int py_a_3 = pointY - py_a3; +// +// int radius3 = radius - length2; +// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_4 = pointX - px_a4; +// int py_a_4 = pointY - py_a4; +// +// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2); +// } +// +// } +// +// private void addKeDu6(Canvas canvas) { +// +// int pointX = 500; +// int pointY = 500; +// +// +// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(12); +// +// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(4); +// +// +// float angle = 180; +// int radius = 800 - 40; +// int length = 80; +// +// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_1 = pointX - px_a1; +// int py_a_1 = pointY - py_a1; +// +// int radius2 = radius - length; +// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_2 = pointX - px_a2; +// int py_a_2 = pointY - py_a2; +// +// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine); +// +// int length2 = 50; +// for (int i = 1; i < 9; i++) { +// +// float angle2 = angle + (i * 45 / 9); +// int px_a3 = (int) (radius / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a3 = (int) (radius / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_3 = pointX - px_a3; +// int py_a_3 = pointY - py_a3; +// +// int radius3 = radius - length2; +// int px_a4 = (int) (radius3 / 2 * Math.cos(Math.PI * angle2 / 180)); +// int py_a4 = (int) (radius3 / 2 * Math.sin(Math.PI * angle2 / 180)); +// int px_a_4 = pointX - px_a4; +// int py_a_4 = pointY - py_a4; +// +// canvas.drawLine(px_a_3, py_a_3, px_a_4, py_a_4, paintLine2); +// } +// +// } +// +// private void addEndKeDu(Canvas canvas) { +// int pointX = 500; +// int pointY = 500; +// +// Paint paintLine = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(12); +// +// Paint paintLine2 = new Paint(Paint.ANTI_ALIAS_FLAG); +// paintLine.setColor(0xff454545); +// paintLine.setStrokeWidth(4); +// +// +// float angle = 225; +// int radius = 800 - 40; +// int length = 80; +// +// int px_a1 = (int) (radius / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a1 = (int) (radius / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_1 = pointX - px_a1; +// int py_a_1 = pointY - py_a1; +// +// int radius2 = radius - length; +// int px_a2 = (int) (radius2 / 2 * Math.cos(Math.PI * angle / 180)); +// int py_a2 = (int) (radius2 / 2 * Math.sin(Math.PI * angle / 180)); +// int px_a_2 = pointX - px_a2; +// int py_a_2 = pointY - py_a2; +// +// canvas.drawLine(px_a_1, py_a_1, px_a_2, py_a_2, paintLine); +// } +} 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 d25f4af..3d691b9 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/utils/ExceptionHandler.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/utils/ExceptionHandler.java @@ -49,7 +49,7 @@ public class ExceptionHandler { } else if (throwable instanceof SocketTimeoutException) { ToastUtils.show("网络连接超时"); } else { - ToastUtils.show("网络错误,请稍后重试(500)"); + ToastUtils.show("服务器发生错误(500)"); } } diff --git a/build.gradle b/build.gradle index 1204f56..ff1b28e 100644 --- a/build.gradle +++ b/build.gradle @@ -58,8 +58,8 @@ ext { gCompileSdkVersion = 30 gMinSdkVersion = 21 gTargetSdkVersion = 30 - gVersionCode = 14 - gVersionName = '1.1.3' + gVersionCode = 15 + gVersionName = '1.1.4' gBuildToolsVersion = "29.0.2" // gVersionCode=26 // gVersionName='1.3.0' 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 2a5bbe8..bcd2199 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 @@ -1,5 +1,7 @@ package com.tengshisoft.commonmodule.activitys.usercenter; +import static android.app.Activity.RESULT_OK; + import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; @@ -19,6 +21,9 @@ import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.core.content.FileProvider; + import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.launcher.ARouter; import com.bumptech.glide.Glide; @@ -26,7 +31,6 @@ 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.tenlionsoft.baselib.utils.ToastUtils; import com.tengshisoft.commonmodule.R; import com.tengshisoft.commonmodule.R2; import com.tengshisoft.commonmodule.beans.ChangePwdBean; @@ -61,6 +65,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; @@ -70,8 +75,6 @@ import java.util.Collections; import java.util.List; import java.util.Locale; -import androidx.annotation.NonNull; -import androidx.core.content.FileProvider; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.Unbinder; @@ -85,8 +88,6 @@ import okhttp3.RequestBody; import top.zibin.luban.Luban; import top.zibin.luban.OnCompressListener; -import static android.app.Activity.RESULT_OK; - /** * 作者: Adam * 日期: 2019/7/30 - 09:31 @@ -179,8 +180,8 @@ public class UserCenterFragment extends BaseFragment { */ private void doChangeUserInfo() { ARouter.getInstance() - .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_USER_INFO) - .navigation(); + .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_USER_INFO) + .navigation(); } /** @@ -200,8 +201,8 @@ public class UserCenterFragment extends BaseFragment { */ private void doOpenCollect() { ARouter.getInstance() - .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_MINE_COLLECT) - .navigation(); + .build(PathConfig.PATH_MODULE_COMMON_ACTIVITY_MINE_COLLECT) + .navigation(); } /** @@ -246,46 +247,47 @@ public class UserCenterFragment extends BaseFragment { */ private void doSyncUser() { RetrofitManager.getInstance() - .create(GridApis.class) - .getAllUserList(UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { + .create(GridApis.class) + .getAllUserList(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { - } + } - @Override - public void onNext(@NonNull List userDatabaseBeans) { - mUserDatabaseBeanList = userDatabaseBeans; - for (UserDatabaseBean next : mUserDatabaseBeanList) { - if (!TextUtils.isEmpty(next.getUserName())) { - next.setPinYin(Pinyin.toPinyin(next.getUserName(), ",")); - } else { - next.setPinYin("#"); + @Override + public void onNext(@NonNull List userDatabaseBeans) { + mUserDatabaseBeanList = userDatabaseBeans; + for (UserDatabaseBean next : mUserDatabaseBeanList) { + if (!TextUtils.isEmpty(next.getUserName())) { + next.setPinYin(Pinyin.toPinyin(next.getUserName(), ",")); + } else { + next.setPinYin("#"); + } + } + Collator collator = Collator.getInstance(Locale.ENGLISH); + Collections.sort(mUserDatabaseBeanList, (o1, o2) -> collator.compare(o1.getPinYin(), + o2.getPinYin())); + ++mCount; + if (mCount == 2) { + insertAll(); } } - Collator collator = Collator.getInstance(Locale.ENGLISH); - Collections.sort(mUserDatabaseBeanList, (o1, o2) -> collator.compare(o1.getPinYin(), o2.getPinYin())); - ++mCount; - if (mCount == 2) { - insertAll(); + + @Override + public void onError(@NonNull Throwable e) { + mCount = 0; + mDialog.dismiss(); + ToastUtils.show("同步失败,请稍后重试"); } - } - @Override - public void onError(@NonNull Throwable e) { - mCount = 0; - mDialog.dismiss(); - ToastUtils.show("同步失败,请稍后重试"); - } + @Override + public void onComplete() { - @Override - public void onComplete() { - - } - }); + } + }); } /** @@ -293,37 +295,37 @@ public class UserCenterFragment extends BaseFragment { */ private void doSyncDept() { RetrofitManager.getInstance() - .create(GridApis.class) - .getAllDeptList(UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer>() { - @Override - public void onSubscribe(@NonNull Disposable d) { + .create(GridApis.class) + .getAllDeptList(UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { - } - - @Override - public void onNext(@NonNull List deptDatabaseBeans) { - ++mCount; - mDatabaseBeanList = deptDatabaseBeans; - if (mCount == 2) { - insertAll(); } - } - @Override - public void onError(@NonNull Throwable e) { - mCount = 0; - mDialog.dismiss(); - ToastUtils.show("同步失败,请稍后重试"); - } + @Override + public void onNext(@NonNull List deptDatabaseBeans) { + ++mCount; + mDatabaseBeanList = deptDatabaseBeans; + if (mCount == 2) { + insertAll(); + } + } - @Override - public void onComplete() { + @Override + public void onError(@NonNull Throwable e) { + mCount = 0; + mDialog.dismiss(); + ToastUtils.show("同步失败,请稍后重试"); + } - } - }); + @Override + public void onComplete() { + + } + }); } @Override @@ -358,33 +360,33 @@ public class UserCenterFragment extends BaseFragment { String obj = gson.toJson(bean); RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); RetrofitManager.getInstance() - .create(BaseApiService.class) - .doChangePwd(body, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(@NonNull Disposable d) { + .create(BaseApiService.class) + .doChangePwd(body, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { - } + } - @Override - public void onNext(@NonNull BaseSuccessBean baseSuccessBean) { - ToastUtils.show("密码修改成功,请重新登录"); - doLoginOut(); - } + @Override + public void onNext(@NonNull BaseSuccessBean baseSuccessBean) { + ToastUtils.show("密码修改成功,请重新登录"); + doLoginOut(); + } - @Override - public void onError(@NonNull Throwable e) { - dialog.dismiss(); - ExceptionHandler.handleException(e); - } + @Override + public void onError(@NonNull Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } @@ -393,11 +395,11 @@ public class UserCenterFragment extends BaseFragment { */ private void changeUserIcon() { ButtomDialogView buttomDialogView = new ButtomDialogView.DialogBuilder(mActivity) - .setIsBackCancelable(true) - .setIscancelable(true) - .setShowLocation(Gravity.BOTTOM) - .setIsShowFile(false) - .build(); + .setIsBackCancelable(true) + .setIscancelable(true) + .setShowLocation(Gravity.BOTTOM) + .setIsShowFile(false) + .build(); buttomDialogView.addOnChoseListener(new ButtomDialogView.OnChoseListener() { @Override public void choseFile() { @@ -407,7 +409,7 @@ public class UserCenterFragment extends BaseFragment { public void choseAlbum() { Intent intent = new Intent(Intent.ACTION_PICK, null); intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, - "image/*"); + "image/*"); startActivityForResult(intent, BaseUrlApi.PHOTO_REQUEST); buttomDialogView.dismiss(); } @@ -480,63 +482,64 @@ public class UserCenterFragment extends BaseFragment { ProgressDialog progressDialog = UIUtil.initDialog(mActivity, "头像修改中..."); progressDialog.show(); Luban.with(mActivity) - .load(picPath) - .ignoreBy(100) - .setTargetDir(mCachePath) - .filter(path -> !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif"))) - .setCompressListener(new OnCompressListener() { - @Override - public void onStart() { + .load(picPath) + .ignoreBy(100) + .setTargetDir(mCachePath) + .filter(path -> !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif"))) + .setCompressListener(new OnCompressListener() { + @Override + public void onStart() { - } - - @Override - public void onSuccess(File file) { - RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); - MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), requestFile); - RetrofitManager.getInstance() - .create(BaseApiService.class) - .uploadImage(body, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onNext(BaseSuccessBean baseUserBean) { - changeUserInfo(baseUserBean.getData(), progressDialog); - } - - @Override - public void onError(Throwable e) { - if (progressDialog != null && progressDialog.isShowing()) { - progressDialog.dismiss(); - } - ToastUtils.show("头像修改失败,请稍后重试."); - if (file.exists()) { - file.delete(); - } - } - - @Override - public void onComplete() { - - } - }); - } - - @Override - public void onError(Throwable e) { - if (progressDialog.isShowing()) { - progressDialog.dismiss(); } - ToastUtils.show("头像修改失败,请稍后重试"); - } - }) - .launch(); + + @Override + public void onSuccess(File file) { + RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file); + MultipartBody.Part body = MultipartBody.Part.createFormData("image", file.getName(), + requestFile); + RetrofitManager.getInstance() + .create(BaseApiService.class) + .uploadImage(body, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(BaseSuccessBean baseUserBean) { + changeUserInfo(baseUserBean.getData(), progressDialog); + } + + @Override + public void onError(Throwable e) { + if (progressDialog != null && progressDialog.isShowing()) { + progressDialog.dismiss(); + } + ToastUtils.show("头像修改失败,请稍后重试."); + if (file.exists()) { + file.delete(); + } + } + + @Override + public void onComplete() { + + } + }); + } + + @Override + public void onError(Throwable e) { + if (progressDialog.isShowing()) { + progressDialog.dismiss(); + } + ToastUtils.show("头像修改失败,请稍后重试"); + } + }) + .launch(); } private void changeUserInfo(String id, ProgressDialog dialog) { @@ -549,32 +552,32 @@ public class UserCenterFragment extends BaseFragment { String obj = gson.toJson(bean); RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), obj); RetrofitManager.getInstance() - .create(BaseApiService.class) - .doChangeUserInfo(body, UserLgUtils.getToken()) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(BaseApiService.class) + .doChangeUserInfo(body, UserLgUtils.getToken()) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(@NonNull BaseSuccessBean successBean) { - doLoginApp(UserLgUtils.getUserName(), UserLgUtils.getPassword(), dialog); - } + @Override + public void onNext(@NonNull BaseSuccessBean successBean) { + doLoginApp(UserLgUtils.getUserName(), UserLgUtils.getPassword(), dialog); + } - @Override - public void onError(@NonNull Throwable e) { - dialog.dismiss(); - ExceptionHandler.handleException(e); - } + @Override + public void onError(@NonNull Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } /** @@ -593,66 +596,67 @@ public class UserCenterFragment extends BaseFragment { String obj = gson.toJson(info); RequestBody body = RequestBody.create(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) { - dialog.dismiss(); - 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); - UserLgUtils.setLoginInfo(loginUserInfo); - 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()); - UserLgUtils.setPassword(pwd); - Glide.with(mActivity) - .load(BaseUrlApi.BASE_IMG_URL + appTokenUser.getAvatar()) - .apply(RequestOptions.bitmapTransform(new CircleCrop()) - .error(R.drawable.ic_user_default) - .placeholder(R.drawable.ic_user_default)) - .into(mIvUserIcon); - ToastUtils.show("头像修改成功."); - } else { + @Override + public void onNext(BaseSuccessBean baseUserBean) { + dialog.dismiss(); + 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); + UserLgUtils.setLoginInfo(loginUserInfo); + 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()); + UserLgUtils.setPassword(pwd); + Glide.with(mActivity) + .load(BaseUrlApi.BASE_IMG_URL + appTokenUser.getAvatar()) + .apply(RequestOptions.bitmapTransform(new CircleCrop()) + .error(R.drawable.ic_user_default) + .placeholder(R.drawable.ic_user_default)) + .into(mIvUserIcon); + ToastUtils.show("头像修改成功."); + } else { + ToastUtils.show("头像修改失败,请稍后重试."); + } + } catch (Exception e) { + e.printStackTrace(); ToastUtils.show("头像修改失败,请稍后重试."); } - } catch (Exception e) { - e.printStackTrace(); + } else { ToastUtils.show("头像修改失败,请稍后重试."); } - } else { - ToastUtils.show("头像修改失败,请稍后重试."); } - } - @Override - public void onError(Throwable e) { - dialog.dismiss(); - ExceptionHandler.handleException(e); - } + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } /** @@ -662,16 +666,16 @@ public class UserCenterFragment extends BaseFragment { //测试聊天 AlertDialog.Builder builder = new AlertDialog.Builder(mHomeActivity); builder.setTitle("提示") - .setMessage("确认要清除缓存文件吗?") - .setPositiveButton("确定", (dialog, which) -> { - dialog.dismiss(); - boolean b = FileUtils.deleteFilesInDir(mCachePath); - if (b) { - ToastUtils.show("清除成功"); - mTvCacheNum.setText("0.00MB"); - } - }) - .setNegativeButton("取消", (dialog, which) -> dialog.dismiss()); + .setMessage("确认要清除缓存文件吗?") + .setPositiveButton("确定", (dialog, which) -> { + dialog.dismiss(); + boolean b = FileUtils.deleteFilesInDir(mCachePath); + if (b) { + ToastUtils.show("清除成功"); + mTvCacheNum.setText("0.00MB"); + } + }) + .setNegativeButton("取消", (dialog, which) -> dialog.dismiss()); builder.create().show(); } @@ -686,16 +690,17 @@ public class UserCenterFragment extends BaseFragment { * 初始化视图 */ private void initContentView() { - mCachePath = mHomeActivity.getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsolutePath() + File.separator; + mCachePath = + mHomeActivity.getExternalFilesDir(Environment.DIRECTORY_PICTURES).getAbsolutePath() + File.separator; mTvCacheNum.setText(FileUtils.getDirSize(mCachePath)); mTvVersionNum.setText("v " + AppUtils.getAppVersionName()); mTvUserName.setText(UserLgUtils.getName()); Glide.with(mActivity) - .load(BaseUrlApi.BASE_IMG_URL + UserLgUtils.getAvatar()) - .apply(RequestOptions.bitmapTransform(new CircleCrop()) - .error(R.drawable.ic_user_default) - .placeholder(R.drawable.ic_user_default)) - .into(mIvUserIcon); + .load(BaseUrlApi.BASE_IMG_URL + UserLgUtils.getAvatar()) + .apply(RequestOptions.bitmapTransform(new CircleCrop()) + .error(R.drawable.ic_user_default) + .placeholder(R.drawable.ic_user_default)) + .into(mIvUserIcon); } @@ -713,46 +718,46 @@ public class UserCenterFragment extends BaseFragment { ProgressDialog dialog = UIUtil.initDialog(mActivity, "检查中..."); dialog.show(); RetrofitManager.getInstance() - .create(BaseApiService.class) - .doCheckAppVersion(BaseUrlApi.APP_VERSION_ID) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onSubscribe(Disposable d) { + .create(BaseApiService.class) + .doCheckAppVersion(BaseUrlApi.APP_VERSION_ID) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(Disposable d) { - } + } - @Override - public void onNext(VersionBean successBean) { - dialog.dismiss(); - if (successBean != null && successBean.getData() > 0) { - if (CheckUpdateUtils.checkcode(mActivity, successBean.getData() + "")) { - startDownloadApk(); - } else { - ToastUtils.show("已经是最新版本"); + @Override + public void onNext(VersionBean successBean) { + dialog.dismiss(); + if (successBean != null && successBean.getData() > 0) { + if (CheckUpdateUtils.checkcode(mActivity, successBean.getData() + "")) { + startDownloadApk(); + } else { + ToastUtils.show("已经是最新版本"); + } } } - } - @Override - public void onError(Throwable e) { - dialog.dismiss(); - ExceptionHandler.handleException(e); - } + @Override + public void onError(Throwable e) { + dialog.dismiss(); + ExceptionHandler.handleException(e); + } - @Override - public void onComplete() { + @Override + public void onComplete() { - } - }); + } + }); } /** * 开始下载Apk */ private void startDownloadApk() { - mHomeActivity.showUpdate(); +// mHomeActivity.showUpdate(); ToastUtils.show("检测到新版本,开始下载."); Intent intent = new Intent(mActivity, DownloadService.class); intent.putExtra(Constants.APK_DOWNLOAD_URL, BaseUrlApi.APP_DOWNLOAD_URL); diff --git a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/PopulaceGridStatisticsFragment.java b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/PopulaceGridStatisticsFragment.java index c99cde1..3477773 100644 --- a/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/PopulaceGridStatisticsFragment.java +++ b/commonmodule/src/main/java/com/tengshisoft/commonmodule/fragments/PopulaceGridStatisticsFragment.java @@ -139,11 +139,10 @@ public class PopulaceGridStatisticsFragment extends BaseFragment { */ private void setYoungData(String per) { Double aDouble = Double.valueOf(per); - Double youngPer = aDouble / 100; - Double surplus = 100 - youngPer; - LogUtils.e("占比:" + youngPer + "\n剩余:" + surplus); + Double surplus = 100 - aDouble; + LogUtils.e("占比:" + aDouble + "\n剩余:" + surplus); ArrayList values = new ArrayList<>(); - values.add(new PieEntry(youngPer.floatValue(), "")); + values.add(new PieEntry(aDouble.floatValue(), "")); values.add(new PieEntry(surplus.floatValue(), "")); PieDataSet dataSet = new PieDataSet(values, ""); @@ -155,7 +154,7 @@ public class PopulaceGridStatisticsFragment extends BaseFragment { data.setDrawValues(false); data.setValueTextSize(11f); data.setValueTextColor(Color.WHITE); - mPcYoung.setCenterText(youngCenterSpannableText(youngPer + "")); + mPcYoung.setCenterText(youngCenterSpannableText(aDouble + "")); mPcYoung.setData(data); mPcYoung.invalidate(); //将图表移动到底部 diff --git a/gridmodule/src/main/java/com/tengshisoft/gridmodule/incident/activitys/populace/CensusBaseSearchActivity.java b/gridmodule/src/main/java/com/tengshisoft/gridmodule/incident/activitys/populace/CensusBaseSearchActivity.java index b1a8ad4..de09554 100644 --- a/gridmodule/src/main/java/com/tengshisoft/gridmodule/incident/activitys/populace/CensusBaseSearchActivity.java +++ b/gridmodule/src/main/java/com/tengshisoft/gridmodule/incident/activitys/populace/CensusBaseSearchActivity.java @@ -2,7 +2,6 @@ package com.tengshisoft.gridmodule.incident.activitys.populace; import android.app.AlertDialog; import android.app.ProgressDialog; -import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.net.Uri; @@ -25,7 +24,6 @@ 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.tenlionsoft.baselib.utils.ToastUtils; import com.tengshisoft.commonmodule.adapters.CensusPersonAdapter; import com.tengshisoft.commonmodule.beans.AreaGridListBean; import com.tengshisoft.commonmodule.beans.CensusPersonBean; @@ -44,7 +42,7 @@ import com.tenlionsoft.baselib.core.widget.views.CenterBaseInputView; import com.tenlionsoft.baselib.core.widget.views.CenterGridPhoneListView; import com.tenlionsoft.baselib.core.widget.views.GridTextAdapter; 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; @@ -257,19 +255,23 @@ public class CensusBaseSearchActivity extends BaseActivity { * 显示网格选择 */ private void onShowGrid() { - if (mGridPicker == null) { - mGridPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { - mSelGrid = mGridList.get(o1); - mTvGrid.setText(mSelGrid.getGridName()); - }) - .setTitleText("请选择") - .setCancelColor(Color.parseColor("#1189FF")) - .setSubmitColor(Color.parseColor("#1189FF")) - .setTitleColor(Color.parseColor("#1189FF")) - .build(); - mGridPicker.setPicker(mGridList); + if (mGridList != null && mGridList.size() > 0) { + if (mGridPicker == null) { + mGridPicker = new OptionsPickerBuilder(mActivity, (o1, o2, o3, v) -> { + mSelGrid = mGridList.get(o1); + mTvGrid.setText(mSelGrid.getGridName()); + }) + .setTitleText("请选择") + .setCancelColor(Color.parseColor("#1189FF")) + .setSubmitColor(Color.parseColor("#1189FF")) + .setTitleColor(Color.parseColor("#1189FF")) + .build(); + mGridPicker.setPicker(mGridList); + } + mGridPicker.show(); + } else { + ToastUtils.show("您暂未绑定网格,请联系管理员进行绑定."); } - mGridPicker.show(); } @Override 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 f3a8450..c3582da 100644 --- a/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/MainTabActivity.java +++ b/mainmodule/src/main/java/com/tengshisoft/mainmodule/base/MainTabActivity.java @@ -457,7 +457,6 @@ public class MainTabActivity extends BaseActivity implements LoginView, LocalBro */ private void startDownloadApk() { ToastUtils.show("检测到新版本,开始下载"); - showUpdateProgress(); Intent intent = new Intent(mActivity, DownloadService.class); intent.putExtra(Constants.APK_DOWNLOAD_URL, BaseUrlApi.APP_DOWNLOAD_URL); startService(intent); @@ -520,6 +519,7 @@ public class MainTabActivity extends BaseActivity implements LoginView, LocalBro filter.addAction(PathConfig.ACTION_UPDATE_SUCCESS);//下载成功 filter.addAction(PathConfig.ACTION_UPDATE_ERROR);//下载失败 filter.addAction(PathConfig.ACTION_UPDATE_PROGRESS);//进度更新 + filter.addAction(PathConfig.ACTION_UPDATE_STAET);//开始下载App registerReceiver(mReceiver, filter); } @@ -1054,6 +1054,8 @@ public class MainTabActivity extends BaseActivity implements LoginView, LocalBro //判断是否可以安装 File apkFile = (File) intent.getSerializableExtra("apkFile"); installApk(apkFile); + }else if(PathConfig.ACTION_UPDATE_STAET.equals(action)){ + showUpdateProgress(); } } } diff --git a/mainmodule/src/main/res/layout/fragment_main_grid.xml b/mainmodule/src/main/res/layout/fragment_main_grid.xml index 33d7019..5d4fb30 100644 --- a/mainmodule/src/main/res/layout/fragment_main_grid.xml +++ b/mainmodule/src/main/res/layout/fragment_main_grid.xml @@ -217,13 +217,13 @@ + android:orientation="horizontal" + android:visibility="gone">