From 10a5fbfc238a23f89d8e0252cac5b0fec8416917 Mon Sep 17 00:00:00 2001 From: "yvan.calatayud" Date: Wed, 13 Mar 2024 09:54:58 +0100 Subject: [PATCH] fix : correction de divers problemes sur les changements de pages et la creation des lobbies --- .../example/mathseduc/QuizMultiActivity.kt | 3 -- .../mathseduc/ServerDetailsActivity.kt | 36 ++++++++++--------- .../com/example/mathseduc/models/Player.kt | 28 ++++++++++++++- .../mathseduc/ui/activity_create_lobby.kt | 17 +++++++-- .../example/mathseduc/ui/activity_multi.kt | 6 ++-- .../mathseduc/ui/activity_quiz_multi.kt | 5 +++ 6 files changed, 70 insertions(+), 25 deletions(-) diff --git a/Android/app/src/main/java/com/example/mathseduc/QuizMultiActivity.kt b/Android/app/src/main/java/com/example/mathseduc/QuizMultiActivity.kt index 32002f2..a0c2b85 100644 --- a/Android/app/src/main/java/com/example/mathseduc/QuizMultiActivity.kt +++ b/Android/app/src/main/java/com/example/mathseduc/QuizMultiActivity.kt @@ -30,8 +30,6 @@ class QuizMultiActivity : ComponentActivity() { // Stop the CountDownTimer to avoid memory leaks countDownTimer?.cancel() } - - } @Preview(showBackground = true) @@ -40,5 +38,4 @@ fun QuizMultiScreenPreview() { MathsEducTheme { QuizMultiScreen() } - } diff --git a/Android/app/src/main/java/com/example/mathseduc/ServerDetailsActivity.kt b/Android/app/src/main/java/com/example/mathseduc/ServerDetailsActivity.kt index f2f6409..4fd4413 100644 --- a/Android/app/src/main/java/com/example/mathseduc/ServerDetailsActivity.kt +++ b/Android/app/src/main/java/com/example/mathseduc/ServerDetailsActivity.kt @@ -1,9 +1,10 @@ package com.example.mathseduc +import android.content.Intent import android.os.Bundle import android.os.Handler import android.os.Looper -import android.widget.Toast +import android.util.Log import androidx.activity.ComponentActivity import androidx.activity.OnBackPressedCallback import androidx.activity.compose.setContent @@ -146,30 +147,31 @@ class ServerDetailsActivity : ComponentActivity() { val refreshRunnable = object : Runnable { override fun run() { playerList = ControllerPlayer.getPlayersIdFromLobbyId(lobbyId.toString())!! - handler.post(this) - if (playerList != null) { - playerListInfos = playerList.mapNotNull { playerId -> - ControllerPlayer.getPlayerInfoById(playerId.toString()) - } + playerListInfos = playerList.mapNotNull { playerId -> + ControllerPlayer.getPlayerInfoById(playerId.toString()) } - isCreator = ControllerLobby.playerCreatorIdPresentInLobby(MainActivity.idPlayerConnected, lobbyId!!.toInt()) - Toast.makeText(context, "TOTO", Toast.LENGTH_SHORT).show() + isCreator = ControllerLobby.playerCreatorIdPresentInLobby(MainActivity.idPlayerConnected, lobbyId) - if(ControllerLobby.lobbyIsLaunched(lobbyId!!.toInt())){ - //val intent = Intent(this@ServerDetailsActivity, QuizMultiActivity::class.java) - //intent.putExtra("lobbyId", lobbyId) - //startActivity(intent) - Toast.makeText(context, isCreator.toString(), Toast.LENGTH_SHORT).show() - return + if(ControllerLobby.lobbyIsLaunched(lobbyId)){ + val intent = Intent(context, QuizMultiActivity::class.java) + intent.putExtra("lobbyId", lobbyId) + context.startActivity(intent) + refreshState = false + } + + if (refreshState){ + handler.postDelayed(this,3000) + Log.e("MainActivity", "Refresh ServerDetails") } } } - handler.postDelayed(refreshRunnable, 2000) + handler.post(refreshRunnable) onDispose { + refreshState = false handler.removeCallbacks(refreshRunnable) } } @@ -203,9 +205,11 @@ class ServerDetailsActivity : ComponentActivity() { } } if (isCreator) { + val formDataBuilder = MultipartBody.Builder().setType(MultipartBody.FORM) + formDataBuilder.addFormDataPart("launched", "1") Button( onClick = { - Toast.makeText(context, "TOTOGOGOCREATOR", Toast.LENGTH_SHORT).show() + ControllerLobby.updateLobbyLauched(lobbyId,formDataBuilder) }, shape = RoundedCornerShape(15), enabled = isCreator, diff --git a/Android/app/src/main/java/com/example/mathseduc/models/Player.kt b/Android/app/src/main/java/com/example/mathseduc/models/Player.kt index dc607a5..b094e32 100644 --- a/Android/app/src/main/java/com/example/mathseduc/models/Player.kt +++ b/Android/app/src/main/java/com/example/mathseduc/models/Player.kt @@ -7,4 +7,30 @@ data class Player( val id: Int, val nickname: String, val password: String -) \ No newline at end of file +) : Parcelable { + constructor(parcel: Parcel) : this( + parcel.readInt(), + parcel.readString() ?: "", + parcel.readString() ?: "" + ) + + override fun writeToParcel(parcel: Parcel, flags: Int) { + parcel.writeInt(id) + parcel.writeString(nickname) + parcel.writeString(password) + } + + override fun describeContents(): Int { + return 0 + } + + companion object CREATOR : Parcelable.Creator { + override fun createFromParcel(parcel: Parcel): Player { + return Player(parcel) + } + + override fun newArray(size: Int): Array { + return arrayOfNulls(size) + } + } +} \ No newline at end of file diff --git a/Android/app/src/main/java/com/example/mathseduc/ui/activity_create_lobby.kt b/Android/app/src/main/java/com/example/mathseduc/ui/activity_create_lobby.kt index 06273d5..f845a95 100644 --- a/Android/app/src/main/java/com/example/mathseduc/ui/activity_create_lobby.kt +++ b/Android/app/src/main/java/com/example/mathseduc/ui/activity_create_lobby.kt @@ -1,6 +1,7 @@ package com.example.mathseduc.ui +import android.content.Intent import android.util.Log import android.widget.Toast import androidx.compose.foundation.background @@ -37,8 +38,10 @@ import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.dp import com.example.mathseduc.MainActivity +import com.example.mathseduc.ServerDetailsActivity import com.example.mathseduc.controllers.ControllerChapter import com.example.mathseduc.controllers.ControllerLobby +import com.example.mathseduc.controllers.ControllerUtiliser import com.example.mathseduc.ui.theme.Colors import okhttp3.MultipartBody @@ -237,10 +240,18 @@ fun CreateLobbyPage() { // Check if lobby creation is successful if (lobbyId != -1) { + val formDataBuilderConnexion = MultipartBody.Builder().setType(MultipartBody.FORM) + formDataBuilderConnexion.addFormDataPart("idplayer", MainActivity.idPlayerConnected.toString()) + formDataBuilderConnexion.addFormDataPart("idlobby", lobbyId.toString()) + formDataBuilderConnexion.addFormDataPart("playertime", "0") + + ControllerUtiliser.createUtiliserByIdLobby(formDataBuilderConnexion) + Toast.makeText(context, "Lobby created successfully!", Toast.LENGTH_SHORT).show() - // val intent = Intent(context, LobbyDetailsActivity::class.java) - // intent.putExtra("lobbyId", lobbyId) - // context.startActivity(intent) + val intent = Intent(context, ServerDetailsActivity::class.java) + intent.putExtra("lobbyId", lobbyId) + intent.putExtra("serverName", lobbyName) + context.startActivity(intent) } else { Toast.makeText(context, "Failed to create lobby. Please try again.", Toast.LENGTH_SHORT).show() } diff --git a/Android/app/src/main/java/com/example/mathseduc/ui/activity_multi.kt b/Android/app/src/main/java/com/example/mathseduc/ui/activity_multi.kt index 9b9a717..7231802 100644 --- a/Android/app/src/main/java/com/example/mathseduc/ui/activity_multi.kt +++ b/Android/app/src/main/java/com/example/mathseduc/ui/activity_multi.kt @@ -67,10 +67,10 @@ fun MultiPage() { } } - handler.postDelayed(refreshRunnable, 3000) + handler.post(refreshRunnable) onDispose { - Toast.makeText(context, "TOTO", Toast.LENGTH_SHORT).show() + Toast.makeText(context, "Au REVOIR UwU", Toast.LENGTH_SHORT).show() refreshState = false handler.removeCallbacks(refreshRunnable) } @@ -140,6 +140,8 @@ fun MultiPage() { LobbyItem(lobby, selectedItem == lobby) { selectedItem = it + refreshState = false + if (ControllerLobby.getNbPlayerInLobby(selectedItem!!.id) < selectedItem!!.nbplayers){ val formDataBuilder = MultipartBody.Builder().setType(MultipartBody.FORM) formDataBuilder.addFormDataPart("idplayer", MainActivity.idPlayerConnected.toString()) diff --git a/Android/app/src/main/java/com/example/mathseduc/ui/activity_quiz_multi.kt b/Android/app/src/main/java/com/example/mathseduc/ui/activity_quiz_multi.kt index cf0aac9..70313dc 100644 --- a/Android/app/src/main/java/com/example/mathseduc/ui/activity_quiz_multi.kt +++ b/Android/app/src/main/java/com/example/mathseduc/ui/activity_quiz_multi.kt @@ -29,6 +29,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.example.mathseduc.QuizMultiActivity +import com.example.mathseduc.controllers.ControllerLobby import com.example.mathseduc.ui.theme.Colors import com.example.mathseduc.ui.theme.MathsEducTheme @@ -40,10 +41,14 @@ fun QuizMultiPreview() { QuizMultiScreen() } } + + @Composable fun QuizMultiScreen() { var progressBar1Value by remember { mutableStateOf(0.0f) } var chronoValue by remember { mutableStateOf(0.0f) } + //val lobbyId = intent.getIntExtra("lobbyId",-1) + //var listQuestion = ControllerLobby.getIdQuestionsLobby() Column( modifier = Modifier