ViewLogTable.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. package de.tudarmstadt.informatik.hostage.ui;
  2. import java.text.DateFormat;
  3. import java.text.SimpleDateFormat;
  4. import java.util.ArrayList;
  5. import java.util.Date;
  6. import java.util.HashMap;
  7. import android.annotation.SuppressLint;
  8. import android.app.Activity;
  9. import android.os.Bundle;
  10. import android.view.View;
  11. import android.widget.AdapterView;
  12. import android.widget.ListAdapter;
  13. import android.widget.ListView;
  14. import android.widget.SimpleAdapter;
  15. import android.widget.Toast;
  16. import de.tudarmstadt.informatik.hostage.R;
  17. import de.tudarmstadt.informatik.hostage.logging.DatabaseHandler;
  18. import de.tudarmstadt.informatik.hostage.logging.Record;
  19. /**
  20. * Creates a simple log view. Shows the Information for every attack. The format ist defined in {@link Record#toString(int)}.
  21. * @author Lars Pandikow
  22. *
  23. */
  24. public class ViewLogTable extends Activity{
  25. DatabaseHandler dbh;
  26. @Override
  27. protected void onCreate(Bundle savedInstanceState) {
  28. super.onCreate(savedInstanceState);
  29. dbh = new DatabaseHandler(getBaseContext());
  30. setContentView(R.layout.activity_loglist);
  31. // StringBuffer log = new StringBuffer();
  32. // //Create a log entry for every attack in the Database
  33. // for(Record record: dbh.getAllReceivedRecordsOfEachAttack()) {
  34. // log.append(record.toString(0));
  35. // }
  36. // ScrollView scroll = new ScrollView(this);
  37. // TextView text = new TextView(getApplicationContext());
  38. // text.setText(log);
  39. // text.setTextAppearance(this, android.R.style.TextAppearance_Medium);
  40. // scroll.addView(text);
  41. populateListViewFromDB();
  42. registerListClickCallback();
  43. }
  44. private void populateListViewFromDB() {
  45. ListView mylist = (ListView) findViewById(R.id.loglistview);
  46. ArrayList<HashMap<String, String>> Items = new ArrayList<HashMap<String, String>>();
  47. ArrayList<Record> data = dbh.getAllRecords();
  48. for (Record val : data) {
  49. HashMap<String, String> map = new HashMap<String, String>();
  50. map.put(this.getString(R.string.RecordBSSID), val.getBSSID() );
  51. map.put(this.getString(R.string.RecordSSID), val.getSSID());
  52. map.put(this.getString(R.string.RecordProtocol), val.getProtocol());
  53. map.put(this.getString(R.string.RecordTimestamp), this.getDateAsString(val.getTimestamp()));
  54. Items.add(map);
  55. }
  56. // Adding Items to ListView
  57. ListAdapter adapter = new SimpleAdapter(this, Items,
  58. R.layout.loglist_row,new String[] { this.getString(R.string.RecordBSSID), this.getString(R.string.RecordSSID), this.getString(R.string.RecordProtocol), this.getString(R.string.RecordTimestamp) },
  59. new int[] {R.id.RecordTextFieldBSSID, R.id.RecordTextFieldSSID, R.id.RecordTextFieldProtocol, R.id.RecordTextFieldTimestamp });
  60. mylist.setAdapter(adapter);
  61. }
  62. @SuppressLint("SimpleDateFormat")
  63. private String getDateAsString(long timeStamp){
  64. try{
  65. DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
  66. Date netDate = (new Date(timeStamp));
  67. return sdf.format(netDate);
  68. }
  69. catch(Exception ex){
  70. return "xx";
  71. }
  72. }
  73. private void registerListClickCallback() {
  74. ListView mylist = (ListView) findViewById(R.id.loglistview);
  75. mylist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  76. public void onItemClick(AdapterView<?> parent, View viewClicked, int position,
  77. long idInDB) {
  78. DatabaseHandler dbh = new DatabaseHandler(getBaseContext());
  79. Record rec = dbh.getRecord((int) idInDB);
  80. String message = createInformationStringFromRecord(rec);
  81. Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show();
  82. }
  83. private String createInformationStringFromRecord(Record rec){
  84. String message = "id: " + rec.getId() + "\n" +
  85. "attack_id: " + rec.getAttack_id() +"\n" +
  86. "protocol: " + rec.getProtocol() +"\n" +
  87. "type: " + rec.getType() + "\n" +
  88. "externalIP: " + rec.getExternalIP() +"\n" +
  89. "localIP: " + rec.getLocalIP() +"\n" +
  90. "local port: " + rec.getLocalPort() +"\n" +
  91. "remoteIP: " + rec.getRemoteIP() +"\n" +
  92. "BSSID: " + rec.getBSSID() + "\n" +
  93. "SSID: " + rec.getSSID() +"\n" +
  94. "latitude: " + rec.getLatitude() +"\n" +
  95. "longitude: " + rec.getLongitude() + "\n" +
  96. "accuracy: " + rec.getAccuracy() +"\n" +
  97. "packet: " + rec.getPacket() + "\n" +
  98. getDateAsString(rec.getTimestamp()) +
  99. "";
  100. return message;
  101. }
  102. @SuppressLint("SimpleDateFormat")
  103. private String getDateAsString(long timeStamp){
  104. try{
  105. DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
  106. Date netDate = (new Date(timeStamp));
  107. return sdf.format(netDate);
  108. }
  109. catch(Exception ex){
  110. return "xx";
  111. }
  112. }
  113. });
  114. }
  115. // @Override
  116. // public boolean onCreateOptionsMenu(Menu menu)
  117. // {
  118. // MenuInflater inflater = getMenuInflater();
  119. // inflater.inflate(R.menu.main_menu, menu);
  120. // return true;
  121. // }
  122. // @Override
  123. // public boolean onOptionsItemSelected(MenuItem item)
  124. // {
  125. // switch (item.getItemId())
  126. // {
  127. // case R.id.home:
  128. // ListviewActivity.this.finish();
  129. // return true;
  130. // case R.id.about:
  131. // Toast.makeText(getApplicationContext(), "This is collection and is created by amdel corporation",
  132. // Toast.LENGTH_LONG).show();
  133. // return true;
  134. // case R.id.exit:
  135. // finish();
  136. // System.exit(0);
  137. // return true;
  138. // default:
  139. // return super.onOptionsItemSelected(item);
  140. // }
  141. // }
  142. }