aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOgnjen Cirkovic <ciraboxkg@gmail.com>2022-12-05 12:51:43 +0100
committerOgnjen Cirkovic <ciraboxkg@gmail.com>2022-12-05 12:51:43 +0100
commit72995f8e1177488b3b69004743c0f3ab85065af6 (patch)
tree9bd540f4eea904b12400f2d9b2a8a023a2f893b6
parenta18cd1c5439780e84fa983b62cdaef8445df4542 (diff)
Napravljen fragment za prikazivanje objava korisnina na mapi.
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentBrowse.kt1
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/UserPostsMapFragment.kt100
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts_map.xml18
3 files changed, 118 insertions, 1 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 57e1833..a0d6146 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
@@ -197,7 +197,6 @@ class FragmentBrowse : Fragment(R.layout.fragment_browse) {
}
}
private fun getMarkers(){
- val startMarker = Marker(map)
var api=RetrofitHelper.getInstance()
var jwtString= SharedPreferencesHelper.getValue("jwt",requireActivity())
var data=api.getPosts("Bearer "+jwtString)
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/UserPostsMapFragment.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/UserPostsMapFragment.kt
new file mode 100644
index 0000000..1ecc22f
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/UserPostsMapFragment.kt
@@ -0,0 +1,100 @@
+package com.example.brzodolokacije
+
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import android.preference.PreferenceManager
+import android.util.Log
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.example.brzodolokacije.Activities.ActivitySinglePost
+import com.example.brzodolokacije.Models.PostPreview
+import com.example.brzodolokacije.Services.RetrofitHelper
+import com.example.brzodolokacije.Services.SharedPreferencesHelper
+import org.osmdroid.config.Configuration
+import org.osmdroid.tileprovider.tilesource.TileSourceFactory
+import org.osmdroid.util.GeoPoint
+import org.osmdroid.views.MapView
+import org.osmdroid.views.overlay.Marker
+import retrofit2.Call
+import retrofit2.Response
+
+
+class UserPostsMapFragment : Fragment() {
+
+ var map: MapView? = null
+ var id:String?=null
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ // Inflate the layout for this fragment
+ var view=inflater.inflate(R.layout.fragment_user_posts_map, container, false)
+ val ctx: Context = requireContext()
+ Configuration.getInstance().load(ctx, PreferenceManager.getDefaultSharedPreferences(ctx));
+ map=view.findViewById(R.id.FragmentUserPostsMapMapView) as MapView
+ map!!.setTileSource(TileSourceFactory.MAPNIK);
+ id=this.requireArguments().getString("id");//https://stackoverflow.com/questions/17436298/how-to-pass-a-variable-from-activity-to-fragment-and-pass-it-back
+ setUpMap()
+ return view
+ }
+ fun setUpMap(){
+ map!!.setBuiltInZoomControls(true);
+ map!!.setMultiTouchControls(true);
+ val mapController = map!!.controller
+ mapController.setZoom(15)
+ var api= RetrofitHelper.getInstance()
+ var jwtString= SharedPreferencesHelper.getValue("jwt",requireActivity())
+ if(id==null)
+ return
+ var data=api.getUsersPosts("Bearer "+jwtString,id!!)
+
+ 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:
+ Marker.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) {
+ }
+ })
+ }
+
+
+} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts_map.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts_map.xml
new file mode 100644
index 0000000..0708692
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts_map.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".UserPostsMapFragment">
+
+ <org.osmdroid.views.MapView
+ android:id="@+id/FragmentUserPostsMapMapView"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file