Adding data class for geocaches

arthur
Arthur VALIN 2 years ago
parent 9bcddd990b
commit 8da6f5eff3

@ -21,7 +21,7 @@
android:theme="@style/Theme.Geocaching"
tools:targetApi="31" >
<activity
android:name=".MainWindow"
android:name=".ui.activity.MainWindow"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

@ -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
)

@ -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

@ -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

@ -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;
}

@ -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

@ -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) {

@ -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">
<TextView
android:layout_width="match_parent"

@ -3,7 +3,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Map">
tools:context=".ui.fragment.Map">
<org.osmdroid.views.MapView
android:id="@+id/mapView"

@ -3,7 +3,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Profile">
tools:context=".ui.fragment.Profile">
<TextView
android:layout_width="match_parent"

Loading…
Cancel
Save