From 3c7f0a02c407708f9f71e7d4a475fe77d60cd555 Mon Sep 17 00:00:00 2001 From: "jeremy.ducourthial" Date: Sun, 10 Mar 2024 16:58:39 +0100 Subject: [PATCH] =?UTF-8?q?feat=20:=20ajout=20de=20l'utilisation=20du=20bo?= =?UTF-8?q?uton=20retour=20avec=20fonctionnalit=C3=A9s=20+=20fix=20lag=20s?= =?UTF-8?q?ur=20l'application?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/mathseduc/MainActivity.kt | 1 + .../mathseduc/ServerDetailsActivity.kt | 57 ++++++++++--------- .../example/mathseduc/ui/activity_multi.kt | 15 ++++- 3 files changed, 44 insertions(+), 29 deletions(-) diff --git a/Android/app/src/main/java/com/example/mathseduc/MainActivity.kt b/Android/app/src/main/java/com/example/mathseduc/MainActivity.kt index 5ed91fc..8b25357 100644 --- a/Android/app/src/main/java/com/example/mathseduc/MainActivity.kt +++ b/Android/app/src/main/java/com/example/mathseduc/MainActivity.kt @@ -1,6 +1,7 @@ package com.example.mathseduc import android.os.Bundle +import android.util.Log import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.runtime.Composable 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 7bebd33..f2f6409 100644 --- a/Android/app/src/main/java/com/example/mathseduc/ServerDetailsActivity.kt +++ b/Android/app/src/main/java/com/example/mathseduc/ServerDetailsActivity.kt @@ -7,7 +7,6 @@ import android.widget.Toast import androidx.activity.ComponentActivity import androidx.activity.OnBackPressedCallback import androidx.activity.compose.setContent -import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize @@ -28,7 +27,6 @@ import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.font.FontWeight @@ -47,14 +45,17 @@ class ServerDetailsActivity : ComponentActivity() { private val handler = Handler(Looper.getMainLooper()) private val refreshInterval: Long = 2000 - private val onBackPressedCallback: OnBackPressedCallback = object : OnBackPressedCallback(true) { - override fun handleOnBackPressed() { - myBackPressed() - } - } - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + + val onBackPressedCallback: OnBackPressedCallback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + myBackPressed() + } + } + + onBackPressedDispatcher.addCallback(this, onBackPressedCallback) + setContent { ServerDetailPage() } @@ -134,8 +135,8 @@ class ServerDetailsActivity : ComponentActivity() { val lobbyName = intent.getStringExtra("serverName") val lobbyId = intent.getIntExtra("lobbyId",-1) - var isCreator = false + var isCreator by rememberSaveable { mutableStateOf(false) } var playerListInfos: List by rememberSaveable { mutableStateOf(emptyList()) } var playerList by rememberSaveable { mutableStateOf(ControllerPlayer.getPlayersIdFromLobbyId(lobbyId.toString()) ?: emptyList()) } var refreshState by rememberSaveable { mutableStateOf(true) } @@ -145,7 +146,7 @@ class ServerDetailsActivity : ComponentActivity() { val refreshRunnable = object : Runnable { override fun run() { playerList = ControllerPlayer.getPlayersIdFromLobbyId(lobbyId.toString())!! - handler.postDelayed(this, 2000) + handler.post(this) if (playerList != null) { playerListInfos = playerList.mapNotNull { playerId -> @@ -154,12 +155,13 @@ class ServerDetailsActivity : ComponentActivity() { } isCreator = ControllerLobby.playerCreatorIdPresentInLobby(MainActivity.idPlayerConnected, lobbyId!!.toInt()) + Toast.makeText(context, "TOTO", Toast.LENGTH_SHORT).show() if(ControllerLobby.lobbyIsLaunched(lobbyId!!.toInt())){ //val intent = Intent(this@ServerDetailsActivity, QuizMultiActivity::class.java) //intent.putExtra("lobbyId", lobbyId) //startActivity(intent) - Toast.makeText(context, "TOTOGOGO", Toast.LENGTH_SHORT).show() + Toast.makeText(context, isCreator.toString(), Toast.LENGTH_SHORT).show() return } } @@ -200,21 +202,24 @@ class ServerDetailsActivity : ComponentActivity() { ) } } - Button( - onClick = { - Toast.makeText(context, "TOTOGOGOCREATOR", Toast.LENGTH_SHORT).show() - }, - shape = RoundedCornerShape(15), - colors = ButtonDefaults.buttonColors(Colors.Green), - modifier = Modifier - .fillMaxWidth() - .height(48.dp) - ) { - Text( - text = "LAUNCH", - color = Color.White, - fontWeight = FontWeight.Bold - ) + if (isCreator) { + Button( + onClick = { + Toast.makeText(context, "TOTOGOGOCREATOR", Toast.LENGTH_SHORT).show() + }, + shape = RoundedCornerShape(15), + enabled = isCreator, + colors = ButtonDefaults.buttonColors(Colors.Green), + modifier = Modifier + .fillMaxWidth() + .height(48.dp) + ) { + Text( + text = "LAUNCH", + color = Color.White, + fontWeight = FontWeight.Bold + ) + } } } } 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 27ef94a..9b9a717 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 @@ -57,15 +57,21 @@ fun MultiPage() { val handler = Handler(Looper.getMainLooper()) val refreshRunnable = object : Runnable { override fun run() { + lobbyList = emptyList() lobbyList = ControllerLobby.getLobbies()!! selectedItem = null - handler.postDelayed(this, 3000) + if (refreshState){ + handler.postDelayed(this,3000) + Log.e("MainActivity", "Refresh Multi") + } } } - handler.post(refreshRunnable) + handler.postDelayed(refreshRunnable, 3000) onDispose { + Toast.makeText(context, "TOTO", Toast.LENGTH_SHORT).show() + refreshState = false handler.removeCallbacks(refreshRunnable) } } @@ -108,9 +114,10 @@ fun MultiPage() { .weight(1f) .padding(start = 20.dp) ) - Button( onClick = { + refreshState = false + val intent = Intent(context, CreateLobbyActivity::class.java) context.startActivity(intent) }, @@ -157,6 +164,8 @@ fun MultiPage() { @Composable fun LobbyItem(lobby: Lobby, isSelected: Boolean, onItemClick: (Lobby) -> Unit) { + val nbCurrentPlayer = ControllerLobby.getNbPlayerInLobby(lobby.id) + Row( modifier = Modifier .fillMaxWidth()