pull/16/head
贪睡的水瓶 3 years ago
parent 78c813d257
commit 8cf0eb6a07

@ -1,25 +1,18 @@
package com.tanshui.timeuse;
import android.content.ContentValues;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import android.widget.Toast;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class CheckboxAdapter extends BaseAdapter {
private List<HashMap<String, Object>> list;

@ -2,15 +2,55 @@ package com.tanshui.timeuse;
public class PieInfo {
public float startAngle; // 开始绘制的角度
private float startAngle; // 开始绘制的角度
public float sweepAngle; // 扫过的角度
private float sweepAngle; // 扫过的角度
public int color; // 显示的颜色
private int color; // 显示的颜色
public float percent; // 所占百分比
private float percent; // 所占百分比
public boolean selected; // true为选中
public float getStartAngle() {
return startAngle;
}
public void setStartAngle(float startAngle) {
this.startAngle = startAngle;
}
public float getSweepAngle() {
return sweepAngle;
}
public void setSweepAngle(float sweepAngle) {
this.sweepAngle = sweepAngle;
}
public int getColor() {
return color;
}
public void setColor(int color) {
this.color = color;
}
public float getPercent() {
return percent;
}
public void setPercent(float percent) {
this.percent = percent;
}
public boolean isSelected() {
return selected;
}
public void setSelected(boolean selected) {
this.selected = selected;
}
private boolean selected; // true为选中
public PieInfo(int color, float percent) {
this.color = color;

@ -1,6 +1,5 @@
package com.tanshui.timeuse;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.TextView;
@ -9,5 +8,4 @@ public class ViewHolder {
public TextView startTime=null;
public TextView endTime=null;
public CheckBox isFinished=null;
public Button deleteTask=null;
}

@ -12,13 +12,11 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
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;
@ -30,19 +28,17 @@ import java.util.Map;
public class appTime 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);
ArrayList<AppInfo> mApplicationInfos;
timeUseDBHelper dbHelper;
List<AppInfo> appInfoList;
SimpleAdapter simpleAdapter;
dbHelper = timeUseDBHelper.getInstance(this);
dbHelper.openWriteLink();
dbHelper.openReadLink();
@ -76,7 +72,6 @@ public class appTime extends AppCompatActivity {
});
mApplicationInfos=getAllAppInfo(this);
listItem = new ArrayList<>();
// 从早上8点开始监听
Calendar setBeginCal=Calendar.getInstance();
@ -187,17 +182,14 @@ public class appTime extends AppCompatActivity {
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;
simpleAdapter.setViewBinder((view, o, s) -> {
if(view instanceof ImageView && o instanceof Drawable){
ImageView iv=(ImageView)view;
iv.setImageDrawable((Drawable)o);
return true;
}
else return false;
});
hideProgressDialog();
}

@ -2,7 +2,6 @@ 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;
@ -13,14 +12,14 @@ 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;
@ -31,19 +30,18 @@ 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;
private ArrayList<AppInfo> mApplicationInfos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_app_time_use);
ArrayList<HashMap<String, Object>> listItem;
timeUseDBHelper dbHelper;
SimpleAdapter simpleAdapter;
dbHelper = timeUseDBHelper.getInstance(this);
dbHelper.openWriteLink();
dbHelper.openReadLink();

