更新版本

This commit is contained in:
fengjignqi
2026-07-03 11:08:07 +08:00
parent d2610d5b61
commit 21d834d805
6 changed files with 146 additions and 26 deletions

View File

@@ -41,6 +41,7 @@ public class ConstantUtil {
public static final int ACCESS_FINE_LOCATION = 1; public static final int ACCESS_FINE_LOCATION = 1;
//授权读取文件 //授权读取文件
public static final int WRITE_FILE_PERMISSON_CPDE = 1001; public static final int WRITE_FILE_PERMISSON_CPDE = 1001;
public static final int POST_NOTIFICATIONS_PERMISSION_CODE = 1002;
//读取文件 //读取文件
public static final int READ_EXTERNAL_STORAGE = 2; public static final int READ_EXTERNAL_STORAGE = 2;
//相机权限 //相机权限

View File

@@ -165,6 +165,15 @@ public class DialogAppUpdate {
return; return;
} }
} }
if (!mIsForceUpdate && Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
if (ContextCompat.checkSelfPermission(mContext, Manifest.permission.POST_NOTIFICATIONS)
!= PackageManager.PERMISSION_GRANTED) {
if(mListener != null){
mListener.callBackGetPermisson(Manifest.permission.POST_NOTIFICATIONS);
}
return;
}
}
startUpdateApp(); startUpdateApp();
break; break;
case R.id.tv_cancel: case R.id.tv_cancel:
@@ -190,7 +199,6 @@ public class DialogAppUpdate {
File apkFile = new File(downloadDir, fileName); File apkFile = new File(downloadDir, fileName);
String apkPath = apkFile.getAbsolutePath(); String apkPath = apkFile.getAbsolutePath();
DownLoadApk downloadTask = new DownLoadApk(mContext,mIsForceUpdate); DownLoadApk downloadTask = new DownLoadApk(mContext,mIsForceUpdate);
downloadTask.startDownload(mDwonLoadUrl, fileName,apkPath);
downloadTask.setDownLoadCallback(new DownLoadApk.DownLoadCallback() { downloadTask.setDownLoadCallback(new DownLoadApk.DownLoadCallback() {
@Override @Override
public void updateProgress(long currentProgress, long total) { public void updateProgress(long currentProgress, long total) {
@@ -211,6 +219,7 @@ public class DialogAppUpdate {
} }
} }
}); });
downloadTask.startDownload(mDwonLoadUrl, fileName,apkPath);
} }
public void show() { public void show() {

View File

@@ -17,7 +17,11 @@ import com.ckkj.water.plan.mvp.WaterPlanImpl;
import com.ckkj.water.plan.mvp.WaterPlanPresenter; import com.ckkj.water.plan.mvp.WaterPlanPresenter;
import com.ckkj.water.utils.show.ToastUtil; import com.ckkj.water.utils.show.ToastUtil;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Locale;
/** /**
* @author fengxiaoyang * @author fengxiaoyang
@@ -47,10 +51,79 @@ public class StatisticFragment extends BaseFragment<WaterCountFragmentLayoutBind
viewBinding.tvThisMonthValue.setText(entity.getMonCount()+""); viewBinding.tvThisMonthValue.setText(entity.getMonCount()+"");
viewBinding.tvPlanValue.setText(entity.getSchedule()+""); viewBinding.tvPlanValue.setText(entity.getSchedule()+"");
viewBinding.tvManuallyValue.setText(entity.getManualNum()+""); viewBinding.tvManuallyValue.setText(entity.getManualNum()+"");
viewBinding.tvTotalDurationValue.setText(entity.getAllTime()+""); setTotalDuration(entity.getAllTime());
setAverageDuration(entity.getAverageTime());
setWeekAndMonthDate();
// viewBinding.tvTotalValue.setText(entity.getCount()+""); // viewBinding.tvTotalValue.setText(entity.getCount()+"");
} }
private void setTotalDuration(int totalMinutes) {
if (totalMinutes < 60) {
viewBinding.tvTotalDurationValue.setText(totalMinutes + "");
viewBinding.tvTotalDurationHourUnit.setText("min");
viewBinding.tvTotalDurationMinValue.setVisibility(android.view.View.GONE);
viewBinding.tvTotalDurationMinUnit.setVisibility(android.view.View.GONE);
} else {
int hours = totalMinutes / 60;
int minutes = totalMinutes % 60;
viewBinding.tvTotalDurationHourUnit.setText("h");
viewBinding.tvTotalDurationValue.setText(hours + "");
if (minutes == 0) {
viewBinding.tvTotalDurationMinValue.setVisibility(android.view.View.GONE);
viewBinding.tvTotalDurationMinUnit.setVisibility(android.view.View.GONE);
} else {
viewBinding.tvTotalDurationMinValue.setVisibility(android.view.View.VISIBLE);
viewBinding.tvTotalDurationMinUnit.setVisibility(android.view.View.VISIBLE);
viewBinding.tvTotalDurationMinValue.setText(minutes + "");
}
}
}
private void setAverageDuration(int avgMinutes) {
if (avgMinutes < 60) {
viewBinding.tvAverageHourValue.setText(avgMinutes + "");
viewBinding.tvAverageHourUnit.setText("min");
viewBinding.tvAverageMinValue.setVisibility(android.view.View.GONE);
viewBinding.tvAverageMinUnit.setVisibility(android.view.View.GONE);
} else {
int hours = avgMinutes / 60;
int minutes = avgMinutes % 60;
viewBinding.tvAverageHourUnit.setText("h");
viewBinding.tvAverageHourValue.setText(hours + "");
if (minutes == 0) {
viewBinding.tvAverageMinValue.setVisibility(android.view.View.GONE);
viewBinding.tvAverageMinUnit.setVisibility(android.view.View.GONE);
} else {
viewBinding.tvAverageMinValue.setVisibility(android.view.View.VISIBLE);
viewBinding.tvAverageMinUnit.setVisibility(android.view.View.VISIBLE);
viewBinding.tvAverageMinValue.setText(minutes + "");
}
}
}
private void setWeekAndMonthDate() {
SimpleDateFormat monthFormat = new SimpleDateFormat("M月", Locale.CHINA);
SimpleDateFormat dayFormat = new SimpleDateFormat("M.d", Locale.CHINA);
Calendar calendar = Calendar.getInstance();
// 设置当月日期显示
viewBinding.tvThisMonthDate.setVisibility(android.view.View.VISIBLE);
viewBinding.tvThisMonthDate.setText(monthFormat.format(calendar.getTime()));
// 计算本周的开始日期(周一)和结束日期(周日)
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
int mondayOffset = (dayOfWeek == Calendar.SUNDAY) ? -6 : Calendar.MONDAY - dayOfWeek;
calendar.add(Calendar.DAY_OF_MONTH, mondayOffset);
Date weekStart = calendar.getTime();
calendar.add(Calendar.DAY_OF_MONTH, 6);
Date weekEnd = calendar.getTime();
// 设置本周日期显示
viewBinding.tvWeekDate.setVisibility(android.view.View.VISIBLE);
viewBinding.tvWeekDate.setText(dayFormat.format(weekStart) + " - " + dayFormat.format(weekEnd));
}
@Override @Override
public HistoryPresenter createPresenter() { public HistoryPresenter createPresenter() {
return new HistoryPresenter(new HistoryImpl()); return new HistoryPresenter(new HistoryImpl());

View File

@@ -1,5 +1,9 @@
package com.ckkj.water.main.activity; package com.ckkj.water.main.activity;
import static com.ckkj.water.ConstantUtil.POST_NOTIFICATIONS_PERMISSION_CODE;
import static com.ckkj.water.ConstantUtil.WRITE_FILE_PERMISSON_CPDE;
import android.Manifest;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.view.KeyEvent; import android.view.KeyEvent;
@@ -308,7 +312,23 @@ public class MainActivity extends BaseActivity<MainActivityLayoutBinding, MainPr
public void onRequestPermissionsResult(int requestCode, @NonNull @NotNull String[] permissions, @NonNull @NotNull int[] grantResults) { public void onRequestPermissionsResult(int requestCode, @NonNull @NotNull String[] permissions, @NonNull @NotNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults); super.onRequestPermissionsResult(requestCode, permissions, grantResults);
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this); EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
hidePermissionDialog();
if(requestCode == WRITE_FILE_PERMISSON_CPDE){
if(mUpdateDialog != null && grantResults.length > 0 && grantResults[0] == android.content.pm.PackageManager.PERMISSION_GRANTED){
mUpdateDialog.startUpdateApp();
} }
}else if(requestCode == POST_NOTIFICATIONS_PERMISSION_CODE){
if(mUpdateDialog != null && grantResults.length > 0 && grantResults[0] == android.content.pm.PackageManager.PERMISSION_GRANTED){
mUpdateDialog.startUpdateApp();
}
}
}
@Override
public void onPermissionsGranted(int requestCode, @NonNull @NotNull List<String> perms) {
}
@Override @Override
@@ -371,9 +391,14 @@ public class MainActivity extends BaseActivity<MainActivityLayoutBinding, MainPr
@Override @Override
public void callBackGetPermisson(String permission) { public void callBackGetPermisson(String permission) {
if (!hasRecordPermission(permission)) { if (!hasRecordPermission(permission)) {
if (Manifest.permission.POST_NOTIFICATIONS.equals(permission)) {
getPermissionRequst(permission,"通知权限申请",
"星语明灯需要通知权限来显示应用下载进度",POST_NOTIFICATIONS_PERMISSION_CODE);
return;
}
// 没有权限只在ACTION_DOWN时去申请 // 没有权限只在ACTION_DOWN时去申请
getPermissionRequst(permission,"文件存储权限申请", getPermissionRequst(permission,"文件存储权限申请",
"星语明灯需要您的授权,获取存储权限来更新您的应用",PICK_IMAGE_REQUEST_300); "星语明灯需要您的授权,获取存储权限来更新您的应用",WRITE_FILE_PERMISSON_CPDE);
}else{ }else{
@@ -413,14 +438,6 @@ public class MainActivity extends BaseActivity<MainActivityLayoutBinding, MainPr
@Override
public void onPermissionsGranted(int requestCode, @NonNull @NotNull List<String> perms) {
if (requestCode == ConstantUtil.WRITE_FILE_PERMISSON_CPDE) {
if(mUpdateDialog != null){
mUpdateDialog.startUpdateApp();
}
}
}
@Override @Override
public void onPermissionsDenied(int requestCode, @NonNull @NotNull List<String> perms) { public void onPermissionsDenied(int requestCode, @NonNull @NotNull List<String> perms) {

View File

@@ -19,12 +19,14 @@
android:id="@+id/btn_133" android:id="@+id/btn_133"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="133"/> android:text="133"
android:visibility="gone"/>
<Button <Button
android:id="@+id/btn_151" android:id="@+id/btn_151"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="151"/> android:text="151"
android:visibility="gone"/>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@@ -38,7 +38,7 @@
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/color_222222" android:textColor="@color/color_222222"
android:text="190"/> android:text=""/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -89,7 +89,7 @@
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/color_222222" android:textColor="@color/color_222222"
android:text="190"/> android:text=""/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -101,7 +101,7 @@
android:text="@string/unit_times"/> android:text="@string/unit_times"/>
</LinearLayout> </LinearLayout>
<TextView <TextView
android:id="@+id/tv_date" android:id="@+id/tv_week_date"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_20" android:layout_marginTop="@dimen/dp_20"
@@ -141,7 +141,7 @@
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/color_222222" android:textColor="@color/color_222222"
android:text="190"/> android:text=""/>
<TextView <TextView
android:id="@+id/tv_total_unit" android:id="@+id/tv_total_unit"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -203,7 +203,7 @@
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/color_222222" android:textColor="@color/color_222222"
android:text="190"/> android:text=""/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -254,7 +254,7 @@
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/color_222222" android:textColor="@color/color_222222"
android:text="190"/> android:text=""/>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@@ -305,16 +305,32 @@
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/color_222222" android:textColor="@color/color_222222"
android:text="190"/> android:text=""/>
<TextView <TextView
android:id="@+id/tv_total_duration_hour_unit"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_toRightOf="@+id/tv_total_duration_value"
android:layout_alignBottom="@+id/tv_total_duration_value"
android:textSize="12sp" android:textSize="12sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/color_222222" android:textColor="@color/color_222222"
android:text="@string/unit_times"/> android:text="h"/>
<TextView
android:id="@+id/tv_total_duration_min_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="@dimen/dp_14"
android:textSize="24sp"
android:textStyle="bold"
android:textColor="@color/color_222222"
android:text=""/>
<TextView
android:id="@+id/tv_total_duration_min_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:textStyle="bold"
android:textColor="@color/color_222222"
android:text="min"/>
</LinearLayout> </LinearLayout>
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -365,8 +381,9 @@
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/color_222222" android:textColor="@color/color_222222"
android:text="2"/> android:text=""/>
<TextView <TextView
android:id="@+id/tv_average_hour_unit"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="12sp" android:textSize="12sp"
@@ -381,8 +398,9 @@
android:textSize="24sp" android:textSize="24sp"
android:textStyle="bold" android:textStyle="bold"
android:textColor="@color/color_222222" android:textColor="@color/color_222222"
android:text="30"/> android:text=""/>
<TextView <TextView
android:id="@+id/tv_average_min_unit"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textSize="12sp" android:textSize="12sp"