package au.id.teda.broadband.usage.chart; import org.achartengine.ChartFactory; import org.achartengine.model.CategorySeries; import org.achartengine.renderer.DefaultRenderer; import android.content.Context; import android.graphics.Color; import android.view.View; public class PieChart extends ChartBuilder { // Static tag strings for logging information and debug //private static final String DEBUG_TAG = BaseActivity.DEBUG_TAG; // Context for class private Context mContext; private long mUploads; private long mDownloads; private long mRemaining; /** * PieChart constructor * @param context */ public PieChart(Context context) { super(context); mContext = context; } /** * Public method for returning pie chart view * @return pie chart view */ public View getPieChartView() { return ChartFactory.getPieChartView(mContext, getPieChartDataSet(), getPieChartRenderer()); } public void setData(long uploads, long downloads, long quota){ mUploads = uploads; mDownloads = downloads; mRemaining = ( quota - uploads - downloads ); } /** * Method for getting pie chart data set * @return pie chart category series */ protected CategorySeries getPieChartDataSet() { String UPLOADS_SERIES = "Uploads"; String DOWNLOADS_SERIES = "Downloads"; String REMAINING_SERIES = "Remaining"; String CHART_TITLE = "Upload / Download"; // Category series object and intialise CategorySeries series = new CategorySeries(CHART_TITLE); // Add data to category series series.add(DOWNLOADS_SERIES, mDownloads); series.add(UPLOADS_SERIES, mUploads); series.add(REMAINING_SERIES, mRemaining); // Return category series return series; } /** * Render (display) settings for pie chart * @return pie chart renderer */ private DefaultRenderer getPieChartRenderer() { int[] colors = new int[] { getPeakColor(), getOffpeakColor(), getUploadColor()}; DefaultRenderer renderer = buildCategoryRenderer(colors); renderer.setApplyBackgroundColor(true); renderer.setBackgroundColor(Color.TRANSPARENT); renderer.setAxesColor(getBackgroundColor()); renderer.setPanEnabled(false); renderer.setShowLabels(false); renderer.setShowLegend(false); renderer.setAntialiasing(true); return renderer; } }