package com.num.activities; import java.util.ArrayList; import java.util.HashMap; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Intent; 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.widget.Button; import android.widget.LinearLayout; import android.widget.ListView; 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.database.datasource.ApplicationDataSource; import com.num.database.datasource.LatencyDataSource; import com.num.database.mapping.ApplicationMapping; import com.num.database.mapping.LatencyMapping; import com.num.helpers.GAnalytics; import com.num.helpers.ServiceHelper; import com.num.helpers.ThreadPoolHelper; import com.num.listeners.BaseResponseListener; import com.num.listeners.FakeListener; import com.num.models.ActivityItem; import com.num.models.Battery; import com.num.models.ClientLog; import com.num.models.Device; import com.num.models.GPS; 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.MeasurementTask; import com.num.tasks.SignalStrengthTask; import com.num.tasks.SummaryTask; import com.num.tasks.ValuesTask; import com.num.ui.UIUtil; import com.num.ui.adapter.ItemAdapter; import com.num.utils.DeviceUtil; import com.num.R; public class AnalysisActivity extends TrackedActivity { private ListView listview; private TextView apptext; private TextView devicetext; // private TextView tv; private Activity activity; private ThreadPoolHelper serverhelper; private Values session = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.measurement_screen); activity = this; session = (Values) getApplicationContext(); session.loadValues(); listview = (ListView) findViewById(R.id.listview); serverhelper = new ThreadPoolHelper(10, 30); serverhelper.execute(new ValuesTask(this, new FakeListener())); ServiceHelper.processRestartService(this); ArrayList<Row> cells = new ArrayList<Row>(); cells.add(new Row(new ActivityItem("Speed Test", "Get Down/Up speed, 40 sec", new Handler() { public void handleMessage(Message msg) { Intent myIntent = new Intent(activity, FullDisplayActivity.class); myIntent.putExtra("model_key", "throughput"); myIntent.putExtra("time", "45"); startActivity(myIntent); GAnalytics .log(GAnalytics.ACTION, "Click", "Speed Test"); } }, R.drawable.throughput))); if (session.DEBUG == true) { cells.add(new Row(new ActivityItem("Application Usage", "Get data breakdown by app", new Handler() { public void handleMessage(Message msg) { Intent myIntent = new Intent(activity, FullDisplayActivity.class); myIntent.putExtra("model_key", "usage"); startActivity(myIntent); } }, R.drawable.usage))); } cells.add(new Row(new ActivityItem("Latency", "Get time to reach server, 5 sec", new Handler() { public void handleMessage(Message msg) { Intent myIntent = new Intent(activity, FullDisplayActivity.class); myIntent.putExtra("model_key", "latency"); myIntent.putExtra("time", "15"); startActivity(myIntent); } }, R.drawable.stopwatch))); cells.add(new Row(new ActivityItem("Configure", "Change preference", new Handler() { public void handleMessage(Message msg) { Intent myIntent = new Intent(activity, UserFormActivity.class); myIntent.putExtra("force", true); startActivity(myIntent); } }, R.drawable.configure))); cells.add(new Row(new ActivityItem("About Us", "Read about this project", new Handler() { public void handleMessage(Message msg) { Intent myIntent = new Intent(activity, AboutUsActivity.class); startActivity(myIntent); } }, R.drawable.team))); if (session.DEBUG == true) { cells.add(new Row(new ActivityItem("Graphing", "Quick Graph", new Handler() { public void handleMessage(Message msg) { DatabasePicker picker = session .createPicker(new LatencyDataSource( activity)); picker.setTitle("Latency Graph"); picker.filterBy(LatencyMapping.COLUMN_TYPE, "ping", "Type"); picker.filterBy(LatencyMapping.COLUMN_DSTIP, "gsoogle", "Destination"); picker.filterBy(LatencyMapping.COLUMN_MEASUREMENT, "average", "Metric"); picker.filterBy(LatencyMapping.COLUMN_CONNECTION, DeviceUtil.getNetworkInfo(activity), "Connection"); Intent myIntent = new Intent(activity, GraphActivity.class); activity.startActivity(myIntent); } }, R.drawable.measure))); } if (session.DEBUG == true) { cells.add(new Row(new ActivityItem("TraceRoute", "Trace hops to Georgia Tech server", new Handler() { public void handleMessage(Message msg) { Intent myIntent = new Intent(activity, FullDisplayActivity.class); myIntent.putExtra("model_key", "traceroute"); startActivity(myIntent); } }, R.drawable.team))); } if (session.DEBUG == true) { cells.add(new Row(new ActivityItem("Signal Strength", "Signal Strength debugging", new Handler() { public void handleMessage(Message msg) { ThreadPoolHelper serverhelper = new ThreadPoolHelper( session.THREADPOOL_MAX_SIZE, session.THREADPOOL_KEEPALIVE_SEC); serverhelper.executeOnUIThread(activity, new SignalStrengthTask(activity, new HashMap<String, String>(), new FakeListener())); } }, R.drawable.team))); } ItemAdapter itemadapter = new ItemAdapter(activity, cells); for (Row cell : cells) itemadapter.add(cell); listview.setAdapter(itemadapter); itemadapter.notifyDataSetChanged(); UIUtil.setListViewHeightBasedOnChildren(listview, itemadapter); } }