@ -5,7 +5,7 @@ import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import com.tanshui.timeuse.AppInfo;
import com.tanshui.timeuse.taskInfo;
@ -19,7 +19,6 @@ public class timeUseDBHelper extends SQLiteOpenHelper {
private static final String TABLE_UserList="UserList";
private static final String TABLE_appList="appList";
private static final String TABLE_appListYesterday="appListYesterday";
private static final String TABLE_reportList="reportList";
private static final String TABLE_classifyList="classifyList";
private static final String TABLE_lastWeekList="lastWeekList";
private static final int DB_VERSION=1;

@ -2,13 +2,13 @@ package com.tanshui.timeuse.fragment;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
@ -18,26 +18,27 @@ import com.tanshui.timeuse.PieInfo;
import com.tanshui.timeuse.R;
import com.tanshui.timeuse.database.timeUseDBHelper;
import com.tanshui.timeuse.taskInfo;
import com.tanshui.timeuse.util.ColorRandom;
import com.tanshui.timeuse.util.PieChart;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class today extends Fragment{
private List<PieInfo> pieInfoList=new ArrayList<>();
private List<AppInfo> appInfoList=new ArrayList<>();
private List<taskInfo> taskInfoList=new ArrayList<>();
private timeUseDBHelper dbHepler;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_today, container, false);
List<PieInfo> pieInfoList=new ArrayList<>();
List<AppInfo> appInfoList;
List<taskInfo> taskInfoList;
timeUseDBHelper dbHepler;
TextView btn1=view.findViewById(R.id.pie_btn1);
TextView btn2=view.findViewById(R.id.pie_btn2);
TextView btn3=view.findViewById(R.id.pie_btn3);
@ -167,11 +168,11 @@ public class today extends Fragment{
pie_chart1.startAnima();
long finalTotalTime = totalTime;
btn1.setOnClickListener(v -> {
if (pieInfoList.get(0).selected) {
pieInfoList.get(0).selected = false;
if (pieInfoList.get(0).isSelected()) {
pieInfoList.get(0).setSelected(false);
btn1.setText(topFive.get(0).getLabel()+" "+getTimeFromInt(topFive.get(0).getTimeLong()));
} else {
pieInfoList.get(0).selected = true;
pieInfoList.get(0).setSelected(true);
btn1.setText(topFive.get(0).getLabel()+" "+percentInstance.format((float)topFive.get(0).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
@ -179,11 +180,11 @@ public class today extends Fragment{
pie_chart1.invalidate();
});
btn2.setOnClickListener(v -> {
if (pieInfoList.get(1).selected) {
pieInfoList.get(1).selected = false;
if (pieInfoList.get(1).isSelected()) {
pieInfoList.get(1).setSelected(false);
btn2.setText(topFive.get(1).getLabel()+" "+getTimeFromInt(topFive.get(1).getTimeLong()));
} else {
pieInfoList.get(1).selected = true;
pieInfoList.get(1).setSelected(true);
btn2.setText(topFive.get(1).getLabel()+" "+percentInstance.format((float)topFive.get(1).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
@ -191,11 +192,11 @@ public class today extends Fragment{
pie_chart1.invalidate();
});
btn3.setOnClickListener(v -> {
if (pieInfoList.get(2).selected) {
pieInfoList.get(2).selected = false;
if (pieInfoList.get(2).isSelected()) {
pieInfoList.get(2).setSelected(false);
btn3.setText(topFive.get(2).getLabel()+" "+getTimeFromInt(topFive.get(2).getTimeLong()));
} else {
pieInfoList.get(2).selected = true;
pieInfoList.get(2).setSelected(true);
btn3.setText(topFive.get(2).getLabel()+" "+percentInstance.format((float)topFive.get(3).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
@ -203,11 +204,11 @@ public class today extends Fragment{
pie_chart1.invalidate();
});
btn4.setOnClickListener(v -> {
if (pieInfoList.get(3).selected) {
pieInfoList.get(3).selected = false;
if (pieInfoList.get(3).isSelected()) {
pieInfoList.get(3).setSelected(false);
btn4.setText(topFive.get(3).getLabel()+" "+getTimeFromInt(topFive.get(3).getTimeLong()));
} else {
pieInfoList.get(3).selected = true;
pieInfoList.get(3).setSelected(true);
btn4.setText(topFive.get(3).getLabel()+" "+percentInstance.format((float)topFive.get(3).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
@ -215,11 +216,11 @@ public class today extends Fragment{
pie_chart1.invalidate();
});
btn5.setOnClickListener(v -> {
if (pieInfoList.get(4).selected) {
pieInfoList.get(4).selected = false;
if (pieInfoList.get(4).isSelected()) {
pieInfoList.get(4).setSelected(false);
btn5.setText(topFive.get(4).getLabel()+" "+getTimeFromInt(topFive.get(4).getTimeLong()));
} else {
pieInfoList.get(4).selected = true;
pieInfoList.get(4).setSelected(true);
btn5.setText(topFive.get(4).getLabel()+" "+percentInstance.format((float)topFive.get(4).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
@ -227,12 +228,12 @@ public class today extends Fragment{
pie_chart1.invalidate();
});
btn6.setOnClickListener(v -> {
if (pieInfoList.get(5).selected) {
pieInfoList.get(5).selected = false;
if (pieInfoList.get(5).isSelected()) {
pieInfoList.get(5).setSelected(false);
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;
pieInfoList.get(5).setSelected(true);
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));
}

@ -24,7 +24,7 @@ import com.tanshui.timeuse.PieInfo;
import com.tanshui.timeuse.R;
import com.tanshui.timeuse.database.timeUseDBHelper;
import com.tanshui.timeuse.taskInfo;
import com.tanshui.timeuse.util.ColorRandom;
import com.tanshui.timeuse.util.PieChart;
import com.tanshui.timeuse.util.dateList;
@ -42,15 +42,9 @@ import java.util.Map;
import java.util.Set;
public class week extends Fragment{
private List<PieInfo> pieInfoList=new ArrayList<>();
private List<PieInfo> pieInfoList1=new ArrayList<>();
private List<AppInfo> appInfoList=new ArrayList<>();
private List<taskInfo> taskInfoList=new ArrayList<>();
private List<taskInfo> taskInfoListWeek=new ArrayList<>();
private timeUseDBHelper dbHepler;
// 折线图
private LineChart line;
private LineChart line1;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@ -73,17 +67,25 @@ public class week extends Fragment{
PieChart pie_chart1=view.findViewById(R.id.week_pie_chart1);
PieChart pie_chart2=view.findViewById(R.id.week_pie_chart2);
List<PieInfo> pieInfoList=new ArrayList<>();
List<PieInfo> pieInfoList1=new ArrayList<>();
List<AppInfo> appInfoList;
List<taskInfo> taskInfoList;
List<taskInfo> taskInfoListWeek=new ArrayList<>();
dbHepler = timeUseDBHelper.getInstance(view.getContext());
dbHepler.openReadLink();
appInfoList=dbHepler.queryAllLastWeekInfo();
taskInfoList=dbHepler.queryAllTaskInfo();
// 折线图
LineChart line;
LineChart line1;
// 获取今天和昨天日期
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date(System.currentTimeMillis()-1000*60*60*24);
String yes=formatter.format(date);
date = new Date(System.currentTimeMillis());
String today=formatter.format(date);
// date = new Date(System.currentTimeMillis());
// String today=formatter.format(date);
int todayNum=0;
@ -347,60 +349,60 @@ public class week extends Fragment{
line1.setData(lineData1);
btn1.setOnClickListener(v -> {
if (pieInfoList.get(0).selected) {
pieInfoList.get(0).selected = false;
if (pieInfoList.get(0).isSelected()) {
pieInfoList.get(0).setSelected(false);
} else {
pieInfoList.get(0).selected = true;
pieInfoList.get(0).setSelected(true);
}
pie_chart1.setData(pieInfoList);
// 不执行动画
pie_chart1.invalidate();
});
btn2.setOnClickListener(v -> {
if (pieInfoList.get(1).selected) {
pieInfoList.get(1).selected = false;
if (pieInfoList.get(1).isSelected()) {
pieInfoList.get(1).setSelected(false);
} else {
pieInfoList.get(1).selected = true;
pieInfoList.get(1).setSelected(true);
}
pie_chart1.setData(pieInfoList);
// 不执行动画
pie_chart1.invalidate();
});
btn3.setOnClickListener(v -> {
if (pieInfoList.get(2).selected) {
pieInfoList.get(2).selected = false;
if (pieInfoList.get(2).isSelected()) {
pieInfoList.get(2).setSelected(false);
} else {
pieInfoList.get(2).selected = true;
pieInfoList.get(2).setSelected(true);
}
pie_chart1.setData(pieInfoList);
// 不执行动画
pie_chart1.invalidate();
});
btn4.setOnClickListener(v -> {
if (pieInfoList.get(3).selected) {
pieInfoList.get(3).selected = false;
if (pieInfoList.get(3).isSelected()) {
pieInfoList.get(3).setSelected(false);
} else {
pieInfoList.get(3).selected = true;
pieInfoList.get(3).setSelected(true);
}
pie_chart1.setData(pieInfoList);
// 不执行动画
pie_chart1.invalidate();
});
btn5.setOnClickListener(v -> {
if (pieInfoList.get(4).selected) {
pieInfoList.get(4).selected = false;
if (pieInfoList.get(4).isSelected()) {
pieInfoList.get(4).setSelected(false);
} else {
pieInfoList.get(4).selected = true;
pieInfoList.get(4).setSelected(true);
}
pie_chart1.setData(pieInfoList);
// 不执行动画
pie_chart1.invalidate();
});
btn6.setOnClickListener(v -> {
if (pieInfoList.get(5).selected) {
pieInfoList.get(5).selected = false;
if (pieInfoList.get(5).isSelected()) {
pieInfoList.get(5).setSelected(false);
} else {
pieInfoList.get(5).selected = true;
pieInfoList.get(5).setSelected(true);
}
pie_chart1.setData(pieInfoList);
// 不执行动画
@ -425,30 +427,30 @@ public class week extends Fragment{
btn_study.setTextColor(Color.parseColor("#EE3B3B"));
btn_life.setTextColor(Color.parseColor("#0033FF"));
btn_fun.setOnClickListener(v -> {
if (pieInfoList1.get(0).selected) {
pieInfoList1.get(0).selected = false;
if (pieInfoList1.get(0).isSelected()) {
pieInfoList1.get(0).setSelected(false);
} else {
pieInfoList1.get(0).selected = true;
pieInfoList1.get(0).setSelected(true);
}
pie_chart2.setData(pieInfoList1);
// 不执行动画
pie_chart2.invalidate();
});
btn_study.setOnClickListener(v -> {
if (pieInfoList1.get(1).selected) {
pieInfoList1.get(1).selected = false;
if (pieInfoList1.get(1).isSelected()) {
pieInfoList1.get(1).setSelected(false);
} else {
pieInfoList1.get(1).selected = true;
pieInfoList1.get(1).setSelected(true);
}
pie_chart2.setData(pieInfoList1);
// 不执行动画
pie_chart2.invalidate();
});
btn_life.setOnClickListener(v -> {
if (pieInfoList1.get(2).selected) {
pieInfoList1.get(2).selected = false;
if (pieInfoList1.get(2).isSelected()) {
pieInfoList1.get(2).setSelected(false);
} else {
pieInfoList1.get(2).selected = true;
pieInfoList1.get(2).setSelected(true);
}
pie_chart2.setData(pieInfoList1);
// 不执行动画

@ -24,15 +24,16 @@ import java.util.Date;
import java.util.List;
public class yesterday extends Fragment {
private List<PieInfo> pieInfoList=new ArrayList<>();
private List<AppInfo> appInfoList=new ArrayList<>();
private List<taskInfo> taskInfoList=new ArrayList<>();
private timeUseDBHelper dbHelper;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_yesterday, container, false);
List<PieInfo> pieInfoList=new ArrayList<>();
List<AppInfo> appInfoList;
List<taskInfo> taskInfoList;
dbHelper = timeUseDBHelper.getInstance(view.getContext());
dbHelper.openReadLink();
appInfoList=dbHelper.queryAllAppYesterdayInfo();
@ -133,11 +134,11 @@ public class yesterday extends Fragment {
pie_chart1.startAnima();
long finalTotalTime = totalTime;
btn1.setOnClickListener(v -> {
if (pieInfoList.get(0).selected) {
pieInfoList.get(0).selected = false;
if (pieInfoList.get(0).isSelected()) {
pieInfoList.get(0).setSelected(false);
btn1.setText(topFive.get(0).getLabel()+" "+getTimeFromInt(topFive.get(0).getTimeLong()));
} else {
pieInfoList.get(0).selected = true;
pieInfoList.get(0).setSelected(true);
btn1.setText(topFive.get(0).getLabel()+" "+percentInstance.format((float)topFive.get(0).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
@ -145,11 +146,11 @@ public class yesterday extends Fragment {
pie_chart1.invalidate();
});
btn2.setOnClickListener(v -> {
if (pieInfoList.get(1).selected) {
pieInfoList.get(1).selected = false;
if (pieInfoList.get(1).isSelected()) {
pieInfoList.get(1).setSelected(false);
btn2.setText(topFive.get(1).getLabel()+" "+getTimeFromInt(topFive.get(1).getTimeLong()));
} else {
pieInfoList.get(1).selected = true;
pieInfoList.get(1).setSelected(true);
btn2.setText(topFive.get(1).getLabel()+" "+percentInstance.format((float)topFive.get(1).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
@ -157,11 +158,11 @@ public class yesterday extends Fragment {
pie_chart1.invalidate();
});
btn3.setOnClickListener(v -> {
if (pieInfoList.get(2).selected) {
pieInfoList.get(2).selected = false;
if (pieInfoList.get(2).isSelected()) {
pieInfoList.get(2).setSelected(false);
btn3.setText(topFive.get(2).getLabel()+" "+getTimeFromInt(topFive.get(2).getTimeLong()));
} else {
pieInfoList.get(2).selected = true;
pieInfoList.get(2).setSelected(true);
btn3.setText(topFive.get(2).getLabel()+" "+percentInstance.format((float)topFive.get(2).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
@ -169,11 +170,11 @@ public class yesterday extends Fragment {
pie_chart1.invalidate();
});
btn4.setOnClickListener(v -> {
if (pieInfoList.get(3).selected) {
pieInfoList.get(3).selected = false;
if (pieInfoList.get(3).isSelected()) {
pieInfoList.get(3).setSelected(false);
btn4.setText(topFive.get(3).getLabel()+" "+getTimeFromInt(topFive.get(3).getTimeLong()));
} else {
pieInfoList.get(3).selected = true;
pieInfoList.get(3).setSelected(true);
btn4.setText(topFive.get(3).getLabel()+" "+percentInstance.format((float)topFive.get(3).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
@ -181,11 +182,11 @@ public class yesterday extends Fragment {
pie_chart1.invalidate();
});
btn5.setOnClickListener(v -> {
if (pieInfoList.get(4).selected) {
pieInfoList.get(4).selected = false;
if (pieInfoList.get(4).isSelected()) {
pieInfoList.get(4).setSelected(false);
btn5.setText(topFive.get(4).getLabel()+" "+getTimeFromInt(topFive.get(4).getTimeLong()));
} else {
pieInfoList.get(4).selected = true;
pieInfoList.get(4).setSelected(true);
btn5.setText(topFive.get(4).getLabel()+" "+percentInstance.format((float)topFive.get(4).getTimeLong()/ finalTotalTime));
}
pie_chart1.setData(pieInfoList);
@ -193,12 +194,12 @@ public class yesterday extends Fragment {
pie_chart1.invalidate();
});
btn6.setOnClickListener(v -> {
if (pieInfoList.get(5).selected) {
pieInfoList.get(5).selected = false;
if (pieInfoList.get(5).isSelected()) {
pieInfoList.get(5).setSelected(true);
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;
pieInfoList.get(5).setSelected(true);
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));
}

@ -15,20 +15,15 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.os.Bundle;
import android.text.format.DateUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.tanshui.timeuse.database.timeUseDBHelper;
import com.tanshui.timeuse.fragment.today;
import com.tanshui.timeuse.fragment.week;
import com.tanshui.timeuse.fragment.yesterday;
import com.tanshui.timeuse.util.ColorRandom;
import com.tanshui.timeuse.util.PieChart;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@ -39,12 +34,9 @@ import java.util.List;
import java.util.Map;
public class report extends AppCompatActivity {
private Button jump_appUse;
private Button jump_list;
private Button jump_report;
private View jump_appClassify;
private timeUseDBHelper dbHelper;
private List<AppInfo> appInfoList;
//声明Tab的布局文件
private LinearLayout mTabYesterday;
@ -69,6 +61,10 @@ public class report extends AppCompatActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_report);
Button jump_appUse;
Button jump_list;
View jump_appClassify;
List<AppInfo> appInfoList;
dbHelper=timeUseDBHelper.getInstance(this);
dbHelper.openReadLink();
Intent intent=getIntent();
@ -95,10 +91,8 @@ public class report extends AppCompatActivity {
// date =String.format("%s-%s-%s", nowYear, nowMonth, nowDay);
TextView taskNumber=findViewById(R.id.taskNumber);
jump_appUse = findViewById(R.id.jump_appUse2);
jump_list=findViewById(R.id.jump_list2);
jump_report=findViewById(R.id.jump_report2);
jump_appClassify =findViewById(R.id.jump_appClassify2);
// XmlPullParser parser = report.this.getResources().getXml(R.layout.taskitem);
// AttributeSet attributes = Xml.asAttributeSet(parser);

@ -24,7 +24,6 @@ import java.util.List;
public class software_classification extends AppCompatActivity {
private final String[] appClassifyArray={"娱乐","学习","生活"};
private List<String> appName=new ArrayList<>();
private List<AppInfo> appInfoList;
private List<AppInfo> allAppList=new ArrayList<>();
private String date;
@ -35,6 +34,7 @@ public class software_classification extends AppCompatActivity {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_software_classification);
List<String> appName=new ArrayList<>();
timeUseDBHelper dbHelper = timeUseDBHelper.getInstance(this);
dbHelper.openReadLink();
appInfoList = dbHelper.queryAllClassifyInfo();
@ -107,57 +107,42 @@ public class software_classification extends AppCompatActivity {
}
});
confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("data",appInfo.getClassify());
if(dbHelper.updateAppClassify(appInfo)>0)
Toast.makeText(software_classification.this, "修改应用分类成功", Toast.LENGTH_SHORT).show();
confirm.setOnClickListener(v -> {
Log.d("data",appInfo.getClassify());
if(dbHelper.updateAppClassify(appInfo)>0)
Toast.makeText(software_classification.this, "修改应用分类成功", Toast.LENGTH_SHORT).show();
// 刷新数据
appInfoList =dbHelper.queryAllClassifyInfo();
}
appInfoList =dbHelper.queryAllClassifyInfo();
});
// 点击按钮跳转
jump_appUse.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(software_classification.this, appTimeUse.class);
intent.putExtra("date",date);
showProgressDialog("","正在加载");
startActivity(intent);
}
jump_appUse.setOnClickListener(v -> {
Intent intent1 =new Intent();
intent1.setClass(software_classification.this, appTimeUse.class);
intent1.putExtra("date",date);
showProgressDialog("","正在加载");
startActivity(intent1);
});
jump_report.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(software_classification.this, report.class);
intent.putExtra("date",date);
showProgressDialog("","正在加载");
startActivity(intent);
}
jump_report.setOnClickListener(v -> {
Intent intent12 =new Intent();
intent12.setClass(software_classification.this, report.class);
intent12.putExtra("date",date);
showProgressDialog("","正在加载");
startActivity(intent12);
});
jump_appClassify.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(software_classification.this, software_classification.class);
intent.putExtra("date",date);
showProgressDialog("","正在加载");
startActivity(intent);
}
jump_appClassify.setOnClickListener(v -> {
Intent intent13 =new Intent();
intent13.setClass(software_classification.this, software_classification.class);
intent13.putExtra("date",date);
showProgressDialog("","正在加载");
startActivity(intent13);
});
jump_list.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(software_classification.this, task_show.class);
startActivity(intent);
}
jump_list.setOnClickListener(v -> {
Intent intent14 =new Intent();
intent14.setClass(software_classification.this, task_show.class);
startActivity(intent14);
});
}

@ -18,27 +18,26 @@ import android.widget.Toast;
import com.tanshui.timeuse.database.timeUseDBHelper;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
public class task_add extends AppCompatActivity {
private EditText task_content;
private Button StartTime;
private Button EndTime;
private Button btn_down;
private Button btn_del;
private TextView tv_startTime;
private TextView tv_endTime;
private String decs;
private timeUseDBHelper dbHelper;
private String date;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_task_add);
taskInfo task=new taskInfo();
taskInfo task=new taskInfo();
Button StartTime;
Button EndTime;
Button btn_down;
String date;
task_content=findViewById(R.id.task_content);
StartTime=findViewById(R.id.StartTime);
EndTime=findViewById(R.id.EndTime);
@ -52,28 +51,22 @@ public class task_add extends AppCompatActivity {
task.setFinished(false);
task.setDate(date);
StartTime.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Dialog dia=new Dialog(task_add.this);
dia.create();
Calendar time=Calendar.getInstance();
StartTime.setOnClickListener(v -> {
Dialog dia=new Dialog(task_add.this);
dia.create();
Calendar time=Calendar.getInstance();
// 显示时间选择器
TimePickerDialog timeDialog=new TimePickerDialog(task_add.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
String min= Integer.toString(minute);
min=minute>=10?min:"0"+min;
TimePickerDialog timeDialog=new TimePickerDialog(task_add.this, (view, hourOfDay, minute) -> {
String min= Integer.toString(minute);
min=minute>=10?min:"0"+min;
decs = String.format("%s点%s分", hourOfDay, min);
task.setStartTime(decs);
task.setStartHour(hourOfDay);
task.setStartMin(minute);
tv_startTime.setText("任务开始时间:"+decs);
}
},time.get(Calendar.HOUR_OF_DAY),time.get(Calendar.MINUTE),true);
timeDialog.show();
}
decs = String.format("%s点%s分", hourOfDay, min);
task.setStartTime(decs);
task.setStartHour(hourOfDay);
task.setStartMin(minute);
tv_startTime.setText("任务开始时间:"+decs);
},time.get(Calendar.HOUR_OF_DAY),time.get(Calendar.MINUTE),true);
timeDialog.show();
});
EndTime.setOnClickListener(new View.OnClickListener() {
@ -99,46 +92,43 @@ public class task_add extends AppCompatActivity {
}
});
btn_down.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
btn_down.setOnClickListener(v -> {
if(!task_content.getText().toString().isEmpty()){
task.setContent(task_content.getText().toString());
}else{
if(!task_content.getText().toString().isEmpty()){
task.setContent(task_content.getText().toString());
}else{
// list为空弹出提示
AlertDialog.Builder builder = new AlertDialog.Builder(task_add.this);
builder.setTitle("标题");
builder.setMessage("内容11111");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(task_add.this, "确定", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(task_add.this, "取消", Toast.LENGTH_SHORT).show();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
return;
}
// 将新增的任务添加到数据库
if(dbHelper.insertTaskInfos(task)>0)
Toast.makeText(task_add.this,"添加任务成功",Toast.LENGTH_SHORT).show();
// 延时1秒跳转页面
new Handler().postDelayed(new Runnable() {
AlertDialog.Builder builder = new AlertDialog.Builder(task_add.this);
builder.setTitle("标题");
builder.setMessage("内容11111");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void run() {
Intent intent=new Intent(task_add.this,task_show.class);
startActivity(intent);
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(task_add.this, "确定", Toast.LENGTH_SHORT).show();
}
},1000);
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(task_add.this, "取消", Toast.LENGTH_SHORT).show();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
return;
}
// 将新增的任务添加到数据库
if(dbHelper.insertTaskInfos(task)>0)
Toast.makeText(task_add.this,"添加任务成功",Toast.LENGTH_SHORT).show();
// 延时1秒跳转页面
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent1 =new Intent(task_add.this,task_show.class);
startActivity(intent1);
}
},1000);
});
}

@ -62,7 +62,7 @@ public class task_show extends Activity {
private ListView lv_task;
private List<taskInfo> taskInfos;
private List<AppInfo> appInfos;
private List<AppInfo> classifyList;
private ArrayList<HashMap<String, Object>> listItem;
private SimpleAdapter adapter;
private SQLiteDatabase write;
@ -74,11 +74,11 @@ public class task_show extends Activity {
private NotificationManager notificationManager;
private Notification notification;
private Handler handler;
private List<String> finishTask=new ArrayList<>();
private Runnable runnable;
private Boolean f;
private NotificationChannel channel;
private List<String> finishTask=new ArrayList<>();
private View jump_appClassify;
private ProgressDialog progressDialog;
@Override
@ -87,7 +87,9 @@ public class task_show extends Activity {
setContentView(R.layout.activity_task_show);
// main_tabFragment main_tabFragment=new main_tabFragment();
// getSupportFragmentManager().beginTransaction().add(R.id.main_frame, main_tabFragment).show(main_tabFragment).commitAllowingStateLoss();
List<AppInfo> classifyList;
View jump_appClassify;
textView = findViewById(R.id.tv);
lv_task=findViewById(R.id.lv_task);
changeDate = findViewById(R.id.changeDate);
@ -159,73 +161,58 @@ public class task_show extends Activity {
// 点击按钮更改日期
changeDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DatePickerDialog dateDialog = new DatePickerDialog(task_show.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
changeDate.setOnClickListener(v -> {
DatePickerDialog dateDialog = new DatePickerDialog(task_show.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
// 更新日期选择器为新选的日期
nowYear=year;
nowMonth=month+1;
nowDay=dayOfMonth;
String day=dayOfMonth>=10?dayOfMonth+"":"0"+dayOfMonth;
String months=month+1>=10?month+1+"":"0"+month+1;
decs = String.format("%s-%s-%s", year, months, day);
setList();
textView.setText(decs);
}
},
nowYear,
nowMonth-1,
nowDay);
dateDialog.show();
nowYear=year;
nowMonth=month+1;
nowDay=dayOfMonth;
String day=dayOfMonth>=10?dayOfMonth+"":"0"+dayOfMonth;
String months=month+1>=10?month+1+"":"0"+month+1;
decs = String.format("%s-%s-%s", year, months, day);
setList();
textView.setText(decs);
}
},
nowYear,
nowMonth-1,
nowDay);
dateDialog.show();
}
});
// 点击按钮添加任务
addTask.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(task_show.this, task_add.class);
intent.putExtra("date",decs);
startActivity(intent);
}
addTask.setOnClickListener(v -> {
Intent intent=new Intent();
intent.setClass(task_show.this, task_add.class);
intent.putExtra("date",decs);
startActivity(intent);
});
// 点击按钮跳转
jump_appUse.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(task_show.this, appTimeUse.class);
intent.putExtra("date",decs);
showProgressDialog("","正在加载");
startActivity(intent);
}
jump_appUse.setOnClickListener(v -> {
Intent intent=new Intent();
intent.setClass(task_show.this, appTimeUse.class);
intent.putExtra("date",decs);
showProgressDialog("","正在加载");
startActivity(intent);
});
jump_report.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(task_show.this, report.class);
intent.putExtra("date",decs);
showProgressDialog("","正在加载");
startActivity(intent);
}
jump_report.setOnClickListener(v -> {
Intent intent=new Intent();
intent.setClass(task_show.this, report.class);
intent.putExtra("date",decs);
showProgressDialog("","正在加载");
startActivity(intent);
});
jump_appClassify.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setClass(task_show.this, software_classification.class);
intent.putExtra("date",decs);
startActivity(intent);
}
jump_appClassify.setOnClickListener(v -> {
Intent intent=new Intent();
intent.setClass(task_show.this, software_classification.class);
intent.putExtra("date",decs);
startActivity(intent);
});
// CheckboxAdapter checkboxAdapter=new CheckboxAdapter(task_show.this,listItem);
// lv_task.setAdapter(checkboxAdapter);
@ -388,26 +375,23 @@ public class task_show extends Activity {
dialog_check = dialogView.findViewById(R.id.dialog_check);
dialog_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder1=new AlertDialog.Builder(task_show.this);
builder1.setMessage("确定删除?");
builder1.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ContentValues values = new ContentValues();
values.put("content" , dialog_edit.getText().toString());
write.delete("taskList","content=?",new String[]{listItem.get(position).get("ItemContent").toString()});
// 重新从数据库获取修改的数据
taskInfos=dbHelper.queryAllTaskInfo();
setList();
Toast.makeText(task_show.this, "删除成功", Toast.LENGTH_SHORT).show();
}
});
builder1.setNegativeButton("取消", null);
builder1.show();
}
dialog_delete.setOnClickListener(v -> {
AlertDialog.Builder builder1=new AlertDialog.Builder(task_show.this);
builder1.setMessage("确定删除?");
builder1.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ContentValues values = new ContentValues();
values.put("content" , dialog_edit.getText().toString());
write.delete("taskList","content=?",new String[]{listItem.get(position).get("ItemContent").toString()});
// 重新从数据库获取修改的数据
taskInfos=dbHelper.queryAllTaskInfo();
setList();
Toast.makeText(task_show.this, "删除成功", Toast.LENGTH_SHORT).show();
}
});
builder1.setNegativeButton("取消", null);
builder1.show();
});
/*Dialog dialog = new MyDialog(PublishActivity.this,R.style.MyDialog);
dialog.show();*/

@ -9,7 +9,6 @@ import android.graphics.RectF;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import androidx.annotation.Nullable;
@ -68,21 +67,21 @@ public class PieChart extends View {
return;
}
for (int i = 0; i < mPieModelList.size(); i++) {
if (mPieModelList.get(i).percent > 0) {
if (mPieModelList.get(i).getPercent() > 0) {
// 如果当前角度在这个扇形中
if (mAnimaAngle >= mPieModelList.get(i).startAngle &&
mAnimaAngle <= (mPieModelList.get(i).startAngle + mPieModelList.get(i).sweepAngle)) {
if (mAnimaAngle >= mPieModelList.get(i).getStartAngle() &&
mAnimaAngle <= (mPieModelList.get(i).getStartAngle() + mPieModelList.get(i).getSweepAngle())) {
drawColor(canvas, mPieModelList.get(i).color, mPieModelList.get(i).startAngle, mAnimaAngle - mPieModelList.get(i).startAngle);
drawColor(canvas, mPieModelList.get(i).getColor(), mPieModelList.get(i).getStartAngle(), mAnimaAngle - mPieModelList.get(i).getStartAngle());
}
// 如果当前角度进入第二个扇形
else if (mAnimaAngle >= (mPieModelList.get(i).startAngle + mPieModelList.get(i).sweepAngle)) {
drawColor(canvas, mPieModelList.get(i).color, mPieModelList.get(i).startAngle, mPieModelList.get(i).sweepAngle);
else if (mAnimaAngle >= (mPieModelList.get(i).getStartAngle() + mPieModelList.get(i).getSweepAngle())) {
drawColor(canvas, mPieModelList.get(i).getColor(), mPieModelList.get(i).getStartAngle(), mPieModelList.get(i).getSweepAngle());
}
// 如果seleted为true让该部分突出
if (mPieModelList.get(i).selected) {
drawSelectedView(canvas, mPieModelList.get(i).color, mPieModelList.get(i).startAngle, mPieModelList.get(i).sweepAngle);
if (mPieModelList.get(i).isSelected()) {
drawSelectedView(canvas, mPieModelList.get(i).getColor(), mPieModelList.get(i).getStartAngle(), mPieModelList.get(i).getSweepAngle());
}
}
}
@ -129,11 +128,11 @@ public class PieChart extends View {
for (int i = 0; i < mPieModelList.size(); i++) {
PieInfo model = mPieModelList.get(i);
if (i == 0) {
model.startAngle = 0;
model.setStartAngle(0);
} else {
model.startAngle = mPieModelList.get(i - 1).startAngle + mPieModelList.get(i - 1).sweepAngle;
model.setStartAngle(mPieModelList.get(i - 1).getStartAngle() + mPieModelList.get(i - 1).getSweepAngle());
}
model.sweepAngle = (model.percent * 360);
model.setSweepAngle(model.getPercent() * 360);
}
}

Loading…
Cancel
Save