package se.nekotronic.pinger; import se.nekotronic.pinger.R; import android.os.Bundle; import android.app.Activity; import android.text.format.Time; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class PingActivity extends Activity implements OnClickListener { private TextView output_area; private EditText address_field; private Button connect_button; private Button ping_button; private Button disconnect_button; private PingThread ping_thread = null; public static final String DEFAULT_HOST = "130.243.124.198"; public String host; public static final int PORT = 2003; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ping); output_area = (TextView)findViewById(R.id.output_area); address_field = (EditText)findViewById(R.id.address_field); address_field.setText(DEFAULT_HOST); connect_button = (Button)findViewById(R.id.connect_button); connect_button.setOnClickListener(this); ping_button = (Button)findViewById(R.id.ping_button); ping_button.setOnClickListener(this); disconnect_button = (Button)findViewById(R.id.disconnect_button); disconnect_button.setOnClickListener(this); output_area.setText(""); print("AndroidPinger: Appen startar."); } @Override protected void onPause() { super.onPause(); if (ping_thread != null) { ping_thread.please_stop(); ping_thread = null; } } @Override public void onClick(View view) { Log.d("*** ReadyPinger", "Button clicked: view = " + view.toString() + "\n"); if (view == connect_button) { if (ping_thread != null) { warning("Already connected."); } else { host = address_field.getText().toString(); ping_thread = new PingThread(this, host, PORT); ping_thread.start(); } } else if (view == ping_button) { if (ping_thread == null) warning("Not connected."); else ping_thread.send("PING"); } else if (view == disconnect_button) { if (ping_thread == null) warning("Not connected."); else ping_thread.please_stop(); ping_thread = null; } } public void done() { ping_thread = null; } public void print(String message) { Log.d("*** ReadyPinger", "message: " + message); Time now = new Time(); now.setToNow(); String timeString = now.format("%H:%M:%S"); final String line = timeString + ": " + message + "\n"; output_area.post(new Runnable() { @Override public void run() { // output_area.setText(line + output_area.getText()); output_area.setText(output_area.getText() + line); output_area.invalidate(); } }); } // print public void warning(String message) { print("Warning! " + message); } } // PingActivity