PlayGroundActivity.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. package de.tudarmstadt.informatik.hostage.ui;
  2. import java.math.BigInteger;
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.Random;
  6. import android.app.Activity;
  7. import android.content.Intent;
  8. import android.os.Bundle;
  9. import android.view.Menu;
  10. import android.view.View;
  11. import android.widget.TextView;
  12. import de.tudarmstadt.informatik.hostage.R;
  13. import de.tudarmstadt.informatik.hostage.logging.DatabaseHandler;
  14. import de.tudarmstadt.informatik.hostage.sync.BluetoothSync;
  15. import de.tudarmstadt.informatik.hostage.sync.NFCSync;
  16. public class PlayGroundActivity extends Activity{
  17. BluetoothSync bs;
  18. @Override
  19. protected void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.activity_playground);
  22. bs = new BluetoothSync(this);
  23. setNetworkInfoText();
  24. }
  25. @Override
  26. public boolean onCreateOptionsMenu(Menu menu) {
  27. getMenuInflater().inflate(R.menu.main, menu);
  28. return true;
  29. }
  30. private void setNetworkInfoText(){
  31. DatabaseHandler dbh = new DatabaseHandler(this);
  32. TextView bssids = (TextView) findViewById(R.id.textView1);
  33. String text = "";
  34. ArrayList<HashMap<String, Object>> netInfo = dbh.getNetworkInformation();
  35. for(HashMap<String, Object> network : netInfo){
  36. text = text + (String) network.get(DatabaseHandler.KEY_BSSID) + "\n"
  37. + (String) network.get(DatabaseHandler.KEY_SSID) + "\n"
  38. + (double)(Double) network.get(DatabaseHandler.KEY_LATITUDE) + "\n"
  39. + (double)(Double) network.get(DatabaseHandler.KEY_LONGITUDE) + "\n"
  40. + (float)(Float) network.get(DatabaseHandler.KEY_ACCURACY) + "\n"
  41. + (long) (Long) network.get(DatabaseHandler.KEY_TIME) + "\n\n";
  42. }
  43. bssids.setText(text);
  44. }
  45. public void syncData(View view){
  46. bs.syncData();
  47. }
  48. public void startNFC(View view){
  49. startActivity(new Intent(this, NFCSync.class));
  50. }
  51. public void createNetworkData(View view){
  52. Random rnd = new Random();
  53. ArrayList<HashMap<String, Object>> fakeNetInfo = new ArrayList<HashMap<String, Object>>();
  54. for(int i = 0; i < 25; i++){
  55. HashMap<String, Object> network = new HashMap<String, Object>();
  56. network.put(DatabaseHandler.KEY_BSSID, createRandomBSSID());
  57. network.put(DatabaseHandler.KEY_SSID, new BigInteger(130, rnd).toString(32));
  58. network.put(DatabaseHandler.KEY_LATITUDE, rnd.nextDouble() * 360);
  59. network.put(DatabaseHandler.KEY_LONGITUDE, rnd.nextDouble() * 360);
  60. network.put(DatabaseHandler.KEY_ACCURACY, rnd.nextFloat());
  61. network.put(DatabaseHandler.KEY_TIME, System.currentTimeMillis());
  62. fakeNetInfo.add(network);
  63. }
  64. setNetworkInfoText();
  65. new DatabaseHandler(this).updateNetworkInformation(fakeNetInfo);
  66. }
  67. private String createRandomBSSID(){
  68. Random rnd = new Random();
  69. char[] symbols = new char[16];
  70. for (int idx = 0; idx < 10; ++idx)
  71. symbols[idx] = (char) ('0' + idx);
  72. for (int idx = 10; idx < 16; ++idx)
  73. symbols[idx] = (char) ('a' + idx - 10);
  74. char[] buf = new char[17];
  75. for(int i = 0; i < 18; i += 3){
  76. buf[i] = symbols[rnd.nextInt(symbols.length)];
  77. buf[i + 1] = symbols[rnd.nextInt(symbols.length)];
  78. if(i < 15){
  79. buf[i + 2] = ':';
  80. }
  81. }
  82. return new String(buf);
  83. }
  84. }