diff options
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 |