123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- package de.edotzlaff.schockwelle;
-
- import android.Manifest;
- import android.content.pm.PackageManager;
- import android.location.Location;
- import android.os.Bundle;
- import android.util.Log;
- import android.widget.Toast;
-
- import androidx.annotation.NonNull;
- import androidx.core.app.ActivityCompat;
- import androidx.core.content.ContextCompat;
- import androidx.fragment.app.FragmentActivity;
-
- import com.google.android.gms.location.FusedLocationProviderClient;
- import com.google.android.gms.location.LocationServices;
- import com.google.android.gms.maps.CameraUpdateFactory;
- import com.google.android.gms.maps.GoogleMap;
- import com.google.android.gms.maps.OnMapReadyCallback;
- import com.google.android.gms.maps.SupportMapFragment;
- import com.google.android.gms.maps.model.LatLng;
- import com.google.android.gms.maps.model.MarkerOptions;
- import com.google.android.gms.tasks.OnCompleteListener;
- import com.google.android.gms.tasks.Task;
-
- public class EarthquakeMapsActivity extends FragmentActivity implements OnMapReadyCallback {
-
- private static final String TAG = "MainActivity";
- private static final String FINE_LOCATION = Manifest.permission.ACCESS_FINE_LOCATION;
- private static final int LOCATION_PERMISSION_REQUEST_CODE = 1234;
-
- //vars
- private Boolean mLocationPermissionsGranted = false;
- private GoogleMap mMap;
- private FusedLocationProviderClient mFusedLocationProviderClient;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_earthquake_maps);
-
- getLocationPermission();
- }
-
- private void getLocationPermission() {
- String[] permissions = {Manifest.permission.ACCESS_FINE_LOCATION};
- if (ContextCompat.checkSelfPermission(this.getApplicationContext(), FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
- mLocationPermissionsGranted = true;
- initMap();
- } else {
- ActivityCompat.requestPermissions(this, permissions, LOCATION_PERMISSION_REQUEST_CODE);
- }
- }
-
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
- super.onRequestPermissionsResult(requestCode, permissions, grantResults);
- mLocationPermissionsGranted = false;
-
- switch (requestCode) {
- case LOCATION_PERMISSION_REQUEST_CODE: {
- if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- mLocationPermissionsGranted = true;
- //initalize or map
- initMap();
- }
- }
- }
- }
-
-
- private void initMap() {
- SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
- mapFragment.getMapAsync(this);
- }
-
- @Override
- public void onMapReady(GoogleMap googleMap) {
- Toast.makeText(this, "Map is ready", Toast.LENGTH_SHORT).show();
- mMap = googleMap;
-
- if (mLocationPermissionsGranted) {
- getDeviceLocation();
-
- if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
- != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this,
- Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
-
- return;
- }
- mMap.setMyLocationEnabled(true);
- }
-
- // Add a marker in Sydney and move the camera
- //LatLng sydney = new LatLng(-34, 151);
- //mMap.addMarker(new MarkerOptions().position(sydney).title("Marker in Sydney"));
- //mMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
- }
-
- private void getDeviceLocation(){
- mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this);
-
- try {
- if (mLocationPermissionsGranted){
- final Task location = mFusedLocationProviderClient.getLastLocation();
-
- location.addOnCompleteListener(new OnCompleteListener() {
-
- @Override
- public void onComplete(@NonNull Task task) {
- if (task.isSuccessful()){
-
- Location currentLocation = (Location) task.getResult(); //TODO Aron hier erhält die Anwendung die GPS Positionen
- moveCamera(new LatLng(currentLocation.getLatitude(), currentLocation.getLongitude()),15f);
-
- }
- else{
- Toast.makeText(EarthquakeMapsActivity.this, "Current Location unavailable", Toast.LENGTH_SHORT).show();
- }
- }
- });
- }
- }catch (SecurityException e){
- Log.e(TAG,"Device Location not found" + e.getMessage());
- }
- }
-
- private void moveCamera(LatLng latlng, float zoom){
- Log.d(TAG,"Latitude: "+latlng.latitude+"Longitude: "+latlng.longitude);
- mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlng, zoom));
- }
-
-
- //TODO Aron Daten an DB senden
- }
|