diff --git a/CineCool/app/build.gradle b/CineCool/app/build.gradle index 8154b2c..e5763d7 100644 --- a/CineCool/app/build.gradle +++ b/CineCool/app/build.gradle @@ -47,4 +47,21 @@ dependencies { testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + + // Java language implementation + implementation("androidx.navigation:navigation-fragment:2.5.3") + implementation("androidx.navigation:navigation-ui:2.5.3") + + // Kotlin + implementation("androidx.navigation:navigation-fragment-ktx:2.5.3") + implementation("androidx.navigation:navigation-ui-ktx:2.5.3") + + // Feature module Support + implementation("androidx.navigation:navigation-dynamic-features-fragment:2.5.3") + + // Testing Navigation + androidTestImplementation("androidx.navigation:navigation-testing:2.5.3") + + // Jetpack Compose Integration + implementation("androidx.navigation:navigation-compose:2.5.3") } \ No newline at end of file diff --git a/CineCool/app/src/main/java/fr/iut/cinecool/CinemaActivity.kt b/CineCool/app/src/main/java/fr/iut/cinecool/CinemaActivity.kt index 7781066..6ae3a70 100644 --- a/CineCool/app/src/main/java/fr/iut/cinecool/CinemaActivity.kt +++ b/CineCool/app/src/main/java/fr/iut/cinecool/CinemaActivity.kt @@ -1,5 +1,6 @@ package fr.iut.cinecool +import android.app.Activity import androidx.appcompat.app.AppCompatActivity import android.os.Bundle @@ -7,5 +8,6 @@ class CinemaActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_cinema) + Activity.findNavController(viewId: Int) } } \ No newline at end of file diff --git a/CineCool/app/src/main/java/fr/iut/cinecool/CinemaFragment.kt b/CineCool/app/src/main/java/fr/iut/cinecool/CinemaFragment.kt new file mode 100644 index 0000000..4cfa2be --- /dev/null +++ b/CineCool/app/src/main/java/fr/iut/cinecool/CinemaFragment.kt @@ -0,0 +1,59 @@ +package fr.iut.cinecool + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup + +// TODO: Rename parameter arguments, choose names that match +// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER +private const val ARG_PARAM1 = "param1" +private const val ARG_PARAM2 = "param2" + +/** + * A simple [Fragment] subclass. + * Use the [CinemaFragment.newInstance] factory method to + * create an instance of this fragment. + */ +class CinemaFragment : 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_cinema, 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 CinemaFragment. + */ + // TODO: Rename and change types and number of parameters + @JvmStatic + fun newInstance(param1: String, param2: String) = + CinemaFragment().apply { + arguments = Bundle().apply { + putString(ARG_PARAM1, param1) + putString(ARG_PARAM2, param2) + } + } + } +} \ No newline at end of file diff --git a/CineCool/app/src/main/java/fr/iut/cinecool/MoviesFragment.kt b/CineCool/app/src/main/java/fr/iut/cinecool/MoviesFragment.kt new file mode 100644 index 0000000..76ed5a0 --- /dev/null +++ b/CineCool/app/src/main/java/fr/iut/cinecool/MoviesFragment.kt @@ -0,0 +1,59 @@ +package fr.iut.cinecool + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup + +// TODO: Rename parameter arguments, choose names that match +// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER +private const val ARG_PARAM1 = "param1" +private const val ARG_PARAM2 = "param2" + +/** + * A simple [Fragment] subclass. + * Use the [MoviesFragment.newInstance] factory method to + * create an instance of this fragment. + */ +class MoviesFragment : 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_movies, 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 MoviesFragment. + */ + // TODO: Rename and change types and number of parameters + @JvmStatic + fun newInstance(param1: String, param2: String) = + MoviesFragment().apply { + arguments = Bundle().apply { + putString(ARG_PARAM1, param1) + putString(ARG_PARAM2, param2) + } + } + } +} \ No newline at end of file diff --git a/CineCool/app/src/main/java/fr/iut/cinecool/SessionFragment.kt b/CineCool/app/src/main/java/fr/iut/cinecool/SessionFragment.kt new file mode 100644 index 0000000..8fd1924 --- /dev/null +++ b/CineCool/app/src/main/java/fr/iut/cinecool/SessionFragment.kt @@ -0,0 +1,59 @@ +package fr.iut.cinecool + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup + +// TODO: Rename parameter arguments, choose names that match +// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER +private const val ARG_PARAM1 = "param1" +private const val ARG_PARAM2 = "param2" + +/** + * A simple [Fragment] subclass. + * Use the [SessionFragment.newInstance] factory method to + * create an instance of this fragment. + */ +class SessionFragment : 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_session, 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 SessionFragment. + */ + // TODO: Rename and change types and number of parameters + @JvmStatic + fun newInstance(param1: String, param2: String) = + SessionFragment().apply { + arguments = Bundle().apply { + putString(ARG_PARAM1, param1) + putString(ARG_PARAM2, param2) + } + } + } +} \ No newline at end of file diff --git a/CineCool/app/src/main/java/fr/iut/cinecool/adapter/MyAdapter.kt b/CineCool/app/src/main/java/fr/iut/cinecool/adapter/MyAdapter.kt new file mode 100644 index 0000000..168f4ab --- /dev/null +++ b/CineCool/app/src/main/java/fr/iut/cinecool/adapter/MyAdapter.kt @@ -0,0 +1,4 @@ +package fr.iut.cinecool.adapter + +class MyAdapter { +} \ No newline at end of file diff --git a/CineCool/app/src/main/java/fr/iut/cinecool/model/Session.kt b/CineCool/app/src/main/java/fr/iut/cinecool/model/Session.kt index 902981f..f60ddac 100644 --- a/CineCool/app/src/main/java/fr/iut/cinecool/model/Session.kt +++ b/CineCool/app/src/main/java/fr/iut/cinecool/model/Session.kt @@ -2,4 +2,4 @@ package fr.iut.cinecool.model import java.util.Date -class Session(val id:Int, val date: Date, val beginHour:Int, val endingHour:Int, val room:String) \ No newline at end of file +data class Session(val id:Int, val date: Date, val beginHour:Int, val endingHour:Int, val room:String) \ No newline at end of file diff --git a/CineCool/app/src/main/res/layout/activity_cinema.xml b/CineCool/app/src/main/res/layout/activity_cinema.xml index 288abc0..6cf60db 100644 --- a/CineCool/app/src/main/res/layout/activity_cinema.xml +++ b/CineCool/app/src/main/res/layout/activity_cinema.xml @@ -5,12 +5,16 @@ android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".CinemaActivity"> - - + app:defaultNavHost="true" + app:navGraph="@navigation/nav_graph" /> + \ No newline at end of file diff --git a/CineCool/app/src/main/res/layout/fragment_cinema.xml b/CineCool/app/src/main/res/layout/fragment_cinema.xml new file mode 100644 index 0000000..8dc1681 --- /dev/null +++ b/CineCool/app/src/main/res/layout/fragment_cinema.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/CineCool/app/src/main/res/layout/fragment_movies.xml b/CineCool/app/src/main/res/layout/fragment_movies.xml new file mode 100644 index 0000000..034bff2 --- /dev/null +++ b/CineCool/app/src/main/res/layout/fragment_movies.xml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file diff --git a/CineCool/app/src/main/res/layout/fragment_session.xml b/CineCool/app/src/main/res/layout/fragment_session.xml new file mode 100644 index 0000000..ca40073 --- /dev/null +++ b/CineCool/app/src/main/res/layout/fragment_session.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/CineCool/app/src/main/res/layout/movie.xml b/CineCool/app/src/main/res/layout/movie.xml new file mode 100644 index 0000000..d0101ce --- /dev/null +++ b/CineCool/app/src/main/res/layout/movie.xml @@ -0,0 +1,11 @@ + + + + + + + \ No newline at end of file diff --git a/CineCool/app/src/main/res/navigation/nav_graph.xml b/CineCool/app/src/main/res/navigation/nav_graph.xml index ca33455..419b35f 100644 --- a/CineCool/app/src/main/res/navigation/nav_graph.xml +++ b/CineCool/app/src/main/res/navigation/nav_graph.xml @@ -3,26 +3,32 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/nav_graph" - app:startDestination="@id/FirstFragment"> - + app:startDestination="@id/CinemaFragment"> - + android:id="@+id/CinemaFragment" + android:name="fr.iut.cinecool.CinemaFragment" + android:label="Cinema Fragment" + tools:layout="@layout/fragment_cinema"> + app:destination="@id/fragment_movies"> + + android:id="@+id/fragment_movies" + android:name="fr.iut.cinecool.MoviesFragment" + android:label="@string/first_fragment_label" + tools:layout="@layout/fragment_movies"> + android:id="@+id/action_FirstFragment_to_SessionFragment" + app:destination="@id/SessionFragment"> + + + \ No newline at end of file diff --git a/CineCool/app/src/main/res/values/strings.xml b/CineCool/app/src/main/res/values/strings.xml index 02dd242..4a365df 100644 --- a/CineCool/app/src/main/res/values/strings.xml +++ b/CineCool/app/src/main/res/values/strings.xml @@ -9,4 +9,6 @@ Hello first fragment Hello second fragment. Arg: %1$s + + Hello blank fragment \ No newline at end of file