From 5423fe953855f53f76e9e1523a9e9dd1afbe4584 Mon Sep 17 00:00:00 2001 From: Atridad Lahiji Date: Fri, 22 Aug 2025 16:19:25 -0600 Subject: [PATCH] 1.0.0 - 1.0 baybeeeee --- app/build.gradle.kts | 4 +- app/src/main/AndroidManifest.xml | 2 +- .../com/atridad/openclimb/MainActivity.kt | 1 + .../com/atridad/openclimb/ui/OpenClimbApp.kt | 11 +++- .../openclimb/ui/screens/DetailScreens.kt | 54 ++++++++++++------- app/src/main/res/values-night/colors.xml | 6 +++ app/src/main/res/values/colors.xml | 3 ++ app/src/main/res/values/themes.xml | 7 ++- 8 files changed, 63 insertions(+), 25 deletions(-) create mode 100644 app/src/main/res/values-night/colors.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 624f8a3..a5c9cce 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,8 +14,8 @@ android { applicationId = "com.atridad.openclimb" minSdk = 31 targetSdk = 36 - versionCode = 13 - versionName = "0.5.0" + versionCode = 14 + versionName = "1.0.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a24d0ac..52cee07 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -27,7 +27,7 @@ android:name=".MainActivity" android:exported="true" android:label="@string/app_name" - android:theme="@style/Theme.OpenClimb"> + android:theme="@style/Theme.OpenClimb.Splash"> diff --git a/app/src/main/java/com/atridad/openclimb/MainActivity.kt b/app/src/main/java/com/atridad/openclimb/MainActivity.kt index 7f3a014..ec97980 100644 --- a/app/src/main/java/com/atridad/openclimb/MainActivity.kt +++ b/app/src/main/java/com/atridad/openclimb/MainActivity.kt @@ -13,6 +13,7 @@ import com.atridad.openclimb.ui.theme.OpenClimbTheme class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + setTheme(R.style.Theme_OpenClimb) enableEdgeToEdge() setContent { OpenClimbTheme { diff --git a/app/src/main/java/com/atridad/openclimb/ui/OpenClimbApp.kt b/app/src/main/java/com/atridad/openclimb/ui/OpenClimbApp.kt index 5d3d1e4..affb5b5 100644 --- a/app/src/main/java/com/atridad/openclimb/ui/OpenClimbApp.kt +++ b/app/src/main/java/com/atridad/openclimb/ui/OpenClimbApp.kt @@ -152,7 +152,10 @@ fun OpenClimbApp() { SessionDetailScreen( sessionId = args.sessionId, viewModel = viewModel, - onNavigateBack = { navController.popBackStack() } + onNavigateBack = { navController.popBackStack() }, + onNavigateToProblemDetail = { problemId -> + navController.navigate(Screen.ProblemDetail(problemId)) + } ) } @@ -178,6 +181,12 @@ fun OpenClimbApp() { onNavigateBack = { navController.popBackStack() }, onNavigateToEdit = { gymId -> navController.navigate(Screen.AddEditGym(gymId = gymId)) + }, + onNavigateToSessionDetail = { sessionId -> + navController.navigate(Screen.SessionDetail(sessionId)) + }, + onNavigateToProblemDetail = { problemId -> + navController.navigate(Screen.ProblemDetail(problemId)) } ) } diff --git a/app/src/main/java/com/atridad/openclimb/ui/screens/DetailScreens.kt b/app/src/main/java/com/atridad/openclimb/ui/screens/DetailScreens.kt index b677ea1..4347ea4 100644 --- a/app/src/main/java/com/atridad/openclimb/ui/screens/DetailScreens.kt +++ b/app/src/main/java/com/atridad/openclimb/ui/screens/DetailScreens.kt @@ -210,7 +210,12 @@ fun EditAttemptDialog( @OptIn(ExperimentalMaterial3Api::class) @Composable -fun SessionDetailScreen(sessionId: String, viewModel: ClimbViewModel, onNavigateBack: () -> Unit) { +fun SessionDetailScreen( + sessionId: String, + viewModel: ClimbViewModel, + onNavigateBack: () -> Unit, + onNavigateToProblemDetail: (String) -> Unit = {} +) { val context = LocalContext.current val attempts by viewModel.getAttemptsBySession(sessionId).collectAsState(initial = emptyList()) val sessions by viewModel.sessions.collectAsState() @@ -520,7 +525,8 @@ fun SessionDetailScreen(sessionId: String, viewModel: ClimbViewModel, onNavigate onEditAttempt = { attemptToEdit -> showEditAttemptDialog = attemptToEdit }, onDeleteAttempt = { attemptToDelete -> viewModel.deleteAttempt(attemptToDelete) - } + }, + onAttemptClick = { onNavigateToProblemDetail(problem.id) } ) } } @@ -904,7 +910,9 @@ fun GymDetailScreen( gymId: String, viewModel: ClimbViewModel, onNavigateBack: () -> Unit, - onNavigateToEdit: (String) -> Unit + onNavigateToEdit: (String) -> Unit, + onNavigateToSessionDetail: (String) -> Unit = {}, + onNavigateToProblemDetail: (String) -> Unit = {} ) { val gyms by viewModel.gyms.collectAsState() val gym = gyms.find { it.id == gymId } @@ -1135,14 +1143,16 @@ fun GymDetailScreen( Card( modifier = - Modifier.fillMaxWidth().padding(vertical = 4.dp), + Modifier + .fillMaxWidth() + .padding(vertical = 4.dp) + .clickable { onNavigateToProblemDetail(problem.id) }, colors = CardDefaults.cardColors( - containerColor = - MaterialTheme.colorScheme.surfaceVariant - .copy(alpha = 0.3f) + containerColor = MaterialTheme.colorScheme.surface ), - shape = RoundedCornerShape(12.dp) + shape = RoundedCornerShape(12.dp), + elevation = CardDefaults.cardElevation(defaultElevation = 4.dp) ) { ListItem( headlineContent = { @@ -1208,14 +1218,16 @@ fun GymDetailScreen( Card( modifier = - Modifier.fillMaxWidth().padding(vertical = 4.dp), + Modifier + .fillMaxWidth() + .padding(vertical = 4.dp) + .clickable { onNavigateToSessionDetail(session.id) }, colors = CardDefaults.cardColors( - containerColor = - MaterialTheme.colorScheme.surfaceVariant - .copy(alpha = 0.3f) + containerColor = MaterialTheme.colorScheme.surface ), - shape = RoundedCornerShape(12.dp) + shape = RoundedCornerShape(12.dp), + elevation = CardDefaults.cardElevation(defaultElevation = 4.dp) ) { ListItem( headlineContent = { @@ -1456,11 +1468,17 @@ fun SessionAttemptCard( attempt: Attempt, problem: Problem, onEditAttempt: (Attempt) -> Unit = {}, - onDeleteAttempt: (Attempt) -> Unit = {} + onDeleteAttempt: (Attempt) -> Unit = {}, + onAttemptClick: () -> Unit = {} ) { var showDeleteDialog by remember { mutableStateOf(false) } - Card(modifier = Modifier.fillMaxWidth()) { + Card( + modifier = Modifier + .fillMaxWidth() + .clickable { onAttemptClick() }, + elevation = CardDefaults.cardElevation(defaultElevation = 2.dp) + ) { Column(modifier = Modifier.padding(16.dp)) { Row( modifier = Modifier.fillMaxWidth(), @@ -1511,11 +1529,7 @@ fun SessionAttemptCard( // Delete button IconButton( onClick = { showDeleteDialog = true }, - modifier = Modifier.size(32.dp), - colors = - IconButtonDefaults.iconButtonColors( - contentColor = MaterialTheme.colorScheme.error - ) + modifier = Modifier.size(32.dp) ) { Icon( Icons.Default.Delete, diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml new file mode 100644 index 0000000..26d716f --- /dev/null +++ b/app/src/main/res/values-night/colors.xml @@ -0,0 +1,6 @@ + + + + #FF121212 + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index f8c6127..3ca8cb9 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -7,4 +7,7 @@ #FF018786 #FF000000 #FFFFFFFF + + + #FFFFFFFF \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 07c956e..c8ca7f1 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,5 +1,10 @@ - \ No newline at end of file