aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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.kt14
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_profile_statistics.xml280
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/single_date_view.xml27
5 files changed, 248 insertions, 146 deletions
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 92da9c0..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
@@ -8,7 +8,11 @@ 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
@@ -61,6 +65,7 @@ class FragmentProfileStatistics : Fragment() {
if(response.isSuccessful()){
stats=response.body()
loadText()
+ loadMonths()
}
@@ -79,6 +84,15 @@ class FragmentProfileStatistics : Fragment() {
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>
+ )
+
+ }
+ }
} \ No newline at end of file
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 ce125bb..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
@@ -9,154 +9,164 @@
>
<LinearLayout
+ android:id="@+id/linearLayout8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:orientation="vertical"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent">
- <LinearLayout
- android:id="@+id/linearLayout3"
- 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_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:text="Broj pregleda"
- android:gravity="center"/>
- <TextView
- android:id="@+id/tvProfileStatisticsViews"
+ <LinearLayout
+ android:id="@+id/linearLayout3"
android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:text="0"
- android:textSize="20dp"
- android:gravity="center"/>
-
- </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:text="Broj ocena"
- android:gravity="center"/>
- <TextView
- android:id="@+id/tvProfileStatisticsRatingNumber"
+ 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="match_parent"
- android:text="0"
- android:textSize="20dp"
- android:gravity="center"/>
-
- </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:text="Prosečna ocena po objavi"
- android:gravity="center"/>
- <TextView
- android:id="@+id/tvProfileStatisticsAverageRating"
+ 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="match_parent"
- android:text="0"
- android:textSize="20dp"
- android:gravity="center"/>
-
-
- </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:text="Broj omiljenih objava"
- android:gravity="center"/>
- <TextView
- android:id="@+id/tvProfileStatisticsFavouriteNumber"
+ 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="match_parent"
- android:text="0"
- android:textSize="20dp"
- android:gravity="center"/>
-
+ 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">
- </LinearLayout>
+ <ImageView
+ android:layout_width="50dp"
+ android:layout_height="50dp"
+ android:src="@drawable/ic_baseline_calendar_month_24" />
- <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">
+ <TextView
+ android:layout_width="100dp"
+ android:layout_height="match_parent"
+ android:layout_marginRight="5dp"
+ android:gravity="center"
+ android:text="Pregledi po mesecima" />
- <ImageView
- android:layout_width="50dp"
- android:layout_height="50dp"
- android:src="@drawable/ic_baseline_calendar_month_24" />
+ </LinearLayout>
- <TextView
- android:layout_width="100dp"
- android:layout_marginRight="5dp"
- android:layout_height="match_parent"
- android:text="Pregledi po mesecima"
- android:gravity="center"/>
</LinearLayout>
@@ -166,7 +176,5 @@
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/linearLayout6" />
-
- </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