diff --git a/agrilinkvocpro/.idea/codeStyles/Project.xml b/agrilinkvocpro/.idea/codeStyles/Project.xml index 7643783..7f70f7e 100644 --- a/agrilinkvocpro/.idea/codeStyles/Project.xml +++ b/agrilinkvocpro/.idea/codeStyles/Project.xml @@ -1,5 +1,40 @@ + + + diff --git a/agrilinkvocpro/app/build.gradle.kts b/agrilinkvocpro/app/build.gradle.kts index 970c50f..717be70 100644 --- a/agrilinkvocpro/app/build.gradle.kts +++ b/agrilinkvocpro/app/build.gradle.kts @@ -15,7 +15,7 @@ android { applicationId = "com.syaroful.agrilinkvocpro" minSdk = 29 targetSdk = 35 - versionCode = 2 + versionCode = 3 versionName = "1.0.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" diff --git a/agrilinkvocpro/app/src/main/java/com/syaroful/agrilinkvocpro/core/components/TextTheme.kt b/agrilinkvocpro/app/src/main/java/com/syaroful/agrilinkvocpro/core/components/TextTheme.kt index 1c7c9e1..92d2e11 100644 --- a/agrilinkvocpro/app/src/main/java/com/syaroful/agrilinkvocpro/core/components/TextTheme.kt +++ b/agrilinkvocpro/app/src/main/java/com/syaroful/agrilinkvocpro/core/components/TextTheme.kt @@ -50,8 +50,8 @@ val textTheme = Typography( letterSpacing = 0.sp, ), titleMedium = TextStyle( - fontWeight = FontWeight.W400, - fontSize = 16.sp, + fontWeight = FontWeight.W500, + fontSize = 18.sp, lineHeight = 24.sp, letterSpacing = 0.1.sp, ), diff --git a/agrilinkvocpro/app/src/main/java/com/syaroful/agrilinkvocpro/ui/pages/LoginScreen.kt b/agrilinkvocpro/app/src/main/java/com/syaroful/agrilinkvocpro/ui/screen/login/LoginScreen.kt similarity index 98% rename from agrilinkvocpro/app/src/main/java/com/syaroful/agrilinkvocpro/ui/pages/LoginScreen.kt rename to agrilinkvocpro/app/src/main/java/com/syaroful/agrilinkvocpro/ui/screen/login/LoginScreen.kt index 2fb34ef..e3ac5c7 100644 --- a/agrilinkvocpro/app/src/main/java/com/syaroful/agrilinkvocpro/ui/pages/LoginScreen.kt +++ b/agrilinkvocpro/app/src/main/java/com/syaroful/agrilinkvocpro/ui/screen/login/LoginScreen.kt @@ -1,4 +1,4 @@ -package com.syaroful.agrilinkvocpro.ui.pages +package com.syaroful.agrilinkvocpro.ui.screen.login import android.content.res.Configuration.UI_MODE_NIGHT_YES import androidx.compose.foundation.Image diff --git a/agrilinkvocpro/app/src/main/java/com/syaroful/agrilinkvocpro/ui/screen/profile/ProfileScreen.kt b/agrilinkvocpro/app/src/main/java/com/syaroful/agrilinkvocpro/ui/screen/profile/ProfileScreen.kt new file mode 100644 index 0000000..02db04a --- /dev/null +++ b/agrilinkvocpro/app/src/main/java/com/syaroful/agrilinkvocpro/ui/screen/profile/ProfileScreen.kt @@ -0,0 +1,173 @@ +package com.syaroful.agrilinkvocpro.ui.screen.profile + +import android.content.res.Configuration.UI_MODE_NIGHT_YES +import androidx.compose.foundation.Image +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ArrowBack +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBar +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.painter.Painter +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.syaroful.agrilinkvocpro.R +import com.syaroful.agrilinkvocpro.core.components.textTheme +import com.syaroful.agrilinkvocpro.ui.theme.AgrilinkVocproTheme +import com.syaroful.agrilinkvocpro.ui.theme.LightGrey +import com.syaroful.agrilinkvocpro.ui.theme.MainGreen + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun ProfileScreen() { + Scaffold( + topBar = { + TopAppBar( + title = { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier.fillMaxWidth() + ) { + Text("Profile", style = MaterialTheme.typography.titleMedium) + } + + }, + navigationIcon = { + IconButton(onClick = { }) { + Icon(Icons.AutoMirrored.Filled.ArrowBack, contentDescription = "Back") + } + }, + ) + } + ) { innerPadding -> + Column( + modifier = Modifier + .padding(innerPadding) + .padding(horizontal = 20.dp) + ) { + Text(text = "Akun", style = textTheme.titleMedium) + Column( + modifier = Modifier + .padding(vertical = 16.dp) + .border( + width = 1.dp, + color = MainGreen.copy(alpha = 0.1f), + shape = RoundedCornerShape(8.dp) + ) + + .padding(8.dp) + ) { + RowItemWidget( + label = "Nama", + value = "Muhamad Syaroful Anam" + ) + RowItemWidget( + label = "Username", + value = "syaroful" + ) + RowItemWidget( + label = "Email", + value = "syaroful@gamil.com" + ) + RowItemWidget( + label = "No. Telepon", + value = "08123456789" + ) + } + Text(text = "Informasi", style = textTheme.titleMedium) + Column( + modifier = Modifier + .padding(vertical = 16.dp) + .border( + width = 1.dp, + color = MainGreen.copy(alpha = 0.1f), + shape = RoundedCornerShape(8.dp) + ) + .padding(8.dp) + ) { + RowItemWidgetWithIcon( + label = "Syarat dan Ketentuan", + icon = painterResource(id = R.drawable.ic_doc) + ) + RowItemWidgetWithIcon( + label = "FAQ", + icon = painterResource(id = R.drawable.ic_question) + ) + RowItemWidgetWithIcon( + label = "Kebijakan Privasi", + icon = painterResource(id = R.drawable.ic_shield) + ) + RowItemWidgetWithIcon( + label = "Log Out", + icon = painterResource(id = R.drawable.ic_out) + ) + } + } + } +} + +@Composable +private fun RowItemWidgetWithIcon( + label: String, + icon: Painter, + onClick: () -> Unit = {} +) { + Row( + modifier = Modifier + .fillMaxWidth() + .clickable { onClick() } + .padding(horizontal = 8.dp) + .padding(vertical = 10.dp)) { + Image( + modifier = Modifier.width(24.dp), + painter = icon, + contentDescription = label, + ) + Spacer(modifier = Modifier.width(8.dp)) + Text( + text = label + ) + } +} + +@Composable +private fun RowItemWidget( + label: String, + value: String +) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(8.dp), + horizontalArrangement = Arrangement.SpaceBetween + ) { + Text(text = label) + Text(text = value, color = LightGrey) + } +} + +@Preview(showBackground = true, name = "Light Mode") +@Preview(showBackground = true, name = "Dark Mode", uiMode = UI_MODE_NIGHT_YES) +@Composable +fun ProfilePreview() { + AgrilinkVocproTheme { + ProfileScreen() + } +} \ No newline at end of file diff --git a/agrilinkvocpro/app/src/main/res/drawable/kabocha.png b/agrilinkvocpro/app/src/main/res/drawable/kabocha.png new file mode 100644 index 0000000..6ef62cb Binary files /dev/null and b/agrilinkvocpro/app/src/main/res/drawable/kabocha.png differ diff --git a/agrilinkvocpro/app/src/main/res/values/strings.xml b/agrilinkvocpro/app/src/main/res/values/strings.xml index f52e174..008f1fb 100644 --- a/agrilinkvocpro/app/src/main/res/values/strings.xml +++ b/agrilinkvocpro/app/src/main/res/values/strings.xml @@ -12,5 +12,4 @@ Download Cancel ControlActuatorActivity - \ No newline at end of file