Merge pull request '1' (#13) from develop into master

master
pcz54niyt 3 years ago
commit fe10873007

@ -2,17 +2,15 @@ package com.tanshui.timeuse;
import android.graphics.drawable.Drawable;
import java.util.List;
public class AppInfo {
private int uid;
public String label;//应用名称
public String package_name;//应用包名
public Drawable icon;//应用icon
public long timeLong;
public String timeString;
public String classify;
public String date;
private String label;//应用名称
private String package_name;//应用包名
private Drawable icon;//应用icon
private long timeLong;
private String timeString;
private String classify;
private String date;
public String getDate() {
return date;

@ -129,10 +129,10 @@ public class appTime extends AppCompatActivity {
Drawable icon=null;
for(AppInfo app:mApplicationInfos){
if(applicationInfo.packageName.equals(app.package_name)){
appName=app.label;
if(applicationInfo.packageName.equals(app.getPackage_name())){
appName=app.getLabel();
name.add(appName);
icon=app.icon;
icon=app.getIcon();
icons.add(icon);
}
}
@ -148,22 +148,22 @@ public class appTime extends AppCompatActivity {
// 添加app名称
map.put("ItemLabel", appName);
appInfo.label=appName;
appInfo.setLabel(appName);
// 添加app使用时间
map.put("ItemTime","今天使用时间:"+getTimeFromInt(usageStats.getTotalTimeInForeground()));
appInfo.timeString=getTimeFromInt(usageStats.getTotalTimeInForeground());
appInfo.timeLong=usageStats.getTotalTimeInForeground();
appInfo.package_name=applicationInfo.packageName;
appInfo.setTimeString(getTimeFromInt(usageStats.getTotalTimeInForeground()));
appInfo.setTimeLong(usageStats.getTotalTimeInForeground());
appInfo.setPackage_name(applicationInfo.packageName);
// dbHelper=timeUseDBHelper.getInstance(this);
if(dbHelper.searchPacketName(appInfo.package_name,"appList")){
if(dbHelper.searchPacketName(appInfo.getPackage_name(),"appList")){
// 修改时间
dbHelper.updateAppUseTime(appInfo,date);
}else{
for(AppInfo app:appInfoList){
if(app.package_name.equals(appInfo.package_name))
appInfo.classify=app.classify;
if(app.getPackage_name().equals(appInfo.getPackage_name()))
appInfo.setClassify(app.getClassify());
}
dbHelper.insertAppInfos(appInfo,date);
}

@ -0,0 +1,278 @@
package com.tanshui.timeuse;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AppOpsManager;
import android.app.ProgressDialog;
import android.app.usage.UsageStats;
import android.app.usage.UsageStatsManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import com.tanshui.timeuse.database.timeUseDBHelper;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class appTimeUse extends AppCompatActivity {
private ArrayList<AppInfo> mApplicationInfos;
private timeUseDBHelper dbHelper;
private List<AppInfo> appInfoList;
private SimpleAdapter simpleAdapter;
private ProgressDialog progressDialog;
private ArrayList<HashMap<String, Object>> listItem;
private String date;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_app_time_use);
dbHelper = timeUseDBHelper.getInstance(this);
dbHelper.openWriteLink();
dbHelper.openReadLink();
showProgressDialog("1","11");
ListView lv_app = findViewById(R.id.lv_app);
Button list = findViewById(R.id.jump_app_list);
Button report = findViewById(R.id.jump_app_report);
Button appClassify =findViewById(R.id.jump_app_appClassify);
// 接受task_show传的date
Intent intent1=getIntent();
date = intent1.getStringExtra("date");
list.setOnClickListener(v -> {
Intent intent=new Intent(appTimeUse.this,task_show.class);
startActivity(intent);
});
report.setOnClickListener(v -> {
Intent intent=new Intent(appTimeUse.this,report.class);
startActivity(intent);
});
appClassify.setOnClickListener(v -> {
Intent intent=new Intent(appTimeUse.this,software_classification.class);
startActivity(intent);
});
mApplicationInfos=getAllAppInfo(this);
listItem = new ArrayList<>();
listItem =getApp(dbHelper);
// ---------------------------------------
simpleAdapter = new SimpleAdapter(this,
//绑定的数据
listItem,
//每一行的布局
R.layout.appitem,
//动态数组中的数据源的键映射到布局文件对应的控件中
new String[] {"ItemImage", "ItemLabel","ItemTime"},
new int[] {R.id.iv_appIcon, R.id.label,R.id.times});
lv_app.setAdapter(simpleAdapter);
// 显示app图标
simpleAdapter.setViewBinder(new SimpleAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Object o, String s) {
if(view instanceof ImageView && o instanceof Drawable){
ImageView iv=(ImageView)view;
iv.setImageDrawable((Drawable)o);
return true;
}
else return false;
}
});
hideProgressDialog();
}
@Override
protected void onStart() {
super.onStart();
// 从数据库获取applist
// appInfoList=dbHelper.queryAllAppInfo();
}
public static String getTimeFromInt(long time) {
if (time <= 0) { return "已结束"; }
// long day = time / (1 * 60 * 60 * 24);
String hour = time / (1000*60*60) % 60 +"";
String minute = time / (1000*60) % 60<10?"0"+time / (1000*60) % 60:""+time / (1000*60) % 60;
String second = time /1000 % 60<10?"0"+time / 1000 % 60:""+time / 1000 % 60;
return hour+"小时"+minute+"分钟"+second+"秒";
}
/**
*
* @param ctx
* isFilterSystem
*/
public ArrayList<AppInfo> getAllAppInfo(Context ctx) {
ArrayList<AppInfo> appBeanList = new ArrayList<>();
AppInfo bean = null;
PackageManager packageManager = ctx.getPackageManager();
List<PackageInfo> list = packageManager.getInstalledPackages(0);
for (PackageInfo p : list) {
bean = new AppInfo();
bean.setIcon(p.applicationInfo.loadIcon(packageManager));
bean.setLabel(packageManager.getApplicationLabel(p.applicationInfo).toString());
bean.setPackage_name(p.applicationInfo.packageName);
int flags = p.applicationInfo.flags;
// 判断是否是属于系统的apk
if ((flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
// bean.setSystem(true);
} else {
appBeanList.add(bean);
}
}
return appBeanList;
}
// 弹出正在加载弹窗
public void showProgressDialog(String title, String message) {
if (progressDialog == null) {
progressDialog = ProgressDialog.show(appTimeUse.this,
title, message, true, false);
} else if (progressDialog.isShowing()) {
progressDialog.setTitle(title);
progressDialog.setMessage(message);
}
progressDialog.show();
}
// 隐藏提示加载弹窗
public void hideProgressDialog() {
if (progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
progressDialog=null;
}
// 获取应用信息
public ArrayList<HashMap<String, Object>> getApp(timeUseDBHelper dbHelper){
// 从早上8点开始监听
Calendar setBeginCal=Calendar.getInstance();
Calendar setEndCal=Calendar.getInstance();
Calendar beginCal = Calendar.getInstance();
int hour = beginCal.get(Calendar.HOUR_OF_DAY);
int minute = beginCal.get(Calendar.MINUTE);
int second = beginCal.get(Calendar.SECOND);
setBeginCal.add(Calendar.SECOND, -1 * second);
setBeginCal.add(Calendar.MINUTE, -1 * minute);
setBeginCal.add(Calendar.HOUR, -1 * hour+8);
setEndCal.add(Calendar.SECOND, -1 * second);
setEndCal.add(Calendar.MINUTE, -1 * minute);
setEndCal.add(Calendar.HOUR, -1 * hour+10);
beginCal.add(Calendar.SECOND, -1 * second);
beginCal.add(Calendar.MINUTE, -1 * minute);
beginCal.add(Calendar.HOUR, -1 * hour+8);
Calendar endCal = Calendar.getInstance();
UsageStatsManager manager=(UsageStatsManager)getApplicationContext().getSystemService(USAGE_STATS_SERVICE);
List<UsageStats> stats=manager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,beginCal.getTimeInMillis(),endCal.getTimeInMillis());
Map<String, UsageStats> statsMap = manager.queryAndAggregateUsageStats(setBeginCal.getTimeInMillis(), setEndCal.getTimeInMillis());
ArrayList<HashMap<String, Object>> listItem = new ArrayList<>();
List<String> name = new ArrayList<>();
List<Drawable> icons = new ArrayList<>();
for(UsageStats us:stats){
try {
PackageManager pm=getApplicationContext().getPackageManager();
ApplicationInfo applicationInfo=pm.getApplicationInfo(us.getPackageName(),PackageManager.GET_META_DATA);
// Toast.makeText(this, appInfo.package_name, Toast.LENGTH_SHORT).show();
PackageInfo packageInfo = pm.getPackageInfo(applicationInfo.packageName, PackageManager.GET_CONFIGURATIONS);
int flags = packageInfo.applicationInfo.flags;
// SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
//
// String t=format.format(new Date(us.getLastTimeUsed()));
// long t1=us.getLastTimeStamp();
// String t2=format.format(new Date(us.getLastTimeUsed()));
String appName = "";
Drawable icon=null;
for(AppInfo app:mApplicationInfos){
if(applicationInfo.packageName.equals(app.getPackage_name())){
appName=app.getLabel();
name.add(appName);
icon=app.getIcon();
icons.add(icon);
}
}
if(getTimeFromInt(us.getTotalTimeInForeground())!="已结束"){
UsageStats usageStats=statsMap.get(applicationInfo.packageName);
// 判断是否为系统应用系统
if((flags & ApplicationInfo.FLAG_SYSTEM) == 0){
AppInfo appInfo=new AppInfo();
HashMap<String,Object> map = new HashMap<>();
//加入图片
map.put("ItemImage", icon);
// 添加app名称
map.put("ItemLabel", appName);
appInfo.setLabel(appName);
// 添加app使用时间
map.put("ItemTime","今天使用时间:"+getTimeFromInt(usageStats.getTotalTimeInForeground()));
appInfo.setTimeString(getTimeFromInt(usageStats.getTotalTimeInForeground()));
appInfo.setTimeLong(usageStats.getTotalTimeInForeground());
appInfo.setPackage_name(applicationInfo.packageName);
// dbHelper=timeUseDBHelper.getInstance(this);
if(dbHelper.searchPacketName(appInfo.getPackage_name(),"appList")){
// 修改时间
dbHelper.updateAppUseTime(appInfo,date);
}else{
dbHelper.insertAppInfos(appInfo,date);
}
listItem.add(map);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
return listItem;
}
}

@ -130,16 +130,16 @@ public class timeUseDBHelper extends SQLiteOpenHelper {
Cursor cursor=mRDB.query(TABLE_taskList,null,null,null,null,null,null);
while(cursor.moveToNext()){
taskInfo task=new taskInfo();
task.id=cursor.getInt(0);
task.startTime=cursor.getString(2);
task.startHour=cursor.getInt(3);
task.startMin=cursor.getInt(4);
task.endTime=cursor.getString(5);
task.endHour=cursor.getInt(6);
task.endMin=cursor.getInt(7);
task.isFinished= cursor.getInt(9) != 0;
task.content=cursor.getString(8);
task.date=cursor.getString(1);
task.setId(cursor.getInt(0));
task.setStartTime(cursor.getString(2));
task.setStartHour(cursor.getInt(3));
task.setStartMin(cursor.getInt(4));
task.setEndTime(cursor.getString(5));
task.setEndHour(cursor.getInt(6));
task.setEndMin(cursor.getInt(7));
task.setFinished(cursor.getInt(9) != 0);
task.setContent(cursor.getString(8));
task.setDate(cursor.getString(1));
list.add(task);
}
@ -155,12 +155,12 @@ public class timeUseDBHelper extends SQLiteOpenHelper {
while(cursor.moveToNext()){
AppInfo app=new AppInfo();
app.setUid(cursor.getInt(0));
app.date=cursor.getString(1);
app.label=cursor.getString(2);
app.package_name=cursor.getString(3);
app.classify=cursor.getString(4);
app.timeLong=cursor.getLong(5);
app.timeString=cursor.getString(6);
app.setDate(cursor.getString(1));
app.setLabel(cursor.getString(2));
app.setPackage_name(cursor.getString(3));
app.setClassify(cursor.getString(4));
app.setTimeLong(cursor.getLong(5));
app.setTimeString(cursor.getString(6));
list.add(app);
}
cursor.close();
@ -173,12 +173,12 @@ public class timeUseDBHelper extends SQLiteOpenHelper {
while(cursor.moveToNext()){
AppInfo app=new AppInfo();
app.setUid(cursor.getInt(0));
app.date=cursor.getString(1);
app.label=cursor.getString(2);
app.package_name=cursor.getString(3);
app.classify=cursor.getString(4);
app.timeLong=cursor.getLong(5);
app.timeString=cursor.getString(6);
app.setDate(cursor.getString(1));
app.setLabel(cursor.getString(2));
app.setPackage_name(cursor.getString(3));
app.setClassify(cursor.getString(4));
app.setTimeLong(cursor.getLong(5));
app.setTimeString(cursor.getString(6));
list.add(app);
}
cursor.close();
@ -191,12 +191,12 @@ public class timeUseDBHelper extends SQLiteOpenHelper {
while(cursor.moveToNext()){
AppInfo app=new AppInfo();
app.setUid(cursor.getInt(0));
app.date=cursor.getString(1);
app.label=cursor.getString(2);
app.package_name=cursor.getString(3);
app.classify=cursor.getString(4);
app.timeLong=cursor.getLong(5);
app.timeString=cursor.getString(6);
app.setDate(cursor.getString(1));
app.setLabel(cursor.getString(2));
app.setPackage_name(cursor.getString(3));
app.setClassify(cursor.getString(4));
app.setTimeLong(cursor.getLong(5));
app.setTimeString(cursor.getString(6));
list.add(app);
}
cursor.close();
@ -209,9 +209,10 @@ public class timeUseDBHelper extends SQLiteOpenHelper {
while(cursor.moveToNext()){
AppInfo app=new AppInfo();
app.setUid(cursor.getInt(0));
app.label=cursor.getString(1);
app.package_name=cursor.getString(2);
app.classify=cursor.getString(3);
app.setLabel(cursor.getString(2));
app.setPackage_name(cursor.getString(3));
app.setClassify(cursor.getString(4));
list.add(app);
}
cursor.close();
@ -220,35 +221,35 @@ public class timeUseDBHelper extends SQLiteOpenHelper {
// 向taskList添加任务信息
public long insertTaskInfos(taskInfo task){
ContentValues values=new ContentValues();
values.put("date",task.date);
values.put("content",task.content);
values.put("startTime",task.startTime);
values.put("startHour",task.startHour);
values.put("startMin",task.startMin);
values.put("endTime",task.endTime);
values.put("endHour",task.endHour);
values.put("endMin",task.endMin);
values.put("isFinished",task.isFinished);
values.put("date",task.getDate());
values.put("content",task.getContent());
values.put("startTime",task.getStartTime());
values.put("startHour",task.getStartHour());
values.put("startMin",task.getStartMin());
values.put("endTime",task.getEndTime());
values.put("endHour",task.getEndHour());
values.put("endMin",task.getEndMin());
values.put("isFinished",task.isFinished());
return mWDB.insert(TABLE_taskList,null,values);
}
// 向classifyList添加任务信息
public long insertClassifyInfos(AppInfo app){
ContentValues values=new ContentValues();
values.put("appName",app.label);
values.put("appName",app.getLabel());
values.put("appClassify","123");
values.put("appPacketName",app.package_name);
values.put("appPacketName",app.getPackage_name());
return mWDB.insert(TABLE_classifyList,null,values);
}
// 向appList添加任务信息
public long insertAppInfos(AppInfo app,String date) {
ContentValues values=new ContentValues();
values.put("date",date);
values.put("appName",app.label);
values.put("appPacketName",app.package_name);
values.put("appUseTimeLong",app.timeLong);
values.put("appUseTimeString",app.timeString);
values.put("appClassify",app.classify);
values.put("appName",app.getLabel());
values.put("appPacketName",app.getPackage_name());
values.put("appUseTimeLong",app.getTimeLong());
values.put("appUseTimeString",app.getTimeString());
values.put("appClassify",app.getClassify());
// 将appList的数据复制到appListYesterday中
mWDB.insert(TABLE_appListYesterday,null,values);
@ -259,11 +260,11 @@ public class timeUseDBHelper extends SQLiteOpenHelper {
public long insertAppYesrerdayInfos(AppInfo app,String date){
ContentValues values=new ContentValues();
values.put("date",date);
values.put("appName",app.label);
values.put("appPacketName",app.package_name);
values.put("appUseTimeLong",app.timeLong);
values.put("appUseTimeString",app.timeString);
values.put("appClassify",app.classify);
values.put("appName",app.getLabel());
values.put("appPacketName",app.getPackage_name());
values.put("appUseTimeLong",app.getTimeLong());
values.put("appUseTimeString",app.getTimeString());
values.put("appClassify",app.getClassify());
// 将appList的数据复制到appListYesterday中
return mWDB.insert(TABLE_appListYesterday,null,values);
}
@ -271,11 +272,11 @@ public class timeUseDBHelper extends SQLiteOpenHelper {
public long insertLastWeekInfos(AppInfo app,String date){
ContentValues values=new ContentValues();
values.put("date",date);
values.put("appName",app.label);
values.put("appPacketName",app.package_name);
values.put("appUseTimeLong",app.timeLong);
values.put("appUseTimeString",app.timeString);
values.put("appClassify",app.classify);
values.put("appName",app.getLabel());
values.put("appPacketName",app.getPackage_name());
values.put("appUseTimeLong",app.getTimeLong());
values.put("appUseTimeString",app.getTimeString());
values.put("appClassify",app.getClassify());
// 将appList的数据复制到appListYesterday中
return mWDB.insert(TABLE_lastWeekList,null,values);
}
@ -316,16 +317,16 @@ public class timeUseDBHelper extends SQLiteOpenHelper {
// 更新appList中的应用使用时间
public long updateAppUseTime(AppInfo app,String date){
ContentValues values=new ContentValues();
values.put("appUseTimeLong",app.timeLong);
values.put("appUseTimeString",app.timeString);
values.put("appUseTimeLong",app.getTimeLong());
values.put("appUseTimeString",app.getTimeString());
values.put("date",date);
return mWDB.update(TABLE_appList,values,"appPacketName=?",new String[]{app.package_name});
return mWDB.update(TABLE_appList,values,"appPacketName=?",new String[]{app.getPackage_name()});
}
public long updateAppClassify(AppInfo app){
mWDB=timeUseDBHelper.getWritableDatabase();
ContentValues values=new ContentValues();
values.put("appClassify",app.classify);
return mWDB.update(TABLE_classifyList,values,"appPacketName=?",new String[]{app.package_name});
values.put("appClassify",app.getClassify());
return mWDB.update(TABLE_classifyList,values,"appPacketName=?",new String[]{app.getPackage_name()});
}
// 清空所有应用使用数据
public void clearAppUseTime(String date){

@ -63,9 +63,9 @@ public class today extends Fragment{
int todayNum=0;
for(taskInfo task:taskInfoList){
// Toast.makeText(view.getContext(), task.isFinished+"", Toast.LENGTH_SHORT).show();
if(task.date.equals(today)){
if(task.getDate().equals(today)){
todayNum++;
if(task.isFinished)
if(task.isFinished())
todayFinishedNum++;
}
@ -77,9 +77,9 @@ public class today extends Fragment{
int yesNum=0;
int yesFinishedNum=0;
for(taskInfo task:taskInfoList){
if(task.date.equals(yes)){
if(task.getDate().equals(yes)){
yesNum++;
if(task.isFinished)
if(task.isFinished())
yesFinishedNum++;
}
@ -112,16 +112,16 @@ public class today extends Fragment{
if(i<5){
topFive.add(appInfoList.get(i));
}else{
long min=topFive.get(0).timeLong;
long min=topFive.get(0).getTimeLong();
int index=0;
for(int j=1;j<topFive.size();j++){
if(min>topFive.get(j).timeLong){
min=topFive.get(j).timeLong;
if(min>topFive.get(j).getTimeLong()){
min=topFive.get(j).getTimeLong();
index=j;
}
}
if(appInfoList.get(i).timeLong>min){
if(appInfoList.get(i).getTimeLong()>min){
topFive.remove(index);
topFive.add(appInfoList.get(i));
}
@ -129,17 +129,17 @@ public class today extends Fragment{
}
for(AppInfo app:appInfoList){
totalTime+=app.timeLong;
totalTime+=app.getTimeLong();
}
// percentInstance.format((float)topFive.get(1).timeLong/totalTime)
btn1.setText(topFive.get(0).label+" "+getTimeFromInt(topFive.get(0).timeLong));
btn2.setText(topFive.get(1).label+" "+getTimeFromInt(topFive.get(1).timeLong));
btn3.setText(topFive.get(2).label+" "+getTimeFromInt(topFive.get(2).timeLong));
btn4.setText(topFive.get(3).label+" "+getTimeFromInt(topFive.get(3).timeLong));
btn5.setText(topFive.get(4).label+" "+getTimeFromInt(topFive.get(4).timeLong));
btn6.setText("其他 "+getTimeFromInt((totalTime-topFive.get(0).timeLong-topFive.get(1).timeLong-topFive.get(2).timeLong-
topFive.get(3).timeLong-topFive.get(4).timeLong)));
btn1.setText(topFive.get(0).getLabel()+" "+getTimeFromInt(topFive.get(0).getTimeLong()));
btn2.setText(topFive.get(1).getLabel()+" "+getTimeFromInt(topFive.get(1).getTimeLong()));
btn3.setText(topFive.get(2).getLabel()+" "+getTimeFromInt(topFive.get(2).getTimeLong()));
btn4.setText(topFive.get(3).getLabel()+" "+getTimeFromInt(topFive.get(3).getTimeLong()));
btn5.setText(topFive.get(4).getLabel()+" "+getTimeFromInt(topFive.get(4).getTimeLong()));
btn6.setText("其他 "+getTimeFromInt((totalTime-topFive.get(0).getTimeLong()-topFive.get(1).getTimeLong()-topFive.get(2).getTimeLong()-
topFive.get(3).getTimeLong()-topFive.get(4).getTimeLong())));
btn1.setTextColor(Color.parseColor("#FFA500"));
btn2.setTextColor(Color.parseColor("#33FF00"));
@ -154,13 +154,13 @@ public class today extends Fragment{
// pieInfoList.add(new PieInfo(colors, (float)topFive.get(i).timeLong/totalTime));
//
// }
pieInfoList.add(new PieInfo(Color.parseColor("#FFA500"), (float)topFive.get(0).timeLong/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#33FF00"), (float)topFive.get(1).timeLong/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#0033FF"), (float)topFive.get(2).timeLong/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#9B30FF"), (float)topFive.get(3).timeLong/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#EE3B3B"), (float)topFive.get(4).timeLong/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#FFA07A"), (float)(totalTime-topFive.get(0).timeLong-topFive.get(1).timeLong-topFive.get(2).timeLong-
topFive.get(3).timeLong-topFive.get(4).timeLong)/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#FFA500"), (float)topFive.get(0).getTimeLong()/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#33FF00"), (float)topFive.get(1).getTimeLong()/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#0033FF"), (float)topFive.get(2).getTimeLong()/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#9B30FF"), (float)topFive.get(3).getTimeLong()/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#EE3B3B"), (float)topFive.get(4).getTimeLong()/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#FFA07A"), (float)(totalTime-topFive.get(0).getTimeLong()-topFive.get(1).getTimeLong()-topFive.get(2).getTimeLong()-
topFive.get(3).getTimeLong()-topFive.get(4).getTimeLong())/totalTime));
// pieInfoList.add(new PieInfo(Color.parseColor("#EE3B3B"), (float)topFive.get(4).timeLong/totalTime));
pie_chart1.setData(pieInfoList);
// 开始绘制饼状图
@ -169,10 +169,10 @@ public class today extends Fragment{
btn1.setOnClickListener(v -> {
if (pieInfoList.get(0).selected) {
pieInfoList.get(0).selected = false;
btn1.setText(topFive.get(0).label+" "+getTimeFromInt(topFive.get(0).timeLong));
btn1.setText(topFive.get(0).getLabel()+" "+getTimeFromInt(topFive.get(0).getTimeLong()));
} else {
pieInfoList.get(0).selected = true;
btn1.setText(topFive.get(0).label+" "+percentInstance.format((float)topFive.get(0).timeLong/ finalTotalTime));
btn1.setText(topFive.get(0).getLabel()+" "+percentInstance.format((float)topFive.get(0).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
// 不执行动画
@ -181,10 +181,10 @@ public class today extends Fragment{
btn2.setOnClickListener(v -> {
if (pieInfoList.get(1).selected) {
pieInfoList.get(1).selected = false;
btn2.setText(topFive.get(1).label+" "+getTimeFromInt(topFive.get(1).timeLong));
btn2.setText(topFive.get(1).getLabel()+" "+getTimeFromInt(topFive.get(1).getTimeLong()));
} else {
pieInfoList.get(1).selected = true;
btn2.setText(topFive.get(1).label+" "+percentInstance.format((float)topFive.get(1).timeLong/ finalTotalTime));
btn2.setText(topFive.get(1).getLabel()+" "+percentInstance.format((float)topFive.get(1).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
// 不执行动画
@ -193,10 +193,10 @@ public class today extends Fragment{
btn3.setOnClickListener(v -> {
if (pieInfoList.get(2).selected) {
pieInfoList.get(2).selected = false;
btn3.setText(topFive.get(2).label+" "+getTimeFromInt(topFive.get(2).timeLong));
btn3.setText(topFive.get(2).getLabel()+" "+getTimeFromInt(topFive.get(2).getTimeLong()));
} else {
pieInfoList.get(2).selected = true;
btn3.setText(topFive.get(2).label+" "+percentInstance.format((float)topFive.get(3).timeLong/ finalTotalTime));
btn3.setText(topFive.get(2).getLabel()+" "+percentInstance.format((float)topFive.get(3).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
// 不执行动画
@ -205,10 +205,10 @@ public class today extends Fragment{
btn4.setOnClickListener(v -> {
if (pieInfoList.get(3).selected) {
pieInfoList.get(3).selected = false;
btn4.setText(topFive.get(3).label+" "+getTimeFromInt(topFive.get(3).timeLong));
btn4.setText(topFive.get(3).getLabel()+" "+getTimeFromInt(topFive.get(3).getTimeLong()));
} else {
pieInfoList.get(3).selected = true;
btn4.setText(topFive.get(3).label+" "+percentInstance.format((float)topFive.get(3).timeLong/ finalTotalTime));
btn4.setText(topFive.get(3).getLabel()+" "+percentInstance.format((float)topFive.get(3).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
// 不执行动画
@ -217,10 +217,10 @@ public class today extends Fragment{
btn5.setOnClickListener(v -> {
if (pieInfoList.get(4).selected) {
pieInfoList.get(4).selected = false;
btn5.setText(topFive.get(4).label+" "+getTimeFromInt(topFive.get(4).timeLong));
btn5.setText(topFive.get(4).getLabel()+" "+getTimeFromInt(topFive.get(4).getTimeLong()));
} else {
pieInfoList.get(4).selected = true;
btn5.setText(topFive.get(4).label+" "+percentInstance.format((float)topFive.get(4).timeLong/ finalTotalTime));
btn5.setText(topFive.get(4).getLabel()+" "+percentInstance.format((float)topFive.get(4).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
// 不执行动画
@ -229,12 +229,12 @@ public class today extends Fragment{
btn6.setOnClickListener(v -> {
if (pieInfoList.get(5).selected) {
pieInfoList.get(5).selected = false;
btn6.setText("其他 "+getTimeFromInt((finalTotalTime-topFive.get(0).timeLong-topFive.get(1).timeLong-topFive.get(2).timeLong-
topFive.get(3).timeLong-topFive.get(4).timeLong)));
btn6.setText("其他 "+getTimeFromInt((finalTotalTime-topFive.get(0).getTimeLong()-topFive.get(1).getTimeLong()-topFive.get(2).getTimeLong()-
topFive.get(3).getTimeLong()-topFive.get(4).getTimeLong())));
} else {
pieInfoList.get(5).selected = true;
btn6.setText("其他 "+percentInstance.format((float)(finalTotalTime-topFive.get(0).timeLong-topFive.get(1).timeLong-topFive.get(2).timeLong-
topFive.get(3).timeLong-topFive.get(4).timeLong)/finalTotalTime));
btn6.setText("其他 "+percentInstance.format((float)(finalTotalTime-topFive.get(0).getTimeLong()-topFive.get(1).getTimeLong()-topFive.get(2).getTimeLong()-
topFive.get(3).getTimeLong()-topFive.get(4).getTimeLong())/finalTotalTime));
}
pie_chart1.setData(pieInfoList);
// 不执行动画

@ -1,19 +1,16 @@
package com.tanshui.timeuse.fragment;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
@ -31,16 +28,14 @@ import com.tanshui.timeuse.util.ColorRandom;
import com.tanshui.timeuse.util.PieChart;
import com.tanshui.timeuse.util.dateList;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Formatter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -99,7 +94,7 @@ public class week extends Fragment{
for(taskInfo task:taskInfoList){
Date d=null;
try {
d=formatter.parse(task.date);
d=formatter.parse(task.getDate());
} catch (ParseException e) {
e.printStackTrace();
}
@ -107,7 +102,7 @@ public class week extends Fragment{
if((System.currentTimeMillis()- d.getTime())<=7*1000*60*60*24){
todayNum++;
taskInfoListWeek.add(task);
if(task.isFinished)
if(task.isFinished())
todayFinishedNum++;
}
@ -118,15 +113,15 @@ public class week extends Fragment{
float num=1;
float fNum=0;
for(int j=i+1;j<taskInfoListWeek.size();j++){
if(taskInfoListWeek.get(i).date.equals(taskInfoListWeek.get(j).date))
if(taskInfoListWeek.get(i).getDate().equals(taskInfoListWeek.get(j).getDate()))
num++;
if(taskInfoListWeek.get(i).isFinished)
if(taskInfoListWeek.get(i).isFinished())
fNum++;
hashMap.put(taskInfoListWeek.get(j).date,(int)num);
hashMap.put(taskInfoListWeek.get(j).getDate(),(int)num);
if(fNum!=0)
hashMap1.put(taskInfoListWeek.get(j).date,(fNum/num));
hashMap1.put(taskInfoListWeek.get(j).getDate(),(fNum/num));
else
hashMap1.put(taskInfoListWeek.get(j).date,0.0f);
hashMap1.put(taskInfoListWeek.get(j).getDate(),0.0f);
}
}
taskNumber.setText("最近一周任务数量:"+todayNum);
@ -192,9 +187,9 @@ public class week extends Fragment{
int yesNum=0;
int yesFinishedNum=0;
for(taskInfo task:taskInfoList){
if(task.date.equals(yes)){
if(task.getDate().equals(yes)){
yesNum++;
if(task.isFinished)
if(task.isFinished())
yesFinishedNum++;
}
@ -209,16 +204,16 @@ public class week extends Fragment{
if(i<5){
topFive.add(appInfoList.get(i));
}else{
long min=topFive.get(0).timeLong;
long min=topFive.get(0).getTimeLong();
int index=0;
for(int j=1;j<topFive.size();j++){
if(min>topFive.get(j).timeLong){
min=topFive.get(j).timeLong;
if(min>topFive.get(j).getTimeLong()){
min=topFive.get(j).getTimeLong();
index=j;
}
}
if(appInfoList.get(i).timeLong>min){
if(appInfoList.get(i).getTimeLong()>min){
topFive.remove(index);
topFive.add(appInfoList.get(i));
}
@ -226,17 +221,17 @@ public class week extends Fragment{
}
for(AppInfo app:appInfoList){
totalTime+=app.timeLong;
totalTime+=app.getTimeLong();
}
btn1.setText(topFive.get(0).label+" "+percentInstance.format((float)topFive.get(0).timeLong/totalTime));
btn2.setText(topFive.get(1).label+" "+percentInstance.format((float)topFive.get(1).timeLong/totalTime));
btn3.setText(topFive.get(2).label+" "+percentInstance.format((float)topFive.get(2).timeLong/totalTime));
btn4.setText(topFive.get(3).label+" "+percentInstance.format((float)topFive.get(3).timeLong/totalTime));
btn5.setText(topFive.get(4).label+" "+percentInstance.format((float)topFive.get(4).timeLong/totalTime));
btn6.setText("其他 "+percentInstance.format((float)(totalTime-topFive.get(0).timeLong-topFive.get(1).timeLong-topFive.get(2).timeLong-
topFive.get(3).timeLong-topFive.get(4).timeLong)/totalTime));
btn1.setText(topFive.get(0).getLabel()+" "+percentInstance.format((float)topFive.get(0).getTimeLong()/totalTime));
btn2.setText(topFive.get(1).getLabel()+" "+percentInstance.format((float)topFive.get(1).getTimeLong()/totalTime));
btn3.setText(topFive.get(2).getLabel()+" "+percentInstance.format((float)topFive.get(2).getTimeLong()/totalTime));
btn4.setText(topFive.get(3).getLabel()+" "+percentInstance.format((float)topFive.get(3).getTimeLong()/totalTime));
btn5.setText(topFive.get(4).getLabel()+" "+percentInstance.format((float)topFive.get(4).getTimeLong()/totalTime));
btn6.setText("其他 "+percentInstance.format((float)(totalTime-topFive.get(0).getTimeLong()-topFive.get(1).getTimeLong()-topFive.get(2).getTimeLong()-
topFive.get(3).getTimeLong()-topFive.get(4).getTimeLong())/totalTime));
btn1.setTextColor(Color.parseColor("#FFA500"));
btn2.setTextColor(Color.parseColor("#33FF00"));
@ -251,13 +246,13 @@ public class week extends Fragment{
// pieInfoList.add(new PieInfo(colors, (float)topFive.get(i).timeLong/totalTime));
//
// }
pieInfoList.add(new PieInfo(Color.parseColor("#FFA500"), (float)topFive.get(0).timeLong/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#33FF00"), (float)topFive.get(1).timeLong/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#0033FF"), (float)topFive.get(2).timeLong/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#9B30FF"), (float)topFive.get(3).timeLong/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#EE3B3B"), (float)topFive.get(4).timeLong/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#FFA07A"), (float)(totalTime-topFive.get(0).timeLong-topFive.get(1).timeLong-topFive.get(2).timeLong-
topFive.get(3).timeLong-topFive.get(4).timeLong)/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#FFA500"), (float)topFive.get(0).getTimeLong()/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#33FF00"), (float)topFive.get(1).getTimeLong()/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#0033FF"), (float)topFive.get(2).getTimeLong()/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#9B30FF"), (float)topFive.get(3).getTimeLong()/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#EE3B3B"), (float)topFive.get(4).getTimeLong()/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#FFA07A"), (float)(totalTime-topFive.get(0).getTimeLong()-topFive.get(1).getTimeLong()-topFive.get(2).getTimeLong()-
topFive.get(3).getTimeLong()-topFive.get(4).getTimeLong())/totalTime));
// pieInfoList.add(new PieInfo(Color.parseColor("#EE3B3B"), (float)topFive.get(4).timeLong/totalTime));
pie_chart1.setData(pieInfoList);
// 开始绘制饼状图
@ -300,12 +295,12 @@ public class week extends Fragment{
String date_String=month+"."+day+"f";
d.setDates((float) (Math.round(Float.parseFloat(date_String) * 100)) / 100);
for(taskInfo task:taskInfoList){
if(formatter.format(date1).equals(task.date)){
if(formatter.format(date1).equals(task.getDate())){
num=0;
for(taskInfo tasks:taskInfoList){
if(tasks.date.equals(task.date)){
if(tasks.getDate().equals(task.getDate())){
num++;
if(tasks.isFinished)
if(tasks.isFinished())
finishedNum++;
}
@ -416,12 +411,12 @@ public class week extends Fragment{
long fun=0,study=0,life=0;
for(AppInfo app:appInfoList){
if(app.classify.equals("娱乐"))
fun+=app.timeLong;
else if(app.classify.equals("学习"))
study+=app.timeLong;
else if(app.classify.equals("生活"))
life+=app.timeLong;
if(app.getClassify().equals("娱乐"))
fun+=app.getTimeLong();
else if(app.getClassify().equals("学习"))
study+=app.getTimeLong();
else if(app.getClassify().equals("生活"))
life+=app.getTimeLong();
}
btn_fun.setText("娱乐类");
btn_life.setText("生活类");

@ -58,9 +58,9 @@ public class yesterday extends Fragment {
int yesNum=0;
int yesFinishedNum=0;
for(taskInfo task:taskInfoList){
if(task.date.equals(yes)){
if(task.getDate().equals(yes)){
yesNum++;
if(task.isFinished)
if(task.isFinished())
yesFinishedNum++;
}
@ -78,16 +78,16 @@ public class yesterday extends Fragment {
if(i<5){
topFive.add(appInfoList.get(i));
}else{
long min=topFive.get(0).timeLong;
long min=topFive.get(0).getTimeLong();
int index=0;
for(int j=1;j<topFive.size();j++){
if(min>topFive.get(j).timeLong){
min=topFive.get(j).timeLong;
if(min>topFive.get(j).getTimeLong()){
min=topFive.get(j).getTimeLong();
index=j;
}
}
if(appInfoList.get(i).timeLong>min){
if(appInfoList.get(i).getTimeLong()>min){
topFive.remove(index);
topFive.add(appInfoList.get(i));
}
@ -95,17 +95,17 @@ public class yesterday extends Fragment {
}
for(AppInfo app:appInfoList){
totalTime+=app.timeLong;
totalTime+=app.getTimeLong();
}
btn1.setText(topFive.get(0).label+" "+getTimeFromInt(topFive.get(0).timeLong));
btn2.setText(topFive.get(1).label+" "+getTimeFromInt(topFive.get(1).timeLong));
btn3.setText(topFive.get(2).label+" "+getTimeFromInt(topFive.get(2).timeLong));
btn4.setText(topFive.get(3).label+" "+getTimeFromInt(topFive.get(3).timeLong));
btn5.setText(topFive.get(4).label+" "+getTimeFromInt(topFive.get(4).timeLong));
btn6.setText("其他 "+getTimeFromInt((totalTime-topFive.get(0).timeLong-topFive.get(1).timeLong-topFive.get(2).timeLong-
topFive.get(3).timeLong-topFive.get(4).timeLong)));
btn1.setText(topFive.get(0).getLabel()+" "+getTimeFromInt(topFive.get(0).getTimeLong()));
btn2.setText(topFive.get(1).getLabel()+" "+getTimeFromInt(topFive.get(1).getTimeLong()));
btn3.setText(topFive.get(2).getLabel()+" "+getTimeFromInt(topFive.get(2).getTimeLong()));
btn4.setText(topFive.get(3).getLabel()+" "+getTimeFromInt(topFive.get(3).getTimeLong()));
btn5.setText(topFive.get(4).getLabel()+" "+getTimeFromInt(topFive.get(4).getTimeLong()));
btn6.setText("其他 "+getTimeFromInt((totalTime-topFive.get(0).getTimeLong()-topFive.get(1).getTimeLong()-topFive.get(2).getTimeLong()-
topFive.get(3).getTimeLong()-topFive.get(4).getTimeLong())));
btn1.setTextColor(Color.parseColor("#FFA500"));
btn2.setTextColor(Color.parseColor("#33FF00"));
@ -120,13 +120,13 @@ public class yesterday extends Fragment {
// pieInfoList.add(new PieInfo(colors, (float)topFive.get(i).timeLong/totalTime));
//
// }
pieInfoList.add(new PieInfo(Color.parseColor("#FFA500"), (float)topFive.get(0).timeLong/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#33FF00"), (float)topFive.get(1).timeLong/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#0033FF"), (float)topFive.get(2).timeLong/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#9B30FF"), (float)topFive.get(3).timeLong/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#EE3B3B"), (float)topFive.get(4).timeLong/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#FFA07A"), (float)(totalTime-topFive.get(0).timeLong-topFive.get(1).timeLong-topFive.get(2).timeLong-
topFive.get(3).timeLong-topFive.get(4).timeLong)/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#FFA500"), (float)topFive.get(0).getTimeLong()/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#33FF00"), (float)topFive.get(1).getTimeLong()/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#0033FF"), (float)topFive.get(2).getTimeLong()/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#9B30FF"), (float)topFive.get(3).getTimeLong()/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#EE3B3B"), (float)topFive.get(4).getTimeLong()/totalTime));
pieInfoList.add(new PieInfo(Color.parseColor("#FFA07A"), (float)(totalTime-topFive.get(0).getTimeLong()-topFive.get(1).getTimeLong()-topFive.get(2).getTimeLong()-
topFive.get(3).getTimeLong()-topFive.get(4).getTimeLong())/totalTime));
// pieInfoList.add(new PieInfo(Color.parseColor("#EE3B3B"), (float)topFive.get(4).timeLong/totalTime));
pie_chart1.setData(pieInfoList);
// 开始绘制饼状图
@ -135,10 +135,10 @@ public class yesterday extends Fragment {
btn1.setOnClickListener(v -> {
if (pieInfoList.get(0).selected) {
pieInfoList.get(0).selected = false;
btn1.setText(topFive.get(0).label+" "+getTimeFromInt(topFive.get(0).timeLong));
btn1.setText(topFive.get(0).getLabel()+" "+getTimeFromInt(topFive.get(0).getTimeLong()));
} else {
pieInfoList.get(0).selected = true;
btn1.setText(topFive.get(0).label+" "+percentInstance.format((float)topFive.get(0).timeLong/ finalTotalTime));
btn1.setText(topFive.get(0).getLabel()+" "+percentInstance.format((float)topFive.get(0).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
// 不执行动画
@ -147,10 +147,10 @@ public class yesterday extends Fragment {
btn2.setOnClickListener(v -> {
if (pieInfoList.get(1).selected) {
pieInfoList.get(1).selected = false;
btn2.setText(topFive.get(1).label+" "+getTimeFromInt(topFive.get(1).timeLong));
btn2.setText(topFive.get(1).getLabel()+" "+getTimeFromInt(topFive.get(1).getTimeLong()));
} else {
pieInfoList.get(1).selected = true;
btn2.setText(topFive.get(1).label+" "+percentInstance.format((float)topFive.get(1).timeLong/ finalTotalTime));
btn2.setText(topFive.get(1).getLabel()+" "+percentInstance.format((float)topFive.get(1).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
// 不执行动画
@ -159,10 +159,10 @@ public class yesterday extends Fragment {
btn3.setOnClickListener(v -> {
if (pieInfoList.get(2).selected) {
pieInfoList.get(2).selected = false;
btn3.setText(topFive.get(2).label+" "+getTimeFromInt(topFive.get(2).timeLong));
btn3.setText(topFive.get(2).getLabel()+" "+getTimeFromInt(topFive.get(2).getTimeLong()));
} else {
pieInfoList.get(2).selected = true;
btn3.setText(topFive.get(2).label+" "+percentInstance.format((float)topFive.get(2).timeLong/ finalTotalTime));
btn3.setText(topFive.get(2).getLabel()+" "+percentInstance.format((float)topFive.get(2).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
// 不执行动画
@ -171,10 +171,10 @@ public class yesterday extends Fragment {
btn4.setOnClickListener(v -> {
if (pieInfoList.get(3).selected) {
pieInfoList.get(3).selected = false;
btn4.setText(topFive.get(3).label+" "+getTimeFromInt(topFive.get(3).timeLong));
btn4.setText(topFive.get(3).getLabel()+" "+getTimeFromInt(topFive.get(3).getTimeLong()));
} else {
pieInfoList.get(3).selected = true;
btn4.setText(topFive.get(3).label+" "+percentInstance.format((float)topFive.get(3).timeLong/ finalTotalTime));
btn4.setText(topFive.get(3).getLabel()+" "+percentInstance.format((float)topFive.get(3).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
// 不执行动画
@ -183,10 +183,10 @@ public class yesterday extends Fragment {
btn5.setOnClickListener(v -> {
if (pieInfoList.get(4).selected) {
pieInfoList.get(4).selected = false;
btn5.setText(topFive.get(4).label+" "+getTimeFromInt(topFive.get(4).timeLong));
btn5.setText(topFive.get(4).getLabel()+" "+getTimeFromInt(topFive.get(4).getTimeLong()));
} else {
pieInfoList.get(4).selected = true;
btn5.setText(topFive.get(4).label+" "+percentInstance.format((float)topFive.get(4).timeLong/ finalTotalTime));
btn5.setText(topFive.get(4).getLabel()+" "+percentInstance.format((float)topFive.get(4).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
// 不执行动画
@ -195,12 +195,12 @@ public class yesterday extends Fragment {
btn6.setOnClickListener(v -> {
if (pieInfoList.get(5).selected) {
pieInfoList.get(5).selected = false;
btn6.setText("其他 "+getTimeFromInt((finalTotalTime-topFive.get(0).timeLong-topFive.get(1).timeLong-topFive.get(2).timeLong-
topFive.get(3).timeLong-topFive.get(4).timeLong)));
btn6.setText("其他 "+getTimeFromInt((finalTotalTime-topFive.get(0).getTimeLong()-topFive.get(1).getTimeLong()-topFive.get(2).getTimeLong()-
topFive.get(3).getTimeLong()-topFive.get(4).getTimeLong())));
} else {
pieInfoList.get(5).selected = true;
btn6.setText("其他 "+percentInstance.format((float)(finalTotalTime-topFive.get(0).timeLong-topFive.get(1).timeLong-topFive.get(2).timeLong-
topFive.get(3).timeLong-topFive.get(4).timeLong)/finalTotalTime));
btn6.setText("其他 "+percentInstance.format((float)(finalTotalTime-topFive.get(0).getTimeLong()-topFive.get(1).getTimeLong()-topFive.get(2).getTimeLong()-
topFive.get(3).getTimeLong()-topFive.get(4).getTimeLong())/finalTotalTime));
}
pie_chart1.setData(pieInfoList);
// 不执行动画

@ -106,9 +106,9 @@ public class report extends AppCompatActivity {
// pie_chart.drawPieChart();
appInfoList=dbHelper.queryAllAppYesterdayInfo();
if(!appInfoList.get(0).date.equals(date)){
dbHelper.deleteAppYesterdayInfos(appInfoList.get(0).date);
dbHelper.deleteLastWeekListInfos(appInfoList.get(0).date);
if(!appInfoList.get(0).getDate().equals(date)){
dbHelper.deleteAppYesterdayInfos(appInfoList.get(0).getDate());
dbHelper.deleteLastWeekListInfos(appInfoList.get(0).getDate());
// 获取今天0点时间
Calendar todayTime0 = Calendar.getInstance();
todayTime0.setTime(new Date());
@ -136,8 +136,8 @@ public class report extends AppCompatActivity {
int flags = packageInfo.applicationInfo.flags;
String appName = "";
for(AppInfo app: mApplicationInfos){
if(applicationInfo.packageName.equals(app.package_name)){
appName=app.label;
if(applicationInfo.packageName.equals(app.getPackage_name())){
appName=app.getLabel();
}
}
@ -147,14 +147,15 @@ public class report extends AppCompatActivity {
if((flags & ApplicationInfo.FLAG_SYSTEM) == 0){
AppInfo appInfo=new AppInfo();
// 添加app名称
appInfo.label=appName;
appInfo.setLabel(appName);
// 添加app使用时间
appInfo.timeString=getTimeFromInt(usageStats.getTotalTimeInForeground());
appInfo.timeLong=usageStats.getTotalTimeInForeground();
appInfo.package_name=applicationInfo.packageName;
appInfo.classify=dbHelper.searchClassify(appInfo.package_name);
appInfo.setTimeString(getTimeFromInt(usageStats.getTotalTimeInForeground()));
appInfo.setTimeLong(usageStats.getTotalTimeInForeground());
appInfo.setPackage_name(applicationInfo.packageName);
appInfo.setClassify(dbHelper.searchClassify(appInfo.getPackage_name()));
// dbHelper=timeUseDBHelper.getInstance(this);
if(!dbHelper.searchPacketName(appInfo.package_name,"appListYesterday"))
if(!dbHelper.searchPacketName(appInfo.getPackage_name(),"appListYesterday"))
dbHelper.insertAppYesrerdayInfos(appInfo, date);
}
@ -175,8 +176,8 @@ public class report extends AppCompatActivity {
int flags = packageInfo.applicationInfo.flags;
String appName = "";
for(AppInfo app: mApplicationInfos){
if(applicationInfo.packageName.equals(app.package_name)){
appName=app.label;
if(applicationInfo.packageName.equals(app.getPackage_name())){
appName=app.getLabel();
}
}
@ -186,14 +187,15 @@ public class report extends AppCompatActivity {
if((flags & ApplicationInfo.FLAG_SYSTEM) == 0){
AppInfo appInfo=new AppInfo();
// 添加app名称
appInfo.label=appName;
appInfo.setLabel(appName);
// 添加app使用时间
appInfo.timeString=getTimeFromInt(usageStats.getTotalTimeInForeground());
appInfo.timeLong=usageStats.getTotalTimeInForeground();
appInfo.package_name=applicationInfo.packageName;
appInfo.classify=dbHelper.searchClassify(appInfo.package_name);
appInfo.setTimeLong(usageStats.getTotalTimeInForeground());
appInfo.setTimeString(getTimeFromInt(usageStats.getTotalTimeInForeground()));
appInfo.setPackage_name(applicationInfo.packageName);
appInfo.setClassify(dbHelper.searchClassify(appInfo.getPackage_name()));
// dbHelper=timeUseDBHelper.getInstance(this);
if(!dbHelper.searchPacketName(appInfo.package_name,"lastWeekList"))
if(!dbHelper.searchPacketName(appInfo.getPackage_name(),"lastWeekList"))
dbHelper.insertLastWeekInfos(appInfo, today1);
}

@ -54,7 +54,7 @@ public class software_classification extends AppCompatActivity {
Button jump_appClassify =findViewById(R.id.classify_jump_appClassify);
// 初始化appName数组
for(AppInfo app: appInfoList){
appName.add(app.label);
appName.add(app.getLabel());
}
// for(int i=0;i<20;i++){
// appName.add(allAppList.get(i).label);
@ -71,18 +71,18 @@ public class software_classification extends AppCompatActivity {
appList.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
appInfo.label=appName.get(arg2);
appInfo.setLabel(appName.get(arg2));
// arrayAdapter2.clear();
for(AppInfo app: appInfoList){
if(app.label.equals(appInfo.label))
appInfo.package_name=app.package_name;
if(app.getLabel().equals(appInfo.getLabel()))
appInfo.setPackage_name(app.getPackage_name());
}
for(AppInfo app: appInfoList){
if(app.label.equals(appInfo.label))
appInfo.classify=app.classify;
if(app.getLabel().equals(appInfo.getLabel()))
appInfo.setClassify(app.getClassify());
}
for(int i=0;i<appClassifyArray.length;i++){
if(appInfo.classify.equals(appClassifyArray[i]))
if(appInfo.getClassify().equals(appClassifyArray[i]))
num[0] =i;
}
// 设置classify的初始值与应用的分类一致
@ -100,7 +100,7 @@ public class software_classification extends AppCompatActivity {
classify.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
appInfo.classify=appClassifyArray[arg2];
appInfo.setClassify(appClassifyArray[arg2]);
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
@ -110,7 +110,7 @@ public class software_classification extends AppCompatActivity {
confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("data",appInfo.classify);
Log.d("data",appInfo.getClassify());
if(dbHelper.updateAppClassify(appInfo)>0)
Toast.makeText(software_classification.this, "修改应用分类成功", Toast.LENGTH_SHORT).show();
// 刷新数据

@ -1,19 +1,96 @@
package com.tanshui.timeuse;
import java.util.ArrayList;
public class taskInfo {
public String date;
public int id;
public String content;
public boolean isFinished;
public String startTime;
public int startMin;
public int startHour;
public int endMin;
public int endHour;
public String endTime;
public taskInfo(String content,boolean isFinished,String startTime,String endTime,int id,String date,int endMin,int startMin){
private String date;
private int id;
private String content;
private boolean isFinished;
private String startTime;
private int startMin;
private int startHour;
private int endMin;
private int endHour;
private String endTime;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public void setFinished(boolean finished) {
isFinished = finished;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public int getStartMin() {
return startMin;
}
public void setStartMin(int startMin) {
this.startMin = startMin;
}
public int getStartHour() {
return startHour;
}
public void setStartHour(int startHour) {
this.startHour = startHour;
}
public int getEndMin() {
return endMin;
}
public void setEndMin(int endMin) {
this.endMin = endMin;
}
public int getEndHour() {
return endHour;
}
public void setEndHour(int endHour) {
this.endHour = endHour;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public taskInfo(String content, boolean isFinished, String startTime, String endTime, int id, String date, int endMin, int startMin){
this.content=content;
this.isFinished=isFinished;
this.endTime=endTime;
@ -22,8 +99,8 @@ public class taskInfo {
this.id=id;
this.endMin=endMin;
this.startMin=startMin;
}
public taskInfo(){}
}
public taskInfo(){}
public boolean isFinished() {
return isFinished;

@ -49,8 +49,8 @@ public class task_add extends AppCompatActivity {
Intent intent=getIntent();
date=intent.getStringExtra("date");
// 默认task属性
task.isFinished=false;
task.date=date;
task.setFinished(false);
task.setDate(date);
StartTime.setOnClickListener(new View.OnClickListener() {
@Override
@ -66,9 +66,9 @@ public class task_add extends AppCompatActivity {
min=minute>=10?min:"0"+min;
decs = String.format("%s点%s分", hourOfDay, min);
task.startTime=decs;
task.startHour=hourOfDay;
task.startMin=minute;
task.setStartTime(decs);
task.setStartHour(hourOfDay);
task.setStartMin(minute);
tv_startTime.setText("任务开始时间:"+decs);
}
},time.get(Calendar.HOUR_OF_DAY),time.get(Calendar.MINUTE),true);
@ -89,9 +89,9 @@ public class task_add extends AppCompatActivity {
String min= Integer.toString(minute);
min=minute>=10?min:"0"+min;
decs = String.format("%s点%s分", hourOfDay, min);
task.endTime=decs;
task.endHour=hourOfDay;
task.endMin=minute;
task.setEndTime(decs);
task.setEndHour(hourOfDay);
task.setEndMin(minute);
tv_endTime.setText("任务结束时间:"+decs);
}
},time.get(Calendar.HOUR_OF_DAY),time.get(Calendar.MINUTE),true);
@ -104,7 +104,7 @@ public class task_add extends AppCompatActivity {
public void onClick(View v) {
if(!task_content.getText().toString().isEmpty()){
task.content=task_content.getText().toString();
task.setContent(task_content.getText().toString());
}else{
// list为空弹出提示
AlertDialog.Builder builder = new AlertDialog.Builder(task_add.this);

@ -125,9 +125,9 @@ public class task_show extends Activity {
}
if(!appInfos.isEmpty())
if(!decs.equals(appInfos.get(2).date)){
if(!decs.equals(appInfos.get(2).getDate())){
// 如果在第二天打开软件则清空appList中的date、appUseTimeLong和appUseTimeString数据
dbHelper.clearAppUseTime(appInfos.get(2).date);
dbHelper.clearAppUseTime(appInfos.get(2).getDate());
}
@ -275,9 +275,9 @@ public class task_show extends Activity {
appInfos=dbHelper.queryAllAppInfo();
setList();
for(taskInfo item:taskInfos){
if(item.date.equals(decs)){
if(!finishTask.contains(item.content))
finishTask.add(item.content);
if(item.getDate().equals(decs)){
if(!finishTask.contains(item.getContent()))
finishTask.add(item.getContent());
}
}
}
@ -296,16 +296,16 @@ public class task_show extends Activity {
listItem.clear();
for(taskInfo item:taskInfos){
// 根据日期获取任务
if(item.date.equals(decs)){
if(item.getDate().equals(decs)){
HashMap<String,Object> map = new HashMap<>();
// 添加任务内容
map.put("ItemContent", item.content);
map.put("ItemContent", item.getContent());
// 添加任务开始时间
map.put("ItemStartTime", item.startTime+"-");
map.put("ItemStartTime", item.getStartTime()+"-");
// 添加任务结束时间
map.put("ItemEndTime",item.endTime);
map.put("ItemEndTime",item.getEndTime());
// 添加任务完成状态
map.put("ItemISFinished",item.isFinished);
map.put("ItemISFinished",item.isFinished());
listItem.add(map);
}
@ -329,11 +329,11 @@ public class task_show extends Activity {
Calendar calendar=Calendar.getInstance();
String name="";
for(taskInfo item:taskInfos){
if(item.date.equals(decs)){
if(item.getDate().equals(decs)){
for(String a:finishTask){
// Toast.makeText(this, a+"", Toast.LENGTH_SHORT).show();
if(item.content.equals(a)){
int time=((item.startHour*60+item.startMin)-calendar.get(Calendar.HOUR_OF_DAY)*60-calendar.get(Calendar.MINUTE));
if(item.getContent().equals(a)){
int time=((item.getStartHour()*60+item.getStartMin())-calendar.get(Calendar.HOUR_OF_DAY)*60-calendar.get(Calendar.MINUTE));
// 在任务开始前30分钟提醒用户
if(time<=30&&time>0){
notificationManager.createNotificationChannel(channel);
@ -342,7 +342,7 @@ public class task_show extends Activity {
PendingIntent pendingIntent=PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_IMMUTABLE);
notification = new NotificationCompat.Builder(task_show.this,"test")
.setContentTitle("任务即将开始通知")
.setContentText("距您设置的任务:"+item.content+" 开始还有"+time+"分钟")
.setContentText("距您设置的任务:"+item.getContent()+" 开始还有"+time+"分钟")
.setWhen(System.currentTimeMillis())
.setSmallIcon(R.mipmap.ic_launcher)
//设置点击后取消Notification

Loading…
Cancel
Save