From 10de5c6aa1baf0eafc2cb60054658709b76a0269 Mon Sep 17 00:00:00 2001 From: TAMARA JERINIC Date: Tue, 29 Nov 2022 00:42:34 +0100 Subject: Povezana funkcija za prikupljanje objava korisnika i prikaz objava na profilu. --- .../Activities/ActivityUserProfile.kt | 23 ++++---- .../Fragments/FragmentUserPostsProfileActivity.kt | 64 ++++++++++++++++++++++ .../brzodolokacije/Interfaces/IBackendApi.kt | 2 + .../src/main/res/layout/activity_user_profile.xml | 2 +- .../fragment_user_posts_profile_activity.xml | 18 ++++++ 5 files changed, 97 insertions(+), 12 deletions(-) create mode 100644 Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPostsProfileActivity.kt create mode 100644 Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts_profile_activity.xml (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt index 4f48dc7..5119da9 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt @@ -6,10 +6,12 @@ import android.util.Log import android.widget.* import androidx.appcompat.app.AppCompatActivity import androidx.core.view.isVisible -import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentManager +import androidx.fragment.app.FragmentTransaction import com.bumptech.glide.Glide -import com.example.brzodolokacije.Fragments.FragmentShowUserPosts +import com.example.brzodolokacije.Fragments.FragmentUserPostsProfileActivity import com.example.brzodolokacije.Models.UserReceive +import com.example.brzodolokacije.R import com.example.brzodolokacije.R.* import com.example.brzodolokacije.Services.RetrofitHelper import com.example.brzodolokacije.Services.SharedPreferencesHelper @@ -31,8 +33,7 @@ class ActivityUserProfile : AppCompatActivity() { private lateinit var userObject:UserReceive private lateinit var openChat:ImageButton private lateinit var unfollowUser:Button - private lateinit var followersList: MutableList - private lateinit var followingList: MutableList + private var follow:Boolean=false override fun onCreate(savedInstanceState: Bundle?) { @@ -137,13 +138,13 @@ class ActivityUserProfile : AppCompatActivity() { } showUserPosts.setOnClickListener { - val bundle = Bundle() - bundle.putString("user", Gson().toJson(userObject)) - val fragment = Fragment() - fragment.arguments = bundle - getSupportFragmentManager().beginTransaction() - .replace(id.flActivityProfileFragmentContainer,FragmentShowUserPosts()).commit() - + var fm: FragmentTransaction =supportFragmentManager.beginTransaction() + val fragment = FragmentUserPostsProfileActivity() + val b = Bundle() + b.putString("userId", userObject._id.toString()) + fragment.arguments = b + fm.replace(R.id.flActivityProfileFragmentContainer, fragment) + fm.commit() } } diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPostsProfileActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPostsProfileActivity.kt new file mode 100644 index 0000000..d841430 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPostsProfileActivity.kt @@ -0,0 +1,64 @@ +package com.example.brzodolokacije.Fragments + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.GridLayoutManager +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.example.brzodolokacije.Adapters.MyPostsAdapter +import com.example.brzodolokacije.Adapters.ShowPostsHomePageAdapter +import com.example.brzodolokacije.Models.PostPreview +import com.example.brzodolokacije.R +import com.example.brzodolokacije.Services.RetrofitHelper +import com.example.brzodolokacije.Services.SharedPreferencesHelper +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response + + +class FragmentUserPostsProfileActivity : Fragment() { + private lateinit var recyclerView: RecyclerView + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + var view =inflater.inflate(R.layout.fragment_user_posts_profile_activity, container, false) + + recyclerView=view.findViewById(R.id.rvFragmentUserPostsProfileActivity) + + val bundle = arguments + val userId = bundle!!.getString("userId") + + val api = RetrofitHelper.getInstance() + val token = SharedPreferencesHelper.getValue("jwt", requireActivity()) + var data = api.getUsersPosts("Bearer " + token, userId!!); + data.enqueue(object : Callback> { + override fun onResponse( + call: Call>, + response: Response> + ) { + if (response.body() == null) { + return + } + var posts = response.body()!!.toMutableList() + recyclerView.apply { + layoutManager= GridLayoutManager(requireContext(),3, + GridLayoutManager.VERTICAL,false) + adapter= MyPostsAdapter(requireActivity(),posts) + } + } + + override fun onFailure(call: Call>, t: Throwable) { + } + }) + + + return view + } + + +} \ No newline at end of file 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 bc8c7ae..923861f 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 @@ -104,4 +104,6 @@ interface IBackendApi { @GET("/api/user/{id}/unfollow") fun unfollow(@Header("Authorization") authHeader:String,@Path("id") id:String):Call + @GET("api/Post/posts/{id}/getUserPosts") + fun getUsersPosts(@Header("Authorization") authHeader:String,@Path("id") id:String):Call> } \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_user_profile.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_user_profile.xml index 0e90fc7..bb917cf 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/activity_user_profile.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/activity_user_profile.xml @@ -128,7 +128,7 @@ app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@+id/divider" - app:layout_constraintVertical_bias="1.0"> + app:layout_constraintVertical_bias="0.0"> + + + + + + + + \ No newline at end of file -- cgit v1.2.3