package com.num.activities;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
import org.json.JSONObject;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.google.android.apps.analytics.easytracking.TrackedActivity;
import com.num.Values;
import com.num.activities.RunActivity.MeasurementListener;
import com.num.helpers.GAnalytics;
import com.num.helpers.TaskHelper;
import com.num.helpers.ThreadPoolHelper;
import com.num.listeners.BaseResponseListener;
import com.num.models.Battery;
import com.num.models.Device;
import com.num.models.GPS;
import com.num.models.LastMile;
import com.num.models.Link;
import com.num.models.Loss;
import com.num.models.MainModel;
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.Traceroute;
import com.num.models.TracerouteEntry;
import com.num.models.Usage;
import com.num.models.WarmupExperiment;
import com.num.models.Wifi;
import com.num.tasks.AllPingTask;
import com.num.tasks.MeasurementTask;
import com.num.ui.UIUtil;
import com.num.ui.adapter.ItemAdapter;
import com.num.R;
public class FullDisplayActivity extends TrackedActivity {
Values session;
TextView title;
ListView listview;
//ImageView imageview;
TextView description;
Activity activity;
private ThreadPoolHelper serverhelper;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
activity = this;
session = (Values) this.getApplicationContext();
Bundle extras = getIntent().getExtras();
String key = extras.getString("model_key");
serverhelper = new ThreadPoolHelper(5,10);
serverhelper.execute(TaskHelper.getTask(key, activity, new MeasurementListener()));
GAnalytics.log(GAnalytics.ACTION, "Click",key);
showLoadPage();
}
public void showLoadPage() {
setContentView(R.layout.load_screen);
}
public void showDisplayPage() {
setContentView(R.layout.item_view_full);
title = (TextView) findViewById(R.id.title);
listview = (ListView) findViewById(R.id.listview);
description = (TextView) findViewById(R.id.description);
}
@Override
public void finish(){
super.finish();
try{
serverhelper.shutdown();
} catch (Exception e) { }
}
public class MeasurementListener extends BaseResponseListener{
public void onCompletePing(Ping response) {
//onCompleteOutput(response);
}
public void onCompleteDevice(Device response) {
onCompleteOutput(response);
}
public void onCompleteMeasurement(Measurement response) {
//LoadBarHandler.sendEmptyMessage(0);
onCompleteOutput(response);
}
public void onCompleteOutput(MainModel model){
Message msg2=Message.obtain(UIHandler, 0, model);
UIHandler.sendMessage(msg2);
}
public void onComplete(String response) {
}
public void onUpdateProgress(int val){
//Message msg=Message.obtain(progressBarHandler, 0, val);
//progressBarHandler.sendMessage(msg);
}
public void onCompleteGPS(GPS response) {
onCompleteOutput(response);
}
public void makeToast(String text) {
//Message msg=Message.obtain(toastHandler, 0, text);
//toastHandler.sendMessage(msg);
}
public void onCompleteSignal(String signalStrength) {
}
public void onCompleteUsage(Usage response) {
System.out.println("usage completed");
onCompleteOutput(response);
}
public void onCompleteThroughput(Throughput response) {
onCompleteOutput(response);
}
public void onCompleteWifi(Wifi response) {
onCompleteOutput(response);
}
public void onCompleteBattery(Battery response) {
onCompleteOutput(response);
}
public void onCompleteNetwork(Network response) {
onCompleteOutput(response);
}
public void onCompleteSIM(Sim response) {
//onCompleteOutput(response);
}
public void onCompleteSummary(JSONObject Object) {
// TODO Auto-generated method stub
}
public void onFail(String response) {
// TODO Auto-generated method stub
}
public void onCompleteLastMile(LastMile lastMile) {
// TODO Auto-generated method stub
}
public void onUpdateUpLink(Link link) {
// TODO Auto-generated method stub
}
public void onUpdateDownLink(Link link) {
// TODO Auto-generated method stub
}
public void onUpdateThroughput(Throughput throughput) {
onCompleteOutput(throughput);
}
public void onCompleteTraceroute(Traceroute traceroute) {
onCompleteOutput(traceroute);
}
public void onCompleteTracerouteHop(TracerouteEntry traceroute) {
// TODO Auto-generated method stub
}
public void onCompleteWarmupExperiment(WarmupExperiment experiment) {
// TODO Auto-generated method stub
}
public void onCompleteLoss(Loss loss) {
// TODO Auto-generated method stub
}
}
private Handler UIHandler = new Handler(){
public void handleMessage(Message msg) {
showDisplayPage();
MainModel item = (MainModel)msg.obj;
title.setText(item.getTitle().toUpperCase());
description.setText(item.getDescription());
//imageview.setImageResource(item.getIcon());
ArrayList<Row> cells = item.getDisplayData(activity);
if(cells.size()!=0){
ItemAdapter itemadapter = new ItemAdapter(activity,cells);
for(Row cell: cells)
itemadapter.add(cell);
listview.setAdapter(itemadapter);
itemadapter.notifyDataSetChanged();
UIUtil.setListViewHeightBasedOnChildren(listview,itemadapter);
}
}
};
}