Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import android.os.Bundle
- import android.widget.Toast
- import androidx.activity.ComponentActivity
- import androidx.activity.compose.setContent
- import androidx.compose.foundation.layout.*
- import androidx.compose.foundation.text.KeyboardOptions
- import androidx.compose.material3.*
- import androidx.compose.runtime.Composable
- import androidx.compose.runtime.*
- import androidx.compose.ui.Alignment
- import androidx.compose.ui.Modifier
- import androidx.compose.ui.platform.LocalContext
- import androidx.compose.ui.res.painterResource
- import androidx.compose.ui.text.input.KeyboardType
- import androidx.compose.ui.text.input.PasswordVisualTransformation
- import androidx.compose.ui.text.input.VisualTransformation
- import androidx.compose.ui.unit.*
- import edu.example.lecture.ui.theme.LectureTheme
- class MainActivity : ComponentActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContent {
- LectureTheme {
- Surface {
- SignUpScreen()
- }
- }
- }
- }
- }
- @Composable
- fun SignUpScreen() {
- var username by remember { mutableStateOf("") }
- var email by remember { mutableStateOf("") }
- var password by remember { mutableStateOf("") }
- var confirmPassword by remember { mutableStateOf("") }
- var passwordVisible by remember { mutableStateOf(false) }
- var confirmPasswordVisible by remember { mutableStateOf(false) }
- val context = LocalContext.current
- Column(
- modifier = Modifier
- .fillMaxSize()
- .padding(24.dp),
- horizontalAlignment = Alignment.CenterHorizontally
- ) {
- Spacer(modifier = Modifier.height(48.dp))
- // Title
- Text(
- text = "Sign Up",
- fontSize = 24.sp,
- style = MaterialTheme.typography.headlineLarge,
- color = MaterialTheme.colorScheme.primary,
- modifier = Modifier.padding(bottom = 32.dp),
- )
- // Input Fields
- OutlinedTextField(
- value = username,
- onValueChange = { username = it },
- label = { Text("Username") },
- modifier = Modifier.fillMaxWidth()
- )
- Spacer(modifier = Modifier.height(16.dp))
- OutlinedTextField(
- value = email,
- onValueChange = { email = it },
- label = { Text("Email") },
- keyboardOptions = KeyboardOptions(keyboardType = KeyboardType.Email),
- modifier = Modifier.fillMaxWidth()
- )
- Spacer(modifier = Modifier.height(16.dp))
- OutlinedTextField(
- value = password,
- onValueChange = { password = it },
- label = { Text("Password") },
- visualTransformation = if (passwordVisible) VisualTransformation.None else PasswordVisualTransformation(),
- trailingIcon = {
- TextButton(
- onClick = { passwordVisible = !passwordVisible },
- contentPadding = PaddingValues(horizontal = 8.dp)
- ) {
- Text(
- text = if (passwordVisible) "Hide" else "Show",
- style = MaterialTheme.typography.bodyMedium
- )
- }
- },
- modifier = Modifier.fillMaxWidth()
- )
- Spacer(modifier = Modifier.height(16.dp))
- OutlinedTextField(
- value = confirmPassword,
- onValueChange = { confirmPassword = it },
- label = { Text("Confirm Password") },
- visualTransformation = if (confirmPasswordVisible) VisualTransformation.None else PasswordVisualTransformation(),
- trailingIcon = {
- TextButton(
- onClick = { confirmPasswordVisible = !confirmPasswordVisible },
- contentPadding = PaddingValues(horizontal = 8.dp)
- ) {
- Text(
- text = if (confirmPasswordVisible) "Hide" else "Show",
- style = MaterialTheme.typography.bodyMedium
- )
- }
- },
- modifier = Modifier.fillMaxWidth()
- )
- Spacer(modifier = Modifier.height(32.dp))
- // Sign Up Button
- Button(
- onClick = {
- Toast.makeText(context, "Not Implemented", Toast.LENGTH_SHORT).show()
- },
- modifier = Modifier.fillMaxWidth()
- ) {
- Text("Sign Up")
- }
- Spacer(modifier = Modifier.height(24.dp))
- // "or with" divider
- Row(
- verticalAlignment = Alignment.CenterVertically,
- modifier = Modifier.fillMaxWidth()
- ) {
- HorizontalDivider(modifier = Modifier.weight(1f))
- Text(
- text = "or with",
- modifier = Modifier.padding(horizontal = 50.dp),
- )
- HorizontalDivider(modifier = Modifier.weight(1f))
- }
- Spacer(modifier = Modifier.height(24.dp))
- Row(
- horizontalArrangement = Arrangement.spacedBy(24.dp),
- modifier = Modifier.padding(bottom = 24.dp)
- ) {
- // Social login buttons here
- SocialIcons(R.drawable.ic_google, "Google")
- SocialIcons(R.drawable.ic_facebook, "Facebook")
- SocialIcons(R.drawable.ic_x, "Twitter")
- }
- Row(
- modifier = Modifier.padding(top = 8.dp),
- verticalAlignment = Alignment.CenterVertically
- ) {
- Text("Already have an account? ")
- TextButton(
- onClick = {
- Toast.makeText(context, "Not Implemented", Toast.LENGTH_SHORT).show()
- }
- ) {
- Text("Sign In")
- }
- }
- }
- }
- @Composable
- fun SocialIcons(icon: Int, description: String) {
- Icon(
- painter = painterResource(id = icon),
- contentDescription = description,
- modifier = Modifier.size(32.dp),
- tint = MaterialTheme.colorScheme.primary
- )
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement