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"> android:theme="@style/Theme.TpFilRouge">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>

View File

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

View File

@@ -4,6 +4,7 @@ import android.os.Bundle
import androidx.activity.ComponentActivity import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
@@ -13,12 +14,15 @@ import androidx.compose.material3.ElevatedButton
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import com.example.tpfilrouge.ui.theme.EniButton 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.EniTextField
import com.example.tpfilrouge.ui.theme.TpFilRougeTheme import com.example.tpfilrouge.ui.theme.TpFilRougeTheme
@@ -35,21 +39,16 @@ class ResetPasswordActivity : ComponentActivity() {
@Composable @Composable
fun ResetPasswordActivityPage() { fun ResetPasswordActivityPage() {
TpFilRougeTheme { EniPage {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> Column(
Box(modifier = Modifier.padding(innerPadding)) { horizontalAlignment = Alignment.CenterHorizontally,
Column(modifier = Modifier.padding(40.dp)) { modifier = Modifier.padding(40.dp)) {
Text( Image(
text = "Récupération de mot de passe", textAlign = TextAlign.Center, painter = painterResource(id = R.drawable.reset_password_ic),
fontSize = 28.sp, contentDescription = "Logo SignUp",
modifier = Modifier modifier = Modifier.padding(vertical = 40.dp))
.fillMaxWidth()
.padding(vertical = 80.dp)
)
EniTextField("Email") 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.ComponentActivity
import androidx.activity.compose.setContent import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
@@ -13,12 +14,15 @@ import androidx.compose.material3.ElevatedButton
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import com.example.tpfilrouge.ui.theme.EniButton 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.EniTextField
import com.example.tpfilrouge.ui.theme.TpFilRougeTheme import com.example.tpfilrouge.ui.theme.TpFilRougeTheme
@@ -34,17 +38,14 @@ class SignUpActivity : ComponentActivity() {
@Composable @Composable
fun SignUpActivityPage() { fun SignUpActivityPage() {
TpFilRougeTheme { EniPage {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> Column(
Box(modifier = Modifier.padding(innerPadding)) { horizontalAlignment = Alignment.CenterHorizontally,
Column(modifier = Modifier.padding(40.dp)) { modifier = Modifier.padding(40.dp)) {
Text( Image(
text = "Sign Up", textAlign = TextAlign.Center, painter = painterResource(id = R.drawable.sign_up),
fontSize = 46.sp, contentDescription = "Logo SignUp",
modifier = Modifier modifier = Modifier.padding(vertical = 40.dp))
.fillMaxWidth()
.padding(vertical = 80.dp)
)
EniTextField("Pseudo") EniTextField("Pseudo")
EniTextField("Email") EniTextField("Email")
EniTextField("Password") EniTextField("Password")
@@ -52,9 +53,7 @@ fun SignUpActivityPage() {
EniTextField("City Code") EniTextField("City Code")
EniTextField("City") EniTextField("City")
EniTextField("Phone Number") 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.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Button import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.TextField import androidx.compose.material3.TextField
import androidx.compose.material3.TextFieldDefaults import androidx.compose.material3.TextFieldDefaults
@@ -28,14 +29,27 @@ import com.example.tpfilrouge.R
class AppTheme { 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 @Composable
fun HintText(label : String){ fun HintText(label : String){
Text(text = label, style = TextStyle(color = Color.Gray)) Text(text = label, style = TextStyle(color = Color.Gray))
} }
@Composable @Composable
fun EniButton(label: String){ fun EniButton(label: String, onClick: () -> Unit){
Button(onClick = {}, Button(onClick = onClick,
border = BorderStroke(3.dp, Color(0x77FFFFFF)), border = BorderStroke(3.dp, Color(0x77FFFFFF)),
modifier = Modifier.fillMaxWidth() modifier = Modifier.fillMaxWidth()
.padding(vertical = 10.dp), .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