diff --git a/Android/app/src/main/AndroidManifest.xml b/Android/app/src/main/AndroidManifest.xml index f8c1bf6..d5eaf31 100644 --- a/Android/app/src/main/AndroidManifest.xml +++ b/Android/app/src/main/AndroidManifest.xml @@ -27,8 +27,8 @@ - diff --git a/Android/app/src/main/java/com/example/mathseduc/ConnexionPlayerActivity.kt b/Android/app/src/main/java/com/example/mathseduc/ConnexionPlayerActivity.kt index eb9cff8..d928f94 100644 --- a/Android/app/src/main/java/com/example/mathseduc/ConnexionPlayerActivity.kt +++ b/Android/app/src/main/java/com/example/mathseduc/ConnexionPlayerActivity.kt @@ -1,5 +1,6 @@ package com.example.mathseduc +import android.content.Intent import android.os.Bundle import android.widget.Toast import androidx.activity.ComponentActivity @@ -10,6 +11,7 @@ import androidx.compose.foundation.layout.* import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material3.* import androidx.compose.runtime.* +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -36,9 +38,9 @@ class ConnexionPlayerActivity : ComponentActivity() { @Composable fun ConnexionPlayerContent() { - var nickname by remember { mutableStateOf("") } - var password by remember { mutableStateOf("") } - var showDialog by remember { mutableStateOf(false) } + var nickname by rememberSaveable { mutableStateOf("") } + var password by rememberSaveable { mutableStateOf("") } + var showDialog by rememberSaveable { mutableStateOf(false) } val context = LocalContext.current @@ -87,6 +89,9 @@ fun ConnexionPlayerContent() { onClick = { val isAuthenticated = ControllerPlayer.authenticateUser(nickname, password) if (isAuthenticated != -1) { + val intent = Intent(context, MainActivity::class.java) + context.startActivity(intent) + MainActivity.idPlayerConnected = isAuthenticated Toast.makeText(context, "Connexion réussie, bienvenue $nickname !", Toast.LENGTH_SHORT).show() } else { diff --git a/Android/app/src/main/java/com/example/mathseduc/ServerDetailsActivity.kt b/Android/app/src/main/java/com/example/mathseduc/ServerDetailsActivity.kt new file mode 100644 index 0000000..7bebd33 --- /dev/null +++ b/Android/app/src/main/java/com/example/mathseduc/ServerDetailsActivity.kt @@ -0,0 +1,221 @@ +package com.example.mathseduc + +import android.os.Bundle +import android.os.Handler +import android.os.Looper +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 +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.DisposableEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +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 +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.example.mathseduc.controllers.ControllerLobby +import com.example.mathseduc.controllers.ControllerPlayer +import com.example.mathseduc.controllers.ControllerUtiliser +import com.example.mathseduc.models.Player +import com.example.mathseduc.ui.theme.Colors +import okhttp3.MultipartBody + +class ServerDetailsActivity : ComponentActivity() { + + private var playerList: List = emptyList() + 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) + setContent { + ServerDetailPage() + } + + /* + onBackPressedDispatcher.addCallback(this, onBackPressedCallback) + //setContentView(R.layout.activity_server_details) + + val serverName = intent.getStringExtra("serverName") + + val serverNameTextView = findViewById(R.id.titleServerDetails) + serverNameTextView.text = serverName + + val lobbyId = intent.getIntExtra("lobbyId", -1) + + if (savedInstanceState != null) { + playerList = savedInstanceState?.getParcelableArrayList("playerList") ?: emptyList() + } else { + val playerId = ControllerPlayer.getPlayersIdFromLobbyId(lobbyId) + if (playerId != null) { + playerList = playerId.mapNotNull { playerId -> + ControllerPlayer.getPlayerInfoById(playerId.toString()) + } + } + } + + val listViewPlayers = findViewById(R.id.listViewPlayers) + playerAdapter = PlayerAdapter(this, playerList) + listViewPlayers.adapter = playerAdapter + + handler.postDelayed(refreshRunnable, refreshInterval) + + val btnLaunchQuiz = findViewById