From 7a0acc9a2b2d088c71316f3938a3f58e33375ea6 Mon Sep 17 00:00:00 2001 From: clfreville2 Date: Fri, 24 Mar 2023 14:59:53 +0100 Subject: [PATCH] Add a navigation to the commit activity --- .../iut/clfreville2/teaiswarm/MainActivity.kt | 19 +++++++------- .../fragment/ActivityListFragment.kt | 9 +++++++ app/src/main/res/layout/activity_main.xml | 9 ++++++- app/src/main/res/layout/activity_row_item.xml | 26 ++++++++++++++++--- app/src/main/res/navigation/nav_graph.xml | 19 ++++++++++++++ 5 files changed, 67 insertions(+), 15 deletions(-) create mode 100644 app/src/main/res/navigation/nav_graph.xml 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 d1a5d22..f76e321 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 @@ -1,11 +1,11 @@ package fr.uca.iut.clfreville2.teaiswarm -import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import androidx.core.os.bundleOf import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentFactory -import androidx.fragment.app.commit +import androidx.navigation.fragment.NavHostFragment import fr.uca.iut.clfreville2.teaiswarm.fragment.RepositoryListFragment import fr.uca.iut.clfreville2.teaiswarm.model.Repository @@ -20,17 +20,16 @@ class MainActivity : AppCompatActivity() { } super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) - supportFragmentManager.commit { - setReorderingAllowed(true) - replace(R.id.fragment_container_view, RepositoryListFragment::class.java, null) - } } private fun adapterOnClick(repository: Repository) { - val intent = Intent(this, RepositoryDetailActivity()::class.java) - intent.putExtra(REPOSITORY_OWNER, repository.owner.login) - intent.putExtra(REPOSITORY_NAME, repository.name) - startActivity(intent) + val bundle = + bundleOf( + REPOSITORY_OWNER to repository.owner.login, + REPOSITORY_NAME to repository.name + ) + val nav = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment + nav.navController.navigate(R.id.activity_list_fragment, bundle) } class RepositoryListFragmentFactory(private val onClick: (Repository) -> Unit) : FragmentFactory() { diff --git a/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/fragment/ActivityListFragment.kt b/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/fragment/ActivityListFragment.kt index 4c6a544..7d2d2e6 100644 --- a/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/fragment/ActivityListFragment.kt +++ b/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/fragment/ActivityListFragment.kt @@ -15,6 +15,8 @@ import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import fr.uca.iut.clfreville2.teaiswarm.R +import fr.uca.iut.clfreville2.teaiswarm.REPOSITORY_NAME +import fr.uca.iut.clfreville2.teaiswarm.REPOSITORY_OWNER import fr.uca.iut.clfreville2.teaiswarm.model.CommitActivity import fr.uca.iut.clfreville2.teaiswarm.model.RepositoryIdentifier import fr.uca.iut.clfreville2.teaiswarm.network.GiteaService @@ -32,6 +34,10 @@ class ActivityListFragment : Fragment(R.layout.activity_list) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + repository = RepositoryIdentifier( + requireArguments().getString(REPOSITORY_OWNER)!!, + requireArguments().getString(REPOSITORY_NAME)!! + ) updateCommits() } @@ -101,14 +107,17 @@ class ActivityListFragment : Fragment(R.layout.activity_list) { class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { private val commitNameView: TextView + private val commitAuthorView: TextView init { commitNameView = view.findViewById(R.id.commit_name) + commitAuthorView = view.findViewById(R.id.commit_author) } fun bind(commit: CommitActivity?) { commit?.let { commitNameView.text = it.commit.message + commitAuthorView.text = it.commit.author.name } } } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 93f23bc..53ff9cd 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -7,7 +7,14 @@ tools:context=".MainActivity"> + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toBottomOf="parent" + app:defaultNavHost="true" + app:navGraph="@navigation/nav_graph" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_row_item.xml b/app/src/main/res/layout/activity_row_item.xml index 12d5887..27fdf53 100644 --- a/app/src/main/res/layout/activity_row_item.xml +++ b/app/src/main/res/layout/activity_row_item.xml @@ -1,9 +1,27 @@ - + android:layout_height="wrap_content" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:paddingHorizontal="@dimen/row_item_margin_horizontal" + android:paddingTop="@dimen/row_item_margin_vertical"> - + android:textColor="?android:textColorPrimary" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + + diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml new file mode 100644 index 0000000..1daf275 --- /dev/null +++ b/app/src/main/res/navigation/nav_graph.xml @@ -0,0 +1,19 @@ + + + + + + + + \ No newline at end of file