PlayGroundActivity.java 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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.persistence.HostageDBContract;
  14. import de.tudarmstadt.informatik.hostage.persistence.HostageDBOpenHelper;
  15. import de.tudarmstadt.informatik.hostage.sync.BluetoothSync;
  16. import de.tudarmstadt.informatik.hostage.sync.NFCSync;
  17. public class PlayGroundActivity extends Activity {
  18. BluetoothSync bs;
  19. public void createNetworkData(View view) {
  20. Random rnd = new Random();
  21. ArrayList<HashMap<String, Object>> fakeNetInfo = new ArrayList<HashMap<String, Object>>();
  22. for (int i = 0; i < 25; i++) {
  23. HashMap<String, Object> network = new HashMap<String, Object>();
  24. network.put(HostageDBContract.NetworkEntry.COLUMN_NAME_BSSID, createRandomBSSID());
  25. network.put(HostageDBContract.NetworkEntry.COLUMN_NAME_SSID, new BigInteger(130, rnd).toString(32));
  26. network.put(HostageDBContract.NetworkEntry.COLUMN_NAME_LATITUDE, rnd.nextDouble() * 360);
  27. network.put(HostageDBContract.NetworkEntry.COLUMN_NAME_LONGITUDE, rnd.nextDouble() * 360);
  28. network.put(HostageDBContract.NetworkEntry.COLUMN_NAME_ACCURACY, rnd.nextFloat());
  29. network.put(HostageDBContract.NetworkEntry.COLUMN_NAME_GEO_TIMESTAMP, System.currentTimeMillis());
  30. fakeNetInfo.add(network);
  31. }
  32. setNetworkInfoText();
  33. new HostageDBOpenHelper(this).updateNetworkInformation(fakeNetInfo);
  34. }
  35. @Override
  36. public boolean onCreateOptionsMenu(Menu menu) {
  37. getMenuInflater().inflate(R.menu.main, menu);
  38. return true;
  39. }
  40. public void startNFC(View view) {
  41. startActivity(new Intent(this, NFCSync.class));
  42. }
  43. public void syncData(View view) {
  44. bs.syncData();
  45. }
  46. private String createRandomBSSID() {
  47. Random rnd = new Random();
  48. char[] symbols = new char[16];
  49. for (int idx = 0; idx < 10; ++idx)
  50. symbols[idx] = (char) ('0' + idx);
  51. for (int idx = 10; idx < 16; ++idx)
  52. symbols[idx] = (char) ('a' + idx - 10);
  53. char[] buf = new char[17];
  54. for (int i = 0; i < 18; i += 3) {
  55. buf[i] = symbols[rnd.nextInt(symbols.length)];
  56. buf[i + 1] = symbols[rnd.nextInt(symbols.length)];
  57. if (i < 15) {
  58. buf[i + 2] = ':';
  59. }
  60. }
  61. return new String(buf);
  62. }
  63. private void setNetworkInfoText() {
  64. HostageDBOpenHelper dbh = new HostageDBOpenHelper(this);
  65. TextView bssids = (TextView) findViewById(R.id.textView1);
  66. String text = "";
  67. ArrayList<HashMap<String, Object>> netInfo = dbh.getNetworkInformation();
  68. for (HashMap<String, Object> network : netInfo) {
  69. text = text + (String) network.get(HostageDBContract.NetworkEntry.COLUMN_NAME_BSSID) + "\n"
  70. + (String) network.get(HostageDBContract.NetworkEntry.COLUMN_NAME_SSID) + "\n"
  71. + network.get(HostageDBContract.NetworkEntry.COLUMN_NAME_LATITUDE) + "\n"
  72. + network.get(HostageDBContract.NetworkEntry.COLUMN_NAME_LONGITUDE) + "\n"
  73. + network.get(HostageDBContract.NetworkEntry.COLUMN_NAME_ACCURACY) + "\n"
  74. + network.get(HostageDBContract.NetworkEntry.COLUMN_NAME_GEO_TIMESTAMP) + "\n\n";
  75. }
  76. bssids.setText(text);
  77. }
  78. @Override
  79. protected void onCreate(Bundle savedInstanceState) {
  80. super.onCreate(savedInstanceState);
  81. setContentView(R.layout.activity_playground);
  82. bs = new BluetoothSync(this);
  83. setNetworkInfoText();
  84. }
  85. }