Add a navigation to the commit activity
This commit is contained in:
@@ -1,11 +1,11 @@
|
|||||||
package fr.uca.iut.clfreville2.teaiswarm
|
package fr.uca.iut.clfreville2.teaiswarm
|
||||||
|
|
||||||
import android.content.Intent
|
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import androidx.core.os.bundleOf
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.FragmentFactory
|
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.fragment.RepositoryListFragment
|
||||||
import fr.uca.iut.clfreville2.teaiswarm.model.Repository
|
import fr.uca.iut.clfreville2.teaiswarm.model.Repository
|
||||||
|
|
||||||
@@ -20,17 +20,16 @@ class MainActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setContentView(R.layout.activity_main)
|
setContentView(R.layout.activity_main)
|
||||||
supportFragmentManager.commit {
|
|
||||||
setReorderingAllowed(true)
|
|
||||||
replace(R.id.fragment_container_view, RepositoryListFragment::class.java, null)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun adapterOnClick(repository: Repository) {
|
private fun adapterOnClick(repository: Repository) {
|
||||||
val intent = Intent(this, RepositoryDetailActivity()::class.java)
|
val bundle =
|
||||||
intent.putExtra(REPOSITORY_OWNER, repository.owner.login)
|
bundleOf(
|
||||||
intent.putExtra(REPOSITORY_NAME, repository.name)
|
REPOSITORY_OWNER to repository.owner.login,
|
||||||
startActivity(intent)
|
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() {
|
class RepositoryListFragmentFactory(private val onClick: (Repository) -> Unit) : FragmentFactory() {
|
||||||
|
@@ -15,6 +15,8 @@ import androidx.recyclerview.widget.DiffUtil
|
|||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import fr.uca.iut.clfreville2.teaiswarm.R
|
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.CommitActivity
|
||||||
import fr.uca.iut.clfreville2.teaiswarm.model.RepositoryIdentifier
|
import fr.uca.iut.clfreville2.teaiswarm.model.RepositoryIdentifier
|
||||||
import fr.uca.iut.clfreville2.teaiswarm.network.GiteaService
|
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?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
repository = RepositoryIdentifier(
|
||||||
|
requireArguments().getString(REPOSITORY_OWNER)!!,
|
||||||
|
requireArguments().getString(REPOSITORY_NAME)!!
|
||||||
|
)
|
||||||
updateCommits()
|
updateCommits()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,14 +107,17 @@ class ActivityListFragment : Fragment(R.layout.activity_list) {
|
|||||||
|
|
||||||
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
|
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
|
||||||
private val commitNameView: TextView
|
private val commitNameView: TextView
|
||||||
|
private val commitAuthorView: TextView
|
||||||
|
|
||||||
init {
|
init {
|
||||||
commitNameView = view.findViewById(R.id.commit_name)
|
commitNameView = view.findViewById(R.id.commit_name)
|
||||||
|
commitAuthorView = view.findViewById(R.id.commit_author)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun bind(commit: CommitActivity?) {
|
fun bind(commit: CommitActivity?) {
|
||||||
commit?.let {
|
commit?.let {
|
||||||
commitNameView.text = it.commit.message
|
commitNameView.text = it.commit.message
|
||||||
|
commitAuthorView.text = it.commit.author.name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -7,7 +7,14 @@
|
|||||||
tools:context=".MainActivity">
|
tools:context=".MainActivity">
|
||||||
|
|
||||||
<androidx.fragment.app.FragmentContainerView
|
<androidx.fragment.app.FragmentContainerView
|
||||||
|
android:id="@+id/nav_host_fragment"
|
||||||
|
android:name="androidx.navigation.fragment.NavHostFragment"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:id="@+id/fragment_container_view" />
|
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" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@@ -1,9 +1,27 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
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">
|
||||||
<TextView
|
<TextView
|
||||||
|
android:id="@+id/commit_name"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:id="@+id/commit_name" />
|
android:textColor="?android:textColorPrimary"
|
||||||
</LinearLayout>
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/commit_author"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="0dp"
|
||||||
|
android:paddingVertical="@dimen/row_item_margin_vertical"
|
||||||
|
android:text="@string/unknown"
|
||||||
|
android:textSize="@dimen/repo_description_size"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/commit_name" />
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
19
app/src/main/res/navigation/nav_graph.xml
Normal file
19
app/src/main/res/navigation/nav_graph.xml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:id="@+id/nav_graph"
|
||||||
|
app:startDestination="@id/repository_ist_fragment">
|
||||||
|
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/repository_ist_fragment"
|
||||||
|
android:name="fr.uca.iut.clfreville2.teaiswarm.fragment.RepositoryListFragment"
|
||||||
|
android:label="RepositoryListFragment" >
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_repositoryListFragment_to_activityListFragment3"
|
||||||
|
app:destination="@id/activity_list_fragment" />
|
||||||
|
</fragment>
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/activity_list_fragment"
|
||||||
|
android:name="fr.uca.iut.clfreville2.teaiswarm.fragment.ActivityListFragment"
|
||||||
|
android:label="ActivityListFragment" />
|
||||||
|
</navigation>
|
Reference in New Issue
Block a user