package com.github.andlyticsproject; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import android.annotation.SuppressLint; import android.app.Activity; import com.github.andlyticsproject.chart.Chart.ChartSet; import com.github.andlyticsproject.chart.Chart.ValueCallbackHander; import com.github.andlyticsproject.model.AppStats; @SuppressLint("SimpleDateFormat") public abstract class ChartListAdapter<T> extends BaseChartListAdapter<T> { protected static int BLACK_TEXT; protected static final int COL_DATE = 0; protected Activity activity; protected SimpleDateFormat dateFormat; protected List<T> stats; protected T overallStats; @SuppressLint("SimpleDateFormat") public ChartListAdapter(Activity activity) { super(activity); BLACK_TEXT = activity.getResources().getColor(R.color.blackText); this.stats = new ArrayList<T>(); this.activity = activity; this.dateFormat = new SimpleDateFormat(Preferences.getDateFormatStringShort(activity)); } @Override public int getCount() { return stats.size(); } @Override public long getItemId(int position) { return position; } public void setStats(List<T> stats) { this.stats = stats; } public List<T> getStats() { return stats; } public void setOverallStats(T overallStats) { this.overallStats = overallStats; } @Override public void notifyDataSetChanged() { this.dateFormat = new SimpleDateFormat(Preferences.getDateFormatStringShort(activity)); super.notifyDataSetChanged(); } @Override public int getNumPages() { return 3; } @Override public int getNumCharts(int page) throws IndexOutOfBoundsException { switch (ChartSet.values()[page]) { case DOWNLOADS: return 5; case RATINGS: return 7; case REVENUE: return 2; } throw new IndexOutOfBoundsException("page=" + page); } @Override protected boolean useSmothColumn(int page) { return page == 0; } public static abstract class DevConValueCallbackHander implements ValueCallbackHander { @Override public Date getDate(Object appInfo) { return ((AppStats) appInfo).getDate(); } @Override public boolean isHeilightValue(Object current, Object previouse) { if (previouse == null) { return false; } AppStats cstats = ((AppStats) current); if (cstats.getVersionCode() == 0) { return false; } if (cstats.getVersionCode() < ((AppStats) previouse).getVersionCode()) { return true; } return false; } } }