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

master
pcz54niyt 3 years ago
commit 41b01adfca

@ -1,2 +1,11 @@
# timeUse # timeUse
<!-- 本产品用于更好的管理您的时间,提高时间的利用效率 -->
<!-- 您可在本产品设置任务来对自己的行程进行规划 -->
<!-- 您还可在本产品查看各个应用的使用情况,包括今日、昨日和最近一周的情况 -->
<!-- 以下是注意事项 -->
<!-- 在安装本软件后, 第一次打开本软件时请根据提示赋予本软件获取其他应用使用情况的权限-->
<!-- 赋予权限后,请先前往软件分类界面完成应用分类,再前往应用使用情况界面查看应用使用情况 -->
<!-- 如果想在分析报告界面的今日报告中查看准确的分析信息,请在前往分析报告界面前,先前往应用使用情况界面 -->
<!-- 在进入新的一天后,如果您想进入分析报告界面,同样请先前往应用使用情况界面 -->

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

@ -1,25 +1,18 @@
package com.tanshui.timeuse; package com.tanshui.timeuse;
import android.content.ContentValues;
import android.content.Context; import android.content.Context;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton; 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.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
public class CheckboxAdapter extends BaseAdapter { public class CheckboxAdapter extends BaseAdapter {
private List<HashMap<String, Object>> list; private List<HashMap<String, Object>> list;

@ -2,15 +2,55 @@ package com.tanshui.timeuse;
public class PieInfo { 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) { public PieInfo(int color, float percent) {
this.color = color; this.color = color;

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

@ -0,0 +1,35 @@
package com.tanshui.timeuse.adapter;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import java.util.ArrayList;
import java.util.List;
public class MainViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
public MainViewPagerAdapter(FragmentManager manager) {
super(manager);
}
public void addFragment(Fragment fragment) {
mFragmentList.add(fragment);
}
@Override
public int getCount() {
return mFragmentList.size();
}
@NonNull
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
}

@ -12,13 +12,11 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.ListView; import android.widget.ListView;
import android.widget.SimpleAdapter; import android.widget.SimpleAdapter;
import android.widget.Toast;
import com.tanshui.timeuse.database.timeUseDBHelper; import com.tanshui.timeuse.database.timeUseDBHelper;
@ -30,19 +28,17 @@ import java.util.Map;
public class appTime extends AppCompatActivity { public class appTime extends AppCompatActivity {
private ArrayList<AppInfo> mApplicationInfos;
private timeUseDBHelper dbHelper;
private List<AppInfo> appInfoList;
private SimpleAdapter simpleAdapter;
private ProgressDialog progressDialog; private ProgressDialog progressDialog;
private ArrayList<HashMap<String, Object>> listItem;
private String date; private String date;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_app_time); setContentView(R.layout.activity_app_time);
ArrayList<AppInfo> mApplicationInfos;
timeUseDBHelper dbHelper;
List<AppInfo> appInfoList;
SimpleAdapter simpleAdapter;
dbHelper = timeUseDBHelper.getInstance(this); dbHelper = timeUseDBHelper.getInstance(this);
dbHelper.openWriteLink(); dbHelper.openWriteLink();
dbHelper.openReadLink(); dbHelper.openReadLink();
@ -76,7 +72,6 @@ public class appTime extends AppCompatActivity {
}); });
mApplicationInfos=getAllAppInfo(this); mApplicationInfos=getAllAppInfo(this);
listItem = new ArrayList<>();
// 从早上8点开始监听 // 从早上8点开始监听
Calendar setBeginCal=Calendar.getInstance(); Calendar setBeginCal=Calendar.getInstance();
@ -187,17 +182,14 @@ public class appTime extends AppCompatActivity {
lv_app.setAdapter(simpleAdapter); lv_app.setAdapter(simpleAdapter);
// 显示app图标 // 显示app图标
simpleAdapter.setViewBinder(new SimpleAdapter.ViewBinder() { simpleAdapter.setViewBinder((view, o, s) -> {
@Override if(view instanceof ImageView && o instanceof Drawable){
public boolean setViewValue(View view, Object o, String s) {
if(view instanceof ImageView && o instanceof Drawable){ ImageView iv=(ImageView)view;
iv.setImageDrawable((Drawable)o);
ImageView iv=(ImageView)view; return true;
iv.setImageDrawable((Drawable)o);
return true;
}
else return false;
} }
else return false;
}); });
hideProgressDialog(); hideProgressDialog();
} }

@ -2,7 +2,6 @@ package com.tanshui.timeuse;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import android.app.AppOpsManager;
import android.app.ProgressDialog; import android.app.ProgressDialog;
import android.app.usage.UsageStats; import android.app.usage.UsageStats;
import android.app.usage.UsageStatsManager; import android.app.usage.UsageStatsManager;
@ -13,14 +12,14 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.ListView; import android.widget.ListView;
import android.widget.SimpleAdapter; import android.widget.SimpleAdapter;
import android.widget.Toast;
import com.tanshui.timeuse.database.timeUseDBHelper; import com.tanshui.timeuse.database.timeUseDBHelper;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
@ -31,19 +30,18 @@ import java.util.Map;
public class appTimeUse extends AppCompatActivity { public class appTimeUse extends AppCompatActivity {
private ArrayList<AppInfo> mApplicationInfos;
private timeUseDBHelper dbHelper;
private List<AppInfo> appInfoList;
private SimpleAdapter simpleAdapter;
private ProgressDialog progressDialog; private ProgressDialog progressDialog;
private ArrayList<HashMap<String, Object>> listItem;
private String date; private String date;
private ArrayList<AppInfo> mApplicationInfos;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_app_time_use); setContentView(R.layout.activity_app_time_use);
ArrayList<HashMap<String, Object>> listItem;
timeUseDBHelper dbHelper;
SimpleAdapter simpleAdapter;
dbHelper = timeUseDBHelper.getInstance(this); dbHelper = timeUseDBHelper.getInstance(this);
dbHelper.openWriteLink(); dbHelper.openWriteLink();
dbHelper.openReadLink(); dbHelper.openReadLink();

@ -5,7 +5,7 @@ import android.content.Context;
import android.database.Cursor; import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import com.tanshui.timeuse.AppInfo; import com.tanshui.timeuse.AppInfo;
import com.tanshui.timeuse.taskInfo; 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_UserList="UserList";
private static final String TABLE_appList="appList"; private static final String TABLE_appList="appList";
private static final String TABLE_appListYesterday="appListYesterday"; 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_classifyList="classifyList";
private static final String TABLE_lastWeekList="lastWeekList"; private static final String TABLE_lastWeekList="lastWeekList";
private static final int DB_VERSION=1; private static final int DB_VERSION=1;

@ -0,0 +1,66 @@
package com.tanshui.timeuse.fragment;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.tanshui.timeuse.R;
/**
* A simple {@link Fragment} subclass.
* Use the {@link TaskListFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class TaskListFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
public TaskListFragment() {
// Required empty public constructor
}
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment TaskListFragment.
*/
// TODO: Rename and change types and number of parameters
public static TaskListFragment newInstance(String param1, String param2) {
TaskListFragment fragment = new TaskListFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_task_list, container, false);
}
}

@ -0,0 +1,66 @@
package com.tanshui.timeuse.fragment;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.tanshui.timeuse.R;
/**
* A simple {@link Fragment} subclass.
* Use the {@link appUseFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class appUseFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
public appUseFragment() {
// Required empty public constructor
}
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment appUseFragment.
*/
// TODO: Rename and change types and number of parameters
public static appUseFragment newInstance(String param1, String param2) {
appUseFragment fragment = new appUseFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_app_use, container, false);
}
}

@ -0,0 +1,106 @@
package com.tanshui.timeuse.fragment;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import com.tanshui.timeuse.R;
import com.tanshui.timeuse.appTimeUse;
import com.tanshui.timeuse.task_show;
public class main_tabFragment extends Fragment implements View.OnClickListener{
private Button jump_appUse;
private Button jump_report;
private Fragment TaskListFragment,reportFragment,appUseFragment;
private FragmentManager fragmentManager;
@Nullable
@Override
public Context getContext() {
return super.getContext();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view=inflater.inflate(R.layout.fragment_main_tab, container, false);
initViews(view);
setTabSelection(R.id.jump_list);
return view;
}
//初始化视图对象
private void initViews(View view){
//主页面
Button jump_list = (Button) view.findViewById(R.id.jump_list);
jump_list.setOnClickListener(this);
//分类页面
jump_appUse=(Button)view.findViewById(R.id.jump_appUse);
jump_appUse.setOnClickListener(this);
//购物车页面
jump_report=(Button) view.findViewById(R.id.jump_report);
jump_report.setOnClickListener(this);
fragmentManager=getFragmentManager();//获得Fragment管理类
}
//点击事件
@Override
public void onClick(View v) {
setTabSelection(v.getId());
}
//设置Tab选中
public void setTabSelection(int id) {
//开启一个事务
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
//隐藏所有Fragment
if (TaskListFragment != null) {
fragmentTransaction.hide(TaskListFragment);
}
if (reportFragment != null) {
fragmentTransaction.hide(reportFragment);
}
if (appUseFragment != null) {
fragmentTransaction.hide(appUseFragment);
}
//根据tabItem的id来执行不同的操作
switch (id) {
case R.id.jump_list:
if (TaskListFragment == null) {
TaskListFragment = new TaskListFragment();
fragmentTransaction.add(R.id.fg_content, TaskListFragment);
} else {
fragmentTransaction.show(TaskListFragment);
}
break;
case R.id.jump_appUse:
if (appUseFragment == null) {
appUseFragment = new appUseFragment();
fragmentTransaction.add(R.id.fg_content, appUseFragment);
} else {
fragmentTransaction.show(appUseFragment);
}
break;
case R.id.jump_report:
if (reportFragment == null) {
reportFragment = new reportFragment();
fragmentTransaction.add(R.id.fg_content, reportFragment);
} else {
fragmentTransaction.show(reportFragment);
}
break;
}
fragmentTransaction.commit();
}
}

@ -0,0 +1,66 @@
package com.tanshui.timeuse.fragment;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.tanshui.timeuse.R;
/**
* A simple {@link Fragment} subclass.
* Use the {@link reportFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class reportFragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
public reportFragment() {
// Required empty public constructor
}
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment reportFragment.
*/
// TODO: Rename and change types and number of parameters
public static reportFragment newInstance(String param1, String param2) {
reportFragment fragment = new reportFragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_today, container, false);
}
}

