package com.num.activities; import java.util.ArrayList; import java.util.Date; import org.achartengine.ChartFactory; import org.achartengine.GraphicalView; import org.achartengine.chart.PointStyle; import org.achartengine.chart.TimeChart; import org.achartengine.model.TimeSeries; import org.achartengine.model.XYMultipleSeriesDataset; import org.achartengine.model.XYSeries; import org.achartengine.renderer.XYMultipleSeriesRenderer; import org.achartengine.renderer.XYSeriesRenderer; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.graphics.Typeface; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; import com.google.android.apps.analytics.easytracking.TrackedActivity; import com.num.Values; import com.num.database.DatabasePicker; import com.num.graph.ChartView; import com.num.graph.TimelineView; import com.num.helpers.ServiceHelper; import com.num.helpers.ThreadPoolHelper; import com.num.listeners.BaseResponseListener; import com.num.listeners.FakeListener; import com.num.models.Battery; import com.num.models.Device; import com.num.models.GPS; import com.num.models.GraphData; import com.num.models.GraphPoint; import com.num.models.Measurement; import com.num.models.Network; import com.num.models.Ping; import com.num.models.Row; import com.num.models.Sim; import com.num.models.Throughput; import com.num.models.Usage; import com.num.models.Wifi; import com.num.tasks.SummaryTask; import com.num.tasks.ValuesTask; import com.num.ui.UIUtil; import com.num.ui.adapter.ItemAdapter; import com.num.R; public class GraphActivity extends TrackedActivity { Values values; DatabasePicker picker; private ListView listview; private ChartView chart; private ProgressBar load; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.graph_view); values = (Values) this.getApplicationContext(); picker = values.getPicker(); picker.setGraphUpdateHandler(updateGraphHandler); } @Override public void onStart() { super.onStart(); TextView title = (TextView) this.findViewById(R.id.title); if (picker.getChartType().equals("area")) chart = (TimelineView) this.findViewById(R.id.timeline); else if (picker.getChartType().equals("bar")){ chart = (ChartView) this.findViewById(R.id.barchart); } load = (ProgressBar) this.findViewById(R.id.load); listview = (ListView) findViewById(R.id.listview); chart.setPicker(picker); title.setText(picker.getTitle()); chart.constructGraph(); //updateGraphHandler.sendEmptyMessage(0); populatePicker(); } public Handler updateGraphHandler = new Handler() { public void handleMessage(Message msg) { loadStart.sendEmptyMessage(0); chart.updateGraph(); loadEnd.sendEmptyMessage(0); } }; public Handler loadStart = new Handler() { public void handleMessage(Message msg) { load.setVisibility(View.VISIBLE); } }; public Handler loadEnd = new Handler() { public void handleMessage(Message msg) { load.setVisibility(View.VISIBLE); } }; private void populatePicker() { ArrayList<Row> cells = picker.getRows(); if (cells.size() != 0) { ItemAdapter itemadapter = new ItemAdapter(this, cells); for (Row cell : cells) itemadapter.add(cell); listview.setAdapter(itemadapter); itemadapter.notifyDataSetChanged(); UIUtil.setListViewHeightBasedOnChildren(listview, itemadapter); } } }