diff --git a/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/FileListAdapter.kt b/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/FileListAdapter.kt new file mode 100644 index 0000000..9eb9148 --- /dev/null +++ b/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/FileListAdapter.kt @@ -0,0 +1,44 @@ +package fr.uca.iut.clfreville2.teaiswarm + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import fr.uca.iut.clfreville2.teaiswarm.model.VersionedFile + +class FileListAdapter(private val dataSet: List, private val onClick: (VersionedFile) -> Unit) : + RecyclerView.Adapter() { + + class ViewHolder(view: View, private val onClick: (VersionedFile) -> Unit) : RecyclerView.ViewHolder(view) { + private val fileNameView: TextView + private var currentFile: VersionedFile? = null + + init { + fileNameView = view.findViewById(R.id.repository_name) + itemView.setOnClickListener { + currentFile?.let { + onClick(it) + } + } + } + + fun bind(file: VersionedFile) { + fileNameView.text = file.fileName + currentFile = file + } + } + + override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): ViewHolder { + val view = LayoutInflater.from(viewGroup.context) + .inflate(R.layout.repository_row_item, viewGroup, false) + + return ViewHolder(view, onClick) + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + holder.bind(dataSet[position]) + } + + override fun getItemCount() = dataSet.size +} diff --git a/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/RepositoryDetailActivity.kt b/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/RepositoryDetailActivity.kt index f0448f9..3daa9aa 100644 --- a/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/RepositoryDetailActivity.kt +++ b/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/RepositoryDetailActivity.kt @@ -3,10 +3,13 @@ package fr.uca.iut.clfreville2.teaiswarm import android.os.Bundle import android.widget.TextView import androidx.appcompat.app.AppCompatActivity +import androidx.recyclerview.widget.RecyclerView +import fr.uca.iut.clfreville2.teaiswarm.model.VersionedFile class RepositoryDetailActivity : AppCompatActivity() { private lateinit var repositoryName: TextView + private lateinit var versionedFiles: RecyclerView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -23,5 +26,20 @@ class RepositoryDetailActivity : AppCompatActivity() { currentRepositoryName?.let { repositoryName.text = currentRepositoryName } + + versionedFiles = findViewById(R.id.versioned_files_view) + versionedFiles.adapter = FileListAdapter( + listOf( + "cli", + "doc", + "sql", + "test", + "web", + ".drone.yml", + ".gitignore", + "CONVENTIONS.md", + "README.md" + ).map { VersionedFile(it) } + ) {} } -} \ No newline at end of file +} diff --git a/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/model/VersionedFile.kt b/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/model/VersionedFile.kt new file mode 100644 index 0000000..5e36a41 --- /dev/null +++ b/app/src/main/java/fr/uca/iut/clfreville2/teaiswarm/model/VersionedFile.kt @@ -0,0 +1,3 @@ +package fr.uca.iut.clfreville2.teaiswarm.model + +data class VersionedFile(val fileName: String) diff --git a/app/src/main/res/layout/activity_repository_detail.xml b/app/src/main/res/layout/activity_repository_detail.xml index fa482db..3bcbadf 100644 --- a/app/src/main/res/layout/activity_repository_detail.xml +++ b/app/src/main/res/layout/activity_repository_detail.xml @@ -1,5 +1,6 @@ @@ -19,4 +20,10 @@ android:layout_height="wrap_content" android:text="@string/repository_description" android:padding="16dp" /> - \ No newline at end of file + + +