aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt1
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/MyPostsAdapter.kt75
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPosts.kt3
3 files changed, 78 insertions, 1 deletions
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt
index 3fab37a..b02abad 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityCapturePost.kt
@@ -265,6 +265,7 @@ class ActivityCapturePost : AppCompatActivity() {
var countryName=loc1[0].countryName
var address="todo not possible in query"
var city=loc1[0].adminArea//not possible
+ //var address=loc1[0].subAdminArea
var loc:Location=Location("",locationString,city,countryName,address,latitude,longitude,LocationType.GRAD)
var jwtString= SharedPreferencesHelper.getValue("jwt",this)
var data=api.addLocation("Bearer "+jwtString,loc)
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/MyPostsAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/MyPostsAdapter.kt
new file mode 100644
index 0000000..1b57e5b
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/MyPostsAdapter.kt
@@ -0,0 +1,75 @@
+package com.example.brzodolokacije.Adapters
+
+import android.app.Activity
+import android.content.Intent
+import android.graphics.BitmapFactory
+import android.os.AsyncTask
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import android.widget.Toast
+import androidx.recyclerview.widget.RecyclerView
+import com.bumptech.glide.Glide
+import com.example.brzodolokacije.Activities.ActivitySinglePost
+import com.example.brzodolokacije.Interfaces.IBackendApi
+import com.example.brzodolokacije.Models.LocationType
+import com.example.brzodolokacije.Models.PostPreview
+import com.example.brzodolokacije.Services.RetrofitHelper
+import com.example.brzodolokacije.Services.SharedPreferencesHelper
+import com.example.brzodolokacije.databinding.PostPreviewBinding
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.launch
+import okhttp3.ResponseBody
+import retrofit2.Call
+import retrofit2.Response
+
+
+class MyPostsAdapter (val activity:Activity,val items : MutableList<PostPreview>)
+ : RecyclerView.Adapter<MyPostsAdapter.ViewHolder>() {
+ private lateinit var token: String
+ private lateinit var imageApi: IBackendApi
+
+ //constructer has one argument - list of objects that need to be displayed
+ //it is bound to xml of single item
+ private lateinit var binding: PostPreviewBinding
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+ val inflater = LayoutInflater.from(parent.context)
+ imageApi= RetrofitHelper.getInstance()
+ token= SharedPreferencesHelper.getValue("jwt", activity).toString()
+ binding = PostPreviewBinding.inflate(inflater, parent, false)
+ return ViewHolder(binding)
+ }
+
+
+
+
+ override fun getItemCount() = items.size
+ inner class ViewHolder(itemView: PostPreviewBinding) : RecyclerView.ViewHolder(itemView.root) {
+ fun bind(item: PostPreview) {
+ binding.apply {
+ tvTitle.text = item.location.name
+ tvLocationParent.text = item.location.country
+ tvLocationType.text = "TODO"
+ if(item.images.isNotEmpty()) {
+ Glide.with(activity)
+ .load(RetrofitHelper.baseUrl + "/api/post/image/" + item.images[0]._id)
+ .into(locationImage)
+ }
+
+ }
+ }
+ }
+
+ override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+ holder.bind(items[position])
+ holder.itemView.setOnClickListener {
+ //Toast.makeText(activity,item._id,Toast.LENGTH_LONG).show()
+ val intent:Intent = Intent(activity,ActivitySinglePost::class.java)
+ var b=Bundle()
+ items[position].location.type=LocationType.ADA
+ b.putParcelable("selectedPost", items[position])
+ intent.putExtras(b)
+ activity.startActivity(intent)
+ }
+ }
+}
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPosts.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPosts.kt
index f1f2257..d69a40c 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPosts.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPosts.kt
@@ -34,6 +34,7 @@ import android.widget.TextView
import com.example.brzodolokacije.Activities.ActivityAddPost
import com.example.brzodolokacije.Activities.ActivityCapturePost
import com.example.brzodolokacije.Activities.ActivityForgottenPassword
+import com.example.brzodolokacije.Adapters.MyPostsAdapter
import com.google.android.material.bottomsheet.BottomSheetDialog
@@ -107,7 +108,7 @@ class FragmentUserPosts : Fragment() {
private fun loadPosts(){//most viewed
rvPosts.apply {
layoutManager= GridLayoutManager(requireContext(),2,GridLayoutManager.VERTICAL,false)
- adapter= ShowPostsAdapter(requireActivity(),posts)
+ adapter= MyPostsAdapter(requireActivity(),posts)
}
}