更新版本

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 WRITE_FILE_PERMISSON_CPDE = 1001;
public static final int POST_NOTIFICATIONS_PERMISSION_CODE = 1002;
//读取文件
public static final int READ_EXTERNAL_STORAGE = 2;
//相机权限

View File

@@ -165,6 +165,15 @@ public class DialogAppUpdate {
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();
break;
case R.id.tv_cancel:
@@ -190,7 +199,6 @@ public class DialogAppUpdate {
File apkFile = new File(downloadDir, fileName);
String apkPath = apkFile.getAbsolutePath();
DownLoadApk downloadTask = new DownLoadApk(mContext,mIsForceUpdate);
downloadTask.startDownload(mDwonLoadUrl, fileName,apkPath);
downloadTask.setDownLoadCallback(new DownLoadApk.DownLoadCallback() {
@Override
public void updateProgress(long currentProgress, long total) {
@@ -211,6 +219,7 @@ public class DialogAppUpdate {
}
}
});
downloadTask.startDownload(mDwonLoadUrl, fileName,apkPath);
}
public void show() {
@@ -226,4 +235,4 @@ public class DialogAppUpdate {
}
}
}

View File

@@ -17,7 +17,11 @@ import com.ckkj.water.plan.mvp.WaterPlanImpl;
import com.ckkj.water.plan.mvp.WaterPlanPresenter;
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.Locale;
/**
* @author fengxiaoyang
@@ -47,10 +51,79 @@ public class StatisticFragment extends BaseFragment<WaterCountFragmentLayoutBind
viewBinding.tvThisMonthValue.setText(entity.getMonCount()+"");
viewBinding.tvPlanValue.setText(entity.getSchedule()+"");
viewBinding.tvManuallyValue.setText(entity.getManualNum()+"");
viewBinding.tvTotalDurationValue.setText(entity.getAllTime()+"");
setTotalDuration(entity.getAllTime());
setAverageDuration(entity.getAverageTime());
setWeekAndMonthDate();
// 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
public HistoryPresenter createPresenter() {
return new HistoryPresenter(new HistoryImpl());

View File

@@ -1,5 +1,9 @@
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.os.Bundle;
import android.view.KeyEvent;
@@ -308,9 +312,25 @@ public class MainActivity extends BaseActivity<MainActivityLayoutBinding, MainPr
public void onRequestPermissionsResult(int requestCode, @NonNull @NotNull String[] permissions, @NonNull @NotNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
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
protected void onDestroy() {
super.onDestroy();
@@ -371,9 +391,14 @@ public class MainActivity extends BaseActivity<MainActivityLayoutBinding, MainPr
@Override
public void callBackGetPermisson(String permission) {
if (!hasRecordPermission(permission)) {
if (Manifest.permission.POST_NOTIFICATIONS.equals(permission)) {
getPermissionRequst(permission,"通知权限申请",
"星语明灯需要通知权限来显示应用下载进度",POST_NOTIFICATIONS_PERMISSION_CODE);
return;
}
// 没有权限只在ACTION_DOWN时去申请
getPermissionRequst(permission,"文件存储权限申请",
"星语明灯需要您的授权,获取存储权限来更新您的应用",PICK_IMAGE_REQUEST_300);
"星语明灯需要您的授权,获取存储权限来更新您的应用",WRITE_FILE_PERMISSON_CPDE);
}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
public void onPermissionsDenied(int requestCode, @NonNull @NotNull List<String> perms) {

View File

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

View File

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