Pailette, OnClick, StartActivity

This commit is contained in:
Chocolaterie
2025-01-21 14:51:19 +01:00
parent 2af088cc3e
commit 95079a1a5d
7 changed files with 95 additions and 69 deletions

View File

@@ -29,7 +29,6 @@
android:theme="@style/Theme.TpFilRouge">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

View File

@@ -1,5 +1,6 @@
package com.example.tpfilrouge
import android.content.Intent
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
@@ -8,6 +9,7 @@ import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.BoxScope
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer
@@ -28,6 +30,7 @@ import androidx.compose.ui.graphics.Brush
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.input.pointer.motionEventSpy
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.TextStyle
@@ -39,6 +42,7 @@ import com.example.tpfilrouge.ui.theme.TpFilRougeTheme
import com.example.tpfilrouge.R
import com.example.tpfilrouge.ui.theme.EniBackgroundPage
import com.example.tpfilrouge.ui.theme.EniButton
import com.example.tpfilrouge.ui.theme.EniPage
import com.example.tpfilrouge.ui.theme.EniTextField
class LoginActivity : ComponentActivity() {
@@ -53,42 +57,53 @@ class LoginActivity : ComponentActivity() {
@Composable
fun LoginActivityPage() {
TpFilRougeTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
Box(modifier = Modifier.padding(innerPadding)) {
EniBackgroundPage()
val context = LocalContext.current;
EniPage {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.padding(40.dp)) {
modifier = Modifier.padding(40.dp)
) {
Image(
painter = painterResource(id=R.drawable.login_user),
painter = painterResource(id = R.drawable.login_user),
contentDescription = "Logo Login",
modifier = Modifier.padding(vertical = 40.dp))
Text(text = stringResource(R.string.aware_login),
modifier = Modifier.padding(vertical = 40.dp)
)
Text(
text = stringResource(R.string.aware_login),
modifier = Modifier.padding(vertical = 40.dp),
textAlign = TextAlign.Center,
style = TextStyle(color = Color(0xCCFFFFFF))
)
EniTextField(stringResource(R.string.email))
EniTextField(stringResource(R.string.password))
EniButton(stringResource(R.string.connection))
EniButton(stringResource(R.string.forget_password))
EniButton(stringResource(R.string.connection), onClick = {})
EniButton(stringResource(R.string.forget_password),
onClick = {
// Changer de page (d'activity)
context.startActivity(Intent(context, ResetPasswordActivity::class.java))
})
Spacer(modifier = Modifier.weight(1f))
Text(text = stringResource(R.string.dont_account),
Text(
text = stringResource(R.string.dont_account),
modifier = Modifier.padding(vertical = 10.dp),
textAlign = TextAlign.Center,
style = TextStyle(color = Color(0xCCFFFFFF))
)
EniButton(stringResource(R.string.register_now))
}
}
EniButton(stringResource(R.string.register_now),
onClick = {
// Changer de page (d'activity)
context.startActivity(Intent(context, SignUpActivity::class.java))
})
}
}
}
@Preview(
showBackground = true,
locale = "zh"
locale = "en"
)
@Composable
fun LoginActivityPreview() {

View File

@@ -4,6 +4,7 @@ import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
@@ -13,12 +14,15 @@ import androidx.compose.material3.ElevatedButton
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.tpfilrouge.ui.theme.EniButton
import com.example.tpfilrouge.ui.theme.EniPage
import com.example.tpfilrouge.ui.theme.EniTextField
import com.example.tpfilrouge.ui.theme.TpFilRougeTheme
@@ -35,21 +39,16 @@ class ResetPasswordActivity : ComponentActivity() {
@Composable
fun ResetPasswordActivityPage() {
TpFilRougeTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
Box(modifier = Modifier.padding(innerPadding)) {
Column(modifier = Modifier.padding(40.dp)) {
Text(
text = "Récupération de mot de passe", textAlign = TextAlign.Center,
fontSize = 28.sp,
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 80.dp)
)
EniPage {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.padding(40.dp)) {
Image(
painter = painterResource(id = R.drawable.reset_password_ic),
contentDescription = "Logo SignUp",
modifier = Modifier.padding(vertical = 40.dp))
EniTextField("Email")
EniButton("Envoyer le lien de récupération")
}
}
EniButton("Envoyer le lien de récupération", onClick = {})
}
}
}

View File

@@ -4,6 +4,7 @@ import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
@@ -13,12 +14,15 @@ import androidx.compose.material3.ElevatedButton
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.example.tpfilrouge.ui.theme.EniButton
import com.example.tpfilrouge.ui.theme.EniPage
import com.example.tpfilrouge.ui.theme.EniTextField
import com.example.tpfilrouge.ui.theme.TpFilRougeTheme
@@ -34,17 +38,14 @@ class SignUpActivity : ComponentActivity() {
@Composable
fun SignUpActivityPage() {
TpFilRougeTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
Box(modifier = Modifier.padding(innerPadding)) {
Column(modifier = Modifier.padding(40.dp)) {
Text(
text = "Sign Up", textAlign = TextAlign.Center,
fontSize = 46.sp,
modifier = Modifier
.fillMaxWidth()
.padding(vertical = 80.dp)
)
EniPage {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.padding(40.dp)) {
Image(
painter = painterResource(id = R.drawable.sign_up),
contentDescription = "Logo SignUp",
modifier = Modifier.padding(vertical = 40.dp))
EniTextField("Pseudo")
EniTextField("Email")
EniTextField("Password")
@@ -52,9 +53,7 @@ fun SignUpActivityPage() {
EniTextField("City Code")
EniTextField("City")
EniTextField("Phone Number")
EniButton("Sign Up")
}
}
EniButton("Sign Up", onClick = {})
}
}
}

View File

@@ -11,6 +11,7 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.material3.TextField
import androidx.compose.material3.TextFieldDefaults
@@ -28,14 +29,27 @@ import com.example.tpfilrouge.R
class AppTheme {
}
@Composable
fun EniPage(content: @Composable () -> Unit){
TpFilRougeTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
Box(modifier = Modifier.padding(innerPadding)) {
EniBackgroundPage()
// Inserer un composant dynamiquement
content()
}
}
}
}
@Composable
fun HintText(label : String){
Text(text = label, style = TextStyle(color = Color.Gray))
}
@Composable
fun EniButton(label: String){
Button(onClick = {},
fun EniButton(label: String, onClick: () -> Unit){
Button(onClick = onClick,
border = BorderStroke(3.dp, Color(0x77FFFFFF)),
modifier = Modifier.fillMaxWidth()
.padding(vertical = 10.dp),

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB