package com.talk.demo.setting;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.jjoe64.graphview.BarGraphView;
import com.jjoe64.graphview.GraphView;
import com.jjoe64.graphview.GraphView.GraphViewData;
import com.jjoe64.graphview.GraphViewSeries;
import com.talk.demo.R;
import com.talk.demo.persistence.DBManager;
import com.talk.demo.util.TalkUtil;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class PreviewActivity extends Activity {
private static String TAG = "PreviewActivity";
private TextView tv, tvDate;
private DBManager mgr;
private PreDate preNum;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_preview);
mgr = new DBManager(this);
tv = (TextView)findViewById(R.id.preview_number);
tvDate = (TextView)findViewById(R.id.preview_date);
preNum = getDayNumber(1, true);
tvDate.setText(preNum.getPreDate());
tvDate.setTextColor(Color.parseColor("blue"));
Log.d(TAG, "num : "+preNum.getRecordNums());
tv.setText(String.valueOf(preNum.getRecordNums()));
tv.setTextColor(Color.parseColor("magenta"));
// init example series data
List<PreDate> dailyNum = new ArrayList<PreDate>();
for(int i=0;i<4;i++) {
dailyNum.add(getDayNumber(0-i, false));
}
GraphViewData[] gvd = new GraphViewData[dailyNum.size()];
int maxNum = 0;
for(int j=(dailyNum.size()-1), i=0;j>=0;j--,i++) {
gvd[i] = new GraphViewData(i+1, dailyNum.get(j).getRecordNums());
if(maxNum < dailyNum.get(j).getRecordNums() ) {
maxNum = dailyNum.get(j).getRecordNums();
}
}
GraphViewSeries exampleSeries = new GraphViewSeries(gvd);
GraphView graphView = new BarGraphView(
this // context
, "日记生成统计" // heading
);
graphView.getGraphViewStyle().setNumHorizontalLabels(4);
graphView.getGraphViewStyle().setNumVerticalLabels(maxNum+2);
graphView.setManualYAxisBounds(maxNum+1, 0);
//graphView.getGraphViewStyle().setVerticalLabelsWidth(300);
graphView.setHorizontalLabels(new String[] {"3天前", "2天前", "昨天", "今天"});
graphView.addSeries(exampleSeries); // data
LinearLayout layout = (LinearLayout) findViewById(R.id.vtable);
layout.addView(graphView);
}
public PreDate getDayNumber(int v, boolean isPreview) {
SimpleDateFormat pDateFormat = new SimpleDateFormat("yyyy/MM/dd");
Date previewDate = TalkUtil.Cal_Days(new Date(), v);
String preDate = pDateFormat.format(previewDate);
PreDate pd = new PreDate(preDate);
int number = 0;
if(isPreview)
number = getPreviewNumber(previewDate);
else
number = getDailyNumber(previewDate);
pd.setRecordNums(number);
return pd;
}
public int getDailyNumber(Date v) {
int numbers = mgr.queryTimeWithParam(TalkUtil.dailyDate(v)).size();
return numbers;
}
public int getPreviewNumber(Date v) {
int numbers = mgr.queryTimeWithMultipleParams(TalkUtil.preConditonDates(v)).size();
return numbers;
}
class PreDate {
private String mPreDate;
private int mRecordNums;
public PreDate(String v1) {
mPreDate = v1;
}
public PreDate(String v1, int v2) {
mPreDate = v1;
mRecordNums = v2;
}
public void setRecordNums(int v2) {
mRecordNums = v2;
}
public String getPreDate() {
return mPreDate;
}
public int getRecordNums() {
return mRecordNums;
}
}
@Override
public void onResume() {
super.onResume();
}
}