diff options
author | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-11-27 16:06:25 +0100 |
---|---|---|
committer | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-11-27 16:06:25 +0100 |
commit | b1db10d012939e8433d3691bd803f4a4cd2301b3 (patch) | |
tree | 795c0c7f0d80a87a7bbe6d7ec5a9b7544eda3dd3 | |
parent | e06bc945b7f0cffa0cf2ee9e26440ba5f6e7b461 (diff) |
Prikazani pinovi za objave na mapi. Omoguceno klikom na njih da se objave otvore.
-rw-r--r-- | Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt | 65 |
1 files changed, 61 insertions, 4 deletions
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt index a21ffe0..57e1833 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt @@ -2,6 +2,7 @@ package com.example.brzodolokacije.Fragments import android.Manifest import android.content.Context +import android.content.Intent import android.content.pm.PackageManager import android.location.Location import android.location.LocationManager @@ -12,6 +13,7 @@ import android.os.StrictMode import android.os.StrictMode.ThreadPolicy import android.preference.PreferenceManager import android.util.DisplayMetrics +import android.util.Log import android.view.KeyEvent import android.view.LayoutInflater import android.view.View @@ -21,8 +23,12 @@ import android.widget.Toast import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment +import com.example.brzodolokacije.Activities.ActivitySinglePost +import com.example.brzodolokacije.Models.PostPreview import com.example.brzodolokacije.R import com.example.brzodolokacije.Services.GeocoderHelper +import com.example.brzodolokacije.Services.RetrofitHelper +import com.example.brzodolokacije.Services.SharedPreferencesHelper import com.google.android.gms.location.* import com.google.android.material.button.MaterialButton import com.google.android.material.floatingactionbutton.FloatingActionButton @@ -32,12 +38,15 @@ import org.osmdroid.tileprovider.tilesource.TileSourceFactory import org.osmdroid.util.GeoPoint import org.osmdroid.views.MapView import org.osmdroid.views.overlay.Marker +import org.osmdroid.views.overlay.Marker.OnMarkerClickListener import org.osmdroid.views.overlay.ScaleBarOverlay import org.osmdroid.views.overlay.compass.CompassOverlay import org.osmdroid.views.overlay.compass.InternalCompassOrientationProvider import org.osmdroid.views.overlay.gestures.RotationGestureOverlay import org.osmdroid.views.overlay.mylocation.GpsMyLocationProvider import org.osmdroid.views.overlay.mylocation.MyLocationNewOverlay +import retrofit2.Call +import retrofit2.Response class FragmentBrowse : Fragment(R.layout.fragment_browse) { @@ -136,6 +145,8 @@ class FragmentBrowse : Fragment(R.layout.fragment_browse) { CompassOverlay(context, InternalCompassOrientationProvider(context), map) mCompassOverlay!!.enableCompass() map!!.getOverlays().add(this.mCompassOverlay) + + getMarkers() } fun checkLocPerm(){ if (ContextCompat.checkSelfPermission( @@ -179,16 +190,62 @@ class FragmentBrowse : Fragment(R.layout.fragment_browse) { else{ //move to spot val searchPoint = GeoPoint(result.latitude,result.longitude) - val startMarker = Marker(map) - startMarker.setPosition(searchPoint) - startMarker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM) - map!!.getOverlays().add(startMarker) map!!.controller.animateTo(searchPoint) } } } + private fun getMarkers(){ + val startMarker = Marker(map) + var api=RetrofitHelper.getInstance() + var jwtString= SharedPreferencesHelper.getValue("jwt",requireActivity()) + var data=api.getPosts("Bearer "+jwtString) + + data.enqueue(object : retrofit2.Callback<MutableList<PostPreview>> { + override fun onResponse(call: Call<MutableList<PostPreview>>, response: Response<MutableList<PostPreview>>) { + if(response.isSuccessful()){ + var postList=response.body() + if (postList != null) { + for(post in postList){ + Log.d("main",post.toString()) + val startMarker = Marker(map) + startMarker.setPosition(GeoPoint(post.location.latitude,post.location.longitude)) + startMarker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_BOTTOM) + startMarker.setOnMarkerClickListener(object:OnMarkerClickListener{ + override fun onMarkerClick( + marker: Marker?, + mapView: MapView? + ): Boolean { + val intent: Intent = Intent(activity, ActivitySinglePost::class.java) + var b=Bundle() + b.putParcelable("selectedPost",post) + intent.putExtras(b) + requireActivity().startActivity(intent) + return true + } + + }) + map!!.getOverlays().add(startMarker) + + + } + } + + + + }else { + + } + + + } + + override fun onFailure(call: Call<MutableList<PostPreview>>, t: Throwable) { + } + }) + + } private fun getLocation() { if (ContextCompat.checkSelfPermission( requireActivity(), |