From 7ff991b4fb7b058c246dadfc697f62715bfcea86 Mon Sep 17 00:00:00 2001 From: Emre KARTAL Date: Tue, 21 Mar 2023 08:35:14 +0100 Subject: [PATCH 1/5] =?UTF-8?q?Add=20class=20score=20in=20uml=20diagram=20?= =?UTF-8?q?=F0=9F=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 440d7b0..7845061 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,11 @@ class Match { -idHomeTeam: Int -idAwayTeam: Int -status: String +} + +class Score { + -home: Int + -away: Int -winner: String } @@ -135,6 +140,8 @@ Team --> "-area" Area Competition --> "-area" Area Competition --> "-currentSeason" Season +Match --> "-score" Score + @enduml ``` From 2cc9a27e173d78f8e3067a3071a8352347a7ceb0 Mon Sep 17 00:00:00 2001 From: Emre KARTAL Date: Tue, 21 Mar 2023 08:40:51 +0100 Subject: [PATCH 2/5] Add icon and cellule :white_check_mark: --- src/app/src/main/AndroidManifest.xml | 4 +- src/app/src/main/res/drawable/icon.png | Bin 0 -> 20177 bytes src/app/src/main/res/drawable/round_icon.png | Bin 0 -> 26944 bytes .../src/main/res/layout/cellule_favorite.xml | 38 ++++++ src/app/src/main/res/layout/cellule_match.xml | 117 ++++++++++++++++++ 5 files changed, 157 insertions(+), 2 deletions(-) create mode 100644 src/app/src/main/res/drawable/icon.png create mode 100644 src/app/src/main/res/drawable/round_icon.png create mode 100644 src/app/src/main/res/layout/cellule_favorite.xml create mode 100644 src/app/src/main/res/layout/cellule_match.xml diff --git a/src/app/src/main/AndroidManifest.xml b/src/app/src/main/AndroidManifest.xml index 6a01fe5..deb52a2 100644 --- a/src/app/src/main/AndroidManifest.xml +++ b/src/app/src/main/AndroidManifest.xml @@ -8,9 +8,9 @@ android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" - android:icon="@mipmap/ic_launcher" + android:icon="@drawable/icon" android:label="@string/app_name" - android:roundIcon="@mipmap/ic_launcher_round" + android:roundIcon="@drawable/round_icon" android:supportsRtl="true" android:theme="@style/Theme.Scor_It" tools:targetApi="31"> diff --git a/src/app/src/main/res/drawable/icon.png b/src/app/src/main/res/drawable/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5ec9f200bc44004b284136d331313e33c77f9ebc GIT binary patch literal 20177 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 T!Y@T|l!5VO^GjtHTps@qWJv^( literal 0 HcmV?d00001 diff --git a/src/app/src/main/res/drawable/round_icon.png b/src/app/src/main/res/drawable/round_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..031f824843713587540a7cf73d6743e0ef29b986 GIT binary patch literal 26944 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 literal 0 HcmV?d00001 diff --git a/src/app/src/main/res/layout/cellule_favorite.xml b/src/app/src/main/res/layout/cellule_favorite.xml new file mode 100644 index 0000000..1b710e5 --- /dev/null +++ b/src/app/src/main/res/layout/cellule_favorite.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/app/src/main/res/layout/cellule_match.xml b/src/app/src/main/res/layout/cellule_match.xml new file mode 100644 index 0000000..8f05f02 --- /dev/null +++ b/src/app/src/main/res/layout/cellule_match.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From a2f68affb786724406a471acf908963e22644628 Mon Sep 17 00:00:00 2001 From: Emre KARTAL Date: Tue, 21 Mar 2023 08:44:22 +0100 Subject: [PATCH 3/5] =?UTF-8?q?Add=20class=20score=20in=20uml=20diagram=20?= =?UTF-8?q?=F0=9F=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7845061..39e24c0 100644 --- a/README.md +++ b/README.md @@ -50,8 +50,8 @@ skinparam package { hide circle class Contract { - -start: Date - -until: Date + -start: Calendar + -until: Calendar +duration() : Int } @@ -61,7 +61,7 @@ abstract class Personne { -firstName: String -lastName: String -name: String - -dateOfBirth: Date + -dateOfBirth: Calendar -nationality: String } @@ -107,8 +107,8 @@ class Competition { class Season { -id: Int - -startDate: Date - -endDate: Date + -startDate: Calendar + -endDate: Calendar -currentMatchday: Int -winner: Int } @@ -116,6 +116,7 @@ class Season { class Match { -id: Int -idHomeTeam: Int + -score: Score -idAwayTeam: Int -status: String } From 6672ec4664a8582557446ad40ae2bfd4670ff051 Mon Sep 17 00:00:00 2001 From: Emre KARTAL Date: Tue, 21 Mar 2023 17:35:54 +0100 Subject: [PATCH 4/5] realization of the recycler view for the matches :white_check_mark: --- .../shelved.patch | 346 ++++++++++++++++++ ...e_Update_at_21_03_2023_09_05__Changes_.xml | 4 + .../java/uca/iut/clermont/data/StubData.kt | 266 +++++++++----- .../java/uca/iut/clermont/model/ApiManager.kt | 2 +- .../uca/iut/clermont/model/DataManager.kt | 1 + .../main/java/uca/iut/clermont/model/Match.kt | 8 +- .../java/uca/iut/clermont/model/Personne.kt | 1 - .../main/java/uca/iut/clermont/model/Score.kt | 7 + .../main/java/uca/iut/clermont/model/Staff.kt | 1 - .../uca/iut/clermont/view/FavoriteActivity.kt | 4 +- .../uca/iut/clermont/view/HomeActivity.kt | 14 + .../clermont/view/adapter/MatchesAdapter.kt | 21 ++ .../clermont/view/viewHolder/MatchHolder.kt | 17 + .../src/main/res/layout/activity_favorite.xml | 29 -- src/app/src/main/res/layout/activity_home.xml | 9 +- 15 files changed, 604 insertions(+), 126 deletions(-) create mode 100644 src/.idea/shelf/Uncommitted_changes_before_Update_at_21_03_2023_09_05_[Changes]/shelved.patch create 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/model/Score.kt create mode 100644 src/app/src/main/java/uca/iut/clermont/view/adapter/MatchesAdapter.kt create mode 100644 src/app/src/main/java/uca/iut/clermont/view/viewHolder/MatchHolder.kt 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 new file mode 100644 index 0000000..cc336c4 --- /dev/null +++ b/src/.idea/shelf/Uncommitted_changes_before_Update_at_21_03_2023_09_05_[Changes]/shelved.patch @@ -0,0 +1,346 @@ +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 new file mode 100644 index 0000000..e0bbf13 --- /dev/null +++ b/src/.idea/shelf/Uncommitted_changes_before_Update_at_21_03_2023_09_05__Changes_.xml @@ -0,0 +1,4 @@ + + \ 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 f287554..1ce14d0 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 @@ -12,7 +12,7 @@ import java.util.* 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) @@ -36,9 +36,11 @@ class StubData : DataManager() { "Lionel", "Messi", "L. Messi", - Calendar.getInstance().apply { set(1987, 6, 24)}, + Calendar.getInstance().apply { set(1987, 6, 24) }, "Argentina", - Contract(Calendar.getInstance().apply { set(2020, 6, 1)}, Calendar.getInstance().apply { set(2025, 6, 1)}), + Contract( + Calendar.getInstance().apply { set(2020, 6, 1) }, + Calendar.getInstance().apply { set(2025, 6, 1) }), "Forward", 10 ), @@ -47,9 +49,11 @@ class StubData : DataManager() { "Cristiano", "Ronaldo", "C. Ronaldo", - Calendar.getInstance().apply { set(1985, 2, 5)}, + Calendar.getInstance().apply { set(1985, 2, 5) }, "Portugal", - Contract(Calendar.getInstance().apply { set(2020, 7, 1)}, Calendar.getInstance().apply { set(2024, 7, 1)}), + Contract( + Calendar.getInstance().apply { set(2020, 7, 1) }, + Calendar.getInstance().apply { set(2024, 7, 1) }), "Forward", 7 ), @@ -58,9 +62,11 @@ class StubData : DataManager() { "Neymar", "Jr", "Neymar", - Calendar.getInstance().apply { set(1992, 2, 5)}, + Calendar.getInstance().apply { set(1992, 2, 5) }, "Brazil", - Contract(Calendar.getInstance().apply { set(2021, 1, 1)}, Calendar.getInstance().apply { set(2026, 1, 1)}), + Contract( + Calendar.getInstance().apply { set(2021, 1, 1) }, + Calendar.getInstance().apply { set(2026, 1, 1) }), "Forward", 10 ), @@ -69,9 +75,11 @@ class StubData : DataManager() { "Kylian", "Mbappe", "K. Mbappe", - Calendar.getInstance().apply { set(1998, 12, 20)}, + Calendar.getInstance().apply { set(1998, 12, 20) }, "France", - Contract(Calendar.getInstance().apply { set(2022, 1, 1)}, Calendar.getInstance().apply { set(2027, 1, 1)}), + Contract( + Calendar.getInstance().apply { set(2022, 1, 1) }, + Calendar.getInstance().apply { set(2027, 1, 1) }), "Forward", 7 ), @@ -80,9 +88,11 @@ class StubData : DataManager() { "Mohamed", "Salah", "M. Salah", - Calendar.getInstance().apply { set(1992, 6, 15)}, + Calendar.getInstance().apply { set(1992, 6, 15) }, "Egypt", - Contract(Calendar.getInstance().apply { set(2021, 7, 1)}, Calendar.getInstance().apply { set(2025, 7, 1)}), + Contract( + Calendar.getInstance().apply { set(2021, 7, 1) }, + Calendar.getInstance().apply { set(2025, 7, 1) }), "Forward", 11 ), @@ -91,9 +101,11 @@ class StubData : DataManager() { "Kevin", "De Bruyne", "K. De Bruyne", - Calendar.getInstance().apply { set(1991, 6, 28)}, + Calendar.getInstance().apply { set(1991, 6, 28) }, "Belgium", - Contract(Calendar.getInstance().apply { set(2021, 8, 1)}, Calendar.getInstance().apply { set(2026, 8, 1)}), + Contract( + Calendar.getInstance().apply { set(2021, 8, 1) }, + Calendar.getInstance().apply { set(2026, 8, 1) }), "Midfielder", 17 ), @@ -102,9 +114,11 @@ class StubData : DataManager() { "Robert", "Lewandowski", "R. Lewandowski", - Calendar.getInstance().apply { set(1988, 8, 21)}, + Calendar.getInstance().apply { set(1988, 8, 21) }, "Poland", - Contract(Calendar.getInstance().apply { set(2021, 1, 1)}, Calendar.getInstance().apply { set(2024, 1, 1)}), + Contract( + Calendar.getInstance().apply { set(2021, 1, 1) }, + Calendar.getInstance().apply { set(2024, 1, 1) }), "Forward", 9 ), @@ -113,9 +127,11 @@ class StubData : DataManager() { "Sadio", "Mane", "S. Mane", - Calendar.getInstance().apply { set(1992, 4, 10)}, + Calendar.getInstance().apply { set(1992, 4, 10) }, "Senegal", - Contract(Calendar.getInstance().apply { set(2022, 1, 1)}, Calendar.getInstance().apply { set(2026, 1, 1)}), + Contract( + Calendar.getInstance().apply { set(2022, 1, 1) }, + Calendar.getInstance().apply { set(2026, 1, 1) }), "Forward", 10 ), @@ -124,9 +140,11 @@ class StubData : DataManager() { "Virgil", "Van Dijk", "V. Van Dijk", - Calendar.getInstance().apply { set(1991, 7, 8)}, + Calendar.getInstance().apply { set(1991, 7, 8) }, "Netherlands", - Contract(Calendar.getInstance().apply { set(2023, 1, 1)}, Calendar.getInstance().apply { set(2026, 1, 1)}), + Contract( + Calendar.getInstance().apply { set(2023, 1, 1) }, + Calendar.getInstance().apply { set(2026, 1, 1) }), "Defender", 4 ), @@ -135,9 +153,11 @@ class StubData : DataManager() { "Luka", "Modric", "L. Modric", - Calendar.getInstance().apply { set(1985, 9, 9)}, + Calendar.getInstance().apply { set(1985, 9, 9) }, "Croatia", - Contract(Calendar.getInstance().apply { set(2020, 6, 1)}, Calendar.getInstance().apply { set(2022, 6, 1)}), + Contract( + Calendar.getInstance().apply { set(2020, 6, 1) }, + Calendar.getInstance().apply { set(2022, 6, 1) }), "Midfielder", 10 ), @@ -146,9 +166,11 @@ class StubData : DataManager() { "Harry", "Kane", "H. Kane", - Calendar.getInstance().apply { set(1993, 7, 28)}, + Calendar.getInstance().apply { set(1993, 7, 28) }, "England", - Contract(Calendar.getInstance().apply { set(2021, 7, 1)}, Calendar.getInstance().apply { set(2025, 7, 1)}), + Contract( + Calendar.getInstance().apply { set(2021, 7, 1) }, + Calendar.getInstance().apply { set(2025, 7, 1) }), "Forward", 10 ), @@ -157,9 +179,11 @@ class StubData : DataManager() { "Sergio", "Aguero", "S. Aguero", - Calendar.getInstance().apply { set(1988, 6, 2)}, + Calendar.getInstance().apply { set(1988, 6, 2) }, "Argentina", - Contract(Calendar.getInstance().apply { set(2021, 6, 1)}, Calendar.getInstance().apply { set(2023, 6, 1)}), + Contract( + Calendar.getInstance().apply { set(2021, 6, 1) }, + Calendar.getInstance().apply { set(2023, 6, 1) }), "Forward", 10 ), @@ -168,9 +192,11 @@ class StubData : DataManager() { "Eden", "Hazard", "E. Hazard", - Calendar.getInstance().apply { set(1991, 1, 7)}, + Calendar.getInstance().apply { set(1991, 1, 7) }, "Belgium", - Contract(Calendar.getInstance().apply { set(2022, 1, 1)}, Calendar.getInstance().apply { set(2027, 1, 1)}), + Contract( + Calendar.getInstance().apply { set(2022, 1, 1) }, + Calendar.getInstance().apply { set(2027, 1, 1) }), "Forward", 7 ), @@ -179,86 +205,155 @@ class StubData : DataManager() { "Pep", "Guardiola", "P. Guardiola", - Calendar.getInstance().apply { set(1971, 1, 18)}, + Calendar.getInstance().apply { set(1971, 1, 18) }, "Spain", - Contract(Calendar.getInstance().apply { set(2020, 6, 1)}, Calendar.getInstance().apply { set(2023, 6, 1)}) + Contract( + Calendar.getInstance().apply { set(2020, 6, 1) }, + Calendar.getInstance().apply { set(2023, 6, 1) }) ), Coach( 15, "Jurgen", "Klopp", "J. Klopp", - Calendar.getInstance().apply { set(1967, 6, 16)}, + Calendar.getInstance().apply { set(1967, 6, 16) }, "Germany", - Contract(Calendar.getInstance().apply { set(2020, 7, 1)}, Calendar.getInstance().apply { set(2024, 7, 1)}) + Contract( + Calendar.getInstance().apply { set(2020, 7, 1) }, + Calendar.getInstance().apply { set(2024, 7, 1) }) ), Staff( 16, "Jorge", "Desio", "J. Desio", - Calendar.getInstance().apply { set(1966, 1, 1)}, + Calendar.getInstance().apply { set(1966, 1, 1) }, "Argentina", - Contract(Calendar.getInstance().apply { set(2020, 6, 1)}, Calendar.getInstance().apply { set(2023, 6, 1)}) + Contract( + Calendar.getInstance().apply { set(2020, 6, 1) }, + Calendar.getInstance().apply { set(2023, 6, 1) }) ), Staff( 17, "Craig", "Mawson", "C. Mawson", - Calendar.getInstance().apply { set(1973, 8, 22)}, + Calendar.getInstance().apply { set(1973, 8, 22) }, "England", - Contract(Calendar.getInstance().apply { set(2020, 7, 1)}, Calendar.getInstance().apply { set(2024, 7, 1)}) + Contract( + Calendar.getInstance().apply { set(2020, 7, 1) }, + Calendar.getInstance().apply { set(2024, 7, 1) }) ) ) - private val teamList = listOf( - Team( + + private val random = java.util.Random() + val matchList = listOf( + Match( + 1, 1, - "Paris Saint-Germain FC", - "PSG", - "https://crests.football-data.org/524.svg", - "24 Rue du Commandant Guilbaud, 75016 Paris, France", - "https://www.psg.fr/", - "1970", - "Navy / Red", - areaList[0], - "Parc des Princes", - peopleList[0] as Coach, - listOf(peopleList[2] as Staff), - listOf(peopleList[0] as Player, peopleList[3] as Player, peopleList[11] as Player) + 2, + Calendar.getInstance().apply { set(2022, random.nextInt(12), random.nextInt(28) + 1) }, + "FINISHED", + Score(1, 1, "DRAW") ), - Team( + Match( 2, - "FC Barcelona", - "BAR", - "https://crests.football-data.org/81.svg", - "Carrer d'Aristides Maillol, s/n, 08028 Barcelona, Spain", - "https://www.fcbarcelona.com/", - "1899", - "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) + 3, + 1, + Calendar.getInstance().apply { set(2022, random.nextInt(12), random.nextInt(28) + 1) }, + "FINISHED", + Score(2, 0, "HOME_TEAM") ), - Team( + Match( + 3, + 2, 3, - "Liverpool FC", - "LIV", - "https://crests.football-data.org/64.svg", - "Anfield Road, Liverpool L4 0TH, United Kingdom", - "https://www.liverpoolfc.com/", - "1892", - "Red", - areaList[2], - "Anfield", - peopleList[1] as Coach, - listOf(peopleList[3] as Staff), - listOf(peopleList[7] as Player, peopleList[8] as Player, peopleList[10] as Player) + 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 teamList: MutableList = mutableListOf() + + fun initTeams() { + teamList.add( + Team( + 1, + "Paris Saint-Germain FC", + "PSG", + "https://crests.football-data.org/524.svg", + "24 Rue du Commandant Guilbaud, 75016 Paris, France", + "https://www.psg.fr/", + "1970", + "Navy / Red", + areaList[0], + "Parc des Princes", + peopleList[0] as Coach, + listOf(peopleList[2] as Staff), + listOf(peopleList[0] as Player, peopleList[3] as Player, peopleList[11] as Player) + ) + ) + teamList.add( + Team( + 2, + "FC Barcelona", + "BAR", + "https://crests.football-data.org/81.svg", + "Carrer d'Aristides Maillol, s/n, 08028 Barcelona, Spain", + "https://www.fcbarcelona.com/", + "1899", + "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) + ) + ) + teamList.add( + Team( + 3, + "Liverpool FC", + "LIV", + "https://crests.football-data.org/64.svg", + "Anfield Road, Liverpool L4 0TH, United Kingdom", + "https://www.liverpoolfc.com/", + "1892", + "Red", + areaList[2], + "Anfield", + peopleList[1] as Coach, + listOf(peopleList[3] as Staff), + listOf(peopleList[7] as Player, peopleList[8] as Player, peopleList[10] as Player) + ) + ) + } + class StubAreaManager(private val parent: StubData) : AreaManager { override fun getItemsByName(substring: String) = @@ -279,32 +374,27 @@ class StubData : DataManager() { 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") } } 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 fa15435..2e4062a 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 @@ -7,7 +7,7 @@ import MatchesManager import PeopleManager import TeamsManager -class StubData : DataManager() { +class ApiManager : DataManager() { override val areaMgr: AreaManager = ApiAreaManager() override val peopleMgr: PeopleManager = ApiPeopleManager() override val matchesMgr: MatchesManager = ApiMatchesManager() 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 a36cebc..5a1021d 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 @@ -6,6 +6,7 @@ abstract class DataManager { abstract val matchesMgr: MatchesManager abstract val competitionsMgr: CompetitionsManager abstract val teamsMgr: TeamsManager + } interface AreaManager : GenericDataManager 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 31d893c..3651f84 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 @@ -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 diff --git a/src/app/src/main/java/uca/iut/clermont/model/Personne.kt b/src/app/src/main/java/uca/iut/clermont/model/Personne.kt index df230c6..1c88e06 100644 --- a/src/app/src/main/java/uca/iut/clermont/model/Personne.kt +++ b/src/app/src/main/java/uca/iut/clermont/model/Personne.kt @@ -1,7 +1,6 @@ package uca.iut.clermont.model import java.util.Calendar -import java.util.Date abstract class Personne( val id: Int, diff --git a/src/app/src/main/java/uca/iut/clermont/model/Score.kt b/src/app/src/main/java/uca/iut/clermont/model/Score.kt new file mode 100644 index 0000000..b5e4b62 --- /dev/null +++ b/src/app/src/main/java/uca/iut/clermont/model/Score.kt @@ -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 diff --git a/src/app/src/main/java/uca/iut/clermont/model/Staff.kt b/src/app/src/main/java/uca/iut/clermont/model/Staff.kt index 93cc1b7..89ce93d 100644 --- a/src/app/src/main/java/uca/iut/clermont/model/Staff.kt +++ b/src/app/src/main/java/uca/iut/clermont/model/Staff.kt @@ -1,7 +1,6 @@ package uca.iut.clermont.model import java.util.Calendar -import java.util.Date class Staff( id: Int, 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 index 524bec6..7c6fe6d 100644 --- a/src/app/src/main/java/uca/iut/clermont/view/FavoriteActivity.kt +++ b/src/app/src/main/java/uca/iut/clermont/view/FavoriteActivity.kt @@ -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) diff --git a/src/app/src/main/java/uca/iut/clermont/view/HomeActivity.kt b/src/app/src/main/java/uca/iut/clermont/view/HomeActivity.kt index 99e9495..400858e 100644 --- a/src/app/src/main/java/uca/iut/clermont/view/HomeActivity.kt +++ b/src/app/src/main/java/uca/iut/clermont/view/HomeActivity.kt @@ -3,15 +3,29 @@ package uca.iut.clermont.view import android.app.Activity import android.os.Bundle import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView import com.bumptech.glide.Glide import uca.iut.clermont.R +import uca.iut.clermont.data.StubData +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(manager.matchesMgr.getItems()) + }*/ + Glide.with(this) .load("https://crests.football-data.org/1765.svg") .error(R.drawable.imagenotfound) 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 new file mode 100644 index 0000000..09c504a --- /dev/null +++ b/src/app/src/main/java/uca/iut/clermont/view/adapter/MatchesAdapter.kt @@ -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 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 new file mode 100644 index 0000000..87b4182 --- /dev/null +++ b/src/app/src/main/java/uca/iut/clermont/view/viewHolder/MatchHolder.kt @@ -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/app/src/main/res/layout/activity_favorite.xml b/src/app/src/main/res/layout/activity_favorite.xml index 34555bb..dbe4a6c 100644 --- a/src/app/src/main/res/layout/activity_favorite.xml +++ b/src/app/src/main/res/layout/activity_favorite.xml @@ -45,35 +45,6 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/exitContainer" /> - - - - - - - - \ No newline at end of file diff --git a/src/app/src/main/res/layout/activity_home.xml b/src/app/src/main/res/layout/activity_home.xml index ba9b5aa..8fb2cb2 100644 --- a/src/app/src/main/res/layout/activity_home.xml +++ b/src/app/src/main/res/layout/activity_home.xml @@ -31,7 +31,6 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textViewTitle" /> - + + \ No newline at end of file From 5afe09859d3f64ab544b62719f475f98cbadcc70 Mon Sep 17 00:00:00 2001 From: Emre KARTAL Date: Wed, 22 Mar 2023 13:43:39 +0100 Subject: [PATCH 5/5] Error adapter fix :hammer: --- .../uca/iut/clermont/view/HomeActivity.kt | 21 ++-- .../clermont/view/adapter/MatchesAdapter.kt | 4 +- src/app/src/main/res/layout/activity_home.xml | 118 +----------------- 3 files changed, 14 insertions(+), 129 deletions(-) diff --git a/src/app/src/main/java/uca/iut/clermont/view/HomeActivity.kt b/src/app/src/main/java/uca/iut/clermont/view/HomeActivity.kt index 400858e..909d17d 100644 --- a/src/app/src/main/java/uca/iut/clermont/view/HomeActivity.kt +++ b/src/app/src/main/java/uca/iut/clermont/view/HomeActivity.kt @@ -2,14 +2,11 @@ package uca.iut.clermont.view import android.app.Activity import android.os.Bundle -import android.widget.ImageView -import android.widget.TextView +import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView -import com.bumptech.glide.Glide import uca.iut.clermont.R import uca.iut.clermont.data.StubData import uca.iut.clermont.view.adapter.MatchesAdapter -import java.util.* class HomeActivity : Activity() { @@ -18,18 +15,22 @@ class HomeActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_home) - val imageFirstTeam = findViewById(R.id.ImageFirstTeam) + //val imageFirstTeam = findViewById(R.id.ImageFirstTeam) - /*val adapterMatches = findViewById(R.id.ListRecentsMatches) + val adapterMatches = findViewById(R.id.ListRecentsMatches) with(adapterMatches) { - adapter = MatchesAdapter(manager.matchesMgr.getItems()) - }*/ + adapter = MatchesAdapter(manager.matchesMgr.getItems().toList().toTypedArray()) + } - Glide.with(this) + adapterMatches.layoutManager = LinearLayoutManager(this) + + adapterMatches + + /*Glide.with(this) .load("https://crests.football-data.org/1765.svg") .error(R.drawable.imagenotfound) - .into(imageFirstTeam) + .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 09c504a..e9178f4 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,13 @@ 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() { +class MatchesAdapter(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)) } override fun onBindViewHolder(holder: MatchHolder, position: Int) { - holder.textView.text = recentMatches[position].toString() + holder.textView.text = recentMatches[position].id.toString() } override fun getItemCount() = recentMatches.size diff --git a/src/app/src/main/res/layout/activity_home.xml b/src/app/src/main/res/layout/activity_home.xml index 8fb2cb2..4567a58 100644 --- a/src/app/src/main/res/layout/activity_home.xml +++ b/src/app/src/main/res/layout/activity_home.xml @@ -77,128 +77,12 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/searchBarContainer" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + app:layout_constraintTop_toBottomOf="@+id/textViewRecentMatches" /> \ No newline at end of file