diff options
author | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-12-08 15:57:00 +0100 |
---|---|---|
committer | Ognjen Cirkovic <ciraboxkg@gmail.com> | 2022-12-08 15:57:00 +0100 |
commit | bb5e7d1282cccfdac13912b3222be85d0a209fc9 (patch) | |
tree | bfed054aee211132329aa436e88b8ac0d27e72b2 /Client | |
parent | a23ba361bebd27b58971a266e4fbc11eea0d6fac (diff) |
Napravljen adapter za prikaz pregleda po mesecima. Omogucen prikaz pregleda po mesecima.
Diffstat (limited to 'Client')
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 |