aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Backend/Api/Api/Models/User.cs1
-rw-r--r--Backend/Api/Api/Services/PostService.cs3
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/MonthViewsAdapter.kt63
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/MyPostsAdapter.kt10
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/FragmentProfileStatistics.kt77
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt12
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Statistics.kt18
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_calendar_month_24.xml5
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_favorite_24.xml2
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_star_24.xml5
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_star_half_24.xml5
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile_statistics.xml225
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/single_date_view.xml27
15 files changed, 374 insertions, 83 deletions
diff --git a/Backend/Api/Api/Models/User.cs b/Backend/Api/Api/Models/User.cs
index 52d0f24..620c9c8 100644
--- a/Backend/Api/Api/Models/User.cs
+++ b/Backend/Api/Api/Models/User.cs
@@ -82,6 +82,7 @@ namespace Api.Models
public int numberOfRatingsOnPosts { get; set; }
public double averagePostRatingOnPosts {get; set; }
public List<MonthlyViews> monthlyViews { get; set; }
+ public int numberOfFavouritePosts { get; set; }
}
public class MonthlyViews
diff --git a/Backend/Api/Api/Services/PostService.cs b/Backend/Api/Api/Services/PostService.cs
index 0799f10..16ebbb7 100644
--- a/Backend/Api/Api/Services/PostService.cs
+++ b/Backend/Api/Api/Services/PostService.cs
@@ -672,6 +672,7 @@ namespace Api.Services
stats.numberOfPosts = 0;
stats.totalViews = 0;
stats.monthlyViews = new List<MonthlyViews>();
+ stats.numberOfFavouritePosts = 0;
if(posts != null)
@@ -691,6 +692,8 @@ namespace Api.Services
stats.totalViews += post.views;
stats.numberOfRatingsOnPosts += post.ratingscount;
stats.numberOfPosts++;
+ if(post.favourites!=null)
+ stats.numberOfFavouritePosts+=post.favourites.Count;
ratingsum += post.ratings * post.ratingscount;
}
if(stats.numberOfRatingsOnPosts > 0) //don't forget to check div by 0 jesus
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/MonthViewsAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/MonthViewsAdapter.kt
new file mode 100644
index 0000000..240deb0
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/MonthViewsAdapter.kt
@@ -0,0 +1,63 @@
+package com.example.brzodolokacije.Adapters
+
+import android.app.Activity
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.recyclerview.widget.RecyclerView
+import com.example.brzodolokacije.Models.MonthlyViews
+import com.example.brzodolokacije.databinding.SingleDateViewBinding
+
+class MonthViewsAdapter (val activity: Activity, val items : MutableList<MonthlyViews>)
+ : RecyclerView.Adapter<MonthViewsAdapter.ViewHolder>() {
+
+
+ private lateinit var binding: SingleDateViewBinding
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+ val inflater = LayoutInflater.from(parent.context)
+ binding = SingleDateViewBinding.inflate(inflater, parent, false)
+ return ViewHolder(binding)
+ }
+
+
+
+
+ override fun getItemCount() = items.size
+ inner class ViewHolder(itemView: SingleDateViewBinding) : RecyclerView.ViewHolder(itemView.root) {
+ fun bind(item: MonthlyViews) {
+ binding.apply {
+ tvMonth.text=numberToMonthName(item.month)
+ tvMonthViews.text=item.views.toString()
+
+ }
+ }
+ }
+
+ override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+ return holder.bind(items[position])
+
+ }
+ fun numberToMonthName(number:Int):String{
+ var text=""
+ when (number) {
+ 1 -> text="Januar"
+ 2 -> text="Februar"
+ 3 -> text="Mart"
+ 4 -> text="April"
+ 5 -> text="Maj"
+ 6 -> text="Jun"
+ 7 -> text="Jul"
+ 8 -> text="Avgust"
+ 9 -> text="Septembar"
+ 10 -> text="Oktobar"
+ 11 -> text="Novembar"
+ 12 -> text="Decembar"
+ else -> {
+ text = "nedefinisan"
+ }
+ }
+
+ return text
+
+ }
+
+}
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/MyPostsAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/MyPostsAdapter.kt
index e557e02..de7d619 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/MyPostsAdapter.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/MyPostsAdapter.kt
@@ -2,12 +2,9 @@ package com.example.brzodolokacije.Adapters
import android.app.Activity
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.bumptech.glide.Glide
import com.example.brzodolokacije.Activities.ActivitySinglePost
@@ -17,11 +14,6 @@ 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 MyPostsAdapter (val activity:Activity,val items : MutableList<PostPreview>)
@@ -29,8 +21,6 @@ class MyPostsAdapter (val activity:Activity,val items : MutableList<PostPreview>
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)
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/FragmentProfileStatistics.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/FragmentProfileStatistics.kt
index 2ef4d5f..fb4c563 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/FragmentProfileStatistics.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/FragmentProfileStatistics.kt
@@ -1,15 +1,35 @@
package com.example.brzodolokacije
import android.os.Bundle
+import android.util.Log
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import android.widget.TextView
+import android.widget.Toast
+import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.example.brzodolokacije.Adapters.MonthViewsAdapter
+import com.example.brzodolokacije.Adapters.MyPostsAdapter
+import com.example.brzodolokacije.Models.MonthlyViews
+import com.example.brzodolokacije.Models.Statistics
+import com.example.brzodolokacije.Models.UserReceive
+import com.example.brzodolokacije.Services.RetrofitHelper
+import com.example.brzodolokacije.Services.SharedPreferencesHelper
+import retrofit2.Call
+import retrofit2.Response
class FragmentProfileStatistics : Fragment() {
-
+ private var stats:Statistics?=null
+ private var username:String?=null
+ private lateinit var totalViews:TextView
+ private lateinit var numberOfRatings:TextView
+ private lateinit var averageRatings:TextView
+ private lateinit var numberOfFavourite:TextView
+ private lateinit var rcMonths:RecyclerView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -19,8 +39,59 @@ class FragmentProfileStatistics : Fragment() {
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
- // Inflate the layout for this fragment
- return inflater.inflate(R.layout.fragment_profile_statistics, container, false)
+ var view=inflater.inflate(R.layout.fragment_profile_statistics, container, false)
+ username=this.requireArguments().getString("username")
+ totalViews=view.findViewById(R.id.tvProfileStatisticsViews)
+ numberOfRatings=view.findViewById(R.id.tvProfileStatisticsRatingNumber)
+ averageRatings=view.findViewById(R.id.tvProfileStatisticsAverageRating)
+ numberOfFavourite=view.findViewById(R.id.tvProfileStatisticsFavouriteNumber)
+ rcMonths=view.findViewById(R.id.rvFragmentProfileStatisticsMonths)
+
+
+
+ loadStats()
+
+ return view
+ }
+
+
+ fun loadStats(){
+ val authApi= RetrofitHelper.getInstance()
+ val token= SharedPreferencesHelper.getValue("jwt", requireActivity())
+ val request=authApi.getUserStatsFromUsername("Bearer "+token,username!!)
+
+ request.enqueue(object : retrofit2.Callback<Statistics?> {
+ override fun onResponse(call: Call<Statistics?>, response: Response<Statistics?>) {
+ if(response.isSuccessful()){
+ stats=response.body()
+ loadText()
+ loadMonths()
+
+
+ }
+ }
+ override fun onFailure(call: Call<Statistics?>, t: Throwable) {
+ Toast.makeText(
+ activity, t.toString(), Toast.LENGTH_LONG
+ ).show();
+ }
+ })
+
+ }
+ fun loadText(){
+ totalViews.text=stats!!.totalViews.toString()
+ numberOfRatings.text=stats!!.numberOfRatingsOnPosts.toString()
+ averageRatings.text=stats!!.averagePostRatingOnPosts.toString()
+ numberOfFavourite.text=stats!!.numberOfFavouritePosts.toString()
+ }
+ private fun loadMonths(){
+ rcMonths.apply {
+ layoutManager= GridLayoutManager(requireContext(),1, GridLayoutManager.HORIZONTAL,false)
+ adapter= MonthViewsAdapter(requireActivity(),
+ stats!!.monthlyViews as MutableList<MonthlyViews>
+ )
+
+ }
}
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt
index 0b0ad55..5d1530d 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentMyProfileInfo.kt
@@ -49,7 +49,17 @@ class FragmentMyProfileInfo : Fragment() {
val manager: androidx.fragment.app.FragmentManager? = fragmentManager
val transaction: FragmentTransaction = manager!!.beginTransaction()
- transaction.replace(R.id.flFragmentProfileFragmentContainer, FragmentProfileStatistics())
+
+ var fragment:FragmentProfileStatistics=FragmentProfileStatistics()
+ val bundle = Bundle()
+ var parentFragment:FragmentProfile=parentFragment as FragmentProfile
+ var username=parentFragment.usernameStringSend
+ bundle.putString("username", username)
+ fragment.arguments=bundle
+
+
+
+ transaction.replace(R.id.flFragmentProfileFragmentContainer,fragment )
transaction.commit()
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt
index 6fe4678..a9858e2 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentProfile.kt
@@ -60,6 +60,7 @@ class FragmentProfile : Fragment(com.example.brzodolokacije.R.layout.fragment_pr
private lateinit var profilePicturePlus: MaterialButton
private lateinit var showFollowers: TextView
private lateinit var showFollowing: TextView
+ public var usernameStringSend:String?=null
override fun onCreateView(
@@ -208,6 +209,7 @@ class FragmentProfile : Fragment(com.example.brzodolokacije.R.layout.fragment_pr
private fun setUserInfo(user:UserReceive){
name.setText(user.name)
username.setText("@"+user.username)
+ usernameStringSend=user.username
postsCount.setText(user.postcount.toString())
Log.d("follno",user.followersCount.toString())
Log.d("follno","helllllllllllllllllllllppppppppppppppppppppppppppppppp")
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 960c56d..f6dfdcf 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
@@ -124,5 +124,7 @@ interface IBackendApi {
@POST("/api/user/changePass")
fun changePass(@Header("Authorization") authHeader:String):Call<Int>
+ @GET("/api/user/{username}/profile/stats")
+ fun getUserStatsFromUsername(@Header("Authorization") authHeader:String,@Path("username") username:String):Call<Statistics>
} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Statistics.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Statistics.kt
new file mode 100644
index 0000000..4466e05
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Statistics.kt
@@ -0,0 +1,18 @@
+package com.example.brzodolokacije.Models
+
+import android.os.Parcelable
+import kotlinx.android.parcel.Parcelize
+data class Statistics(
+ var totalViews:Int,
+ var numberOfPosts:Int,
+ var numberOfRatingsOnPosts:Int,
+ var averagePostRatingOnPosts:Double,
+ var monthlyViews:List<MonthlyViews>,
+ var numberOfFavouritePosts:Int
+)
+@Parcelize
+data class MonthlyViews(
+ var month:Int,
+ var views:Int
+):Parcelable
+
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_calendar_month_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_calendar_month_24.xml
new file mode 100644
index 0000000..a278444
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_calendar_month_24.xml
@@ -0,0 +1,5 @@
+<vector android:height="24dp" android:tint="#747474"
+ android:viewportHeight="24" android:viewportWidth="24"
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="@android:color/white" android:pathData="M19,4h-1V2h-2v2H8V2H6v2H5C3.89,4 3.01,4.9 3.01,6L3,20c0,1.1 0.89,2 2,2h14c1.1,0 2,-0.9 2,-2V6C21,4.9 20.1,4 19,4zM19,20H5V10h14V20zM9,14H7v-2h2V14zM13,14h-2v-2h2V14zM17,14h-2v-2h2V14zM9,18H7v-2h2V18zM13,18h-2v-2h2V18zM17,18h-2v-2h2V18z"/>
+</vector>
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_favorite_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_favorite_24.xml
index 84df34b..2dbc440 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_favorite_24.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_favorite_24.xml
@@ -1,4 +1,4 @@
-<vector android:height="24dp" android:tint="#E52121"
+<vector android:height="24dp" android:tint="#747474"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M12,21.35l-1.45,-1.32C5.4,15.36 2,12.28 2,8.5 2,5.42 4.42,3 7.5,3c1.74,0 3.41,0.81 4.5,2.09C13.09,3.81 14.76,3 16.5,3 19.58,3 22,5.42 22,8.5c0,3.78 -3.4,6.86 -8.55,11.54L12,21.35z"/>
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_star_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_star_24.xml
new file mode 100644
index 0000000..88f8d7a
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_star_24.xml
@@ -0,0 +1,5 @@
+<vector android:height="24dp" android:tint="#747474"
+ android:viewportHeight="24" android:viewportWidth="24"
+ android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="@android:color/white" android:pathData="M12,17.27L18.18,21l-1.64,-7.03L22,9.24l-7.19,-0.61L12,2 9.19,8.63 2,9.24l5.46,4.73L5.82,21z"/>
+</vector>
diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_star_half_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_star_half_24.xml
new file mode 100644
index 0000000..d532b23
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_star_half_24.xml
@@ -0,0 +1,5 @@
+<vector android:autoMirrored="true" android:height="24dp"
+ android:tint="#747474" android:viewportHeight="24"
+ android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+ <path android:fillColor="@android:color/white" android:pathData="M22,9.24l-7.19,-0.62L12,2L9.19,8.63L2,9.24l5.46,4.73L5.82,21L12,17.27L18.18,21l-1.63,-7.03L22,9.24zM12,15.4V6.1l1.71,4.04l4.38,0.38l-3.32,2.88l1,4.28L12,15.4z"/>
+</vector>
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile_statistics.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile_statistics.xml
index d5d72d1..ca60334 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile_statistics.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile_statistics.xml
@@ -5,87 +5,176 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".FragmentProfileStatistics"
- android:padding="16dp">
+ android:padding="16dp"
+ >
<LinearLayout
- android:id="@+id/linearLayout3"
+ android:id="@+id/linearLayout8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:orientation="horizontal"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent">
-
- <ImageView
- android:layout_width="50dp"
- android:layout_height="50dp"
- android:src="@drawable/ic_total_views" />
- <TextView
- android:layout_width="100dp"
- android:layout_height="match_parent" />
-
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/linearLayout4"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
+ android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/linearLayout3">
-
- <ImageView
- android:layout_width="50dp"
- android:layout_height="50dp"
- android:src="@drawable/ic_total_views" />
-
- <TextView
- android:layout_width="100dp"
- android:layout_height="match_parent" />
-
- </LinearLayout>
-
- <LinearLayout
- android:id="@+id/linearLayout5"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/linearLayout4">
+ app:layout_constraintTop_toTopOf="parent">
- <ImageView
- android:layout_width="50dp"
- android:layout_height="50dp"
- android:src="@drawable/ic_total_views" />
+ <LinearLayout
+ android:id="@+id/linearLayout3"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
+
+ <ImageView
+ android:layout_width="50dp"
+ android:layout_height="50dp"
+ android:src="@drawable/ic_total_views" />
+
+ <TextView
+ android:layout_width="100dp"
+ android:layout_height="match_parent"
+ android:layout_marginRight="5dp"
+ android:gravity="center"
+ android:text="Broj pregleda" />
+
+ <TextView
+ android:id="@+id/tvProfileStatisticsViews"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:text="0"
+ android:textSize="20dp" />
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/linearLayout4"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/linearLayout3">
+
+ <ImageView
+ android:layout_width="50dp"
+ android:layout_height="50dp"
+ android:src="@drawable/ic_baseline_star_24" />
+
+ <TextView
+ android:layout_width="100dp"
+ android:layout_height="match_parent"
+ android:layout_marginRight="5dp"
+ android:gravity="center"
+ android:text="Broj ocena" />
+
+ <TextView
+ android:id="@+id/tvProfileStatisticsRatingNumber"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:text="0"
+ android:textSize="20dp" />
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/linearLayout5"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/linearLayout4">
+
+ <ImageView
+ android:layout_width="50dp"
+ android:layout_height="50dp"
+ android:src="@drawable/ic_baseline_star_half_24" />
+
+ <TextView
+ android:layout_width="100dp"
+ android:layout_height="match_parent"
+ android:layout_marginRight="5dp"
+ android:gravity="center"
+ android:text="Prosečna ocena po objavi" />
+
+ <TextView
+ android:id="@+id/tvProfileStatisticsAverageRating"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:text="0"
+ android:textSize="20dp" />
+
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/linearLayout7"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/linearLayout5">
+
+ <ImageView
+ android:layout_width="50dp"
+ android:layout_height="50dp"
+ android:src="@drawable/ic_baseline_favorite_24" />
+
+ <TextView
+ android:layout_width="100dp"
+ android:layout_height="match_parent"
+ android:layout_marginRight="5dp"
+ android:gravity="center"
+ android:text="Broj omiljenih objava" />
+
+ <TextView
+ android:id="@+id/tvProfileStatisticsFavouriteNumber"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:text="0"
+ android:textSize="20dp" />
+
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/linearLayout6"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/linearLayout7">
+
+ <ImageView
+ android:layout_width="50dp"
+ android:layout_height="50dp"
+ android:src="@drawable/ic_baseline_calendar_month_24" />
+
+ <TextView
+ android:layout_width="100dp"
+ android:layout_height="match_parent"
+ android:layout_marginRight="5dp"
+ android:gravity="center"
+ android:text="Pregledi po mesecima" />
+
+ </LinearLayout>
- <TextView
- android:layout_width="100dp"
- android:layout_height="match_parent" />
</LinearLayout>
- <LinearLayout
- android:id="@+id/linearLayout6"
- android:layout_width="wrap_content"
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/rvFragmentProfileStatisticsMonths"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/linearLayout5">
-
- <ImageView
- android:layout_width="50dp"
- android:layout_height="50dp"
- android:src="@drawable/ic_total_views" />
-
- <TextView
- android:layout_width="100dp"
- android:layout_height="match_parent" />
-
- </LinearLayout>
-
-
+ app:layout_constraintTop_toBottomOf="@+id/linearLayout8" />
</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/single_date_view.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/single_date_view.xml
new file mode 100644
index 0000000..fd4c568
--- /dev/null
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/single_date_view.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="150dp"
+ android:layout_height="50dp">
+
+ <TextView
+ android:id="@+id/tvMonth"
+ android:layout_width="100dp"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:text="Mesec"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <TextView
+ android:id="@+id/tvMonthViews"
+ android:layout_width="50dp"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:text="5"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toEndOf="@+id/tvMonth"
+ app:layout_constraintTop_toTopOf="parent" />
+</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file