Peaufiner et localization
This commit is contained in:
@@ -4,23 +4,32 @@ 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.BorderStroke
|
||||||
import androidx.compose.foundation.Image
|
import androidx.compose.foundation.Image
|
||||||
|
import androidx.compose.foundation.background
|
||||||
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.PaddingValues
|
||||||
|
import androidx.compose.foundation.layout.Spacer
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
|
import androidx.compose.material3.ButtonDefaults
|
||||||
import androidx.compose.material3.ElevatedButton
|
import androidx.compose.material3.ElevatedButton
|
||||||
import androidx.compose.material3.ElevatedCard
|
import androidx.compose.material3.ElevatedCard
|
||||||
import androidx.compose.material3.Scaffold
|
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.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.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.layout.ContentScale
|
import androidx.compose.ui.layout.ContentScale
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.text.TextStyle
|
import androidx.compose.ui.text.TextStyle
|
||||||
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
|
||||||
@@ -29,6 +38,7 @@ import androidx.compose.ui.unit.sp
|
|||||||
import com.example.tpfilrouge.ui.theme.TpFilRougeTheme
|
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.EniTextField
|
import com.example.tpfilrouge.ui.theme.EniTextField
|
||||||
|
|
||||||
class LoginActivity : ComponentActivity() {
|
class LoginActivity : ComponentActivity() {
|
||||||
@@ -47,19 +57,29 @@ fun LoginActivityPage() {
|
|||||||
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
|
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
|
||||||
Box(modifier = Modifier.padding(innerPadding)) {
|
Box(modifier = Modifier.padding(innerPadding)) {
|
||||||
EniBackgroundPage()
|
EniBackgroundPage()
|
||||||
Column(modifier = Modifier.padding(40.dp)) {
|
Column(
|
||||||
Text(
|
horizontalAlignment = Alignment.CenterHorizontally,
|
||||||
text = "Login", textAlign = TextAlign.Center,
|
modifier = Modifier.padding(40.dp)) {
|
||||||
fontSize = 46.sp,
|
Image(
|
||||||
modifier = Modifier
|
painter = painterResource(id=R.drawable.login_user),
|
||||||
.fillMaxWidth()
|
contentDescription = "Logo Login",
|
||||||
.padding(vertical = 80.dp)
|
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("Email")
|
EniTextField(stringResource(R.string.email))
|
||||||
EniTextField("Password")
|
EniTextField(stringResource(R.string.password))
|
||||||
ElevatedButton(onClick = {}, modifier = Modifier.fillMaxWidth()) {
|
EniButton(stringResource(R.string.connection))
|
||||||
Text(text = "Connexion")
|
EniButton(stringResource(R.string.forget_password))
|
||||||
}
|
Spacer(modifier = Modifier.weight(1f))
|
||||||
|
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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ 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.EniTextField
|
import com.example.tpfilrouge.ui.theme.EniTextField
|
||||||
import com.example.tpfilrouge.ui.theme.TpFilRougeTheme
|
import com.example.tpfilrouge.ui.theme.TpFilRougeTheme
|
||||||
|
|
||||||
@@ -46,9 +47,7 @@ fun ResetPasswordActivityPage() {
|
|||||||
.padding(vertical = 80.dp)
|
.padding(vertical = 80.dp)
|
||||||
)
|
)
|
||||||
EniTextField("Email")
|
EniTextField("Email")
|
||||||
ElevatedButton(onClick = {}, modifier = Modifier.fillMaxWidth()) {
|
EniButton("Envoyer le lien de récupération")
|
||||||
Text(text = "Envoyer le lien de récupération")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ 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.EniTextField
|
import com.example.tpfilrouge.ui.theme.EniTextField
|
||||||
import com.example.tpfilrouge.ui.theme.TpFilRougeTheme
|
import com.example.tpfilrouge.ui.theme.TpFilRougeTheme
|
||||||
|
|
||||||
@@ -51,9 +52,7 @@ fun SignUpActivityPage() {
|
|||||||
EniTextField("City Code")
|
EniTextField("City Code")
|
||||||
EniTextField("City")
|
EniTextField("City")
|
||||||
EniTextField("Phone Number")
|
EniTextField("Phone Number")
|
||||||
ElevatedButton(onClick = {}, modifier = Modifier.fillMaxWidth()) {
|
EniButton("Sign Up")
|
||||||
Text(text = "Sign In")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,28 @@
|
|||||||
package com.example.tpfilrouge.ui.theme
|
package com.example.tpfilrouge.ui.theme
|
||||||
|
|
||||||
|
import androidx.compose.foundation.BorderStroke
|
||||||
import androidx.compose.foundation.Image
|
import androidx.compose.foundation.Image
|
||||||
|
import androidx.compose.foundation.background
|
||||||
|
import androidx.compose.foundation.layout.Box
|
||||||
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
|
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.Text
|
import androidx.compose.material3.Text
|
||||||
import androidx.compose.material3.TextField
|
import androidx.compose.material3.TextField
|
||||||
|
import androidx.compose.material3.TextFieldDefaults
|
||||||
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.graphics.Brush
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.layout.ContentScale
|
import androidx.compose.ui.layout.ContentScale
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.text.TextStyle
|
import androidx.compose.ui.text.TextStyle
|
||||||
|
import androidx.compose.ui.unit.dp
|
||||||
import com.example.tpfilrouge.R
|
import com.example.tpfilrouge.R
|
||||||
|
|
||||||
class AppTheme {
|
class AppTheme {
|
||||||
@@ -21,10 +33,42 @@ fun HintText(label : String){
|
|||||||
Text(text = label, style = TextStyle(color = Color.Gray))
|
Text(text = label, style = TextStyle(color = Color.Gray))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun EniButton(label: String){
|
||||||
|
Button(onClick = {},
|
||||||
|
border = BorderStroke(3.dp, Color(0x77FFFFFF)),
|
||||||
|
modifier = Modifier.fillMaxWidth()
|
||||||
|
.padding(vertical = 10.dp),
|
||||||
|
contentPadding = PaddingValues(),
|
||||||
|
colors = ButtonDefaults.buttonColors(
|
||||||
|
containerColor = Color.Transparent
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
Box(contentAlignment = Alignment.Center,
|
||||||
|
modifier =
|
||||||
|
Modifier.background(brush = Brush.linearGradient(listOf(
|
||||||
|
Color(0xFF8BC2FF),
|
||||||
|
Color(0xFFA670B8),
|
||||||
|
)))
|
||||||
|
.fillMaxWidth()
|
||||||
|
.padding(vertical = 15.dp)
|
||||||
|
) {
|
||||||
|
Text(label)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun EniTextField(label : String){
|
fun EniTextField(label : String){
|
||||||
TextField(value = "", onValueChange = {}, modifier = Modifier.fillMaxWidth(),
|
TextField(value = "", onValueChange = {}, modifier = Modifier.fillMaxWidth(),
|
||||||
placeholder = { HintText(label) })
|
placeholder = { HintText(label) },
|
||||||
|
colors = TextFieldDefaults.colors(
|
||||||
|
unfocusedContainerColor = Color(0x44000000),
|
||||||
|
unfocusedIndicatorColor = Color.Transparent,
|
||||||
|
focusedIndicatorColor = Color.Transparent
|
||||||
|
),
|
||||||
|
shape = RoundedCornerShape(40.dp)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|||||||
BIN
app/src/main/res/drawable/login_user.png
Normal file
BIN
app/src/main/res/drawable/login_user.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
@@ -2,4 +2,11 @@
|
|||||||
<string name="app_name">TpFilRouge</string>
|
<string name="app_name">TpFilRouge</string>
|
||||||
<string name="title_activity_sign_up">SignUpActivity</string>
|
<string name="title_activity_sign_up">SignUpActivity</string>
|
||||||
<string name="title_activity_reset_password">ResetPasswordActivity</string>
|
<string name="title_activity_reset_password">ResetPasswordActivity</string>
|
||||||
|
<string name="aware_login">Please be aware when you enter credentials in the login page</string>
|
||||||
|
<string name="email">Email</string>
|
||||||
|
<string name="password">Password</string>
|
||||||
|
<string name="connection">Connection</string>
|
||||||
|
<string name="forget_password">I forget password</string>
|
||||||
|
<string name="dont_account">Don\'t have any account ?</string>
|
||||||
|
<string name="register_now">Register Now</string>
|
||||||
</resources>
|
</resources>
|
||||||
Reference in New Issue
Block a user