diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7804d9a..0fdc512 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -21,7 +21,7 @@ android:theme="@style/Theme.Geocaching" tools:targetApi="31" > diff --git a/app/src/main/java/uca/baptistearthur/geocaching/model/Geocache.kt b/app/src/main/java/uca/baptistearthur/geocaching/model/Geocache.kt new file mode 100644 index 0000000..df1142d --- /dev/null +++ b/app/src/main/java/uca/baptistearthur/geocaching/model/Geocache.kt @@ -0,0 +1,14 @@ +package uca.baptistearthur.geocaching.model + +import java.time.LocalDateTime + +data class Geocache( + val id: String, + val name: String, + val difficulty: Float, + val placedDate: LocalDateTime, + val backgroundImageUrl: String, + val findCount: Int, + val latitude: Double, + val longitude: Double +) \ No newline at end of file diff --git a/app/src/main/java/uca/baptistearthur/geocaching/MainWindow.kt b/app/src/main/java/uca/baptistearthur/geocaching/ui/activity/MainWindow.kt similarity index 81% rename from app/src/main/java/uca/baptistearthur/geocaching/MainWindow.kt rename to app/src/main/java/uca/baptistearthur/geocaching/ui/activity/MainWindow.kt index 846ae52..5e6fa3b 100644 --- a/app/src/main/java/uca/baptistearthur/geocaching/MainWindow.kt +++ b/app/src/main/java/uca/baptistearthur/geocaching/ui/activity/MainWindow.kt @@ -1,11 +1,14 @@ -package uca.baptistearthur.geocaching +package uca.baptistearthur.geocaching.ui.activity import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment import com.google.android.material.bottomnavigation.BottomNavigationView -import org.osmdroid.config.Configuration +import uca.baptistearthur.geocaching.R +import uca.baptistearthur.geocaching.ui.fragment.Map +import uca.baptistearthur.geocaching.ui.fragment.Profile + class MainWindow: AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -28,7 +31,7 @@ class MainWindow: AppCompatActivity() { true } R.id.list -> { - loadFragment(List()) + loadFragment(uca.baptistearthur.geocaching.ui.fragment.List()) true } else -> false diff --git a/app/src/main/java/uca/baptistearthur/geocaching/List.kt b/app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/List.kt similarity index 95% rename from app/src/main/java/uca/baptistearthur/geocaching/List.kt rename to app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/List.kt index d082f99..5588242 100644 --- a/app/src/main/java/uca/baptistearthur/geocaching/List.kt +++ b/app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/List.kt @@ -1,10 +1,11 @@ -package uca.baptistearthur.geocaching +package uca.baptistearthur.geocaching.ui.fragment import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import uca.baptistearthur.geocaching.R // TODO: Rename parameter arguments, choose names that match // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER diff --git a/app/src/main/java/uca/baptistearthur/geocaching/Map.kt b/app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/Map.kt similarity index 85% rename from app/src/main/java/uca/baptistearthur/geocaching/Map.kt rename to app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/Map.kt index 31a90ef..b93786c 100644 --- a/app/src/main/java/uca/baptistearthur/geocaching/Map.kt +++ b/app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/Map.kt @@ -1,4 +1,4 @@ -package uca.baptistearthur.geocaching +package uca.baptistearthur.geocaching.ui.fragment import android.content.Context import android.content.pm.PackageManager @@ -14,23 +14,24 @@ import org.osmdroid.util.GeoPoint import org.osmdroid.views.MapView import org.osmdroid.views.overlay.ScaleBarOverlay import android.Manifest.permission.ACCESS_FINE_LOCATION -import android.hardware.SensorManager import android.location.Location import android.location.LocationListener +import android.util.Log import android.widget.ProgressBar import androidx.activity.result.contract.ActivityResultContracts import org.osmdroid.views.overlay.compass.CompassOverlay import org.osmdroid.views.overlay.compass.InternalCompassOrientationProvider import org.osmdroid.views.overlay.mylocation.GpsMyLocationProvider import org.osmdroid.views.overlay.mylocation.MyLocationNewOverlay - +import uca.baptistearthur.geocaching.R +import uca.baptistearthur.geocaching.ui.overlay.RecenterOverlay class Map : Fragment() { private lateinit var map : MapView private lateinit var spinner: ProgressBar; + private lateinit var locationManager: LocationManager; val defaultPoint = GeoPoint(48.8583, 2.2944) var isMapCentered = false; - val locationListener = object : LocationListener { override fun onLocationChanged(location: Location) { val geoPoint = GeoPoint(location.latitude, location.longitude) @@ -43,6 +44,8 @@ class Map : Fragment() { } } + + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) Configuration.getInstance().userAgentValue = "Geocaching" @@ -50,9 +53,10 @@ class Map : Fragment() { } val requestPermissionLauncher = registerForActivityResult(ActivityResultContracts.RequestPermission()) - { map.controller.setCenter(defaultPoint); } + { map.controller.setCenter(defaultPoint) } private fun configureMap(view: View){ + Log.d("GeoMap", "MAP CONFIGURE") map = view.findViewById(R.id.mapView) spinner = view.findViewById(R.id.mapLoading); spinner.visibility=View.VISIBLE; @@ -85,6 +89,7 @@ class Map : Fragment() { inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { + Log.d("GeoMap", "MAP ON CREATE VIEW") // Inflate the layout for this fragment val view = inflater.inflate(R.layout.fragment_map, container, false) configureMap(view) @@ -93,8 +98,9 @@ class Map : Fragment() { override fun onResume() { super.onResume() + Log.d("GeoMap", "MAP RESUME") if (ContextCompat.checkSelfPermission(requireActivity(), ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - val locationManager = requireActivity().getSystemService(Context.LOCATION_SERVICE) as LocationManager + locationManager = requireActivity().getSystemService(Context.LOCATION_SERVICE) as LocationManager locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0f, locationListener) } map.onResume() //needed for compass, my location overlays, v6.0.0 and up @@ -102,8 +108,9 @@ class Map : Fragment() { override fun onPause() { super.onPause() + Log.d("GeoMap", "MAP PAUSE") if (ContextCompat.checkSelfPermission(requireActivity(), ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - val locationManager = requireActivity().getSystemService(Context.LOCATION_SERVICE) as LocationManager + locationManager = requireActivity().getSystemService(Context.LOCATION_SERVICE) as LocationManager locationManager.removeUpdates(locationListener) isMapCentered=false; } diff --git a/app/src/main/java/uca/baptistearthur/geocaching/Profile.kt b/app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/Profile.kt similarity index 95% rename from app/src/main/java/uca/baptistearthur/geocaching/Profile.kt rename to app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/Profile.kt index 5cca43b..6643ff3 100644 --- a/app/src/main/java/uca/baptistearthur/geocaching/Profile.kt +++ b/app/src/main/java/uca/baptistearthur/geocaching/ui/fragment/Profile.kt @@ -1,10 +1,11 @@ -package uca.baptistearthur.geocaching +package uca.baptistearthur.geocaching.ui.fragment import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import uca.baptistearthur.geocaching.R // TODO: Rename parameter arguments, choose names that match // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER diff --git a/app/src/main/java/uca/baptistearthur/geocaching/RecenterOverlay.kt b/app/src/main/java/uca/baptistearthur/geocaching/ui/overlay/RecenterOverlay.kt similarity index 93% rename from app/src/main/java/uca/baptistearthur/geocaching/RecenterOverlay.kt rename to app/src/main/java/uca/baptistearthur/geocaching/ui/overlay/RecenterOverlay.kt index d494dc2..a647f94 100644 --- a/app/src/main/java/uca/baptistearthur/geocaching/RecenterOverlay.kt +++ b/app/src/main/java/uca/baptistearthur/geocaching/ui/overlay/RecenterOverlay.kt @@ -1,8 +1,7 @@ -package uca.baptistearthur.geocaching +package uca.baptistearthur.geocaching.ui.overlay import android.graphics.* import android.location.Location -import android.view.GestureDetector import android.view.MotionEvent import androidx.core.content.ContextCompat import org.osmdroid.util.GeoPoint @@ -10,7 +9,7 @@ import org.osmdroid.views.MapView import org.osmdroid.views.overlay.Overlay import org.osmdroid.views.overlay.mylocation.IMyLocationConsumer import org.osmdroid.views.overlay.mylocation.IMyLocationProvider -import org.osmdroid.views.overlay.mylocation.MyLocationNewOverlay +import uca.baptistearthur.geocaching.R class RecenterOverlay(val myLocationProvider: IMyLocationProvider, val mapView: MapView) : Overlay(), IMyLocationConsumer { @@ -72,8 +71,7 @@ class RecenterOverlay(val myLocationProvider: IMyLocationProvider, val mapView: } override fun onTouchEvent(event: MotionEvent?, mapView: MapView?): Boolean { - val isSingleFingerDrag = - event!!.action == MotionEvent.ACTION_MOVE && event.pointerCount == 1 + val isSingleFingerDrag = event!!.action == MotionEvent.ACTION_MOVE && event.pointerCount == 1 if (event.action == MotionEvent.ACTION_DOWN) { disableMyLocation() } else if (isSingleFingerDrag && mIsFollowing) { diff --git a/app/src/main/res/layout/fragment_list.xml b/app/src/main/res/layout/fragment_list.xml index a037be3..c6232c3 100644 --- a/app/src/main/res/layout/fragment_list.xml +++ b/app/src/main/res/layout/fragment_list.xml @@ -3,7 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".List"> + tools:context=".ui.fragment.List"> + tools:context=".ui.fragment.Map"> + tools:context=".ui.fragment.Profile">