@ -2,13 +2,13 @@ package com.tanshui.timeuse.fragment;
import android.graphics.Color; import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
@ -18,26 +18,27 @@ import com.tanshui.timeuse.PieInfo;
import com.tanshui.timeuse.R; import com.tanshui.timeuse.R;
import com.tanshui.timeuse.database.timeUseDBHelper; import com.tanshui.timeuse.database.timeUseDBHelper;
import com.tanshui.timeuse.taskInfo; import com.tanshui.timeuse.taskInfo;
import com.tanshui.timeuse.util.ColorRandom;
import com.tanshui.timeuse.util.PieChart; import com.tanshui.timeuse.util.PieChart;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
public class today extends Fragment{ 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 @Nullable
@Override @Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_today, container, false); 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 btn1=view.findViewById(R.id.pie_btn1);
TextView btn2=view.findViewById(R.id.pie_btn2); TextView btn2=view.findViewById(R.id.pie_btn2);
TextView btn3=view.findViewById(R.id.pie_btn3); TextView btn3=view.findViewById(R.id.pie_btn3);
@ -167,11 +168,11 @@ public class today extends Fragment{
pie_chart1.startAnima(); pie_chart1.startAnima();
long finalTotalTime = totalTime; long finalTotalTime = totalTime;
btn1.setOnClickListener(v -> { btn1.setOnClickListener(v -> {
if (pieInfoList.get(0).selected) { if (pieInfoList.get(0).isSelected()) {
pieInfoList.get(0).selected = false; pieInfoList.get(0).setSelected(false);
btn1.setText(topFive.get(0).getLabel()+" "+getTimeFromInt(topFive.get(0).getTimeLong())); btn1.setText(topFive.get(0).getLabel()+" "+getTimeFromInt(topFive.get(0).getTimeLong()));
} else { } 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)); btn1.setText(topFive.get(0).getLabel()+" "+percentInstance.format((float)topFive.get(0).getTimeLong()/ finalTotalTime));
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
@ -179,11 +180,11 @@ public class today extends Fragment{
pie_chart1.invalidate(); pie_chart1.invalidate();
}); });
btn2.setOnClickListener(v -> { btn2.setOnClickListener(v -> {
if (pieInfoList.get(1).selected) { if (pieInfoList.get(1).isSelected()) {
pieInfoList.get(1).selected = false; pieInfoList.get(1).setSelected(false);
btn2.setText(topFive.get(1).getLabel()+" "+getTimeFromInt(topFive.get(1).getTimeLong())); btn2.setText(topFive.get(1).getLabel()+" "+getTimeFromInt(topFive.get(1).getTimeLong()));
} else { } 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)); btn2.setText(topFive.get(1).getLabel()+" "+percentInstance.format((float)topFive.get(1).getTimeLong()/ finalTotalTime));
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
@ -191,11 +192,11 @@ public class today extends Fragment{
pie_chart1.invalidate(); pie_chart1.invalidate();
}); });
btn3.setOnClickListener(v -> { btn3.setOnClickListener(v -> {
if (pieInfoList.get(2).selected) { if (pieInfoList.get(2).isSelected()) {
pieInfoList.get(2).selected = false; pieInfoList.get(2).setSelected(false);
btn3.setText(topFive.get(2).getLabel()+" "+getTimeFromInt(topFive.get(2).getTimeLong())); btn3.setText(topFive.get(2).getLabel()+" "+getTimeFromInt(topFive.get(2).getTimeLong()));
} else { } 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)); btn3.setText(topFive.get(2).getLabel()+" "+percentInstance.format((float)topFive.get(3).getTimeLong()/ finalTotalTime));
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
@ -203,11 +204,11 @@ public class today extends Fragment{
pie_chart1.invalidate(); pie_chart1.invalidate();
}); });
btn4.setOnClickListener(v -> { btn4.setOnClickListener(v -> {
if (pieInfoList.get(3).selected) { if (pieInfoList.get(3).isSelected()) {
pieInfoList.get(3).selected = false; pieInfoList.get(3).setSelected(false);
btn4.setText(topFive.get(3).getLabel()+" "+getTimeFromInt(topFive.get(3).getTimeLong())); btn4.setText(topFive.get(3).getLabel()+" "+getTimeFromInt(topFive.get(3).getTimeLong()));
} else { } 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)); btn4.setText(topFive.get(3).getLabel()+" "+percentInstance.format((float)topFive.get(3).getTimeLong()/ finalTotalTime));
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
@ -215,11 +216,11 @@ public class today extends Fragment{
pie_chart1.invalidate(); pie_chart1.invalidate();
}); });
btn5.setOnClickListener(v -> { btn5.setOnClickListener(v -> {
if (pieInfoList.get(4).selected) { if (pieInfoList.get(4).isSelected()) {
pieInfoList.get(4).selected = false; pieInfoList.get(4).setSelected(false);
btn5.setText(topFive.get(4).getLabel()+" "+getTimeFromInt(topFive.get(4).getTimeLong())); btn5.setText(topFive.get(4).getLabel()+" "+getTimeFromInt(topFive.get(4).getTimeLong()));
} else { } 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)); btn5.setText(topFive.get(4).getLabel()+" "+percentInstance.format((float)topFive.get(4).getTimeLong()/ finalTotalTime));
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
@ -227,12 +228,12 @@ public class today extends Fragment{
pie_chart1.invalidate(); pie_chart1.invalidate();
}); });
btn6.setOnClickListener(v -> { btn6.setOnClickListener(v -> {
if (pieInfoList.get(5).selected) { if (pieInfoList.get(5).isSelected()) {
pieInfoList.get(5).selected = false; pieInfoList.get(5).setSelected(false);
btn6.setText("其他 "+getTimeFromInt((finalTotalTime-topFive.get(0).getTimeLong()-topFive.get(1).getTimeLong()-topFive.get(2).getTimeLong()- btn6.setText("其他 "+getTimeFromInt((finalTotalTime-topFive.get(0).getTimeLong()-topFive.get(1).getTimeLong()-topFive.get(2).getTimeLong()-
topFive.get(3).getTimeLong()-topFive.get(4).getTimeLong()))); topFive.get(3).getTimeLong()-topFive.get(4).getTimeLong())));
} else { } 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()- 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)); 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.R;
import com.tanshui.timeuse.database.timeUseDBHelper; import com.tanshui.timeuse.database.timeUseDBHelper;
import com.tanshui.timeuse.taskInfo; import com.tanshui.timeuse.taskInfo;
import com.tanshui.timeuse.util.ColorRandom;
import com.tanshui.timeuse.util.PieChart; import com.tanshui.timeuse.util.PieChart;
import com.tanshui.timeuse.util.dateList; import com.tanshui.timeuse.util.dateList;
@ -42,15 +42,9 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
public class week extends Fragment{ 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 timeUseDBHelper dbHepler;
// 折线图
private LineChart line;
private LineChart line1;
@Nullable @Nullable
@Override @Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 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_chart1=view.findViewById(R.id.week_pie_chart1);
PieChart pie_chart2=view.findViewById(R.id.week_pie_chart2); 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 = timeUseDBHelper.getInstance(view.getContext());
dbHepler.openReadLink(); dbHepler.openReadLink();
appInfoList=dbHepler.queryAllLastWeekInfo(); appInfoList=dbHepler.queryAllLastWeekInfo();
taskInfoList=dbHepler.queryAllTaskInfo(); taskInfoList=dbHepler.queryAllTaskInfo();
// 折线图
LineChart line;
LineChart line1;
// 获取今天和昨天日期 // 获取今天和昨天日期
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date(System.currentTimeMillis()-1000*60*60*24); Date date = new Date(System.currentTimeMillis()-1000*60*60*24);
String yes=formatter.format(date); String yes=formatter.format(date);
date = new Date(System.currentTimeMillis()); // date = new Date(System.currentTimeMillis());
String today=formatter.format(date); // String today=formatter.format(date);
int todayNum=0; int todayNum=0;
@ -347,60 +349,60 @@ public class week extends Fragment{
line1.setData(lineData1); line1.setData(lineData1);
btn1.setOnClickListener(v -> { btn1.setOnClickListener(v -> {
if (pieInfoList.get(0).selected) { if (pieInfoList.get(0).isSelected()) {
pieInfoList.get(0).selected = false; pieInfoList.get(0).setSelected(false);
} else { } else {
pieInfoList.get(0).selected = true; pieInfoList.get(0).setSelected(true);
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
// 不执行动画 // 不执行动画
pie_chart1.invalidate(); pie_chart1.invalidate();
}); });
btn2.setOnClickListener(v -> { btn2.setOnClickListener(v -> {
if (pieInfoList.get(1).selected) { if (pieInfoList.get(1).isSelected()) {
pieInfoList.get(1).selected = false; pieInfoList.get(1).setSelected(false);
} else { } else {
pieInfoList.get(1).selected = true; pieInfoList.get(1).setSelected(true);
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
// 不执行动画 // 不执行动画
pie_chart1.invalidate(); pie_chart1.invalidate();
}); });
btn3.setOnClickListener(v -> { btn3.setOnClickListener(v -> {
if (pieInfoList.get(2).selected) { if (pieInfoList.get(2).isSelected()) {
pieInfoList.get(2).selected = false; pieInfoList.get(2).setSelected(false);
} else { } else {
pieInfoList.get(2).selected = true; pieInfoList.get(2).setSelected(true);
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
// 不执行动画 // 不执行动画
pie_chart1.invalidate(); pie_chart1.invalidate();
}); });
btn4.setOnClickListener(v -> { btn4.setOnClickListener(v -> {
if (pieInfoList.get(3).selected) { if (pieInfoList.get(3).isSelected()) {
pieInfoList.get(3).selected = false; pieInfoList.get(3).setSelected(false);
} else { } else {
pieInfoList.get(3).selected = true; pieInfoList.get(3).setSelected(true);
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
// 不执行动画 // 不执行动画
pie_chart1.invalidate(); pie_chart1.invalidate();
}); });
btn5.setOnClickListener(v -> { btn5.setOnClickListener(v -> {
if (pieInfoList.get(4).selected) { if (pieInfoList.get(4).isSelected()) {
pieInfoList.get(4).selected = false; pieInfoList.get(4).setSelected(false);
} else { } else {
pieInfoList.get(4).selected = true; pieInfoList.get(4).setSelected(true);
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
// 不执行动画 // 不执行动画
pie_chart1.invalidate(); pie_chart1.invalidate();
}); });
btn6.setOnClickListener(v -> { btn6.setOnClickListener(v -> {
if (pieInfoList.get(5).selected) { if (pieInfoList.get(5).isSelected()) {
pieInfoList.get(5).selected = false; pieInfoList.get(5).setSelected(false);
} else { } else {
pieInfoList.get(5).selected = true; pieInfoList.get(5).setSelected(true);
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
// 不执行动画 // 不执行动画
@ -425,30 +427,30 @@ public class week extends Fragment{
btn_study.setTextColor(Color.parseColor("#EE3B3B")); btn_study.setTextColor(Color.parseColor("#EE3B3B"));
btn_life.setTextColor(Color.parseColor("#0033FF")); btn_life.setTextColor(Color.parseColor("#0033FF"));
btn_fun.setOnClickListener(v -> { btn_fun.setOnClickListener(v -> {
if (pieInfoList1.get(0).selected) { if (pieInfoList1.get(0).isSelected()) {
pieInfoList1.get(0).selected = false; pieInfoList1.get(0).setSelected(false);
} else { } else {
pieInfoList1.get(0).selected = true; pieInfoList1.get(0).setSelected(true);
} }
pie_chart2.setData(pieInfoList1); pie_chart2.setData(pieInfoList1);
// 不执行动画 // 不执行动画
pie_chart2.invalidate(); pie_chart2.invalidate();
}); });
btn_study.setOnClickListener(v -> { btn_study.setOnClickListener(v -> {
if (pieInfoList1.get(1).selected) { if (pieInfoList1.get(1).isSelected()) {
pieInfoList1.get(1).selected = false; pieInfoList1.get(1).setSelected(false);
} else { } else {
pieInfoList1.get(1).selected = true; pieInfoList1.get(1).setSelected(true);
} }
pie_chart2.setData(pieInfoList1); pie_chart2.setData(pieInfoList1);
// 不执行动画 // 不执行动画
pie_chart2.invalidate(); pie_chart2.invalidate();
}); });
btn_life.setOnClickListener(v -> { btn_life.setOnClickListener(v -> {
if (pieInfoList1.get(2).selected) { if (pieInfoList1.get(2).isSelected()) {
pieInfoList1.get(2).selected = false; pieInfoList1.get(2).setSelected(false);
} else { } else {
pieInfoList1.get(2).selected = true; pieInfoList1.get(2).setSelected(true);
} }
pie_chart2.setData(pieInfoList1); pie_chart2.setData(pieInfoList1);
// 不执行动画 // 不执行动画

@ -24,15 +24,16 @@ import java.util.Date;
import java.util.List; import java.util.List;
public class yesterday extends Fragment { 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; private timeUseDBHelper dbHelper;
@Nullable @Nullable
@Override @Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_yesterday, container, false); 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 = timeUseDBHelper.getInstance(view.getContext());
dbHelper.openReadLink(); dbHelper.openReadLink();
appInfoList=dbHelper.queryAllAppYesterdayInfo(); appInfoList=dbHelper.queryAllAppYesterdayInfo();
@ -133,11 +134,11 @@ public class yesterday extends Fragment {
pie_chart1.startAnima(); pie_chart1.startAnima();
long finalTotalTime = totalTime; long finalTotalTime = totalTime;
btn1.setOnClickListener(v -> { btn1.setOnClickListener(v -> {
if (pieInfoList.get(0).selected) { if (pieInfoList.get(0).isSelected()) {
pieInfoList.get(0).selected = false; pieInfoList.get(0).setSelected(false);
btn1.setText(topFive.get(0).getLabel()+" "+getTimeFromInt(topFive.get(0).getTimeLong())); btn1.setText(topFive.get(0).getLabel()+" "+getTimeFromInt(topFive.get(0).getTimeLong()));
} else { } 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)); btn1.setText(topFive.get(0).getLabel()+" "+percentInstance.format((float)topFive.get(0).getTimeLong()/ finalTotalTime));
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
@ -145,11 +146,11 @@ public class yesterday extends Fragment {
pie_chart1.invalidate(); pie_chart1.invalidate();
}); });
btn2.setOnClickListener(v -> { btn2.setOnClickListener(v -> {
if (pieInfoList.get(1).selected) { if (pieInfoList.get(1).isSelected()) {
pieInfoList.get(1).selected = false; pieInfoList.get(1).setSelected(false);
btn2.setText(topFive.get(1).getLabel()+" "+getTimeFromInt(topFive.get(1).getTimeLong())); btn2.setText(topFive.get(1).getLabel()+" "+getTimeFromInt(topFive.get(1).getTimeLong()));
} else { } 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)); btn2.setText(topFive.get(1).getLabel()+" "+percentInstance.format((float)topFive.get(1).getTimeLong()/ finalTotalTime));
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
@ -157,11 +158,11 @@ public class yesterday extends Fragment {
pie_chart1.invalidate(); pie_chart1.invalidate();
}); });
btn3.setOnClickListener(v -> { btn3.setOnClickListener(v -> {
if (pieInfoList.get(2).selected) { if (pieInfoList.get(2).isSelected()) {
pieInfoList.get(2).selected = false; pieInfoList.get(2).setSelected(false);
btn3.setText(topFive.get(2).getLabel()+" "+getTimeFromInt(topFive.get(2).getTimeLong())); btn3.setText(topFive.get(2).getLabel()+" "+getTimeFromInt(topFive.get(2).getTimeLong()));
} else { } 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)); btn3.setText(topFive.get(2).getLabel()+" "+percentInstance.format((float)topFive.get(2).getTimeLong()/ finalTotalTime));
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
@ -169,11 +170,11 @@ public class yesterday extends Fragment {
pie_chart1.invalidate(); pie_chart1.invalidate();
}); });
btn4.setOnClickListener(v -> { btn4.setOnClickListener(v -> {
if (pieInfoList.get(3).selected) { if (pieInfoList.get(3).isSelected()) {
pieInfoList.get(3).selected = false; pieInfoList.get(3).setSelected(false);
btn4.setText(topFive.get(3).getLabel()+" "+getTimeFromInt(topFive.get(3).getTimeLong())); btn4.setText(topFive.get(3).getLabel()+" "+getTimeFromInt(topFive.get(3).getTimeLong()));
} else { } 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)); btn4.setText(topFive.get(3).getLabel()+" "+percentInstance.format((float)topFive.get(3).getTimeLong()/ finalTotalTime));
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
@ -181,11 +182,11 @@ public class yesterday extends Fragment {
pie_chart1.invalidate(); pie_chart1.invalidate();
}); });
btn5.setOnClickListener(v -> { btn5.setOnClickListener(v -> {
if (pieInfoList.get(4).selected) { if (pieInfoList.get(4).isSelected()) {
pieInfoList.get(4).selected = false; pieInfoList.get(4).setSelected(false);
btn5.setText(topFive.get(4).getLabel()+" "+getTimeFromInt(topFive.get(4).getTimeLong())); btn5.setText(topFive.get(4).getLabel()+" "+getTimeFromInt(topFive.get(4).getTimeLong()));
} else { } 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)); btn5.setText(topFive.get(4).getLabel()+" "+percentInstance.format((float)topFive.get(4).getTimeLong()/ finalTotalTime));
} }
pie_chart1.setData(pieInfoList); pie_chart1.setData(pieInfoList);
@ -193,12 +194,12 @@ public class yesterday extends Fragment {
pie_chart1.invalidate(); pie_chart1.invalidate();
}); });
btn6.setOnClickListener(v -> { btn6.setOnClickListener(v -> {
if (pieInfoList.get(5).selected) { if (pieInfoList.get(5).isSelected()) {
pieInfoList.get(5).selected = false; pieInfoList.get(5).setSelected(true);
btn6.setText("其他 "+getTimeFromInt((finalTotalTime-topFive.get(0).getTimeLong()-topFive.get(1).getTimeLong()-topFive.get(2).getTimeLong()- btn6.setText("其他 "+getTimeFromInt((finalTotalTime-topFive.get(0).getTimeLong()-topFive.get(1).getTimeLong()-topFive.get(2).getTimeLong()-
topFive.get(3).getTimeLong()-topFive.get(4).getTimeLong()))); topFive.get(3).getTimeLong()-topFive.get(4).getTimeLong())));
} else { } 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()- 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)); 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.content.pm.PackageManager;
import android.graphics.Color; import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
import android.text.format.DateUtils;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import com.tanshui.timeuse.database.timeUseDBHelper; import com.tanshui.timeuse.database.timeUseDBHelper;
import com.tanshui.timeuse.fragment.today; import com.tanshui.timeuse.fragment.today;
import com.tanshui.timeuse.fragment.week; import com.tanshui.timeuse.fragment.week;
import com.tanshui.timeuse.fragment.yesterday; 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.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@ -39,12 +34,9 @@ import java.util.List;
import java.util.Map; import java.util.Map;
public class report extends AppCompatActivity { 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 timeUseDBHelper dbHelper;
private List<AppInfo> appInfoList;
//声明Tab的布局文件 //声明Tab的布局文件
private LinearLayout mTabYesterday; private LinearLayout mTabYesterday;
@ -69,6 +61,10 @@ public class report extends AppCompatActivity {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_report); setContentView(R.layout.activity_report);
Button jump_appUse;
Button jump_list;
View jump_appClassify;
List<AppInfo> appInfoList;
dbHelper=timeUseDBHelper.getInstance(this); dbHelper=timeUseDBHelper.getInstance(this);
dbHelper.openReadLink(); dbHelper.openReadLink();
Intent intent=getIntent(); Intent intent=getIntent();
@ -95,10 +91,8 @@ public class report extends AppCompatActivity {
// date =String.format("%s-%s-%s", nowYear, nowMonth, nowDay); // date =String.format("%s-%s-%s", nowYear, nowMonth, nowDay);
TextView taskNumber=findViewById(R.id.taskNumber);
jump_appUse = findViewById(R.id.jump_appUse2); jump_appUse = findViewById(R.id.jump_appUse2);
jump_list=findViewById(R.id.jump_list2); jump_list=findViewById(R.id.jump_list2);
jump_report=findViewById(R.id.jump_report2);
jump_appClassify =findViewById(R.id.jump_appClassify2); jump_appClassify =findViewById(R.id.jump_appClassify2);
// XmlPullParser parser = report.this.getResources().getXml(R.layout.taskitem); // XmlPullParser parser = report.this.getResources().getXml(R.layout.taskitem);
// AttributeSet attributes = Xml.asAttributeSet(parser); // AttributeSet attributes = Xml.asAttributeSet(parser);

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

@ -18,27 +18,26 @@ import android.widget.Toast;
import com.tanshui.timeuse.database.timeUseDBHelper; import com.tanshui.timeuse.database.timeUseDBHelper;
import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.List;
public class task_add extends AppCompatActivity { public class task_add extends AppCompatActivity {
private EditText task_content; 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_startTime;
private TextView tv_endTime; private TextView tv_endTime;
private String decs; private String decs;
private timeUseDBHelper dbHelper; private timeUseDBHelper dbHelper;
private String date;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_task_add); 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); task_content=findViewById(R.id.task_content);
StartTime=findViewById(R.id.StartTime); StartTime=findViewById(R.id.StartTime);
EndTime=findViewById(R.id.EndTime); EndTime=findViewById(R.id.EndTime);
@ -52,28 +51,22 @@ public class task_add extends AppCompatActivity {
task.setFinished(false); task.setFinished(false);
task.setDate(date); task.setDate(date);
StartTime.setOnClickListener(new View.OnClickListener() { StartTime.setOnClickListener(v -> {
@Override Dialog dia=new Dialog(task_add.this);
public void onClick(View v) { dia.create();
Dialog dia=new Dialog(task_add.this); Calendar time=Calendar.getInstance();
dia.create();
Calendar time=Calendar.getInstance();
// 显示时间选择器 // 显示时间选择器
TimePickerDialog timeDialog=new TimePickerDialog(task_add.this, new TimePickerDialog.OnTimeSetListener() { TimePickerDialog timeDialog=new TimePickerDialog(task_add.this, (view, hourOfDay, minute) -> {
@Override String min= Integer.toString(minute);
public void onTimeSet(TimePicker view, int hourOfDay, int minute) { min=minute>=10?min:"0"+min;
String min= Integer.toString(minute);
min=minute>=10?min:"0"+min;
decs = String.format("%s点%s分", hourOfDay, min); decs = String.format("%s点%s分", hourOfDay, min);
task.setStartTime(decs); task.setStartTime(decs);
task.setStartHour(hourOfDay); task.setStartHour(hourOfDay);
task.setStartMin(minute); task.setStartMin(minute);
tv_startTime.setText("任务开始时间:"+decs); tv_startTime.setText("任务开始时间:"+decs);
} },time.get(Calendar.HOUR_OF_DAY),time.get(Calendar.MINUTE),true);
},time.get(Calendar.HOUR_OF_DAY),time.get(Calendar.MINUTE),true); timeDialog.show();
timeDialog.show();
}
}); });
EndTime.setOnClickListener(new View.OnClickListener() { EndTime.setOnClickListener(new View.OnClickListener() {
@ -99,46 +92,43 @@ public class task_add extends AppCompatActivity {
} }
}); });
btn_down.setOnClickListener(new View.OnClickListener() { btn_down.setOnClickListener(v -> {
@Override
public void onClick(View v) {
if(!task_content.getText().toString().isEmpty()){ if(!task_content.getText().toString().isEmpty()){
task.setContent(task_content.getText().toString()); task.setContent(task_content.getText().toString());
}else{ }else{
// list为空弹出提示 // list为空弹出提示
AlertDialog.Builder builder = new AlertDialog.Builder(task_add.this); AlertDialog.Builder builder = new AlertDialog.Builder(task_add.this);
builder.setTitle("标题"); builder.setTitle("标题");
builder.setMessage("内容11111"); builder.setMessage("内容11111");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { 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() {
@Override @Override
public void run() { public void onClick(DialogInterface dialog, int which) {
Intent intent=new Intent(task_add.this,task_show.class); Toast.makeText(task_add.this, "确定", Toast.LENGTH_SHORT).show();
startActivity(intent);
} }
},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 ListView lv_task;
private List<taskInfo> taskInfos; private List<taskInfo> taskInfos;
private List<AppInfo> appInfos; private List<AppInfo> appInfos;
private List<AppInfo> classifyList;
private ArrayList<HashMap<String, Object>> listItem; private ArrayList<HashMap<String, Object>> listItem;
private SimpleAdapter adapter; private SimpleAdapter adapter;
private SQLiteDatabase write; private SQLiteDatabase write;
@ -74,11 +74,11 @@ public class task_show extends Activity {
private NotificationManager notificationManager; private NotificationManager notificationManager;
private Notification notification; private Notification notification;
private Handler handler; private Handler handler;
private List<String> finishTask=new ArrayList<>();
private Runnable runnable; private Runnable runnable;
private Boolean f; private Boolean f;
private NotificationChannel channel; private NotificationChannel channel;
private List<String> finishTask=new ArrayList<>();
private View jump_appClassify;
private ProgressDialog progressDialog; private ProgressDialog progressDialog;
@Override @Override
@ -87,7 +87,9 @@ public class task_show extends Activity {
setContentView(R.layout.activity_task_show); setContentView(R.layout.activity_task_show);
// main_tabFragment main_tabFragment=new main_tabFragment(); // main_tabFragment main_tabFragment=new main_tabFragment();
// getSupportFragmentManager().beginTransaction().add(R.id.main_frame, main_tabFragment).show(main_tabFragment).commitAllowingStateLoss(); // getSupportFragmentManager().beginTransaction().add(R.id.main_frame, main_tabFragment).show(main_tabFragment).commitAllowingStateLoss();
List<AppInfo> classifyList;
View jump_appClassify;
textView = findViewById(R.id.tv); textView = findViewById(R.id.tv);
lv_task=findViewById(R.id.lv_task); lv_task=findViewById(R.id.lv_task);
changeDate = findViewById(R.id.changeDate); changeDate = findViewById(R.id.changeDate);
@ -159,73 +161,58 @@ public class task_show extends Activity {
// 点击按钮更改日期 // 点击按钮更改日期
changeDate.setOnClickListener(new View.OnClickListener() { changeDate.setOnClickListener(v -> {
@Override DatePickerDialog dateDialog = new DatePickerDialog(task_show.this,
public void onClick(View v) { new DatePickerDialog.OnDateSetListener() {
DatePickerDialog dateDialog = new DatePickerDialog(task_show.this, @Override
new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
// 更新日期选择器为新选的日期 // 更新日期选择器为新选的日期
nowYear=year; nowYear=year;
nowMonth=month+1; nowMonth=month+1;
nowDay=dayOfMonth; nowDay=dayOfMonth;
String day=dayOfMonth>=10?dayOfMonth+"":"0"+dayOfMonth; String day=dayOfMonth>=10?dayOfMonth+"":"0"+dayOfMonth;
String months=month+1>=10?month+1+"":"0"+month+1; String months=month+1>=10?month+1+"":"0"+month+1;
decs = String.format("%s-%s-%s", year, months, day); decs = String.format("%s-%s-%s", year, months, day);
setList(); setList();
textView.setText(decs); textView.setText(decs);
} }
}, },
nowYear, nowYear,
nowMonth-1, nowMonth-1,
nowDay); nowDay);
dateDialog.show(); dateDialog.show();
}
}); });
// 点击按钮添加任务 // 点击按钮添加任务
addTask.setOnClickListener(new View.OnClickListener() { addTask.setOnClickListener(v -> {
@Override Intent intent=new Intent();
public void onClick(View v) { intent.setClass(task_show.this, task_add.class);
Intent intent=new Intent(); intent.putExtra("date",decs);
intent.setClass(task_show.this, task_add.class); startActivity(intent);
intent.putExtra("date",decs);
startActivity(intent);
}
}); });
// 点击按钮跳转 // 点击按钮跳转
jump_appUse.setOnClickListener(new View.OnClickListener() { jump_appUse.setOnClickListener(v -> {
@Override Intent intent=new Intent();
public void onClick(View v) { intent.setClass(task_show.this, appTimeUse.class);
Intent intent=new Intent(); intent.putExtra("date",decs);
intent.setClass(task_show.this, appTimeUse.class); showProgressDialog("","正在加载");
intent.putExtra("date",decs); startActivity(intent);
showProgressDialog("","正在加载");
startActivity(intent);
}
}); });
jump_report.setOnClickListener(new View.OnClickListener() { jump_report.setOnClickListener(v -> {
@Override Intent intent=new Intent();
public void onClick(View v) { intent.setClass(task_show.this, report.class);
Intent intent=new Intent(); intent.putExtra("date",decs);
intent.setClass(task_show.this, report.class); showProgressDialog("","正在加载");
intent.putExtra("date",decs); startActivity(intent);
showProgressDialog("","正在加载");
startActivity(intent);
}
}); });
jump_appClassify.setOnClickListener(new View.OnClickListener() { jump_appClassify.setOnClickListener(v -> {
@Override Intent intent=new Intent();
public void onClick(View v) { intent.setClass(task_show.this, software_classification.class);
Intent intent=new Intent(); intent.putExtra("date",decs);
intent.setClass(task_show.this, software_classification.class); startActivity(intent);
intent.putExtra("date",decs);
startActivity(intent);
}
}); });
// CheckboxAdapter checkboxAdapter=new CheckboxAdapter(task_show.this,listItem); // CheckboxAdapter checkboxAdapter=new CheckboxAdapter(task_show.this,listItem);
// lv_task.setAdapter(checkboxAdapter); // lv_task.setAdapter(checkboxAdapter);
@ -388,26 +375,23 @@ public class task_show extends Activity {
dialog_check = dialogView.findViewById(R.id.dialog_check); dialog_check = dialogView.findViewById(R.id.dialog_check);
dialog_delete.setOnClickListener(new View.OnClickListener() { dialog_delete.setOnClickListener(v -> {
@Override AlertDialog.Builder builder1=new AlertDialog.Builder(task_show.this);
public void onClick(View v) { builder1.setMessage("确定删除?");
AlertDialog.Builder builder1=new AlertDialog.Builder(task_show.this); builder1.setPositiveButton("确定", new DialogInterface.OnClickListener() {
builder1.setMessage("确定删除?"); @Override
builder1.setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) {
@Override ContentValues values = new ContentValues();
public void onClick(DialogInterface dialog, int which) { values.put("content" , dialog_edit.getText().toString());
ContentValues values = new ContentValues(); write.delete("taskList","content=?",new String[]{listItem.get(position).get("ItemContent").toString()});
values.put("content" , dialog_edit.getText().toString()); // 重新从数据库获取修改的数据
write.delete("taskList","content=?",new String[]{listItem.get(position).get("ItemContent").toString()}); taskInfos=dbHelper.queryAllTaskInfo();
// 重新从数据库获取修改的数据 setList();
taskInfos=dbHelper.queryAllTaskInfo(); Toast.makeText(task_show.this, "删除成功", Toast.LENGTH_SHORT).show();
setList(); }
Toast.makeText(task_show.this, "删除成功", Toast.LENGTH_SHORT).show(); });
} builder1.setNegativeButton("取消", null);
}); builder1.show();
builder1.setNegativeButton("取消", null);
builder1.show();
}
}); });
/*Dialog dialog = new MyDialog(PublishActivity.this,R.style.MyDialog); /*Dialog dialog = new MyDialog(PublishActivity.this,R.style.MyDialog);
dialog.show();*/ dialog.show();*/

@ -9,7 +9,6 @@ import android.graphics.RectF;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Toast;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
@ -68,21 +67,21 @@ public class PieChart extends View {
return; return;
} }
for (int i = 0; i < mPieModelList.size(); i++) { 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 && if (mAnimaAngle >= mPieModelList.get(i).getStartAngle() &&
mAnimaAngle <= (mPieModelList.get(i).startAngle + mPieModelList.get(i).sweepAngle)) { 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)) { else if (mAnimaAngle >= (mPieModelList.get(i).getStartAngle() + mPieModelList.get(i).getSweepAngle())) {
drawColor(canvas, mPieModelList.get(i).color, mPieModelList.get(i).startAngle, mPieModelList.get(i).sweepAngle); drawColor(canvas, mPieModelList.get(i).getColor(), mPieModelList.get(i).getStartAngle(), mPieModelList.get(i).getSweepAngle());
} }
// 如果seleted为true让该部分突出 // 如果seleted为true让该部分突出
if (mPieModelList.get(i).selected) { if (mPieModelList.get(i).isSelected()) {
drawSelectedView(canvas, mPieModelList.get(i).color, mPieModelList.get(i).startAngle, mPieModelList.get(i).sweepAngle); 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++) { for (int i = 0; i < mPieModelList.size(); i++) {
PieInfo model = mPieModelList.get(i); PieInfo model = mPieModelList.get(i);
if (i == 0) { if (i == 0) {
model.startAngle = 0; model.setStartAngle(0);
} else { } 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