package com.kanshu.kanshu;
/**
* Created by alouanemed on 26-01-2015.
*/
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
import com.github.mikephil.charting.data.BarData;
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
/**
* A placeholder fragment containing a simple view.
*/
public class UserMyProgressFragment extends Fragment {
private LinearLayoutManager mLayoutManager;
/**
* The fragment argument representing the section number for this
* fragment.
*/
private static final String ARG_SECTION_NUMBER = "section_number";
public static UserMyProgressFragment newInstance(int sectionNumber) {
UserMyProgressFragment fragment = new UserMyProgressFragment();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
fragment.setArguments(args);
return fragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_user_my_progress, container, false);
// use a linear layout manager
mLayoutManager = new LinearLayoutManager(getActivity());
mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
BarChart chartArticles = (BarChart) rootView.findViewById(R.id.articles_read);
BarChart chartCharSaved = (BarChart) rootView.findViewById(R.id.characters_saved);
BarChart chartTotalProgress = (BarChart) rootView.findViewById(R.id.character_progress);
chartArticles.setDescription("");
chartCharSaved.setDescription("");
XAxis xl = chartArticles.getXAxis();
xl.setCenterXLabelText(true);
xl.setSpaceBetweenLabels(2);
xl.setTextSize(10.0f);
xl.setPosition(XAxis.XAxisPosition.BOTTOM);
xl = chartCharSaved.getXAxis();
xl.setSpaceBetweenLabels(2);
xl.setCenterXLabelText(true);
xl.setTextSize(10.0f);
xl.setPosition(XAxis.XAxisPosition.BOTTOM);
xl = chartTotalProgress.getXAxis();
xl.setSpaceBetweenLabels(2);
xl.setCenterXLabelText(true);
xl.setTextSize(10.0f);
xl.setPosition(XAxis.XAxisPosition.BOTTOM);
chartTotalProgress.setDescription("");
ArrayList<String> vals = new ArrayList<String>();
Calendar cal = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("MMM dd");
ArrayList<BarEntry> readEntries = new ArrayList<BarEntry>();
ArrayList<BarEntry> savedEntries = new ArrayList<BarEntry>();
ArrayList<BarEntry> masteredEntries = new ArrayList<BarEntry>();
float[] nOfArticlesRead = {4,3,0,0,1,3,2}; //sample data
float [] nOfCharsSaved = {10,15,2,4,5,15,20};
float [] nOfCharsMastered = {5,7,2,0,8,8,4};
float [] learnedCharsByLevel = {100,40,20,40,0,2,2};
cal.add(Calendar.DATE, -7);
for(int i = 0; i < 7; i++)
{
cal.add(Calendar.DATE, 1);
vals.add(dateFormat.format(cal.getTime()));
readEntries.add(new BarEntry(nOfArticlesRead[i],i));
masteredEntries.add(new BarEntry(nOfCharsMastered[i],i));
savedEntries.add(new BarEntry(nOfCharsSaved[i],i));
}
BarDataSet dataset = new BarDataSet(readEntries, getResources().getString(R.string.legend_chart_read_articles));
dataset.setColor(getResources().getColor(R.color.chart_green));
dataset.setBarSpacePercent(50f);
chartArticles.setData(new BarData(vals, dataset));
YAxis axis = chartArticles.getAxisRight();
axis.setEnabled(false);
BarDataSet savedDataset = new BarDataSet(savedEntries, getResources().getString(R.string.legend_chart_saved_chars));
savedDataset.setColor(getResources().getColor(R.color.chart_green));
BarDataSet masteredDataset = new BarDataSet(masteredEntries, getResources().getString(R.string.legend_chart_mastered_chars));
masteredDataset.setColor(getResources().getColor(R.color.chart_orange));
ArrayList<BarDataSet> datasets = new ArrayList<BarDataSet>();
datasets.add(savedDataset);
datasets.add(masteredDataset);
chartCharSaved.setData(new BarData(vals, datasets));
axis = chartCharSaved.getAxisRight();
axis.setEnabled(false);
ArrayList<BarEntry> currentProgressEntries = new ArrayList<BarEntry>();
String[] hskLevels = getResources().getStringArray(R.array.hsk_levels);
final float[] nOfCharactersByLevel = {150,152,302,600,1300,2500};
final float maxNOfCharacters = 2500;
for(int i = 0; i < 6; i++)
{
currentProgressEntries.add(new BarEntry(maxNOfCharacters*learnedCharsByLevel[i]/nOfCharactersByLevel[i],i));
}
currentProgressEntries.add(new BarEntry(maxNOfCharacters*learnedCharsByLevel[6]/maxNOfCharacters,6));
BarDataSet currentProgressSet = new BarDataSet(currentProgressEntries, getResources().getString(R.string.legend_chart_reading_progress));
currentProgressSet.setColor(getResources().getColor(R.color.chart_green));
currentProgressSet.setBarSpacePercent(50f);
currentProgressSet.setDrawValues(false);
chartTotalProgress.setData(new BarData(hskLevels, currentProgressSet));
axis = chartTotalProgress.getAxisLeft();
axis.setEnabled(false);
axis = chartTotalProgress.getAxisRight();
axis.setEnabled(false);
return rootView;
}
}