From 4970d2b7f18397711bbdfafec0f2cad9fc97b40b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=AA=E7=9D=A1=E7=9A=84=E6=B0=B4=E7=93=B6?= Date: Fri, 25 Nov 2022 12:11:45 +0800 Subject: [PATCH] 1 --- .../java/com/tanshui/timeuse/AppInfo.java | 16 +- .../java/com/tanshui/timeuse/appTime.java | 20 +- .../java/com/tanshui/timeuse/appTimeUse.java | 278 ++++++++++++++++++ .../timeuse/database/timeUseDBHelper.java | 125 ++++---- .../com/tanshui/timeuse/fragment/today.java | 74 ++--- .../com/tanshui/timeuse/fragment/week.java | 93 +++--- .../tanshui/timeuse/fragment/yesterday.java | 70 ++--- .../main/java/com/tanshui/timeuse/report.java | 40 +-- .../timeuse/software_classification.java | 18 +- .../java/com/tanshui/timeuse/taskInfo.java | 105 ++++++- .../java/com/tanshui/timeuse/task_add.java | 18 +- .../java/com/tanshui/timeuse/task_show.java | 28 +- 12 files changed, 618 insertions(+), 267 deletions(-) create mode 100644 src/timeUse/app/src/main/java/com/tanshui/timeuse/appTimeUse.java diff --git a/src/timeUse/app/src/main/java/com/tanshui/timeuse/AppInfo.java b/src/timeUse/app/src/main/java/com/tanshui/timeuse/AppInfo.java index a8ae99f..834068c 100644 --- a/src/timeUse/app/src/main/java/com/tanshui/timeuse/AppInfo.java +++ b/src/timeUse/app/src/main/java/com/tanshui/timeuse/AppInfo.java @@ -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; diff --git a/src/timeUse/app/src/main/java/com/tanshui/timeuse/appTime.java b/src/timeUse/app/src/main/java/com/tanshui/timeuse/appTime.java index 058ac4a..91f09bd 100644 --- a/src/timeUse/app/src/main/java/com/tanshui/timeuse/appTime.java +++ b/src/timeUse/app/src/main/java/com/tanshui/timeuse/appTime.java @@ -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); } diff --git a/src/timeUse/app/src/main/java/com/tanshui/timeuse/appTimeUse.java b/src/timeUse/app/src/main/java/com/tanshui/timeuse/appTimeUse.java new file mode 100644 index 0000000..56af700 --- /dev/null +++ b/src/timeUse/app/src/main/java/com/tanshui/timeuse/appTimeUse.java @@ -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 mApplicationInfos; + private timeUseDBHelper dbHelper; + private List appInfoList; + private SimpleAdapter simpleAdapter; + private ProgressDialog progressDialog; + private ArrayList> 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 getAllAppInfo(Context ctx) { + ArrayList appBeanList = new ArrayList<>(); + AppInfo bean = null; + PackageManager packageManager = ctx.getPackageManager(); + List 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> 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 stats=manager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY,beginCal.getTimeInMillis(),endCal.getTimeInMillis()); + Map statsMap = manager.queryAndAggregateUsageStats(setBeginCal.getTimeInMillis(), setEndCal.getTimeInMillis()); + + ArrayList> listItem = new ArrayList<>(); + + List name = new ArrayList<>(); + List 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 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; + } + +} \ No newline at end of file diff --git a/src/timeUse/app/src/main/java/com/tanshui/timeuse/database/timeUseDBHelper.java b/src/timeUse/app/src/main/java/com/tanshui/timeuse/database/timeUseDBHelper.java index 0857575..ae92c21 100644 --- a/src/timeUse/app/src/main/java/com/tanshui/timeuse/database/timeUseDBHelper.java +++ b/src/timeUse/app/src/main/java/com/tanshui/timeuse/database/timeUseDBHelper.java @@ -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){ diff --git a/src/timeUse/app/src/main/java/com/tanshui/timeuse/fragment/today.java b/src/timeUse/app/src/main/java/com/tanshui/timeuse/fragment/today.java index e8055e3..414c7be 100644 --- a/src/timeUse/app/src/main/java/com/tanshui/timeuse/fragment/today.java +++ b/src/timeUse/app/src/main/java/com/tanshui/timeuse/fragment/today.java @@ -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;jtopFive.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); // 不执行动画 diff --git a/src/timeUse/app/src/main/java/com/tanshui/timeuse/fragment/week.java b/src/timeUse/app/src/main/java/com/tanshui/timeuse/fragment/week.java index 7407fb3..6aab5c5 100644 --- a/src/timeUse/app/src/main/java/com/tanshui/timeuse/fragment/week.java +++ b/src/timeUse/app/src/main/java/com/tanshui/timeuse/fragment/week.java @@ -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;jtopFive.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("生活类"); diff --git a/src/timeUse/app/src/main/java/com/tanshui/timeuse/fragment/yesterday.java b/src/timeUse/app/src/main/java/com/tanshui/timeuse/fragment/yesterday.java index 5596a94..a46128b 100644 --- a/src/timeUse/app/src/main/java/com/tanshui/timeuse/fragment/yesterday.java +++ b/src/timeUse/app/src/main/java/com/tanshui/timeuse/fragment/yesterday.java @@ -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;jtopFive.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); // 不执行动画 diff --git a/src/timeUse/app/src/main/java/com/tanshui/timeuse/report.java b/src/timeUse/app/src/main/java/com/tanshui/timeuse/report.java index 984b3d2..cc3cf9a 100644 --- a/src/timeUse/app/src/main/java/com/tanshui/timeuse/report.java +++ b/src/timeUse/app/src/main/java/com/tanshui/timeuse/report.java @@ -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); } diff --git a/src/timeUse/app/src/main/java/com/tanshui/timeuse/software_classification.java b/src/timeUse/app/src/main/java/com/tanshui/timeuse/software_classification.java index 4786b2b..a94585c 100644 --- a/src/timeUse/app/src/main/java/com/tanshui/timeuse/software_classification.java +++ b/src/timeUse/app/src/main/java/com/tanshui/timeuse/software_classification.java @@ -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 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(); // 刷新数据 diff --git a/src/timeUse/app/src/main/java/com/tanshui/timeuse/taskInfo.java b/src/timeUse/app/src/main/java/com/tanshui/timeuse/taskInfo.java index a2c5166..959b1dc 100644 --- a/src/timeUse/app/src/main/java/com/tanshui/timeuse/taskInfo.java +++ b/src/timeUse/app/src/main/java/com/tanshui/timeuse/taskInfo.java @@ -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; diff --git a/src/timeUse/app/src/main/java/com/tanshui/timeuse/task_add.java b/src/timeUse/app/src/main/java/com/tanshui/timeuse/task_add.java index 8aaf9d5..a63d969 100644 --- a/src/timeUse/app/src/main/java/com/tanshui/timeuse/task_add.java +++ b/src/timeUse/app/src/main/java/com/tanshui/timeuse/task_add.java @@ -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); diff --git a/src/timeUse/app/src/main/java/com/tanshui/timeuse/task_show.java b/src/timeUse/app/src/main/java/com/tanshui/timeuse/task_show.java index 9442c86..8abd448 100644 --- a/src/timeUse/app/src/main/java/com/tanshui/timeuse/task_show.java +++ b/src/timeUse/app/src/main/java/com/tanshui/timeuse/task_show.java @@ -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 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