更新版本
This commit is contained in:
@@ -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;
|
||||||
//相机权限
|
//相机权限
|
||||||
|
|||||||
@@ -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() {
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user