Projektarbeit
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MainActivity.java 8.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. package de.edotzlaff.schockwelle;
  2. import androidx.annotation.NonNull;
  3. import androidx.fragment.app.FragmentActivity;
  4. import android.app.Dialog;
  5. import android.content.Intent;
  6. import android.net.wifi.WifiManager;
  7. import android.os.Bundle;
  8. import android.provider.Settings;
  9. import android.util.Log;
  10. import android.view.View;
  11. import android.widget.Button;
  12. import android.widget.Toast;
  13. import com.google.android.gms.common.ConnectionResult;
  14. import com.google.android.gms.common.GoogleApiAvailability;
  15. import com.google.android.gms.tasks.OnCompleteListener;
  16. import com.google.android.gms.tasks.Task;
  17. import com.google.firebase.database.DataSnapshot;
  18. import com.google.firebase.database.DatabaseReference;
  19. import com.google.firebase.database.FirebaseDatabase;
  20. public class MainActivity extends FragmentActivity {
  21. private static final String TAG = "MainActivity";
  22. private static final int ERROR_DIALOG_REQUEST = 9001;
  23. private DatabaseReference mDatenbank;
  24. Datenbank db = new Datenbank();
  25. @Override
  26. protected void onCreate(Bundle savedInstanceState) {
  27. super.onCreate(savedInstanceState);
  28. setContentView(R.layout.activity_main);
  29. if (isServiceOK()){
  30. //Für Dantenbank
  31. db.setMyWaveSpeed(500);
  32. db.setMyAndroidID(Settings.Secure.getString(this.getContentResolver(), Settings.Secure.ANDROID_ID));
  33. WifiManager wm = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
  34. int ip = wm.getConnectionInfo().getIpAddress();
  35. db.setMyIPadress(String.format("%d.%d.%d.%d",(ip & 0xff),(ip >> 8 & 0xff),(ip >> 16 & 0xff), (ip >> 24 & 0xff)));
  36. db.getDatafromDBnoListener();
  37. init();
  38. }
  39. }
  40. private void init(){
  41. Button btnEarthquake = (Button) findViewById(R.id.btnEarthquake);
  42. Button btnSensor = (Button) findViewById(R.id.btnSensor);
  43. Button btnMuster = (Button) findViewById(R.id.buttonDatenBankMuster);
  44. Button btnLeer = (Button) findViewById(R.id.buttonDatenBankLeeren);
  45. Button btnReset = (Button) findViewById(R.id.buttonReset);
  46. btnEarthquake.setEnabled(true);
  47. btnEarthquake.setOnClickListener(new View.OnClickListener() {
  48. @Override
  49. public void onClick(View v) {
  50. Intent intent = new Intent(MainActivity.this, EarthquakeMapsActivity.class);
  51. btnEarthquake.setEnabled(true);
  52. btnSensor.setEnabled(true);
  53. startActivity(intent);
  54. }
  55. });
  56. btnSensor.setEnabled(true);
  57. btnSensor.setOnClickListener(new View.OnClickListener() {
  58. @Override
  59. public void onClick(View v) {
  60. Intent intent = new Intent(MainActivity.this, SensorMapsActivity.class);
  61. btnSensor.setEnabled(true);
  62. btnEarthquake.setEnabled(true);
  63. startActivity(intent);
  64. }
  65. });
  66. btnMuster.setOnClickListener(new View.OnClickListener() {
  67. @Override
  68. public void onClick(View v) {
  69. btnEarthquake.setEnabled(true);
  70. btnSensor.setEnabled(true);
  71. btnLeer.setEnabled(true);
  72. btnMuster.setEnabled(true);
  73. btnReset.setEnabled(true);
  74. db.setNonNativeCaseInDB();
  75. //deviceInitDataBase(); //TODO: ARON
  76. }
  77. });
  78. btnLeer.setOnClickListener(new View.OnClickListener() {
  79. @Override
  80. public void onClick(View v) {
  81. btnEarthquake.setEnabled(true);
  82. btnSensor.setEnabled(true);
  83. btnMuster.setEnabled(false);
  84. btnReset.setEnabled(true);
  85. btnLeer.setEnabled(true);
  86. //datenBankLeeren(); //TODO: ARON
  87. db.setEmptyDataInDBcompletlyForNativeUse();
  88. System.out.println(db.getCommand());
  89. }
  90. });
  91. btnReset.setEnabled(true);
  92. btnReset.setOnClickListener(new View.OnClickListener() {
  93. @Override
  94. public void onClick(View v) {
  95. //getDataBaseValuesNoListener(); //TODO ARON
  96. btnMuster.setEnabled(true);
  97. btnLeer.setEnabled(true);
  98. btnEarthquake.setEnabled(true);
  99. btnSensor.setEnabled(true);
  100. }
  101. });
  102. }
  103. public boolean isServiceOK(){
  104. Log.d(TAG, "isServicesOK(): checking google services version");
  105. int available = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(MainActivity.this);
  106. if (available== ConnectionResult.SUCCESS){
  107. Log.d(TAG,"isServicesOK: Google Play Services is working");
  108. return true;
  109. }
  110. else if (GoogleApiAvailability.getInstance().isUserResolvableError(available)){
  111. Log.d(TAG, "isServicesOK(): an error occured but we can fix it");
  112. Dialog dialog = GoogleApiAvailability.getInstance().getErrorDialog(MainActivity.this, available, ERROR_DIALOG_REQUEST);
  113. dialog.show();
  114. }
  115. else {
  116. Toast.makeText(this, "You can`t make map request", Toast.LENGTH_SHORT).show();
  117. }
  118. return false;
  119. }
  120. public void deviceInitDataBase()
  121. {
  122. mDatenbank = FirebaseDatabase.getInstance().getReference();
  123. Devices d1 = new Devices("","","",49.58967957913626,11.011387124069765,false,false,0,1000,10); //Erlangen 49.58967957913626, 11.011387124069765
  124. Devices d2 = new Devices("","","",48.7560280895443,11.425157702952347,false,false,0,1000,10); //Ingolstadt 48.7560280895443, 11.425157702952347
  125. Devices d3 = new Devices("","","",48.16958655466396,11.617418429524394,false,false,0,1000,10); //München 48.16958655466396, 11.617418429524394
  126. Devices d4 = new Devices("","","",45.55620112204013,12.342516140205387,false,false,0,1000,10); //Venedig 45.55620112204013, 12.342516140205387
  127. Devices d5 = new Devices("","","",41.9204784730154,12.651055829215638,false,false,0,1000,10); //Rom 41.9204784730154, 12.651055829215638
  128. mDatenbank.child("overviewnodes").child("IDG1").setValue(d1);
  129. mDatenbank.child("overviewnodes").child("IDG2").setValue(d2);
  130. mDatenbank.child("overviewnodes").child("IDG3").setValue(d3);
  131. mDatenbank.child("overviewnodes").child("IDG4").setValue(d4);
  132. mDatenbank.child("overviewnodes").child("IDG5").setValue(d4);
  133. mDatenbank.child("overviewnodes").child("IDG5").setValue(d5);
  134. }
  135. public void getDataBaseValuesNoListener()
  136. {
  137. mDatenbank = FirebaseDatabase.getInstance().getReference();
  138. mDatenbank.child("overviewnodes").get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
  139. @Override
  140. public void onComplete(@NonNull Task<DataSnapshot> task) {
  141. if (!task.isSuccessful()) {
  142. System.out.println("Error getting data: " + task.getException());
  143. }
  144. else {
  145. testProcess(task.getResult());
  146. }
  147. }
  148. });
  149. }
  150. public void datenBankLeeren()
  151. {
  152. mDatenbank = FirebaseDatabase.getInstance().getReference();
  153. for (int i = 1; i<=5; i++)
  154. {
  155. mDatenbank.child("overviewnodes").child("IDG" + i).child("a_androidid").setValue("");
  156. mDatenbank.child("overviewnodes").child("IDG" + i).child("b_localdatetime").setValue("");
  157. mDatenbank.child("overviewnodes").child("IDG" + i).child("c_ip").setValue("");
  158. mDatenbank.child("overviewnodes").child("IDG" + i).child("d_breitengrad").setValue("");
  159. mDatenbank.child("overviewnodes").child("IDG" + i).child("e_laengengrad").setValue("");
  160. mDatenbank.child("overviewnodes").child("IDG" + i).child("f_nativegps").setValue(true);
  161. mDatenbank.child("overviewnodes").child("IDG" + i).child("g_vibration").setValue(false);
  162. mDatenbank.child("overviewnodes").child("IDG" + i).child("h_timestamp").setValue("");
  163. mDatenbank.child("overviewnodes").child("IDG" + i).child("i_amplitude").setValue("");
  164. }
  165. }
  166. public void testProcess(DataSnapshot data)
  167. {
  168. mDatenbank = FirebaseDatabase.getInstance().getReference().child("overviewnodes");
  169. }
  170. }