diff --git a/app/src/main/java/com/example/shakecraft/InventoryFragment.kt b/app/src/main/java/com/example/shakecraft/InventoryFragment.kt index 07b8c2b..d156962 100644 --- a/app/src/main/java/com/example/shakecraft/InventoryFragment.kt +++ b/app/src/main/java/com/example/shakecraft/InventoryFragment.kt @@ -5,6 +5,10 @@ import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.example.shakecraft.data.Stub +import com.example.shakecraft.view.adapter.AdapterInventory // TODO: Rename parameter arguments, choose names that match // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER @@ -17,43 +21,23 @@ private const val ARG_PARAM2 = "param2" * create an instance of this fragment. */ class InventoryFragment : Fragment() { - // TODO: Rename and change types of parameters - private var param1: String? = null - private var param2: String? = null - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - arguments?.let { - param1 = it.getString(ARG_PARAM1) - param2 = it.getString(ARG_PARAM2) - } - } + + + var stubdata = Stub().load(); + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_inventory, container, false) - } - companion object { - /** - * Use this factory method to create a new instance of - * this fragment using the provided parameters. - * - * @param param1 Parameter 1. - * @param param2 Parameter 2. - * @return A new instance of fragment InventoryFragment. - */ - // TODO: Rename and change types and number of parameters - @JvmStatic - fun newInstance(param1: String, param2: String) = - InventoryFragment().apply { - arguments = Bundle().apply { - putString(ARG_PARAM1, param1) - putString(ARG_PARAM2, param2) - } - } + val view = inflater.inflate(R.layout.fragment_inventory, container, false) + val recyclerView: RecyclerView = view.findViewById(R.id.recyclerviewInventory) + with(recyclerView) { + layoutManager = LinearLayoutManager(view.context) + adapter = AdapterInventory(stubdata) + } + return view } + } \ No newline at end of file diff --git a/app/src/main/java/com/example/shakecraft/MainActivity.kt b/app/src/main/java/com/example/shakecraft/MainActivity.kt index 5151690..8da29ac 100644 --- a/app/src/main/java/com/example/shakecraft/MainActivity.kt +++ b/app/src/main/java/com/example/shakecraft/MainActivity.kt @@ -8,11 +8,15 @@ import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsControllerCompat import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.example.shakecraft.data.Stub +import com.example.shakecraft.view.adapter.AdapterInventory import com.google.android.material.bottomnavigation.BottomNavigationView class MainActivity : AppCompatActivity() { - - + private var progressValue = 20 + private var lastShakePosition = 0f // Function to hide NavigationBar @@ -38,6 +42,8 @@ class MainActivity : AppCompatActivity() { hideSystemUI() setContentView(R.layout.activity_main) loadFragment(HomeFragment()) + + bottomNav = findViewById(R.id.bottomNav) as BottomNavigationView bottomNav.setOnItemSelectedListener { when (it.itemId) { @@ -56,6 +62,7 @@ class MainActivity : AppCompatActivity() { else -> false } } + } private fun loadFragment(fragment: Fragment){ val transaction = supportFragmentManager.beginTransaction() diff --git a/app/src/main/java/com/example/shakecraft/data/Stub.kt b/app/src/main/java/com/example/shakecraft/data/Stub.kt new file mode 100644 index 0000000..c8023d2 --- /dev/null +++ b/app/src/main/java/com/example/shakecraft/data/Stub.kt @@ -0,0 +1,17 @@ +package com.example.shakecraft.data + +import com.example.shakecraft.model.Item + + +class Stub { + + fun load() : List{ + val items : MutableList = mutableListOf() + items.add(Item(name = "Beech Log", rarity = 0, stack = 1)); + items.add(Item(name = "Bronze Ore", rarity = 0, stack = 1)); + items.add(Item(name = "Iron Ore", rarity = 0, stack = 1)); + items.add(Item(name = "Diamond", rarity = 0, stack = 1)); + return items; + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/shakecraft/model/Item.kt b/app/src/main/java/com/example/shakecraft/model/Item.kt new file mode 100644 index 0000000..ea6f857 --- /dev/null +++ b/app/src/main/java/com/example/shakecraft/model/Item.kt @@ -0,0 +1,9 @@ +package com.example.shakecraft.model + +data class Item( + var name: String, + var rarity: Int, + var stack: Int, +) + + diff --git a/app/src/main/java/com/example/shakecraft/view/adapter/AdapterInventory.kt b/app/src/main/java/com/example/shakecraft/view/adapter/AdapterInventory.kt new file mode 100644 index 0000000..9e74a14 --- /dev/null +++ b/app/src/main/java/com/example/shakecraft/view/adapter/AdapterInventory.kt @@ -0,0 +1,45 @@ +package com.example.shakecraft.view.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import androidx.recyclerview.widget.RecyclerView.Adapter +import com.example.shakecraft.R +import com.example.shakecraft.model.Item +import com.example.shakecraft.view.viewholder.ViewHolderInventory + + +class AdapterInventory(private val inventory: List) : RecyclerView.Adapter() { + + class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { + val textView: TextView + + init { + // Define click listener for the ViewHolder's View + textView = view.findViewById(R.id.item_name) + } + fun bind(item: Item) { + textView.text = item.name + } + } + + override fun getItemCount() = inventory.size + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.list_item, parent, false) + + return ViewHolder(view) + } + + override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) { + val item : Item = inventory[position] + viewHolder.bind(item) + } + + + + +} + diff --git a/app/src/main/java/com/example/shakecraft/view/viewholder/ViewHolderInventory.kt b/app/src/main/java/com/example/shakecraft/view/viewholder/ViewHolderInventory.kt new file mode 100644 index 0000000..309efba --- /dev/null +++ b/app/src/main/java/com/example/shakecraft/view/viewholder/ViewHolderInventory.kt @@ -0,0 +1,3 @@ +package com.example.shakecraft.view.viewholder +class ViewHolderInventory(inflate: Any?) { +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_inventory.xml b/app/src/main/res/layout/fragment_inventory.xml index 73c463f..fda0ffb 100644 --- a/app/src/main/res/layout/fragment_inventory.xml +++ b/app/src/main/res/layout/fragment_inventory.xml @@ -39,7 +39,8 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView2"> - @@ -32,6 +33,7 @@ app:layout_constraintTop_toTopOf="parent">