aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Backend/Api/Api/Controllers/PostController.cs6
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/ActivityUserProfile.kt23
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentUserPostsProfileActivity.kt64
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/activity_user_profile.xml2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts_profile_activity.xml18
6 files changed, 103 insertions, 12 deletions
diff --git a/Backend/Api/Api/Controllers/PostController.cs b/Backend/Api/Api/Controllers/PostController.cs
index 3d7199c..7fe9961 100644
--- a/Backend/Api/Api/Controllers/PostController.cs
+++ b/Backend/Api/Api/Controllers/PostController.cs
@@ -170,5 +170,11 @@ namespace Api.Controllers
return Ok(await _postService.Get10Best());
}
+ [HttpGet("posts/{id}/getUserPosts")]
+ [Authorize(Roles = "User")]
+ public async Task<ActionResult<List<PostSend>>> GetUsersPosts(string id)
+ {
+ return Ok(await _postService.GetUsersPosts(id));
+ }
}
}
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<UserReceive>
- private lateinit var followingList: MutableList<UserReceive>
+
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<MutableList<PostPreview>> {
+ override fun onResponse(
+ call: Call<MutableList<PostPreview>>,
+ response: Response<MutableList<PostPreview>>
+ ) {
+ if (response.body() == null) {
+ return
+ }
+ var posts = response.body()!!.toMutableList<PostPreview>()
+ recyclerView.apply {
+ layoutManager= GridLayoutManager(requireContext(),3,
+ GridLayoutManager.VERTICAL,false)
+ adapter= MyPostsAdapter(requireActivity(),posts)
+ }
+ }
+
+ override fun onFailure(call: Call<MutableList<PostPreview>>, 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<Boolean>
+ @GET("api/Post/posts/{id}/getUserPosts")
+ fun getUsersPosts(@Header("Authorization") authHeader:String,@Path("id") id:String):Call<MutableList<PostPreview>>
} \ 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"></FrameLayout>
+ app:layout_constraintVertical_bias="0.0"></FrameLayout>
<TableLayout
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts_profile_activity.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts_profile_activity.xml
new file mode 100644
index 0000000..2c5012e
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts_profile_activity.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".Fragments.FragmentUserPostsProfileActivity">
+
+ <!-- TODO: Update blank fragment layout -->
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/rvFragmentUserPostsProfileActivity"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
+
+</FrameLayout> \ No newline at end of file