From ae34b24cb5f64ffca97605111c70cd1e9812747a Mon Sep 17 00:00:00 2001 From: Emre KARTAL Date: Thu, 23 Mar 2023 12:55:57 +0100 Subject: [PATCH 1/5] creation of navigation and fragments :white_check_mark: --- src/app/build.gradle | 2 ++ src/app/src/main/AndroidManifest.xml | 2 +- .../uca/iut/clermont/view/FavoriteActivity.kt | 12 -------- .../uca/iut/clermont/view/FavoriteFragment.kt | 18 ++++++++++++ .../uca/iut/clermont/view/HomeFragment.kt | 28 +++++++++++++++++++ .../view/{HomeActivity.kt => MainActivity.kt} | 24 +++++++--------- src/app/src/main/res/layout/activity_main.xml | 20 +++++++++++++ ...ity_favorite.xml => fragment_favorite.xml} | 2 +- .../{activity_home.xml => fragment_home.xml} | 2 +- src/app/src/main/res/navigation/my_nav.xml | 23 +++++++++++++++ 10 files changed, 104 insertions(+), 29 deletions(-) delete mode 100644 src/app/src/main/java/uca/iut/clermont/view/FavoriteActivity.kt create mode 100644 src/app/src/main/java/uca/iut/clermont/view/FavoriteFragment.kt create mode 100644 src/app/src/main/java/uca/iut/clermont/view/HomeFragment.kt rename src/app/src/main/java/uca/iut/clermont/view/{HomeActivity.kt => MainActivity.kt} (50%) create mode 100644 src/app/src/main/res/layout/activity_main.xml rename src/app/src/main/res/layout/{activity_favorite.xml => fragment_favorite.xml} (94%) rename src/app/src/main/res/layout/{activity_home.xml => fragment_home.xml} (97%) create mode 100644 src/app/src/main/res/navigation/my_nav.xml diff --git a/src/app/build.gradle b/src/app/build.gradle index 3329cf8..e700609 100644 --- a/src/app/build.gradle +++ b/src/app/build.gradle @@ -34,6 +34,8 @@ android { dependencies { implementation 'com.github.bumptech.glide:glide:4.12.0' + implementation 'androidx.navigation:navigation-fragment-ktx:2.5.3' + implementation 'androidx.navigation:navigation-ui-ktx:2.5.3' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' implementation 'androidx.core:core-ktx:1.7.0' implementation 'androidx.appcompat:appcompat:1.6.1' diff --git a/src/app/src/main/AndroidManifest.xml b/src/app/src/main/AndroidManifest.xml index deb52a2..fc1af9b 100644 --- a/src/app/src/main/AndroidManifest.xml +++ b/src/app/src/main/AndroidManifest.xml @@ -15,7 +15,7 @@ android:theme="@style/Theme.Scor_It" tools:targetApi="31"> diff --git a/src/app/src/main/java/uca/iut/clermont/view/FavoriteActivity.kt b/src/app/src/main/java/uca/iut/clermont/view/FavoriteActivity.kt deleted file mode 100644 index 7c6fe6d..0000000 --- a/src/app/src/main/java/uca/iut/clermont/view/FavoriteActivity.kt +++ /dev/null @@ -1,12 +0,0 @@ -package uca.iut.clermont.view - -import android.app.Activity -import android.os.Bundle -import uca.iut.clermont.R - -class FavoriteActivity : Activity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_favorite) - } -} \ No newline at end of file diff --git a/src/app/src/main/java/uca/iut/clermont/view/FavoriteFragment.kt b/src/app/src/main/java/uca/iut/clermont/view/FavoriteFragment.kt new file mode 100644 index 0000000..bbcb975 --- /dev/null +++ b/src/app/src/main/java/uca/iut/clermont/view/FavoriteFragment.kt @@ -0,0 +1,18 @@ +package uca.iut.clermont.view + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import uca.iut.clermont.R + +class FavoriteFragment: Fragment() { + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + return inflater.inflate(R.layout.fragment_favorite, container, false) + } +} \ No newline at end of file diff --git a/src/app/src/main/java/uca/iut/clermont/view/HomeFragment.kt b/src/app/src/main/java/uca/iut/clermont/view/HomeFragment.kt new file mode 100644 index 0000000..cda9eed --- /dev/null +++ b/src/app/src/main/java/uca/iut/clermont/view/HomeFragment.kt @@ -0,0 +1,28 @@ +package uca.iut.clermont.view + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import uca.iut.clermont.R + +class HomeFragment : Fragment() { + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + + /*val adapterMatches = findViewById(R.id.ListRecentsMatches) + + with(adapterMatches) { + adapter = MatchesAdapter(manager.matchesMgr.getItems().toList().toTypedArray()) + } + + adapterMatches.layoutManager = LinearLayoutManager(this)*/ + + return inflater.inflate(R.layout.fragment_home, container, false) + } +} \ No newline at end of file diff --git a/src/app/src/main/java/uca/iut/clermont/view/HomeActivity.kt b/src/app/src/main/java/uca/iut/clermont/view/MainActivity.kt similarity index 50% rename from src/app/src/main/java/uca/iut/clermont/view/HomeActivity.kt rename to src/app/src/main/java/uca/iut/clermont/view/MainActivity.kt index 909d17d..0a23a58 100644 --- a/src/app/src/main/java/uca/iut/clermont/view/HomeActivity.kt +++ b/src/app/src/main/java/uca/iut/clermont/view/MainActivity.kt @@ -2,31 +2,27 @@ package uca.iut.clermont.view import android.app.Activity import android.os.Bundle -import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView +import androidx.navigation.NavController +import androidx.navigation.findNavController +import androidx.navigation.fragment.NavHostFragment import uca.iut.clermont.R import uca.iut.clermont.data.StubData -import uca.iut.clermont.view.adapter.MatchesAdapter -class HomeActivity : Activity() { +class MainActivity : Activity() { private var manager = StubData() + private lateinit var navController: NavController + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_home) - //val imageFirstTeam = findViewById(R.id.ImageFirstTeam) - - val adapterMatches = findViewById(R.id.ListRecentsMatches) + setContentView(R.layout.activity_main) - with(adapterMatches) { - adapter = MatchesAdapter(manager.matchesMgr.getItems().toList().toTypedArray()) - } + val navHostFragment = findNavController(R.id.fragment) as NavHostFragment - adapterMatches.layoutManager = LinearLayoutManager(this) - - adapterMatches + navController = navHostFragment.navController + //val imageFirstTeam = findViewById(R.id.ImageFirstTeam) /*Glide.with(this) .load("https://crests.football-data.org/1765.svg") .error(R.drawable.imagenotfound) diff --git a/src/app/src/main/res/layout/activity_main.xml b/src/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..674d1e6 --- /dev/null +++ b/src/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/src/app/src/main/res/layout/activity_favorite.xml b/src/app/src/main/res/layout/fragment_favorite.xml similarity index 94% rename from src/app/src/main/res/layout/activity_favorite.xml rename to src/app/src/main/res/layout/fragment_favorite.xml index dbe4a6c..1863152 100644 --- a/src/app/src/main/res/layout/activity_favorite.xml +++ b/src/app/src/main/res/layout/fragment_favorite.xml @@ -6,7 +6,7 @@ android:layout_height="match_parent" android:paddingHorizontal="30dp" android:paddingVertical="30dp" - tools:context=".view.FavoriteActivity"> + tools:context=".view.FavoriteFragment"> + tools:context=".view.HomeFragment"> + + + + + + + + + \ No newline at end of file -- 2.36.3 From 00ae844dce0f20e9c5311df87b2b146cf8687ea2 Mon Sep 17 00:00:00 2001 From: Emre KARTAL Date: Fri, 24 Mar 2023 15:51:13 +0100 Subject: [PATCH 2/5] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'README.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 39e24c0..a99e583 100644 --- a/README.md +++ b/README.md @@ -115,9 +115,7 @@ class Season { class Match { -id: Int - -idHomeTeam: Int -score: Score - -idAwayTeam: Int -status: String } @@ -138,6 +136,9 @@ Team --> "-coach" Coach Team --> "-squad*" Player Team --> "-area" Area +Match --> "-HomeTeam" Team +Match --> "-AwayTeam" Team + Competition --> "-area" Area Competition --> "-currentSeason" Season -- 2.36.3 From 6495d3c0f4e9379c61689963ded7deccd18c516b Mon Sep 17 00:00:00 2001 From: Emre KARTAL Date: Fri, 24 Mar 2023 16:13:40 +0100 Subject: [PATCH 3/5] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'README.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a99e583..cfec8c5 100644 --- a/README.md +++ b/README.md @@ -165,24 +165,27 @@ skinparam package { hide circle interface GenericDataManager { - +getItemsByName(substring: String) : List +getItems() : List +getItemById(id: Int) : T } class TeamsManager { + +getItemsByName(substring: String) : List } class CompetitionsManager { + +getItemsByName(substring: String) : List } class MatchesManager { } class PeopleManager { + +getItemsByName(substring: String) : List } class AreaManager { + +getItemsByName(substring: String) : List } abstract class DataManager { -- 2.36.3 From 8f9a094aef9e0a6bbb9106925fa06a85efc8d7ec Mon Sep 17 00:00:00 2001 From: Emre KARTAL Date: Fri, 24 Mar 2023 18:05:15 +0100 Subject: [PATCH 4/5] Navigation done :recycle: --- src/app/build.gradle | 6 +- .../java/uca/iut/clermont/data/StubData.kt | 134 ++++++++++-------- .../java/uca/iut/clermont/model/ApiManager.kt | 3 - .../uca/iut/clermont/model/DataManager.kt | 17 ++- .../iut/clermont/model/GenericDataManager.kt | 1 - .../main/java/uca/iut/clermont/model/Match.kt | 4 +- .../uca/iut/clermont/view/HomeFragment.kt | 25 +++- .../uca/iut/clermont/view/MainActivity.kt | 42 +++++- .../clermont/view/adapter/MatchesAdapter.kt | 11 +- .../clermont/view/viewHolder/MatchHolder.kt | 11 +- src/app/src/main/res/layout/activity_main.xml | 16 ++- .../src/main/res/layout/cellule_favorite.xml | 4 +- src/app/src/main/res/layout/cellule_match.xml | 49 +++++-- .../src/main/res/layout/fragment_favorite.xml | 1 - 14 files changed, 216 insertions(+), 108 deletions(-) diff --git a/src/app/build.gradle b/src/app/build.gradle index e700609..012d3ac 100644 --- a/src/app/build.gradle +++ b/src/app/build.gradle @@ -33,10 +33,14 @@ android { } dependencies { - implementation 'com.github.bumptech.glide:glide:4.12.0' + // Navigation implementation 'androidx.navigation:navigation-fragment-ktx:2.5.3' implementation 'androidx.navigation:navigation-ui-ktx:2.5.3' + + //Glide + implementation 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' + implementation 'androidx.core:core-ktx:1.7.0' implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.8.0' diff --git a/src/app/src/main/java/uca/iut/clermont/data/StubData.kt b/src/app/src/main/java/uca/iut/clermont/data/StubData.kt index 1ce14d0..8f4c42c 100644 --- a/src/app/src/main/java/uca/iut/clermont/data/StubData.kt +++ b/src/app/src/main/java/uca/iut/clermont/data/StubData.kt @@ -247,56 +247,76 @@ class StubData : DataManager() { ) private val random = java.util.Random() - val matchList = listOf( - Match( - 1, - 1, - 2, - Calendar.getInstance().apply { set(2022, random.nextInt(12), random.nextInt(28) + 1) }, - "FINISHED", - Score(1, 1, "DRAW") - ), - Match( - 2, - 3, - 1, - Calendar.getInstance().apply { set(2022, random.nextInt(12), random.nextInt(28) + 1) }, - "FINISHED", - Score(2, 0, "HOME_TEAM") - ), - Match( - 3, - 2, - 3, - Calendar.getInstance().apply { set(2022, random.nextInt(12), random.nextInt(28) + 1) }, - "FINISHED", - Score(0, 4, "AWAY_TEAM") - ), - Match( - 4, - 1, - 3, - Calendar.getInstance().apply { set(2023, random.nextInt(12), random.nextInt(28) + 1) }, - "FINISHED", - Score(0, 1, "AWAY_TEAM") - ), - Match( - 5, - 2, - 1, - Calendar.getInstance().apply { set(2023, random.nextInt(12), random.nextInt(28) + 1) }, - "FINISHED", - Score(0, 0, "DRAW") - ), - Match( - 6, - 3, - 2, - Calendar.getInstance().apply { set(2023, random.nextInt(12), random.nextInt(28) + 1) }, - "FINISHED", - Score(2, 0, "HOME_TEAM") + val matchList: MutableList = mutableListOf() + + fun initMatches() { + matchList.add( + Match( + 1, + teamList[0], + teamList[1], + Calendar.getInstance() + .apply { set(2022, random.nextInt(12), random.nextInt(28) + 1) }, + "FINISHED", + Score(1, 1, "DRAW") + ) ) - ) + matchList.add( + Match( + 2, + teamList[2], + teamList[0], + Calendar.getInstance() + .apply { set(2022, random.nextInt(12), random.nextInt(28) + 1) }, + "FINISHED", + Score(2, 0, "HOME_TEAM") + ) + ) + matchList.add( + Match( + 3, + teamList[1], + teamList[2], + Calendar.getInstance() + .apply { set(2022, random.nextInt(12), random.nextInt(28) + 1) }, + "FINISHED", + Score(0, 4, "AWAY_TEAM") + ) + ) + matchList.add( + Match( + 4, + teamList[0], + teamList[2], + Calendar.getInstance() + .apply { set(2023, random.nextInt(12), random.nextInt(28) + 1) }, + "FINISHED", + Score(0, 1, "AWAY_TEAM") + ) + ) + matchList.add( + Match( + 5, + teamList[1], + teamList[0], + Calendar.getInstance() + .apply { set(2023, random.nextInt(12), random.nextInt(28) + 1) }, + "FINISHED", + Score(0, 0, "DRAW") + ) + ) + matchList.add( + Match( + 6, + teamList[2], + teamList[1], + Calendar.getInstance() + .apply { set(2023, random.nextInt(12), random.nextInt(28) + 1) }, + "FINISHED", + Score(2, 0, "HOME_TEAM") + ) + ) + } val teamList: MutableList = mutableListOf() @@ -313,8 +333,8 @@ class StubData : DataManager() { "Navy / Red", areaList[0], "Parc des Princes", - peopleList[0] as Coach, - listOf(peopleList[2] as Staff), + peopleList[13] as Coach, + listOf(peopleList[15] as Staff), listOf(peopleList[0] as Player, peopleList[3] as Player, peopleList[11] as Player) ) ) @@ -330,9 +350,9 @@ class StubData : DataManager() { "Blue / Red", areaList[3], "Camp Nou", - peopleList[0] as Coach, - listOf(peopleList[2] as Staff), - listOf(peopleList[0] as Player, peopleList[5] as Player, peopleList[9] as Player) + peopleList[14] as Coach, + listOf(peopleList[16] as Staff), + listOf(peopleList[2] as Player, peopleList[5] as Player, peopleList[9] as Player) ) ) teamList.add( @@ -347,8 +367,8 @@ class StubData : DataManager() { "Red", areaList[2], "Anfield", - peopleList[1] as Coach, - listOf(peopleList[3] as Staff), + peopleList[14] as Coach, + listOf(peopleList[15] as Staff), listOf(peopleList[7] as Player, peopleList[8] as Player, peopleList[10] as Player) ) ) @@ -375,8 +395,6 @@ class StubData : DataManager() { } class StubMatchesManager(private val parent: StubData) : MatchesManager { - override fun getItemsByName(substring: String) = - throw java.lang.Exception("Don't call this function") override fun getItems(): List = parent.matchList diff --git a/src/app/src/main/java/uca/iut/clermont/model/ApiManager.kt b/src/app/src/main/java/uca/iut/clermont/model/ApiManager.kt index 2e4062a..758caa2 100644 --- a/src/app/src/main/java/uca/iut/clermont/model/ApiManager.kt +++ b/src/app/src/main/java/uca/iut/clermont/model/ApiManager.kt @@ -45,9 +45,6 @@ class ApiManager : DataManager() { } class ApiMatchesManager : MatchesManager { - override fun getItemsByName(substring: String): List { - TODO("Not yet implemented") - } override fun getItems(): List { TODO("Not yet implemented") diff --git a/src/app/src/main/java/uca/iut/clermont/model/DataManager.kt b/src/app/src/main/java/uca/iut/clermont/model/DataManager.kt index 5a1021d..d3d2140 100644 --- a/src/app/src/main/java/uca/iut/clermont/model/DataManager.kt +++ b/src/app/src/main/java/uca/iut/clermont/model/DataManager.kt @@ -9,12 +9,21 @@ abstract class DataManager { } -interface AreaManager : GenericDataManager +interface AreaManager : GenericDataManager { + fun getItemsByName(substring: String): List +} -interface PeopleManager : GenericDataManager +interface PeopleManager : GenericDataManager { + fun getItemsByName(substring: String): List +} interface MatchesManager : GenericDataManager -interface CompetitionsManager : GenericDataManager +interface CompetitionsManager : GenericDataManager { + fun getItemsByName(substring: String): List +} + +interface TeamsManager : GenericDataManager { + fun getItemsByName(substring: String): List -interface TeamsManager : GenericDataManager \ No newline at end of file +} \ No newline at end of file diff --git a/src/app/src/main/java/uca/iut/clermont/model/GenericDataManager.kt b/src/app/src/main/java/uca/iut/clermont/model/GenericDataManager.kt index 44edf22..fd4d299 100644 --- a/src/app/src/main/java/uca/iut/clermont/model/GenericDataManager.kt +++ b/src/app/src/main/java/uca/iut/clermont/model/GenericDataManager.kt @@ -1,7 +1,6 @@ package uca.iut.clermont.model interface GenericDataManager { - fun getItemsByName(substring: String): List fun getItems(): List fun getItemById(id: Int): T? } \ No newline at end of file diff --git a/src/app/src/main/java/uca/iut/clermont/model/Match.kt b/src/app/src/main/java/uca/iut/clermont/model/Match.kt index 3651f84..930cbef 100644 --- a/src/app/src/main/java/uca/iut/clermont/model/Match.kt +++ b/src/app/src/main/java/uca/iut/clermont/model/Match.kt @@ -4,8 +4,8 @@ import java.util.Calendar class Match( val id: Int, - val idHomeTeam: Int, - val idAwayTeam: Int, + val homeTeam: Team, + val awayTeam: Team, val date: Calendar, val status: String, val score: Score diff --git a/src/app/src/main/java/uca/iut/clermont/view/HomeFragment.kt b/src/app/src/main/java/uca/iut/clermont/view/HomeFragment.kt index cda9eed..1a64d5d 100644 --- a/src/app/src/main/java/uca/iut/clermont/view/HomeFragment.kt +++ b/src/app/src/main/java/uca/iut/clermont/view/HomeFragment.kt @@ -5,7 +5,11 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import uca.iut.clermont.R +import uca.iut.clermont.model.Match +import uca.iut.clermont.view.adapter.MatchesAdapter class HomeFragment : Fragment() { @@ -15,14 +19,23 @@ class HomeFragment : Fragment() { savedInstanceState: Bundle? ): View? { - /*val adapterMatches = findViewById(R.id.ListRecentsMatches) + val view = inflater.inflate(R.layout.fragment_home, container, false) + val matches = (activity as MainActivity).manager.matchesMgr.getItems() - with(adapterMatches) { - adapter = MatchesAdapter(manager.matchesMgr.getItems().toList().toTypedArray()) - } + initRecyclerView(view, matches) + return view + } - adapterMatches.layoutManager = LinearLayoutManager(this)*/ + private fun initRecyclerView(view: View, matches: List) { + val recyclerViewMatches = view.findViewById(R.id.ListRecentsMatches) + with(recyclerViewMatches) { + layoutManager = LinearLayoutManager(view.context) + adapter = MatchesAdapter(matches.toList().toTypedArray()) + + } - return inflater.inflate(R.layout.fragment_home, container, false) } + + + } \ No newline at end of file diff --git a/src/app/src/main/java/uca/iut/clermont/view/MainActivity.kt b/src/app/src/main/java/uca/iut/clermont/view/MainActivity.kt index 0a23a58..01f7fa5 100644 --- a/src/app/src/main/java/uca/iut/clermont/view/MainActivity.kt +++ b/src/app/src/main/java/uca/iut/clermont/view/MainActivity.kt @@ -1,26 +1,54 @@ package uca.iut.clermont.view -import android.app.Activity +import android.os.Build import android.os.Bundle +import androidx.annotation.RequiresApi +import androidx.appcompat.app.AppCompatActivity +import androidx.core.view.WindowCompat +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.WindowInsetsControllerCompat import androidx.navigation.NavController -import androidx.navigation.findNavController import androidx.navigation.fragment.NavHostFragment import uca.iut.clermont.R import uca.iut.clermont.data.StubData -class MainActivity : Activity() { - private var manager = StubData() +class MainActivity : AppCompatActivity() { + + var manager = StubData() private lateinit var navController: NavController + + @RequiresApi(Build.VERSION_CODES.R) + private fun hideSystemUI() { + WindowCompat.setDecorFitsSystemWindows(window, false) + WindowInsetsControllerCompat( + window, + window.decorView.findViewById(android.R.id.content) + ).let { controller -> + controller.hide(WindowInsetsCompat.Type.systemBars()) + controller.systemBarsBehavior = + WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE + } + + } + + + @RequiresApi(Build.VERSION_CODES.R) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + hideSystemUI() setContentView(R.layout.activity_main) + supportActionBar?.hide() + + manager.initTeams() + manager.initMatches() - val navHostFragment = findNavController(R.id.fragment) as NavHostFragment + val navHostFragment = + supportFragmentManager.findFragmentById(R.id.fragment) as NavHostFragment - navController = navHostFragment.navController + val navController = navHostFragment.navController //val imageFirstTeam = findViewById(R.id.ImageFirstTeam) /*Glide.with(this) @@ -29,4 +57,6 @@ class MainActivity : Activity() { .into(imageFirstTeam)*/ } + + } \ No newline at end of file diff --git a/src/app/src/main/java/uca/iut/clermont/view/adapter/MatchesAdapter.kt b/src/app/src/main/java/uca/iut/clermont/view/adapter/MatchesAdapter.kt index e9178f4..9780b6c 100644 --- a/src/app/src/main/java/uca/iut/clermont/view/adapter/MatchesAdapter.kt +++ b/src/app/src/main/java/uca/iut/clermont/view/adapter/MatchesAdapter.kt @@ -7,13 +7,18 @@ import uca.iut.clermont.R import uca.iut.clermont.model.Match import uca.iut.clermont.view.viewHolder.MatchHolder -class MatchesAdapter(val recentMatches: Array) : RecyclerView.Adapter() { +class MatchesAdapter(private val recentMatches: Array) : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MatchHolder { - return MatchHolder(LayoutInflater.from(parent.context).inflate(R.layout.cellule_match, parent, false)) + return MatchHolder( + LayoutInflater.from(parent.context).inflate(R.layout.cellule_match, parent, false) + ) } override fun onBindViewHolder(holder: MatchHolder, position: Int) { - holder.textView.text = recentMatches[position].id.toString() + holder.titleFirstTeam.text = recentMatches[position].homeTeam.name + holder.titleSecondTeam.text = recentMatches[position].awayTeam.name + holder.scoreHomeTeam.text = recentMatches[position].score.home.toString() + holder.scoreAwayTeam.text = recentMatches[position].score.away.toString() } override fun getItemCount() = recentMatches.size diff --git a/src/app/src/main/java/uca/iut/clermont/view/viewHolder/MatchHolder.kt b/src/app/src/main/java/uca/iut/clermont/view/viewHolder/MatchHolder.kt index 87b4182..ec4322c 100644 --- a/src/app/src/main/java/uca/iut/clermont/view/viewHolder/MatchHolder.kt +++ b/src/app/src/main/java/uca/iut/clermont/view/viewHolder/MatchHolder.kt @@ -6,11 +6,18 @@ import androidx.recyclerview.widget.RecyclerView import uca.iut.clermont.R class MatchHolder(view: View) : RecyclerView.ViewHolder(view) { - val textView: TextView + val titleFirstTeam: TextView + val titleSecondTeam: TextView + val scoreHomeTeam: TextView + val scoreAwayTeam: TextView init { // Define click listener for the ViewHolder's View - textView = view.findViewById(R.id.TitleFirstTeam) + titleFirstTeam = view.findViewById(R.id.TitleFirstTeam) + titleSecondTeam = view.findViewById(R.id.TitleSecondTeam) + scoreHomeTeam = view.findViewById(R.id.ScoreHomeTeam) + scoreAwayTeam = view.findViewById(R.id.ScoreAwayTeam) + } diff --git a/src/app/src/main/res/layout/activity_main.xml b/src/app/src/main/res/layout/activity_main.xml index 674d1e6..53f6705 100644 --- a/src/app/src/main/res/layout/activity_main.xml +++ b/src/app/src/main/res/layout/activity_main.xml @@ -6,15 +6,19 @@ android:layout_height="match_parent" tools:context=".view.MainActivity"> - + app:navGraph="@navigation/my_nav" /> + + \ No newline at end of file diff --git a/src/app/src/main/res/layout/cellule_favorite.xml b/src/app/src/main/res/layout/cellule_favorite.xml index 1b710e5..7200197 100644 --- a/src/app/src/main/res/layout/cellule_favorite.xml +++ b/src/app/src/main/res/layout/cellule_favorite.xml @@ -1,8 +1,8 @@ + android:layout_height="wrap_content"> + android:textSize="16sp" /> - + + + + + + + + + android:textSize="18sp" /> @@ -96,11 +118,12 @@ android:layout_height="60dp" /> + android:textSize="16sp" /> diff --git a/src/app/src/main/res/layout/fragment_favorite.xml b/src/app/src/main/res/layout/fragment_favorite.xml index 1863152..0294ab2 100644 --- a/src/app/src/main/res/layout/fragment_favorite.xml +++ b/src/app/src/main/res/layout/fragment_favorite.xml @@ -46,5 +46,4 @@ app:layout_constraintTop_toBottomOf="@+id/exitContainer" /> - \ No newline at end of file -- 2.36.3 From f7205e70faaf8afdc8e1c58828089603d8a710f7 Mon Sep 17 00:00:00 2001 From: Emre KARTAL Date: Wed, 29 Mar 2023 20:59:46 +0200 Subject: [PATCH 5/5] Added start and detail fragments and beginning of the gyroscope for the soccer ball :soccer: --- .../shelved.patch | 346 ------------------ ...e_Update_at_21_03_2023_09_05__Changes_.xml | 4 - .../java/uca/iut/clermont/data/StubData.kt | 44 ++- .../java/uca/iut/clermont/model/Season.kt | 8 +- .../uca/iut/clermont/view/FavoriteFragment.kt | 39 +- .../uca/iut/clermont/view/HomeFragment.kt | 10 +- .../uca/iut/clermont/view/MainActivity.kt | 7 +- .../uca/iut/clermont/view/StartFragment.kt | 82 +++++ .../clermont/view/adapter/FavoritesAdapter.kt | 30 ++ .../view/viewHolder/FavoriteHolder.kt | 17 + .../clermont/view/viewHolder/MatchHolder.kt | 2 - src/app/src/main/res/drawable-v24/ball.png | Bin 0 -> 2110 bytes .../src/main/res/drawable-v24/icon_like.png | Bin 0 -> 2885 bytes src/app/src/main/res/layout/activity_main.xml | 1 - .../src/main/res/layout/cellule_favorite.xml | 2 +- .../src/main/res/layout/fragment_detail.xml | 6 + .../src/main/res/layout/fragment_favorite.xml | 20 +- src/app/src/main/res/layout/fragment_home.xml | 38 +- .../src/main/res/layout/fragment_start.xml | 18 + src/app/src/main/res/navigation/my_nav.xml | 13 +- 20 files changed, 295 insertions(+), 392 deletions(-) delete mode 100644 src/.idea/shelf/Uncommitted_changes_before_Update_at_21_03_2023_09_05_[Changes]/shelved.patch delete mode 100644 src/.idea/shelf/Uncommitted_changes_before_Update_at_21_03_2023_09_05__Changes_.xml create mode 100644 src/app/src/main/java/uca/iut/clermont/view/StartFragment.kt create mode 100644 src/app/src/main/java/uca/iut/clermont/view/adapter/FavoritesAdapter.kt create mode 100644 src/app/src/main/java/uca/iut/clermont/view/viewHolder/FavoriteHolder.kt create mode 100644 src/app/src/main/res/drawable-v24/ball.png create mode 100644 src/app/src/main/res/drawable-v24/icon_like.png create mode 100644 src/app/src/main/res/layout/fragment_detail.xml create mode 100644 src/app/src/main/res/layout/fragment_start.xml diff --git a/src/.idea/shelf/Uncommitted_changes_before_Update_at_21_03_2023_09_05_[Changes]/shelved.patch b/src/.idea/shelf/Uncommitted_changes_before_Update_at_21_03_2023_09_05_[Changes]/shelved.patch deleted file mode 100644 index cc336c4..0000000 --- a/src/.idea/shelf/Uncommitted_changes_before_Update_at_21_03_2023_09_05_[Changes]/shelved.patch +++ /dev/null @@ -1,346 +0,0 @@ -Index: app/src/main/java/uca/iut/clermont/data/StubData.kt -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP -<+>package uca.iut.clermont.data\n\nimport AreaManager\nimport CompetitionsManager\nimport DataManager\nimport MatchesManager\nimport PeopleManager\nimport TeamsManager\nimport uca.iut.clermont.model.*\nimport java.util.*\n\nclass StubData : DataManager() {\n override val areaMgr: AreaManager = StubAreaManager(this)\n override val peopleMgr: PeopleManager = StubPeopleManager(this)\n override val matchesMgr: MatchesManager = StubMatchesManager()\n override val competitionsMgr: CompetitionsManager = StubCompetitionsManager()\n override val teamsMgr: TeamsManager = StubTeamsManager(this)\n\n private val areaList = listOf(\n Area(1, \"France\", \"FRA\", \"https://crests.football-data.org/773.svg\", \"Europe\"),\n Area(2, \"Spain\", \"ESP\", \"https://crests.football-data.org/760.svg\", \"Europe\"),\n Area(3, \"Brazil\", \"BRA\", \"https://crests.football-data.org/764.svg\", \"South America\"),\n Area(4, \"Mexico\", \"Mex\", \"https://crests.football-data.org/mexico.svg\", \"North America\"),\n Area(\n 5,\n \"Australia\",\n \"AUS\",\n \"https://australie-voyage.fr/wp-content/uploads/2020/08/Drapeau-australien.jpg\",\n \"Oceania\"\n )\n )\n\n private val peopleList = listOf(\n Player(\n 1,\n \"Lionel\",\n \"Messi\",\n \"L. Messi\",\n Calendar.getInstance().apply { set(1987, 6, 24)},\n \"Argentina\",\n Contract(Calendar.getInstance().apply { set(2020, 6, 1)}, Calendar.getInstance().apply { set(2025, 6, 1)}),\n \"Forward\",\n 10\n ),\n Player(\n 2,\n \"Cristiano\",\n \"Ronaldo\",\n \"C. Ronaldo\",\n Calendar.getInstance().apply { set(1985, 2, 5)},\n \"Portugal\",\n Contract(Calendar.getInstance().apply { set(2020, 7, 1)}, Calendar.getInstance().apply { set(2024, 7, 1)}),\n \"Forward\",\n 7\n ),\n Player(\n 3,\n \"Neymar\",\n \"Jr\",\n \"Neymar\",\n Calendar.getInstance().apply { set(1992, 2, 5)},\n \"Brazil\",\n Contract(Calendar.getInstance().apply { set(2021, 1, 1)}, Calendar.getInstance().apply { set(2026, 1, 1)}),\n \"Forward\",\n 10\n ),\n Player(\n 4,\n \"Kylian\",\n \"Mbappe\",\n \"K. Mbappe\",\n Calendar.getInstance().apply { set(1998, 12, 20)},\n \"France\",\n Contract(Calendar.getInstance().apply { set(2022, 1, 1)}, Calendar.getInstance().apply { set(2027, 1, 1)}),\n \"Forward\",\n 7\n ),\n Player(\n 5,\n \"Mohamed\",\n \"Salah\",\n \"M. Salah\",\n Calendar.getInstance().apply { set(1992, 6, 15)},\n \"Egypt\",\n Contract(Calendar.getInstance().apply { set(2021, 7, 1)}, Calendar.getInstance().apply { set(2025, 7, 1)}),\n \"Forward\",\n 11\n ),\n Player(\n 6,\n \"Kevin\",\n \"De Bruyne\",\n \"K. De Bruyne\",\n Calendar.getInstance().apply { set(1991, 6, 28)},\n \"Belgium\",\n Contract(Calendar.getInstance().apply { set(2021, 8, 1)}, Calendar.getInstance().apply { set(2026, 8, 1)}),\n \"Midfielder\",\n 17\n ),\n Player(\n 7,\n \"Robert\",\n \"Lewandowski\",\n \"R. Lewandowski\",\n Calendar.getInstance().apply { set(1988, 8, 21)},\n \"Poland\",\n Contract(Calendar.getInstance().apply { set(2021, 1, 1)}, Calendar.getInstance().apply { set(2024, 1, 1)}),\n \"Forward\",\n 9\n ),\n Player(\n 8,\n \"Sadio\",\n \"Mane\",\n \"S. Mane\",\n Calendar.getInstance().apply { set(1992, 4, 10)},\n \"Senegal\",\n Contract(Calendar.getInstance().apply { set(2022, 1, 1)}, Calendar.getInstance().apply { set(2026, 1, 1)}),\n \"Forward\",\n 10\n ),\n Player(\n 9,\n \"Virgil\",\n \"Van Dijk\",\n \"V. Van Dijk\",\n Calendar.getInstance().apply { set(1991, 7, 8)},\n \"Netherlands\",\n Contract(Calendar.getInstance().apply { set(2023, 1, 1)}, Calendar.getInstance().apply { set(2026, 1, 1)}),\n \"Defender\",\n 4\n ),\n Player(\n 10,\n \"Luka\",\n \"Modric\",\n \"L. Modric\",\n Calendar.getInstance().apply { set(1985, 9, 9)},\n \"Croatia\",\n Contract(Calendar.getInstance().apply { set(2020, 6, 1)}, Calendar.getInstance().apply { set(2022, 6, 1)}),\n \"Midfielder\",\n 10\n ),\n Player(\n 11,\n \"Harry\",\n \"Kane\",\n \"H. Kane\",\n Calendar.getInstance().apply { set(1993, 7, 28)},\n \"England\",\n Contract(Calendar.getInstance().apply { set(2021, 7, 1)}, Calendar.getInstance().apply { set(2025, 7, 1)}),\n \"Forward\",\n 10\n ),\n Player(\n 12,\n \"Sergio\",\n \"Aguero\",\n \"S. Aguero\",\n Calendar.getInstance().apply { set(1988, 6, 2)},\n \"Argentina\",\n Contract(Calendar.getInstance().apply { set(2021, 6, 1)}, Calendar.getInstance().apply { set(2023, 6, 1)}),\n \"Forward\",\n 10\n ),\n Player(\n 13,\n \"Eden\",\n \"Hazard\",\n \"E. Hazard\",\n Calendar.getInstance().apply { set(1991, 1, 7)},\n \"Belgium\",\n Contract(Calendar.getInstance().apply { set(2022, 1, 1)}, Calendar.getInstance().apply { set(2027, 1, 1)}),\n \"Forward\",\n 7\n ),\n Coach(\n 14,\n \"Pep\",\n \"Guardiola\",\n \"P. Guardiola\",\n Calendar.getInstance().apply { set(1971, 1, 18)},\n \"Spain\",\n Contract(Calendar.getInstance().apply { set(2020, 6, 1)}, Calendar.getInstance().apply { set(2023, 6, 1)})\n ),\n Coach(\n 15,\n \"Jurgen\",\n \"Klopp\",\n \"J. Klopp\",\n Calendar.getInstance().apply { set(1967, 6, 16)},\n \"Germany\",\n Contract(Calendar.getInstance().apply { set(2020, 7, 1)}, Calendar.getInstance().apply { set(2024, 7, 1)})\n ),\n Staff(\n 16,\n \"Jorge\",\n \"Desio\",\n \"J. Desio\",\n Calendar.getInstance().apply { set(1966, 1, 1)},\n \"Argentina\",\n Contract(Calendar.getInstance().apply { set(2020, 6, 1)}, Calendar.getInstance().apply { set(2023, 6, 1)})\n ),\n Staff(\n 17,\n \"Craig\",\n \"Mawson\",\n \"C. Mawson\",\n Calendar.getInstance().apply { set(1973, 8, 22)},\n \"England\",\n Contract(Calendar.getInstance().apply { set(2020, 7, 1)}, Calendar.getInstance().apply { set(2024, 7, 1)})\n )\n )\n private val teamList = listOf(\n Team(\n 1,\n \"Paris Saint-Germain FC\",\n \"PSG\",\n \"https://crests.football-data.org/524.svg\",\n \"24 Rue du Commandant Guilbaud, 75016 Paris, France\",\n \"https://www.psg.fr/\",\n \"1970\",\n \"Navy / Red\",\n areaList[0],\n \"Parc des Princes\",\n peopleList[0] as Coach,\n listOf(peopleList[2] as Staff),\n listOf(peopleList[0] as Player, peopleList[3] as Player, peopleList[11] as Player)\n ),\n Team(\n 2,\n \"FC Barcelona\",\n \"BAR\",\n \"https://crests.football-data.org/81.svg\",\n \"Carrer d'Aristides Maillol, s/n, 08028 Barcelona, Spain\",\n \"https://www.fcbarcelona.com/\",\n \"1899\",\n \"Blue / Red\",\n areaList[3],\n \"Camp Nou\",\n peopleList[0] as Coach,\n listOf(peopleList[2] as Staff),\n listOf(peopleList[0] as Player, peopleList[5] as Player, peopleList[9] as Player)\n ),\n Team(\n 3,\n \"Liverpool FC\",\n \"LIV\",\n \"https://crests.football-data.org/64.svg\",\n \"Anfield Road, Liverpool L4 0TH, United Kingdom\",\n \"https://www.liverpoolfc.com/\",\n \"1892\",\n \"Red\",\n areaList[2],\n \"Anfield\",\n peopleList[1] as Coach,\n listOf(peopleList[3] as Staff),\n listOf(peopleList[7] as Player, peopleList[8] as Player, peopleList[10] as Player)\n )\n )\n\n\n class StubAreaManager(private val parent: StubData) : AreaManager {\n override fun getItemsByName(substring: String) =\n parent.areaList.filter { it.name.contains(substring, ignoreCase = true) }\n\n override fun getItems(): List = parent.areaList\n\n override fun getItemById(id: Int) = parent.areaList.find { it.id == id }\n\n }\n\n class StubPeopleManager(private val parent: StubData) : PeopleManager {\n override fun getItemsByName(substring: String) =\n parent.peopleList.filter { it.name.contains(substring, ignoreCase = true) }\n\n override fun getItems() = parent.peopleList\n\n override fun getItemById(id: Int) = parent.peopleList.find { it.id == id }\n }\n\n class StubMatchesManager : MatchesManager {\n override fun getItemsByName(substring: String): List {\n TODO(\"Not yet implemented\")\n }\n\n override fun getItems(): List {\n TODO(\"Not yet implemented\")\n }\n\n override fun getItemById(id: Int): Match? {\n TODO(\"Not yet implemented\")\n }\n\n }\n\n class StubCompetitionsManager : CompetitionsManager {\n override fun getItemsByName(substring: String): List {\n TODO(\"Not yet implemented\")\n }\n\n override fun getItems(): List {\n TODO(\"Not yet implemented\")\n }\n\n override fun getItemById(id: Int): Competition? {\n TODO(\"Not yet implemented\")\n }\n\n }\n\n class StubTeamsManager(private val parent: StubData) : TeamsManager {\n override fun getItemsByName(substring: String) =\n parent.teamList.filter { it.name.contains(substring, ignoreCase = true) }\n\n override fun getItems() = parent.teamList\n\n override fun getItemById(id: Int) = parent.teamList.find { it.id == id }\n\n }\n} -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/app/src/main/java/uca/iut/clermont/data/StubData.kt b/app/src/main/java/uca/iut/clermont/data/StubData.kt ---- a/app/src/main/java/uca/iut/clermont/data/StubData.kt (revision 25693eb0d9f8f8dd921848f43aa3aef5e6b65476) -+++ b/app/src/main/java/uca/iut/clermont/data/StubData.kt (date 1679385919089) -@@ -12,7 +12,7 @@ - class StubData : DataManager() { - override val areaMgr: AreaManager = StubAreaManager(this) - override val peopleMgr: PeopleManager = StubPeopleManager(this) -- override val matchesMgr: MatchesManager = StubMatchesManager() -+ override val matchesMgr: MatchesManager = StubMatchesManager(this) - override val competitionsMgr: CompetitionsManager = StubCompetitionsManager() - override val teamsMgr: TeamsManager = StubTeamsManager(this) - -@@ -259,6 +259,58 @@ - ) - ) - -+ private val random = java.util.Random() -+ val matchList = listOf( -+ Match( -+ 1, -+ teamList[0].id, -+ teamList[1].id, -+ Calendar.getInstance().apply { set(2022, random.nextInt(12), random.nextInt(28) + 1) }, -+ "FINISHED", -+ Score(1, 1, "DRAW") -+ ), -+ Match( -+ 2, -+ teamList[2].id, -+ teamList[0].id, -+ Calendar.getInstance().apply { set(2022, random.nextInt(12), random.nextInt(28) + 1) }, -+ "FINISHED", -+ Score(2, 0, "HOME_TEAM") -+ ), -+ Match( -+ 3, -+ teamList[1].id, -+ teamList[2].id, -+ Calendar.getInstance().apply { set(2022, random.nextInt(12), random.nextInt(28) + 1) }, -+ "FINISHED", -+ Score(0, 4, "AWAY_TEAM") -+ ), -+ Match( -+ 4, -+ teamList[0].id, -+ teamList[2].id, -+ Calendar.getInstance().apply { set(2023, random.nextInt(12), random.nextInt(28) + 1) }, -+ "FINISHED", -+ Score(0, 1, "AWAY_TEAM") -+ ), -+ Match( -+ 5, -+ teamList[1].id, -+ teamList[0].id, -+ Calendar.getInstance().apply { set(2023, random.nextInt(12), random.nextInt(28) + 1) }, -+ "FINISHED", -+ Score(0, 0, "DRAW") -+ ), -+ Match( -+ 6, -+ teamList[2].id, -+ teamList[1].id, -+ Calendar.getInstance().apply { set(2023, random.nextInt(12), random.nextInt(28) + 1) }, -+ "FINISHED", -+ Score(2, 0, "HOME_TEAM") -+ ) -+ ) -+ - - class StubAreaManager(private val parent: StubData) : AreaManager { - override fun getItemsByName(substring: String) = -@@ -279,32 +331,27 @@ - override fun getItemById(id: Int) = parent.peopleList.find { it.id == id } - } - -- class StubMatchesManager : MatchesManager { -- override fun getItemsByName(substring: String): List { -- TODO("Not yet implemented") -- } -+ class StubMatchesManager(private val parent: StubData) : MatchesManager { -+ override fun getItemsByName(substring: String) = -+ throw java.lang.Exception("Don't call this function") - -- override fun getItems(): List { -- TODO("Not yet implemented") -- } -+ override fun getItems(): List = parent.matchList - -- override fun getItemById(id: Int): Match? { -- TODO("Not yet implemented") -- } -+ override fun getItemById(id: Int) = parent.matchList.find { it.id == id } - - } - - class StubCompetitionsManager : CompetitionsManager { - override fun getItemsByName(substring: String): List { -- TODO("Not yet implemented") -+ throw java.lang.Exception("Don't call this function") - } - - override fun getItems(): List { -- TODO("Not yet implemented") -+ throw java.lang.Exception("Don't call this function") - } - - override fun getItemById(id: Int): Competition? { -- TODO("Not yet implemented") -+ throw java.lang.Exception("Don't call this function") - } - - } -Index: app/src/main/java/uca/iut/clermont/view/HomeActivity.kt -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP -<+>package uca.iut.clermont.view\n\nimport android.app.Activity\nimport android.os.Bundle\nimport android.widget.ImageView\nimport com.bumptech.glide.Glide\nimport uca.iut.clermont.R\n\nclass HomeActivity : Activity() {\n override fun onCreate(savedInstanceState: Bundle?) {\n super.onCreate(savedInstanceState)\n setContentView(R.layout.activity_home)\n val imageFirstTeam = findViewById(R.id.ImageFirstTeam)\n\n Glide.with(this)\n .load(\"https://crests.football-data.org/1765.svg\")\n .error(R.drawable.imagenotfound)\n .into(imageFirstTeam)\n\n }\n} -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/app/src/main/java/uca/iut/clermont/view/HomeActivity.kt b/app/src/main/java/uca/iut/clermont/view/HomeActivity.kt ---- a/app/src/main/java/uca/iut/clermont/view/HomeActivity.kt (revision 25693eb0d9f8f8dd921848f43aa3aef5e6b65476) -+++ b/app/src/main/java/uca/iut/clermont/view/HomeActivity.kt (date 1679385935801) -@@ -3,15 +3,27 @@ - import android.app.Activity - import android.os.Bundle - import android.widget.ImageView -+import androidx.recyclerview.widget.RecyclerView - import com.bumptech.glide.Glide - import uca.iut.clermont.R -+import uca.iut.clermont.view.adapter.MatchesAdapter -+import java.util.* - - class HomeActivity : Activity() { -+ -+ //private var manager = StubData() -+ - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_home) - val imageFirstTeam = findViewById(R.id.ImageFirstTeam) - -+ val adapterMatches = findViewById(R.id.ListRecentsMatches) -+ -+ with(adapterMatches) { -+ adapter = MatchesAdapter(matchList) -+ } -+ - Glide.with(this) - .load("https://crests.football-data.org/1765.svg") - .error(R.drawable.imagenotfound) -Index: app/src/main/java/uca/iut/clermont/model/Match.kt -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP -<+>package uca.iut.clermont.model\n\nclass Match(\n val id: Int,\n val idHomeTeam: Int,\n val idAwayTeam: Int,\n val status: String,\n val winner: String\n) {\n} -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/app/src/main/java/uca/iut/clermont/model/Match.kt b/app/src/main/java/uca/iut/clermont/model/Match.kt ---- a/app/src/main/java/uca/iut/clermont/model/Match.kt (revision 25693eb0d9f8f8dd921848f43aa3aef5e6b65476) -+++ b/app/src/main/java/uca/iut/clermont/model/Match.kt (date 1679385054618) -@@ -1,10 +1,12 @@ - package uca.iut.clermont.model - -+import java.util.Calendar -+ - class Match( - val id: Int, - val idHomeTeam: Int, - val idAwayTeam: Int, -+ val date: Calendar, - val status: String, -- val winner: String --) { --} -\ No newline at end of file -+ val score: Score -+) -\ No newline at end of file -Index: app/src/main/java/uca/iut/clermont/view/FavoriteActivity.kt -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP -<+>package uca.iut.clermont.view\n\nimport androidx.appcompat.app.AppCompatActivity\nimport android.os.Bundle\nimport uca.iut.clermont.R\n\nclass FavoriteActivity : AppCompatActivity() {\n override fun onCreate(savedInstanceState: Bundle?) {\n super.onCreate(savedInstanceState)\n setContentView(R.layout.activity_favorite)\n }\n} -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/app/src/main/java/uca/iut/clermont/view/FavoriteActivity.kt b/app/src/main/java/uca/iut/clermont/view/FavoriteActivity.kt ---- a/app/src/main/java/uca/iut/clermont/view/FavoriteActivity.kt (revision 25693eb0d9f8f8dd921848f43aa3aef5e6b65476) -+++ b/app/src/main/java/uca/iut/clermont/view/FavoriteActivity.kt (date 1679384858096) -@@ -1,10 +1,10 @@ - package uca.iut.clermont.view - --import androidx.appcompat.app.AppCompatActivity -+import android.app.Activity - import android.os.Bundle - import uca.iut.clermont.R - --class FavoriteActivity : AppCompatActivity() { -+class FavoriteActivity : Activity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_favorite) -Index: app/src/main/java/uca/iut/clermont/view/adapter/MatchesAdapter.kt -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/app/src/main/java/uca/iut/clermont/view/adapter/MatchesAdapter.kt b/app/src/main/java/uca/iut/clermont/view/adapter/MatchesAdapter.kt -new file mode 100644 ---- /dev/null (date 1679385332913) -+++ b/app/src/main/java/uca/iut/clermont/view/adapter/MatchesAdapter.kt (date 1679385332913) -@@ -0,0 +1,21 @@ -+package uca.iut.clermont.view.adapter -+ -+import android.view.LayoutInflater -+import android.view.ViewGroup -+import androidx.recyclerview.widget.RecyclerView -+import uca.iut.clermont.R -+import uca.iut.clermont.model.Match -+import uca.iut.clermont.view.viewHolder.MatchHolder -+ -+class MatchesAdapter(val recentMatches: List) : RecyclerView.Adapter() { -+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MatchHolder { -+ return MatchHolder(LayoutInflater.from(parent.context).inflate(R.layout.cellule_match, parent, false)) -+ } -+ -+ override fun onBindViewHolder(holder: MatchHolder, position: Int) { -+ holder.textView.text = recentMatches[position].toString() -+ } -+ -+ override fun getItemCount() = recentMatches.size -+ -+} -\ No newline at end of file -Index: app/src/main/java/uca/iut/clermont/model/Personne.kt -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP -<+>package uca.iut.clermont.model\n\nimport java.util.Calendar\nimport java.util.Date\n\nabstract class Personne(\n val id: Int,\n val firstName: String,\n val lastName: String,\n val name: String,\n val dateOfBirth: Calendar,\n val nationality: String,\n val contract: Contract\n) -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/app/src/main/java/uca/iut/clermont/model/Personne.kt b/app/src/main/java/uca/iut/clermont/model/Personne.kt ---- a/app/src/main/java/uca/iut/clermont/model/Personne.kt (revision 25693eb0d9f8f8dd921848f43aa3aef5e6b65476) -+++ b/app/src/main/java/uca/iut/clermont/model/Personne.kt (date 1679384810112) -@@ -1,7 +1,6 @@ - package uca.iut.clermont.model - - import java.util.Calendar --import java.util.Date - - abstract class Personne( - val id: Int, -Index: app/src/main/java/uca/iut/clermont/model/Score.kt -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/app/src/main/java/uca/iut/clermont/model/Score.kt b/app/src/main/java/uca/iut/clermont/model/Score.kt -new file mode 100644 ---- /dev/null (date 1679384826924) -+++ b/app/src/main/java/uca/iut/clermont/model/Score.kt (date 1679384826924) -@@ -0,0 +1,7 @@ -+package uca.iut.clermont.model -+ -+class Score( -+ val home: Int, -+ val away: Int, -+ val winner: String -+) -\ No newline at end of file -Index: app/src/main/java/uca/iut/clermont/model/Staff.kt -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP -<+>package uca.iut.clermont.model\n\nimport java.util.Calendar\nimport java.util.Date\n\nclass Staff(\n id: Int,\n firstName: String,\n lastName: String,\n name: String,\n dateOfBirth: Calendar,\n nationality: String,\n contract: Contract\n) : Personne(id, firstName, lastName, name, dateOfBirth, nationality, contract) -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/app/src/main/java/uca/iut/clermont/model/Staff.kt b/app/src/main/java/uca/iut/clermont/model/Staff.kt ---- a/app/src/main/java/uca/iut/clermont/model/Staff.kt (revision 25693eb0d9f8f8dd921848f43aa3aef5e6b65476) -+++ b/app/src/main/java/uca/iut/clermont/model/Staff.kt (date 1679384834976) -@@ -1,7 +1,6 @@ - package uca.iut.clermont.model - - import java.util.Calendar --import java.util.Date - - class Staff( - id: Int, -Index: app/src/main/res/layout/activity_home.xml -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP -<+>\n\n\n \n\n \n\n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n \n\n -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml ---- a/app/src/main/res/layout/activity_home.xml (revision 25693eb0d9f8f8dd921848f43aa3aef5e6b65476) -+++ b/app/src/main/res/layout/activity_home.xml (date 1679385539992) -@@ -194,4 +194,12 @@ - android:background="#E1DFDF" /> - - -+ -+ - -\ No newline at end of file -Index: app/src/main/java/uca/iut/clermont/view/viewHolder/MatchHolder.kt -IDEA additional info: -Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP -<+>UTF-8 -=================================================================== -diff --git a/app/src/main/java/uca/iut/clermont/view/viewHolder/MatchHolder.kt b/app/src/main/java/uca/iut/clermont/view/viewHolder/MatchHolder.kt -new file mode 100644 ---- /dev/null (date 1679385339625) -+++ b/app/src/main/java/uca/iut/clermont/view/viewHolder/MatchHolder.kt (date 1679385339625) -@@ -0,0 +1,17 @@ -+package uca.iut.clermont.view.viewHolder -+ -+import android.view.View -+import android.widget.TextView -+import androidx.recyclerview.widget.RecyclerView -+import uca.iut.clermont.R -+ -+class MatchHolder(view: View) : RecyclerView.ViewHolder(view) { -+ val textView: TextView -+ -+ init { -+ // Define click listener for the ViewHolder's View -+ textView = view.findViewById(R.id.TitleFirstTeam) -+ } -+ -+ -+} -\ No newline at end of file diff --git a/src/.idea/shelf/Uncommitted_changes_before_Update_at_21_03_2023_09_05__Changes_.xml b/src/.idea/shelf/Uncommitted_changes_before_Update_at_21_03_2023_09_05__Changes_.xml deleted file mode 100644 index e0bbf13..0000000 --- a/src/.idea/shelf/Uncommitted_changes_before_Update_at_21_03_2023_09_05__Changes_.xml +++ /dev/null @@ -1,4 +0,0 @@ - - \ No newline at end of file diff --git a/src/app/src/main/java/uca/iut/clermont/data/StubData.kt b/src/app/src/main/java/uca/iut/clermont/data/StubData.kt index 8f4c42c..daa61be 100644 --- a/src/app/src/main/java/uca/iut/clermont/data/StubData.kt +++ b/src/app/src/main/java/uca/iut/clermont/data/StubData.kt @@ -13,7 +13,7 @@ class StubData : DataManager() { override val areaMgr: AreaManager = StubAreaManager(this) override val peopleMgr: PeopleManager = StubPeopleManager(this) override val matchesMgr: MatchesManager = StubMatchesManager(this) - override val competitionsMgr: CompetitionsManager = StubCompetitionsManager() + override val competitionsMgr: CompetitionsManager = StubCompetitionsManager(this) override val teamsMgr: TeamsManager = StubTeamsManager(this) private val areaList = listOf( @@ -374,6 +374,33 @@ class StubData : DataManager() { ) } + val competitionList: MutableList = mutableListOf() + + fun initCompetitions() { + competitionList.add( + Competition( + 1, + "Campeonato Brasileiro Série A", + "BSA", + "LEAGUE", + "https://crests.football-data.org/764.svg", + Season(1557, Calendar.getInstance().apply { set(2023, Calendar.MARCH, 15) }, Calendar.getInstance().apply { set(2022, Calendar.DECEMBER, 3) },1, null), + areaList[2], + ) + ) + competitionList.add( + Competition( + 2, + "Championship", + "ELC", + "LEAGUE", + "https://crests.football-data.org/PL.png", + Season(1557, Calendar.getInstance().apply { set(2023, Calendar.MARCH, 15) }, Calendar.getInstance().apply { set(2022, Calendar.DECEMBER, 3) },1, null), + areaList[2], + ) + ) + } + class StubAreaManager(private val parent: StubData) : AreaManager { override fun getItemsByName(substring: String) = @@ -402,18 +429,13 @@ class StubData : DataManager() { } - class StubCompetitionsManager : CompetitionsManager { - override fun getItemsByName(substring: String): List { - throw java.lang.Exception("Don't call this function") - } + class StubCompetitionsManager(private val parent: StubData) : CompetitionsManager { + override fun getItemsByName(substring: String) = + parent.competitionList.filter { it.name.contains(substring, ignoreCase = true) } - override fun getItems(): List { - throw java.lang.Exception("Don't call this function") - } + override fun getItems() = parent.competitionList - override fun getItemById(id: Int): Competition? { - throw java.lang.Exception("Don't call this function") - } + override fun getItemById(id: Int) = parent.competitionList.find { it.id == id } } diff --git a/src/app/src/main/java/uca/iut/clermont/model/Season.kt b/src/app/src/main/java/uca/iut/clermont/model/Season.kt index d414d77..9d45cd7 100644 --- a/src/app/src/main/java/uca/iut/clermont/model/Season.kt +++ b/src/app/src/main/java/uca/iut/clermont/model/Season.kt @@ -1,11 +1,11 @@ package uca.iut.clermont.model -import java.util.Date +import java.util.Calendar class Season( val id: Int, - val startDate: Date, - val endDate: Date, + val startDate: Calendar, + val endDate: Calendar, val currentMatchday: Int, - val winner: Int + val winner: Int? ) \ No newline at end of file diff --git a/src/app/src/main/java/uca/iut/clermont/view/FavoriteFragment.kt b/src/app/src/main/java/uca/iut/clermont/view/FavoriteFragment.kt index bbcb975..8e0b490 100644 --- a/src/app/src/main/java/uca/iut/clermont/view/FavoriteFragment.kt +++ b/src/app/src/main/java/uca/iut/clermont/view/FavoriteFragment.kt @@ -4,8 +4,17 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Button +import android.widget.ImageButton import androidx.fragment.app.Fragment +import androidx.navigation.fragment.findNavController +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import uca.iut.clermont.R +import uca.iut.clermont.model.Competition +import uca.iut.clermont.model.Match +import uca.iut.clermont.view.adapter.FavoritesAdapter +import uca.iut.clermont.view.adapter.MatchesAdapter class FavoriteFragment: Fragment() { override fun onCreateView( @@ -13,6 +22,34 @@ class FavoriteFragment: Fragment() { container: ViewGroup?, savedInstanceState: Bundle? ): View? { - return inflater.inflate(R.layout.fragment_favorite, container, false) + val view = inflater.inflate(R.layout.fragment_favorite, container, false) + + val competitions = (activity as MainActivity).manager.competitionsMgr.getItems() + var buttonHome = view.findViewById(R.id.buttonHome) + val buttonTextFavorite = view.findViewById