From 6396947de95a35504a0ae775c5f60bace2643d89 Mon Sep 17 00:00:00 2001 From: clfreville2 Date: Fri, 7 Apr 2023 14:38:47 +0200 Subject: [PATCH] Sort by updated initially --- .../iut/clfreville2/teaiswarm/MainActivity.kt | 4 ++- .../fragment/RepositoryListFragment.kt | 26 +++++++++++++++++-- app/src/main/res/layout/repository_list.xml | 18 ++++++++++--- app/src/main/res/values/strings.xml | 1 + 4 files changed, 42 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/MainActivity.kt b/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/MainActivity.kt index 05ef7c2..4c059e4 100644 --- a/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/MainActivity.kt +++ b/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/MainActivity.kt @@ -12,6 +12,8 @@ import fr.uca.iut.clfreville2.teaiswarm.fragment.RepositoryListFragment import fr.uca.iut.clfreville2.teaiswarm.fragment.SetupConfigFragment import fr.uca.iut.clfreville2.teaiswarm.model.Repository import fr.uca.iut.clfreville2.teaiswarm.model.search.SearchSettings +import fr.uca.iut.clfreville2.teaiswarm.model.search.SortCriteria +import fr.uca.iut.clfreville2.teaiswarm.model.search.SortOrder const val REPOSITORY_OWNER = "repository_owner" const val REPOSITORY_NAME = "repository_name" @@ -48,7 +50,7 @@ class MainActivity : AppCompatActivity() { override fun instantiate(classLoader: ClassLoader, className: String): Fragment = when (className) { RepositoryListFragment::class.java.name -> RepositoryListFragment( - SearchSettings(), onClick + SearchSettings(sort = SortCriteria.UPDATED, order = SortOrder.DESC), onClick ) SetupConfigFragment::class.java.name -> SetupConfigFragment(preferences) else -> super.instantiate(classLoader, className) diff --git a/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/fragment/RepositoryListFragment.kt b/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/fragment/RepositoryListFragment.kt index 48f4c88..2787dee 100644 --- a/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/fragment/RepositoryListFragment.kt +++ b/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/fragment/RepositoryListFragment.kt @@ -5,6 +5,7 @@ import android.view.View import android.widget.AdapterView import android.widget.ArrayAdapter import android.widget.Spinner +import android.widget.ToggleButton import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.lifecycle.ViewModel @@ -20,6 +21,7 @@ import fr.uca.iut.clfreville2.teaiswarm.adapter.RepositoryListAdapter import fr.uca.iut.clfreville2.teaiswarm.model.Repository import fr.uca.iut.clfreville2.teaiswarm.model.search.SearchSettings import fr.uca.iut.clfreville2.teaiswarm.model.search.SortCriteria +import fr.uca.iut.clfreville2.teaiswarm.model.search.SortOrder import fr.uca.iut.clfreville2.teaiswarm.network.RepositoryService import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.launch @@ -33,8 +35,11 @@ class RepositoryListFragment( ) : Fragment(R.layout.repository_list) { private val service = TeaIsWarm.service - private var search: SearchSettings by Delegates.observable(SearchSettings()) { _, _, _ -> - updateRepositories() + private var lateInit = true + private var search: SearchSettings by Delegates.observable(initialSearch) { _, _, _ -> + if (!lateInit) { + updateRepositories() + } } private lateinit var recyclerView: RecyclerView @@ -53,6 +58,22 @@ class RepositoryListFragment( spinner.adapter = adapter } spinner.onItemSelectedListener = SortListener() + spinner.setSelection(search.sort.ordinal) + + val toggleSort: ToggleButton = view.findViewById(R.id.desc_sort_toggle) + toggleSort.setOnCheckedChangeListener { _, isChecked -> + search = + search.copy( + order = if (isChecked) { + SortOrder.DESC + } else { + SortOrder.ASC + } + ) + } + if (search.order == SortOrder.DESC) { + toggleSort.isChecked = true + } val viewModel by viewModels( factoryProducer = { @@ -71,6 +92,7 @@ class RepositoryListFragment( } } + lateInit = true search = initialSearch } diff --git a/app/src/main/res/layout/repository_list.xml b/app/src/main/res/layout/repository_list.xml index 2ea9510..5556add 100644 --- a/app/src/main/res/layout/repository_list.xml +++ b/app/src/main/res/layout/repository_list.xml @@ -3,11 +3,21 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> - - + android:layout_height="wrap_content"> + + + + Configure Activity User not found + Asc Desc alpha