diff --git a/Tetris/app/src/main/java/adaptator/RecyclerViewAdaptator.kt b/Tetris/app/src/main/java/adaptator/RecyclerViewAdaptator.kt new file mode 100644 index 0000000..43242ec --- /dev/null +++ b/Tetris/app/src/main/java/adaptator/RecyclerViewAdaptator.kt @@ -0,0 +1,34 @@ +package adaptator + +import android.content.Context +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import api.User +import but.androidstudio.tetris.R +import javax.xml.xpath.XPath + +class RecyclerViewAdaptator(var userData: List): RecyclerView.Adapter(){ + class ItemViewHolder(private val view: View) : RecyclerView.ViewHolder(view) { + val textViewUsername: TextView = view.findViewById(R.id.item_username) + val textViewXp: TextView = view.findViewById(R.id.item_xp) + val textViewCountry: TextView = view.findViewById(R.id.item_country) + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemViewHolder { + val adapterLayout = LayoutInflater.from(parent.context) + .inflate(R.layout.item_layout, parent, false) + return ItemViewHolder(adapterLayout) + } + + override fun getItemCount(): Int = userData.size + + override fun onBindViewHolder(holder: ItemViewHolder, position: Int) { + holder.textViewUsername.text = userData[position].username + holder.textViewXp.text = userData[position].xp.toString() + holder.textViewCountry.text = userData[position].country + } + +} \ No newline at end of file diff --git a/Tetris/app/src/main/java/but/androidstudio/tetris/ClassementFragment.kt b/Tetris/app/src/main/java/but/androidstudio/tetris/InfoUserFragment.kt similarity index 75% rename from Tetris/app/src/main/java/but/androidstudio/tetris/ClassementFragment.kt rename to Tetris/app/src/main/java/but/androidstudio/tetris/InfoUserFragment.kt index 016ade4..aaa9caf 100644 --- a/Tetris/app/src/main/java/but/androidstudio/tetris/ClassementFragment.kt +++ b/Tetris/app/src/main/java/but/androidstudio/tetris/InfoUserFragment.kt @@ -1,22 +1,16 @@ package but.androidstudio.tetris +import adaptator.RecyclerViewAdaptator import android.os.Bundle -import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment -import api.TetrisAPI +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import api.TetrisClient import api.User -import com.google.gson.Gson -import com.google.gson.GsonBuilder import okhttp3.OkHttpClient -import retrofit2.Call -import retrofit2.Callback -import retrofit2.Response -import retrofit2.Retrofit -import retrofit2.converter.gson.GsonConverterFactory import java.io.InputStream import java.security.KeyStore import java.security.SecureRandom @@ -26,7 +20,9 @@ import javax.net.ssl.TrustManagerFactory import javax.net.ssl.X509TrustManager -class ClassementFragment : Fragment() { +class InfoUserFragment : Fragment() { + private lateinit var recyclerView: RecyclerView + private lateinit var adaptator: RecyclerViewAdaptator override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) } @@ -36,7 +32,13 @@ class ClassementFragment : Fragment() { savedInstanceState: Bundle? ): View? { // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_classement, container, false) + val view = inflater.inflate(R.layout.fragment_info_user, container, false) + // Set up RecyclerView + recyclerView = view.findViewById(R.id.tableUser) + recyclerView.layoutManager = LinearLayoutManager(requireContext()) + adaptator =RecyclerViewAdaptator(listOf()) + recyclerView.adapter = adaptator + return view } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -73,9 +75,8 @@ class ClassementFragment : Fragment() { println("Error: ${error.message}") } else { // Handle success - users?.forEach { - println("User: ${it.username}") - } + adaptator.userData = users!! + recyclerView.adapter?.notifyDataSetChanged() } } } diff --git a/Tetris/app/src/main/java/but/androidstudio/tetris/MainFragment.kt b/Tetris/app/src/main/java/but/androidstudio/tetris/MainFragment.kt index 864fc93..a397a55 100644 --- a/Tetris/app/src/main/java/but/androidstudio/tetris/MainFragment.kt +++ b/Tetris/app/src/main/java/but/androidstudio/tetris/MainFragment.kt @@ -39,7 +39,7 @@ class MainFragment : Fragment() { buttonClassement.setOnClickListener { val fragmentManager = requireActivity().supportFragmentManager fragmentManager.beginTransaction() - .replace(R.id.homeLayout, ClassementFragment()) + .replace(R.id.homeLayout, InfoUserFragment()) .commit() } } diff --git a/Tetris/app/src/main/res/layout/fragment_classement.xml b/Tetris/app/src/main/res/layout/fragment_classement.xml deleted file mode 100644 index 57b43df..0000000 --- a/Tetris/app/src/main/res/layout/fragment_classement.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/Tetris/app/src/main/res/layout/fragment_info_user.xml b/Tetris/app/src/main/res/layout/fragment_info_user.xml new file mode 100644 index 0000000..1bcf360 --- /dev/null +++ b/Tetris/app/src/main/res/layout/fragment_info_user.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + diff --git a/Tetris/app/src/main/res/layout/item_layout.xml b/Tetris/app/src/main/res/layout/item_layout.xml new file mode 100644 index 0000000..f570de2 --- /dev/null +++ b/Tetris/app/src/main/res/layout/item_layout.xml @@ -0,0 +1,25 @@ + + + + + + + + + + \ No newline at end of file