From b562a184aea115ab898b6efc0de7675a5ee61b31 Mon Sep 17 00:00:00 2001 From: TAMARA JERINIC Date: Sun, 13 Nov 2022 00:14:29 +0100 Subject: Dodato prikupljanje i sortiranje objava za početnu stranu. Dodata početna strana u navigacioni meni. Izmenjen fragment za prikaz. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Activities/NavigationActivity.kt | 4 +- .../brzodolokacije/Fragments/FragmentHomePage.kt | 138 +++++++++++++----- .../src/main/res/drawable/ic_baseline_list_24.xml | 5 + .../main/res/drawable/ic_baseline_person_24.xml | 10 ++ .../app/src/main/res/drawable/location_lake.xml | 23 +++ .../app/src/main/res/layout/fragment_home_page.xml | 157 +++++++++++++-------- .../app/src/main/res/menu/bottom_nav_menu.xml | 14 +- 7 files changed, 247 insertions(+), 104 deletions(-) create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_list_24.xml create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_person_24.xml create mode 100644 Client/BrzoDoLokacije/app/src/main/res/drawable/location_lake.xml (limited to 'Client') diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt index c2997ee..78822ab 100644 --- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt +++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Activities/NavigationActivity.kt @@ -24,6 +24,7 @@ class NavigationActivity : AppCompatActivity() { Toast.makeText( applicationContext, "Open ", Toast.LENGTH_LONG ).show(); + val fragmentHomePage=FragmentHomePage() val fragmentShowPosts=FragmentShowPosts() val browseFragment=FragmentBrowse() val addPostFragment= FragmentAddNew() @@ -32,7 +33,8 @@ class NavigationActivity : AppCompatActivity() { setCurrentFragment(fragmentShowPosts) bottomNav.setOnNavigationItemSelectedListener { when(it.itemId){ - R.id.navHome->setCurrentFragment(fragmentShowPosts) + R.id.navHomePage->setCurrentFragment(fragmentHomePage) + R.id.navAllPosts->setCurrentFragment(fragmentShowPosts) //R.id.navAddPost->setCurrentFragment(addPostFragment) R.id.navAddPost->showBottomSheetAddNew() R.id.navBrowse->setCurrentFragment(browseFragment) 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 7685296..59fa7ee 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,60 +1,122 @@ 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 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 retrofit2.Call +import retrofit2.Callback +import retrofit2.Response +import retrofit2.Retrofit +import retrofit2.converter.gson.GsonConverterFactory -// TODO: Rename parameter arguments, choose names that match -// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER -private const val ARG_PARAM1 = "param1" -private const val ARG_PARAM2 = "param2" - -/** - * A simple [Fragment] subclass. - * Use the [FragmentHomePage.newInstance] factory method to - * create an instance of this fragment. - */ class FragmentHomePage : Fragment() { - // TODO: Rename and change types of parameters - private var param1: String? = null - private var param2: String? = null - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - arguments?.let { - param1 = it.getString(ARG_PARAM1) - param2 = it.getString(ARG_PARAM2) - } - } + private lateinit var posts : MutableList + private lateinit var mostViewedPosts : MutableList + private lateinit var recommendedPosts : MutableList + private lateinit var bestRatedPosts:MutableList + + /* override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + }*/ override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_home_page, container, false) + 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();*/ + getAllPosts() + //getMostViewedPosts() + //getRecommendedPosts() + //getBestRatedPosts() + + + + + return view } + private fun getAllPosts(){ + val api = Retrofit.Builder() + .addConverterFactory(GsonConverterFactory.create()) + .baseUrl(baseUrl) + .build() + .create(IBackendApi::class.java) + val token= SharedPreferencesHelper.getValue("jwt", requireActivity()) + val data=api.getPosts("Bearer "+token) + + data.enqueue(object : Callback>{ + override fun onResponse( + call: Call>, + response: Response> + ) { + if (response.body() == null) { + Toast.makeText( + activity, "get all null", Toast.LENGTH_LONG + ).show(); - companion object { - /** - * Use this factory method to create a new instance of - * this fragment using the provided parameters. - * - * @param param1 Parameter 1. - * @param param2 Parameter 2. - * @return A new instance of fragment FragmentHomePage. - */ - // TODO: Rename and change types and number of parameters - @JvmStatic - fun newInstance(param1: String, param2: String) = - FragmentHomePage().apply { - arguments = Bundle().apply { - putString(ARG_PARAM1, param1) - putString(ARG_PARAM2, param2) + return } + //refresh list + Toast.makeText( + activity, "get all ", Toast.LENGTH_LONG + ).show(); + posts = response.body()!!.toMutableList() + getMostViewedPosts(posts) + getRecommendedPosts(posts) + getBestRatedPosts(posts) } + + override fun onFailure(call: Call>, t: Throwable) { + Toast.makeText( + activity,"nema objava", Toast.LENGTH_LONG + ).show(); + } + }) + } + + private fun getMostViewedPosts(allPosts:MutableList){ + Toast.makeText( + activity, "get all mv ", Toast.LENGTH_LONG + ).show(); + mostViewedPosts=allPosts + mostViewedPosts.sortByDescending { it.views } + + } + private fun getRecommendedPosts(allPosts:MutableList){ + Toast.makeText( + activity, "get all r ", Toast.LENGTH_LONG + ).show(); + recommendedPosts=allPosts + recommendedPosts.sortByDescending { it.ratings } } + + private fun getBestRatedPosts(allPosts:MutableList){ + Toast.makeText( + activity, "get all br ", Toast.LENGTH_LONG + ).show(); + bestRatedPosts=allPosts + bestRatedPosts.sortByDescending { it.ratings } + } + + + } \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_list_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_list_24.xml new file mode 100644 index 0000000..49f6624 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_list_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_person_24.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_person_24.xml new file mode 100644 index 0000000..a1623e2 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/ic_baseline_person_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/Client/BrzoDoLokacije/app/src/main/res/drawable/location_lake.xml b/Client/BrzoDoLokacije/app/src/main/res/drawable/location_lake.xml new file mode 100644 index 0000000..65648f7 --- /dev/null +++ b/Client/BrzoDoLokacije/app/src/main/res/drawable/location_lake.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file 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 01c5f65..eda952d 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 @@ -8,7 +8,6 @@ - - + app:layout_constraintTop_toTopOf="parent"> + + + + app:layout_constraintTop_toBottomOf="@+id/cardView" /> + app:layout_constraintTop_toBottomOf="@+id/editTextTextPersonName3" + tools:ignore="TouchTargetSizeCheck" /> - - - - - - - - - + android:layout_marginStart="16dp" + android:layout_marginTop="8dp" + android:orientation="horizontal" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent"> + + + + + + + + + + + + + + + app:layout_constraintTop_toBottomOf="@+id/scrollview" /> + app:layout_constraintTop_toBottomOf="@+id/scrollview" + tools:ignore="TouchTargetSizeCheck" /> \ No newline at end of file diff --git a/Client/BrzoDoLokacije/app/src/main/res/menu/bottom_nav_menu.xml b/Client/BrzoDoLokacije/app/src/main/res/menu/bottom_nav_menu.xml index da6577e..c024570 100644 --- a/Client/BrzoDoLokacije/app/src/main/res/menu/bottom_nav_menu.xml +++ b/Client/BrzoDoLokacije/app/src/main/res/menu/bottom_nav_menu.xml @@ -1,19 +1,23 @@ + \ No newline at end of file -- cgit v1.2.3