diff options
| author | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-12-05 12:51:43 +0100 | 
|---|---|---|
| committer | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-12-05 12:51:43 +0100 | 
| commit | 72995f8e1177488b3b69004743c0f3ab85065af6 (patch) | |
| tree | 9bd540f4eea904b12400f2d9b2a8a023a2f893b6 | |
| parent | a18cd1c5439780e84fa983b62cdaef8445df4542 (diff) | |
Napravljen fragment za prikazivanje objava korisnina na mapi.
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  | 
