aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivitySinglePost.kt5
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt48
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt6
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt8
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Location.kt7
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt2
6 files changed, 60 insertions, 16 deletions
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 be4a73d..6a5dfe3 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
@@ -4,6 +4,7 @@ import android.os.Bundle
import android.os.Handler
import android.os.Looper
import androidx.appcompat.app.AppCompatActivity
+import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.example.brzodolokacije.Adapters.PostImageAdapter
import com.example.brzodolokacije.Models.PostImage
@@ -46,9 +47,9 @@ class ActivitySinglePost : AppCompatActivity() {
binding.apply {
tvTitle.text= post.location.name
tvTitle.invalidate()
- tvLocationType.text=post.location.type.name
+ tvLocationType.text="TODO"
tvLocationType.invalidate()
- tvLocationParent.text=post.location.country
+ tvLocationParent.text="TODO"
tvLocationParent.invalidate()
tvRating.text=post.ratings.toString()
tvRating.invalidate()
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt
index 8e6093e..134b665 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt
@@ -1,24 +1,40 @@
package com.example.brzodolokacije.Adapters
import android.app.Activity
-import android.content.Context
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.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 ShowPostsAdapter (val activity:Activity,val items : MutableList<PostPreview>)
: RecyclerView.Adapter<ShowPostsAdapter.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)
}
@@ -30,6 +46,7 @@ class ShowPostsAdapter (val activity:Activity,val items : MutableList<PostPrevie
//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)
@@ -43,9 +60,34 @@ class ShowPostsAdapter (val activity:Activity,val items : MutableList<PostPrevie
binding.apply {
tvTitle.text = item.location.name
tvLocationParent.text = item.location.country
- tvLocationType.text = item.location.type.toString()
+ tvLocationType.text = "TODO"
+
+ val request=imageApi.getImage("Bearer "+token,item.images[0]._id)
+
+ request.enqueue(object : retrofit2.Callback<ResponseBody?> {
+ override fun onResponse(call: Call<ResponseBody?>, response: Response<ResponseBody?>) {
+ if (response.isSuccessful) {
+ val image: ResponseBody = response.body()!!
+ binding.locationImage.setImageBitmap(BitmapFactory.decodeStream(image.byteStream()))
+ Toast.makeText(
+ activity, "prosao zahtev", Toast.LENGTH_LONG
+ ).show()
+ } else {
+ if (response.errorBody() != null)
+ Toast.makeText(
+ activity,
+ response.errorBody()!!.string(),
+ Toast.LENGTH_LONG
+ ).show();
+ }
+ }
- itemView.isClickable = true
+ override fun onFailure(call: Call<ResponseBody?>, t: Throwable) {
+ Toast.makeText(
+ activity, t.toString(), Toast.LENGTH_LONG
+ ).show();
+ }
+ })
}
}
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt
index e9b4c08..9a0eedc 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt
@@ -3,6 +3,7 @@ package com.example.brzodolokacije.Fragments
import android.content.Context
import android.content.Intent
import android.os.Bundle
+import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
@@ -43,8 +44,9 @@ class FragmentShowPosts : Fragment() {
request.enqueue(object : retrofit2.Callback<MutableList<PostPreview>?> {
override fun onResponse(call: Call<MutableList<PostPreview>?>, response: Response<MutableList<PostPreview>?>) {
if(response.isSuccessful){
- //posts=response.body()!!
- //recyclerView?.adapter=ShowPostsAdapter(requireActivity(),posts)
+ posts=response.body()!!
+ Log.d("main",posts[0].toString())
+ recyclerView?.adapter=ShowPostsAdapter(requireActivity(),posts)
Toast.makeText(
activity, "prosao zahtev", Toast.LENGTH_LONG
).show()
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt
index bcb6e13..49dda46 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt
@@ -7,10 +7,7 @@ import com.example.brzodolokacije.Models.Auth.ResetPass
import com.example.brzodolokacije.Models.PostPreview
import okhttp3.ResponseBody
import retrofit2.Call
-import retrofit2.http.Body
-import retrofit2.http.GET
-import retrofit2.http.Header
-import retrofit2.http.POST
+import retrofit2.http.*
interface IBackendApi {
@POST("/api/auth/login")
@@ -25,6 +22,9 @@ interface IBackendApi {
fun resetpass(@Body obj:ResetPass):Call<ResponseBody>
@GET("/api/post")
fun getPosts(@Header("Authorization") authHeader:String):Call<MutableList<PostPreview>>
+ @Streaming
+ @GET("/api/post/image/{id}")
+ fun getImage(@Header("Authorization") authHeader:String,@Path("id") obj:String):Call<ResponseBody>
//@POST("putanja")
//fun add(@Body obj:Post,@Header("Authorization") authHeader:String):Call<Post>
} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Location.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Location.kt
index 04bf3a1..c5fe48a 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Location.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Location.kt
@@ -1,7 +1,6 @@
package com.example.brzodolokacije.Models
import android.os.Parcelable
-import com.example.brzodolokacije.Models.LocationType
import kotlinx.android.parcel.Parcelize
@Parcelize
@@ -10,8 +9,8 @@ data class Location (
var name:String,
var city:String,
var country:String,
- var adress:String,
+ var address:String,
var latitude:Double,
var longitude:Double,
- var type:LocationType
- ): Parcelable
+ var type:LocationType?
+): Parcelable
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt
index f667fac..9b9afaa 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt
@@ -33,7 +33,7 @@ data class PostPreview (
var description:String,
var views:Int,
var ratings:Float,
- var comments:List<Comment>,
+ var comments:List<Comment>?,
var images:List<PostImage>
):Parcelable