aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelena Petrovic <jelenapetrovic.7119@gmail.com>2022-11-06 00:47:50 +0100
committerJelena Petrovic <jelenapetrovic.7119@gmail.com>2022-11-06 00:47:50 +0100
commit80c38e7aa9ce1c184ad40ab3ffd17e4ecdd46c04 (patch)
tree6878e1de524ef1faec925b7aeb522beb48288eec
parent813c9ea0531300e6acb0add5ca8bb6bf9083ba41 (diff)
Dodato ucitavanje svih objava zahtevom, bez ucitavanja slika #17
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsAdapter.kt6
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentShowPosts.kt70
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt5
3 files changed, 59 insertions, 22 deletions
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 56220d5..5f11ded 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,15 +1,17 @@
package com.example.brzodolokacije.Adapters
+import android.graphics.BitmapFactory
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.example.brzodolokacije.Models.ListItemModel
import com.example.brzodolokacije.Models.Post
+import com.example.brzodolokacije.Models.PostPreview
import com.example.brzodolokacije.databinding.ListItemBinding
import com.example.brzodolokacije.databinding.PostPreviewBinding
import java.io.Console
-class ShowPostsAdapter (val items : MutableList<Post>)
+class ShowPostsAdapter (val items : MutableList<PostPreview>)
: RecyclerView.Adapter<ShowPostsAdapter.ViewHolder>(){
//constructer has one argument - list of objects that need to be displayed
//it is bound to xml of single item
@@ -30,7 +32,7 @@ class ShowPostsAdapter (val items : MutableList<Post>)
}
override fun getItemCount() = items.size
inner class ViewHolder(itemView : PostPreviewBinding) : RecyclerView.ViewHolder(itemView.root){
- fun bind(item : Post){
+ fun bind(item : PostPreview){
binding.apply {
tvTitle.text=item.location.name
tvLocationParent.text=item.location.country
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 6bc9d12..1b7cb09 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
@@ -1,26 +1,31 @@
package com.example.brzodolokacije.Fragments
+import android.content.Intent
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
+import com.example.brzodolokacije.Activities.NavigationActivity
import com.example.brzodolokacije.Adapters.SampleAdapter
import com.example.brzodolokacije.Adapters.ShowPostsAdapter
-import com.example.brzodolokacije.Models.ListItemModel
-import com.example.brzodolokacije.Models.Location
-import com.example.brzodolokacije.Models.LocationType
-import com.example.brzodolokacije.Models.Post
+import com.example.brzodolokacije.Models.*
import com.example.brzodolokacije.R
+import com.example.brzodolokacije.Services.RetrofitHelper
+import com.example.brzodolokacije.Services.SharedPreferencesHelper
import com.example.brzodolokacije.databinding.FragmentHomeBinding
+import okhttp3.ResponseBody
+import retrofit2.Call
+import retrofit2.Response
class FragmentShowPosts : Fragment() {
private lateinit var binding: FragmentShowPosts
- private var posts : MutableList<Post> = mutableListOf()
+ private var posts : MutableList<PostPreview> = mutableListOf()
private var layoutManagerVar: RecyclerView.LayoutManager? = null
private var adapterVar: RecyclerView.Adapter<ShowPostsAdapter.ViewHolder>? = null
private var recyclerView: RecyclerView?=null
@@ -28,30 +33,57 @@ class FragmentShowPosts : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//load data for the list
- loadData()
+ //loadData()
//instantiate adapter and linearLayout
+ val postApi= RetrofitHelper.getInstance()
+ val token=SharedPreferencesHelper.getValue("jwt", requireActivity())
+ val request=postApi.getPosts("Bearer "+token)
+
+ 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(posts)
+ Toast.makeText(
+ activity, "prosao zahtev", Toast.LENGTH_LONG
+ ).show()
+ }else{
+ if(response.errorBody()!=null)
+ Toast.makeText(activity, response.errorBody()!!.string(), Toast.LENGTH_LONG).show();
+ }
+
+
+ }
+
+ override fun onFailure(call: Call<MutableList<PostPreview>?>, t: Throwable) {
+ Toast.makeText(
+ activity, t.toString(), Toast.LENGTH_LONG
+ ).show();
+ }
+ })
+
adapterVar=ShowPostsAdapter(posts)
layoutManagerVar= LinearLayoutManager(activity)
}
private fun loadData() {
- posts.add(Post("123",
+ posts.add(PostPreview("123","asdasd",
Location("asd","Ajfelov toranj","Pariz",
- "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid","opasdiad",
- mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf()))
- posts.add(Post("123",
+ "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13,
+ 4.3f,mutableListOf(),mutableListOf()))
+ posts.add(PostPreview("123","asdasd",
Location("asd","Ajfelov toranj","Pariz",
- "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid","opasdiad",
- mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf()))
- posts.add(Post("123",
+ "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13,
+ 4.3f,mutableListOf(),mutableListOf()))
+ posts.add(PostPreview("123","asdasd",
Location("asd","Ajfelov toranj","Pariz",
- "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid","opasdiad",
- mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf()))
- posts.add(Post("123",
+ "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13,
+ 4.3f,mutableListOf(),mutableListOf()))
+ posts.add(PostPreview("123","asdasd",
Location("asd","Ajfelov toranj","Pariz",
- "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid","opasdiad",
- mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf(),mutableListOf()))
- }
+ "Francuska","idk",1.1,1.1, LocationType.GRAD),"opsiopsaid",13,
+ 4.3f,mutableListOf(),mutableListOf()))
+ }
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
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 0bbf72e..bcb6e13 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
@@ -4,9 +4,11 @@ import com.example.brzodolokacije.Models.Auth.JustMail
import com.example.brzodolokacije.Models.Auth.Login
import com.example.brzodolokacije.Models.Auth.Register
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
@@ -21,7 +23,8 @@ interface IBackendApi {
fun forgotpass(@Body obj:JustMail):Call<ResponseBody>
@POST("/api/auth/resetpass")
fun resetpass(@Body obj:ResetPass):Call<ResponseBody>
-
+ @GET("/api/post")
+ fun getPosts(@Header("Authorization") authHeader:String):Call<MutableList<PostPreview>>
//@POST("putanja")
//fun add(@Body obj:Post,@Header("Authorization") authHeader:String):Call<Post>
} \ No newline at end of file