Projektteil 2
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 9.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. package de.edotzlaff.detection;
  2. import androidx.annotation.NonNull;
  3. import androidx.appcompat.app.AppCompatActivity;
  4. import androidx.core.app.ActivityCompat;
  5. import androidx.core.content.ContextCompat;
  6. import android.Manifest;
  7. import android.app.Dialog;
  8. import android.content.Intent;
  9. import android.content.pm.PackageManager;
  10. import android.location.Location;
  11. import android.os.Bundle;
  12. import android.util.Log;
  13. import android.view.View;
  14. import android.widget.Button;
  15. import android.widget.TextView;
  16. import android.widget.Toast;
  17. import com.google.android.gms.common.ConnectionResult;
  18. import com.google.android.gms.common.GoogleApiAvailability;
  19. import com.google.android.gms.location.FusedLocationProviderClient;
  20. import com.google.android.gms.location.LocationServices;
  21. import com.google.android.gms.maps.GoogleMap;
  22. import com.google.android.gms.maps.OnMapReadyCallback;
  23. import com.google.android.gms.maps.SupportMapFragment;
  24. import com.google.android.gms.maps.model.LatLng;
  25. import com.google.android.gms.tasks.OnCompleteListener;
  26. import com.google.android.gms.tasks.Task;
  27. import org.w3c.dom.Text;
  28. import java.util.Calendar;
  29. public class MainActivity extends AppCompatActivity {
  30. private static final String TAG = "MainActivity";
  31. private static final int ERROR_DIALOG_REQUEST = 9001;
  32. private static final String FINE_LOCATION = Manifest.permission.ACCESS_FINE_LOCATION;
  33. private static final int LOCATION_PERMISSION_REQUEST_CODE = 1234;
  34. private Boolean mLocationPermissionsGranted = false;
  35. private GoogleMap mMap;
  36. private FusedLocationProviderClient mFusedLocationProviderClient;
  37. Long currentTime;
  38. Location currentLocation;
  39. // private DatabaseReference mDatenbank;
  40. private double breitengrad;
  41. private double laengengrad;
  42. private boolean useOwnGPS = true;
  43. private int indexID = 1;
  44. @Override
  45. protected void onCreate(Bundle savedInstanceState) {
  46. super.onCreate(savedInstanceState);
  47. setContentView(R.layout.activity_main);
  48. if (isServiceOK()){
  49. init();
  50. }
  51. //Detection funktion here
  52. getLocationPermission();
  53. //DB function here
  54. }
  55. //##########################################################################################################################################################################
  56. //################################################################## vvv Detect Vibration vvv ############################################################################
  57. //TODO Böbbi
  58. //################################################################## ^^^^ Detect Vibration ^^^^ ##########################################################################
  59. //##########################################################################################################################################################################
  60. //##########################################################################################################################################################################
  61. //################################################################## vvv Get Location from Device vvv ####################################################################
  62. private void getLocationPermission() {
  63. String[] permissions = {Manifest.permission.ACCESS_FINE_LOCATION};
  64. if (ContextCompat.checkSelfPermission(this.getApplicationContext(), FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
  65. mLocationPermissionsGranted = true;
  66. getDeviceLocation();
  67. } else {
  68. ActivityCompat.requestPermissions(this, permissions, LOCATION_PERMISSION_REQUEST_CODE);
  69. }
  70. }
  71. private void getDeviceLocation(){
  72. mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
  73. try {
  74. if (mLocationPermissionsGranted){
  75. final Task location = mFusedLocationProviderClient.getLastLocation();
  76. location.addOnCompleteListener(new OnCompleteListener() {
  77. @Override
  78. public void onComplete(@NonNull Task task) {
  79. if (task.isSuccessful()){
  80. currentLocation = (Location) task.getResult();
  81. if(useOwnGPS)
  82. {
  83. breitengrad = currentLocation.getLatitude();
  84. laengengrad = currentLocation.getLongitude();
  85. }
  86. currentLocation.setLatitude(breitengrad);
  87. currentLocation.setLongitude(laengengrad);
  88. setText();
  89. }
  90. else{
  91. Toast.makeText(MainActivity.this, "Current Location unavailable", Toast.LENGTH_SHORT).show();
  92. }
  93. }
  94. });
  95. }
  96. }catch (SecurityException e){
  97. Log.e(TAG,"Device Location not found" + e.getMessage());
  98. }
  99. }
  100. //################################################################## ^^^^ Get Location from Device ^^^^ ##################################################################
  101. //##########################################################################################################################################################################
  102. //##########################################################################################################################################################################
  103. //################################################################## vvv DB Code vvv #####################################################################################
  104. //TODO Aron
  105. //################################################################## ^^^^ DB Code ^^^^ ###################################################################################
  106. //##########################################################################################################################################################################
  107. //##########################################################################################################################################################################
  108. //################################################################## vvv Set Text of Device 1/2/3 on MainActivity vvv ####################################################
  109. private void setText(){
  110. TextView txtDevice1 = (TextView) findViewById(R.id.txtdevice1);
  111. TextView txtDevice2 = (TextView) findViewById(R.id.txtdevice2);
  112. TextView txtDevice3 = (TextView) findViewById(R.id.txtdevice3);
  113. TextView txtDevice4 = (TextView) findViewById(R.id.txtdevice4);
  114. txtDevice1.setText("Device 1"+"\n"+"Time Stamp: "+ Calendar.getInstance().getTimeInMillis()+"\n"+"Latitude: "+breitengrad+"\n"+ "Longitude: "+ laengengrad+"\n");
  115. txtDevice2.setText("Device 2"+"\n"+"Time Stamp: "+ Calendar.getInstance().getTimeInMillis()+"\n"+"Latitude: "+breitengrad+"\n"+ "Longitude: "+ laengengrad+"\n");
  116. txtDevice3.setText("Device 3"+"\n"+"Time Stamp: "+ Calendar.getInstance().getTimeInMillis()+"\n"+"Latitude: "+breitengrad+"\n"+ "Longitude: "+ laengengrad+"\n");
  117. txtDevice4.setText("Device 4"+"\n"+"Time Stamp: "+ Calendar.getInstance().getTimeInMillis()+"\n"+"Latitude: "+breitengrad+"\n"+ "Longitude: "+ laengengrad+"\n");
  118. }
  119. //################################################################## ^^^^ Set Text of Device 1/2/3 on MainActivity ^^^^ ##################################################
  120. //##########################################################################################################################################################################
  121. //##########################################################################################################################################################################
  122. //################################################################## vvv Maps Code vvv ###################################################################################
  123. public boolean isServiceOK(){
  124. Log.d(TAG, "isServicesOK(): checking google services version");
  125. int available = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(MainActivity.this);
  126. if (available== ConnectionResult.SUCCESS){
  127. Log.d(TAG,"isServicesOK: Google Play Services is working");
  128. return true;
  129. }
  130. else if (GoogleApiAvailability.getInstance().isUserResolvableError(available)){
  131. Log.d(TAG, "isServicesOK(): an error occured but we can fix it");
  132. Dialog dialog = GoogleApiAvailability.getInstance().getErrorDialog(MainActivity.this, available, ERROR_DIALOG_REQUEST);
  133. dialog.show();
  134. }
  135. else {
  136. Toast.makeText(this, "You can`t make map request", Toast.LENGTH_SHORT).show();
  137. }
  138. return false;
  139. }
  140. private void init() {
  141. Button btnEarthquake = (Button) findViewById(R.id.btnEarthquakeLocation);
  142. btnEarthquake.setOnClickListener(new View.OnClickListener() {
  143. @Override
  144. public void onClick(View v) {
  145. Intent intent = new Intent(MainActivity.this, EarthquakeLocation.class);
  146. startActivity(intent);
  147. }
  148. });
  149. }
  150. //################################################################## ^^^^ Maps Code ^^^^ ##################################################################
  151. //###########################################################################################################################################################
  152. }