From 121ab32626eba4eeb43cd63731e60f16f0ce3fe2 Mon Sep 17 00:00:00 2001 From: Ognjen Cirkovic Date: Sun, 27 Nov 2022 16:44:50 +0100 Subject: Napravljen map dialogue. Omogucen prikaz mape sa pinom na lokaciji na postu. Klikom na tekst za tip lokacije. --- .../Activities/ActivitySinglePost.kt | 47 +++++++++++++++++++++- .../res/drawable/ic_baseline_location_on_24.xml | 2 +- .../app/src/main/res/layout/map_dialogue.xml | 11 +++++ 3 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 Client/BrzoDoLokacije/app/src/main/res/layout/map_dialogue.xml (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt index f969669..0e9c9da 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt @@ -1,11 +1,18 @@ package com.example.brzodolokacije.Activities +import android.app.Dialog +import android.content.Context import android.content.Intent +import android.graphics.Color +import android.graphics.drawable.ColorDrawable import android.os.Bundle +import android.preference.PreferenceManager import android.util.Log +import android.view.Gravity import android.widget.TextView import android.widget.Toast import androidx.appcompat.app.AppCompatActivity +import androidx.core.content.ContextCompat import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.example.brzodolokacije.Adapters.CommentsAdapter @@ -15,9 +22,15 @@ import com.example.brzodolokacije.R import com.example.brzodolokacije.Services.RetrofitHelper import com.example.brzodolokacije.Services.SharedPreferencesHelper import com.example.brzodolokacije.databinding.ActivitySinglePostBinding +import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.gson.Gson import kotlinx.android.synthetic.main.activity_single_post.* import okhttp3.ResponseBody +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 @@ -63,7 +76,39 @@ class ActivitySinglePost : AppCompatActivity() { intent.putExtra("user", Gson().toJson(userData)) this.startActivity(intent) } + binding.tvLocationType.setOnClickListener{ + getMap() + + } } + fun getMap(){ + val mapDialogue = BottomSheetDialog(this@ActivitySinglePost, android.R.style.Theme_Black_NoTitleBar) + mapDialogue.getWindow()?.setBackgroundDrawable(ColorDrawable(Color.argb(100, 0, 0, 0))) + mapDialogue.setContentView(R.layout.map_dialogue) + mapDialogue.setCancelable(true) + mapDialogue.setCanceledOnTouchOutside(true) + var map: MapView? = null + Configuration.getInstance().load(this, PreferenceManager.getDefaultSharedPreferences(this)); + map=mapDialogue.findViewById(R.id.MapDialogueMapView) + //findViewById(R.id.MapDialogueMapView) as MapView + map!!.setTileSource(TileSourceFactory.MAPNIK); + map!!.setBuiltInZoomControls(true); + map!!.setMultiTouchControls(true); + val mapController = map!!.controller + mapController.setZoom(15) + + val LocMarker = GeoPoint(post.location.latitude,post.location.longitude) + val startMarker = Marker(map) + val marker = ContextCompat.getDrawable(this@ActivitySinglePost, R.drawable.ic_baseline_location_on_24); + startMarker.icon=marker + startMarker.setPosition(LocMarker) + startMarker.setAnchor(Marker.ANCHOR_CENTER, Marker.ANCHOR_CENTER) + map!!.getOverlays().add(startMarker) + map!!.controller.setCenter(LocMarker) + mapDialogue.show() + + } + fun buildRecyclerViewComments(){ recyclerViewComments=binding.rvComments @@ -228,7 +273,7 @@ class ActivitySinglePost : AppCompatActivity() { binding.apply { tvTitle.text= post.location.name tvTitle.invalidate() - tvLocationType.text="TODO" + tvLocationType.text="TODO Click to open map" tvLocationType.invalidate() tvLocationParent.text="TODO" tvLocationParent.invalidate() diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_location_on_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_location_on_24.xml index c0bbc95..5a1bcff 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_location_on_24.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_location_on_24.xml @@ -1,4 +1,4 @@ - diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/map_dialogue.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/map_dialogue.xml new file mode 100644 index 0000000..8b48d9d --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/map_dialogue.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file -- cgit v1.2.3