diff --git a/app/src/main/java/com/example/shakecraft/BossFragment.kt b/app/src/main/java/com/example/shakecraft/BossFragment.kt index 966fc59..e9a085c 100644 --- a/app/src/main/java/com/example/shakecraft/BossFragment.kt +++ b/app/src/main/java/com/example/shakecraft/BossFragment.kt @@ -15,6 +15,8 @@ import android.view.View import android.view.ViewGroup import android.widget.ImageView import android.widget.ProgressBar +import android.widget.TextView +import androidx.navigation.fragment.findNavController import com.example.shakecraft.data.Stub import com.example.shakecraft.model.Boss import com.example.shakecraft.model.Generator @@ -23,9 +25,9 @@ import kotlin.math.pow import kotlin.math.sqrt -class BossFragment(var player: Player) : Fragment() { +class BossFragment() : Fragment() { + - var stubdata = Stub().load(); private lateinit var sensorManager: SensorManager private lateinit var accelerometer: Sensor private lateinit var accelerometerEventListener: SensorEventListener @@ -42,8 +44,16 @@ class BossFragment(var player: Player) : Fragment() { inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { + + var player = (activity as MainActivity).currentPlayer + // Récupérez une référence à la ProgressBar dans la vue val view = inflater.inflate(R.layout.fragment_boss, container, false) + val buttonCollect = view.findViewById(R.id.backbutton) + buttonCollect.setOnClickListener{ + findNavController().navigate(R.id.action_bossFragment_to_homeFragment) + } + progressBar = view.findViewById(R.id.progressBar) image = view.findViewById(R.id.imageBoss) @@ -61,7 +71,6 @@ class BossFragment(var player: Player) : Fragment() { // Ne faites rien ici } - @SuppressLint("ServiceCast") override fun onSensorChanged(event: SensorEvent?) { val acceleration = sqrt( event!!.values[0].pow(2) + event.values[1].pow(2) + event.values[2].pow(2) diff --git a/app/src/main/java/com/example/shakecraft/CollectFragment.kt b/app/src/main/java/com/example/shakecraft/CollectFragment.kt index 4aa3024..7fe7ab6 100644 --- a/app/src/main/java/com/example/shakecraft/CollectFragment.kt +++ b/app/src/main/java/com/example/shakecraft/CollectFragment.kt @@ -16,6 +16,8 @@ import android.view.ViewGroup import android.widget.ImageView import android.widget.ProgressBar import android.widget.TextView +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.navigation.fragment.findNavController import com.example.shakecraft.data.Stub import com.example.shakecraft.model.Generator import com.example.shakecraft.model.Player @@ -23,8 +25,7 @@ import kotlin.math.pow import kotlin.math.sqrt -class CollectFragment(var player: Player) : Fragment() { - var stubdata = Stub().load(); +class CollectFragment() : Fragment() { private lateinit var sensorManager: SensorManager private lateinit var accelerometer: Sensor private lateinit var accelerometerEventListener: SensorEventListener @@ -42,9 +43,16 @@ class CollectFragment(var player: Player) : Fragment() { inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { + var player = (activity as MainActivity).currentPlayer // Récupérez une référence à la ProgressBar dans la vue val view = inflater.inflate(R.layout.fragment_collect, container, false) + + val buttonCollect = view.findViewById(R.id.backbutton) + buttonCollect.setOnClickListener{ + findNavController().navigate(R.id.action_collectFragment_to_homeFragment) + } + progressBar = view.findViewById(R.id.progressBar) sensorManager = requireActivity().getSystemService(Context.SENSOR_SERVICE) as SensorManager accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER) diff --git a/app/src/main/java/com/example/shakecraft/HomeFragment.kt b/app/src/main/java/com/example/shakecraft/HomeFragment.kt index e18a478..f8409a5 100644 --- a/app/src/main/java/com/example/shakecraft/HomeFragment.kt +++ b/app/src/main/java/com/example/shakecraft/HomeFragment.kt @@ -5,6 +5,9 @@ import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Button +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.navigation.fragment.findNavController // TODO: Rename parameter arguments, choose names that match // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER @@ -17,43 +20,28 @@ private const val ARG_PARAM2 = "param2" * create an instance of this fragment. */ class HomeFragment : 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) - } + } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_home, container, false) + val view = inflater.inflate(R.layout.fragment_home,container,false) + val buttonCollect = view.findViewById(R.id.buttonCollect) + buttonCollect.setOnClickListener{ + findNavController().navigate(R.id.action_homeFragment_to_collectFragment) + } + val buttonBoss = view.findViewById(R.id.buttonBoss) + buttonBoss.setOnClickListener{ + findNavController().navigate(R.id.action_homeFragment_to_bossFragment) + } + return view } - 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 HomeFragment. - */ - // TODO: Rename and change types and number of parameters - @JvmStatic - fun newInstance(param1: String, param2: String) = - HomeFragment().apply { - arguments = Bundle().apply { - putString(ARG_PARAM1, param1) - putString(ARG_PARAM2, param2) - } - } - } + } \ No newline at end of file diff --git a/app/src/main/java/com/example/shakecraft/InventoryFragment.kt b/app/src/main/java/com/example/shakecraft/InventoryFragment.kt index 7592f22..e4d1a5e 100644 --- a/app/src/main/java/com/example/shakecraft/InventoryFragment.kt +++ b/app/src/main/java/com/example/shakecraft/InventoryFragment.kt @@ -12,16 +12,20 @@ import com.example.shakecraft.model.Player import com.example.shakecraft.view.adapter.AdapterInventory -class InventoryFragment(var player: Player) : Fragment( ) { +class InventoryFragment() : Fragment( ) { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + } override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { - + var player = (activity as MainActivity).currentPlayer val view = inflater.inflate(R.layout.fragment_inventory, container, false) val recyclerView: RecyclerView = view.findViewById(R.id.recyclerviewInventory) with(recyclerView) { diff --git a/app/src/main/java/com/example/shakecraft/MainActivity.kt b/app/src/main/java/com/example/shakecraft/MainActivity.kt index 3c7b1ef..658662e 100644 --- a/app/src/main/java/com/example/shakecraft/MainActivity.kt +++ b/app/src/main/java/com/example/shakecraft/MainActivity.kt @@ -8,6 +8,8 @@ import androidx.core.view.WindowCompat import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsControllerCompat import androidx.fragment.app.Fragment +import androidx.navigation.findNavController +import androidx.navigation.ui.setupWithNavController import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.example.shakecraft.data.Stub @@ -42,34 +44,14 @@ class MainActivity : AppCompatActivity() { super.onCreate(savedInstanceState) hideSystemUI() setContentView(R.layout.activity_main) - loadFragment(HomeFragment()) - bottomNav = findViewById(R.id.bottomNav) as BottomNavigationView - bottomNav.setOnItemSelectedListener { - when (it.itemId) { - R.id.home -> { - loadFragment(HomeFragment()) - true - } - R.id.inventory -> { - loadFragment(InventoryFragment(currentPlayer)) - true - } - R.id.plus -> { - loadFragment(CollectFragment(currentPlayer)) - true - } - else -> false - } - } + bottomNav = findViewById(R.id.bottomNavigationView) as BottomNavigationView + val navController = findNavController(R.id.fragment) + bottomNav.setupWithNavController(navController) } - private fun loadFragment(fragment: Fragment){ - val transaction = supportFragmentManager.beginTransaction() - transaction.replace(R.id.container,fragment) - transaction.commit() - } + } \ No newline at end of file diff --git a/app/src/main/res/drawable/navbar_background.xml b/app/src/main/res/drawable/navbar_background.xml new file mode 100644 index 0000000..84401ce --- /dev/null +++ b/app/src/main/res/drawable/navbar_background.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 7fab3aa..0628e2f 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,36 +1,35 @@ - - - - \ No newline at end of file + /> + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_boss.xml b/app/src/main/res/layout/fragment_boss.xml index e32e608..4a2f073 100644 --- a/app/src/main/res/layout/fragment_boss.xml +++ b/app/src/main/res/layout/fragment_boss.xml @@ -20,7 +20,7 @@ app:layout_constraintTop_toTopOf="parent"> + app:layout_constraintTop_toBottomOf="@+id/buttonCollect"> + diff --git a/app/src/main/res/menu/nav_menu.xml b/app/src/main/res/menu/nav_menu.xml index 50b12a1..1571d20 100644 --- a/app/src/main/res/menu/nav_menu.xml +++ b/app/src/main/res/menu/nav_menu.xml @@ -3,15 +3,15 @@ diff --git a/app/src/main/res/navigation/my_nav.xml b/app/src/main/res/navigation/my_nav.xml index d26319c..d579462 100644 --- a/app/src/main/res/navigation/my_nav.xml +++ b/app/src/main/res/navigation/my_nav.xml @@ -3,18 +3,21 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/my_nav" - app:startDestination="@id/mainActivity"> - + app:startDestination="@id/homeFragment"> + + tools:layout="@layout/fragment_boss" > + + + app:destination="@id/homeFragment" + app:enterAnim="@android:anim/fade_in" + app:popUpTo="@id/homeFragment" + app:popUpToInclusive="true" /> - + + + app:destination="@id/collectFragment" + app:enterAnim="@android:anim/fade_in" /> + app:destination="@id/bossFragment" + app:enterAnim="@android:anim/fade_in" /> \ No newline at end of file