From c2617ba1bb0481c045a161c7e1acc841ec169bf5 Mon Sep 17 00:00:00 2001 From: TAMARA JERINIC Date: Sun, 13 Nov 2022 04:05:53 +0100 Subject: Omogućen prikaz sortiranih objava na početnoj strani. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Adapters/ShowPostsHomePageAdapter.kt | 6 ++- .../brzodolokacije/Fragments/FragmentHomePage.kt | 48 ++++++++++++---------- .../java/com/example/brzodolokacije/Models/Post.kt | 1 + .../app/src/main/res/layout/fragment_home_page.xml | 5 ++- .../src/main/res/layout/post_item_home_page.xml | 25 +++++------ .../app/src/main/res/values/styles.xml | 6 +-- 6 files changed, 49 insertions(+), 42 deletions(-) (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsHomePageAdapter.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsHomePageAdapter.kt index c5bdcb3..62a4636 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsHomePageAdapter.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Adapters/ShowPostsHomePageAdapter.kt @@ -1,5 +1,6 @@ package com.example.brzodolokacije.Adapters +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -9,9 +10,10 @@ import androidx.recyclerview.widget.RecyclerView import com.example.brzodolokacije.Models.PostPreview import com.example.brzodolokacije.R -class ShowPopularPostsAdapter(var postPreview:MutableList): +class ShowPostsHomePageAdapter(var postPreview:MutableList): RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PostViewHolder { + Log.d("main","***********************************************adapter******************************************************") val view=LayoutInflater.from(parent.context).inflate(R.layout.post_item_home_page,parent,false) return PostViewHolder(view) } @@ -30,7 +32,7 @@ class PostViewHolder(view: View):RecyclerView.ViewHolder(view){ private val locationName:TextView=view.findViewById(R.id.tvPIHPLocationName) fun bindView(postPreview:PostPreview){ - background.setImageURI(postPreview.images[0]._id.toUri()) + //background.setImageURI(postPreview.images[0]._id.to) locationName.text=postPreview.location.name } } \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePage.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePage.kt index 59fa7ee..874d9de 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePage.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentHomePage.kt @@ -1,19 +1,20 @@ package com.example.brzodolokacije.Fragments -import android.media.CamcorderProfile.getAll 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.Button import android.widget.Toast +import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.example.brzodolokacije.Adapters.ShowPostsHomePageAdapter import com.example.brzodolokacije.Interfaces.IBackendApi import com.example.brzodolokacije.Models.PostPreview import com.example.brzodolokacije.R import com.example.brzodolokacije.Services.RetrofitHelper.baseUrl import com.example.brzodolokacije.Services.SharedPreferencesHelper +import kotlinx.android.synthetic.main.activity_single_post.view.* import retrofit2.Call import retrofit2.Callback import retrofit2.Response @@ -23,9 +24,10 @@ import retrofit2.converter.gson.GsonConverterFactory class FragmentHomePage : Fragment() { private lateinit var posts : MutableList private lateinit var mostViewedPosts : MutableList - private lateinit var recommendedPosts : MutableList + private lateinit var newestPosts : MutableList private lateinit var bestRatedPosts:MutableList - + private lateinit var rvPopular: RecyclerView + private lateinit var rvNewest:RecyclerView /* override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -38,16 +40,11 @@ class FragmentHomePage : Fragment() { // Inflate the layout for this fragment var view:View= inflater.inflate(R.layout.fragment_home_page, container, false) - - //pokupi sve objave iz baze - - /*Toast.makeText( - activity, "get all 1", Toast.LENGTH_LONG - ).show();*/ + rvPopular=view.findViewById(R.id.rvFragmentHomePagePopular) + rvNewest=view.findViewById(R.id.rvFragmentHomePageLatest) + //pokupi sve objave iz baze' getAllPosts() - //getMostViewedPosts() - //getRecommendedPosts() - //getBestRatedPosts() + @@ -80,8 +77,8 @@ class FragmentHomePage : Fragment() { activity, "get all ", Toast.LENGTH_LONG ).show(); posts = response.body()!!.toMutableList() - getMostViewedPosts(posts) - getRecommendedPosts(posts) + getPopularPosts(posts) + getNewestPosts(posts) getBestRatedPosts(posts) } @@ -93,20 +90,29 @@ class FragmentHomePage : Fragment() { }) } - private fun getMostViewedPosts(allPosts:MutableList){ + private fun getPopularPosts(allPosts:MutableList){//most viewed Toast.makeText( activity, "get all mv ", Toast.LENGTH_LONG ).show(); mostViewedPosts=allPosts mostViewedPosts.sortByDescending { it.views } + rvPopular.apply { + layoutManager=LinearLayoutManager(activity,LinearLayoutManager.HORIZONTAL,false) + adapter=ShowPostsHomePageAdapter(mostViewedPosts) + + } } - private fun getRecommendedPosts(allPosts:MutableList){ + private fun getNewestPosts(allPosts:MutableList){ Toast.makeText( activity, "get all r ", Toast.LENGTH_LONG ).show(); - recommendedPosts=allPosts - recommendedPosts.sortByDescending { it.ratings } + newestPosts=allPosts/// izmeniti nakon dodavanja datuma u model!!!!!! + newestPosts.sortBy { it.ratings} + rvNewest.apply { + layoutManager=LinearLayoutManager(activity,LinearLayoutManager.HORIZONTAL,false) + adapter=ShowPostsHomePageAdapter(newestPosts) + } } private fun getBestRatedPosts(allPosts:MutableList){ diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt index f24e72f..a1eb5d0 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Models/Post.kt @@ -35,6 +35,7 @@ data class PostPreview ( var ratings:Float, var comments:List?, var images:List + //nedostaju datum i vreme kreiranja ):Parcelable diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home_page.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home_page.xml index eda952d..7d1c73a 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home_page.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_home_page.xml @@ -9,7 +9,7 @@ + app:layout_constraintTop_toBottomOf="@+id/rvFragmentHomePagePopular"> + android:layout_width="150dp" + android:layout_height="150dp"> @@ -38,11 +36,10 @@ android:id="@+id/tvPIHPLocationName" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginStart="52dp" - android:layout_marginTop="8dp" + android:layout_marginStart="8dp" android:text="TextView" - android:textSize="20dp" android:textColor="@color/white" + android:textSize="10dp" app:layout_constraintStart_toStartOf="@+id/ivPIHPMenu" app:layout_constraintTop_toTopOf="@+id/ivPIHPMenu" /> diff --git a/Client/BrzoDoLokacije/app/src/main/res/values/styles.xml b/Client/BrzoDoLokacije/app/src/main/res/values/styles.xml index 798c013..d8a3730 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/values/styles.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/values/styles.xml @@ -11,10 +11,10 @@ @color/white \ No newline at end of file -- cgit v1.2.3