From 3b6c3b5ca21f6513f8687b09b81bf75af7f35728 Mon Sep 17 00:00:00 2001 From: Atridad Lahiji Date: Sun, 5 Oct 2025 23:47:48 -0600 Subject: [PATCH] [iOS & Android] iOS 1.2.3 and Android 1.7.2 --- android/app/build.gradle.kts | 4 +- .../data/database/OpenClimbDatabase.kt | 135 +++++++++------- .../openclimb/data/format/BackupFormat.kt | 8 +- .../atridad/openclimb/data/model/Attempt.kt | 28 +++- .../openclimb/data/sync/SyncService.kt | 17 ++ .../com/atridad/openclimb/ui/OpenClimbApp.kt | 6 +- .../openclimb/ui/screens/AddEditScreens.kt | 3 + .../openclimb/ui/screens/SettingsScreen.kt | 145 ++++++++++++++---- .../atridad/openclimb/BusinessLogicTests.kt | 3 +- .../com/atridad/openclimb/DataModelTests.kt | 6 +- .../atridad/openclimb/SyncMergeLogicTest.kt | 12 +- android/gradle/libs.versions.toml | 5 +- ios/OpenClimb.xcodeproj/project.pbxproj | 16 +- .../UserInterfaceState.xcuserstate | Bin 131070 -> 134000 bytes ios/OpenClimb/Models/BackupFormat.swift | 19 ++- ios/OpenClimb/Models/DataModels.swift | 18 ++- sync/go.mod | 2 +- 17 files changed, 302 insertions(+), 125 deletions(-) diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 2033726..a6124ac 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -16,8 +16,8 @@ android { applicationId = "com.atridad.openclimb" minSdk = 31 targetSdk = 36 - versionCode = 29 - versionName = "1.7.1" + versionCode = 30 + versionName = "1.7.2" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } diff --git a/android/app/src/main/java/com/atridad/openclimb/data/database/OpenClimbDatabase.kt b/android/app/src/main/java/com/atridad/openclimb/data/database/OpenClimbDatabase.kt index c53c35d..852988b 100644 --- a/android/app/src/main/java/com/atridad/openclimb/data/database/OpenClimbDatabase.kt +++ b/android/app/src/main/java/com/atridad/openclimb/data/database/OpenClimbDatabase.kt @@ -1,82 +1,105 @@ package com.atridad.openclimb.data.database +import android.content.Context import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase import androidx.room.TypeConverters import androidx.room.migration.Migration import androidx.sqlite.db.SupportSQLiteDatabase -import android.content.Context import com.atridad.openclimb.data.database.dao.* import com.atridad.openclimb.data.model.* @Database( - entities = [ - Gym::class, - Problem::class, - ClimbSession::class, - Attempt::class - ], - version = 5, - exportSchema = false + entities = [Gym::class, Problem::class, ClimbSession::class, Attempt::class], + version = 6, + exportSchema = false ) @TypeConverters(Converters::class) abstract class OpenClimbDatabase : RoomDatabase() { - + abstract fun gymDao(): GymDao abstract fun problemDao(): ProblemDao abstract fun climbSessionDao(): ClimbSessionDao abstract fun attemptDao(): AttemptDao - + companion object { - @Volatile - private var INSTANCE: OpenClimbDatabase? = null - - val MIGRATION_4_5 = object : Migration(4, 5) { - override fun migrate(database: SupportSQLiteDatabase) { - val cursor = database.query("PRAGMA table_info(climb_sessions)") - val existingColumns = mutableSetOf() - - while (cursor.moveToNext()) { - val columnName = cursor.getString(cursor.getColumnIndexOrThrow("name")) - existingColumns.add(columnName) + @Volatile private var INSTANCE: OpenClimbDatabase? = null + + val MIGRATION_4_5 = + object : Migration(4, 5) { + override fun migrate(database: SupportSQLiteDatabase) { + val cursor = database.query("PRAGMA table_info(climb_sessions)") + val existingColumns = mutableSetOf() + + while (cursor.moveToNext()) { + val columnName = cursor.getString(cursor.getColumnIndexOrThrow("name")) + existingColumns.add(columnName) + } + cursor.close() + + if (!existingColumns.contains("startTime")) { + database.execSQL("ALTER TABLE climb_sessions ADD COLUMN startTime TEXT") + } + if (!existingColumns.contains("endTime")) { + database.execSQL("ALTER TABLE climb_sessions ADD COLUMN endTime TEXT") + } + if (!existingColumns.contains("status")) { + database.execSQL( + "ALTER TABLE climb_sessions ADD COLUMN status TEXT NOT NULL DEFAULT 'COMPLETED'" + ) + } + + database.execSQL( + "UPDATE climb_sessions SET startTime = createdAt WHERE startTime IS NULL" + ) + database.execSQL( + "UPDATE climb_sessions SET status = 'COMPLETED' WHERE status IS NULL OR status = ''" + ) + } } - cursor.close() - - if (!existingColumns.contains("startTime")) { - database.execSQL("ALTER TABLE climb_sessions ADD COLUMN startTime TEXT") + + val MIGRATION_5_6 = + object : Migration(5, 6) { + override fun migrate(database: SupportSQLiteDatabase) { + // Add updatedAt column to attempts table + val cursor = database.query("PRAGMA table_info(attempts)") + val existingColumns = mutableSetOf() + + while (cursor.moveToNext()) { + val columnName = cursor.getString(cursor.getColumnIndexOrThrow("name")) + existingColumns.add(columnName) + } + cursor.close() + + if (!existingColumns.contains("updatedAt")) { + database.execSQL( + "ALTER TABLE attempts ADD COLUMN updatedAt TEXT NOT NULL DEFAULT ''" + ) + // Set updatedAt to createdAt for existing records + database.execSQL( + "UPDATE attempts SET updatedAt = createdAt WHERE updatedAt = ''" + ) + } + } } - if (!existingColumns.contains("endTime")) { - database.execSQL("ALTER TABLE climb_sessions ADD COLUMN endTime TEXT") - } - if (!existingColumns.contains("status")) { - database.execSQL("ALTER TABLE climb_sessions ADD COLUMN status TEXT NOT NULL DEFAULT 'COMPLETED'") - } - - database.execSQL("UPDATE climb_sessions SET startTime = createdAt WHERE startTime IS NULL") - database.execSQL("UPDATE climb_sessions SET status = 'COMPLETED' WHERE status IS NULL OR status = ''") - } - } - - val MIGRATION_5_6 = object : Migration(5, 6) { - override fun migrate(database: SupportSQLiteDatabase) { - } - } - + fun getDatabase(context: Context): OpenClimbDatabase { - return INSTANCE ?: synchronized(this) { - val instance = Room.databaseBuilder( - context.applicationContext, - OpenClimbDatabase::class.java, - "openclimb_database" - ) - .addMigrations(MIGRATION_4_5, MIGRATION_5_6) - .enableMultiInstanceInvalidation() - .fallbackToDestructiveMigration() - .build() - INSTANCE = instance - instance - } + return INSTANCE + ?: synchronized(this) { + val instance = + Room.databaseBuilder( + context.applicationContext, + OpenClimbDatabase::class.java, + "openclimb_database" + ) + .addMigrations(MIGRATION_4_5, MIGRATION_5_6) + .enableMultiInstanceInvalidation() + .fallbackToDestructiveMigration() + .build() + INSTANCE = instance + instance + } } } } diff --git a/android/app/src/main/java/com/atridad/openclimb/data/format/BackupFormat.kt b/android/app/src/main/java/com/atridad/openclimb/data/format/BackupFormat.kt index d97f448..a7a0b19 100644 --- a/android/app/src/main/java/com/atridad/openclimb/data/format/BackupFormat.kt +++ b/android/app/src/main/java/com/atridad/openclimb/data/format/BackupFormat.kt @@ -192,7 +192,7 @@ data class BackupAttempt( val restTime: Long? = null, val timestamp: String, val createdAt: String, - val updatedAt: String + val updatedAt: String? = null ) { companion object { /** Create BackupAttempt from native Android Attempt model */ @@ -207,7 +207,8 @@ data class BackupAttempt( duration = attempt.duration, restTime = attempt.restTime, timestamp = attempt.timestamp, - createdAt = attempt.createdAt + createdAt = attempt.createdAt, + updatedAt = attempt.updatedAt ) } } @@ -224,7 +225,8 @@ data class BackupAttempt( duration = duration, restTime = restTime, timestamp = timestamp, - createdAt = createdAt + createdAt = createdAt, + updatedAt = updatedAt ?: createdAt ) } } diff --git a/android/app/src/main/java/com/atridad/openclimb/data/model/Attempt.kt b/android/app/src/main/java/com/atridad/openclimb/data/model/Attempt.kt index 0e35efa..2ebda6d 100644 --- a/android/app/src/main/java/com/atridad/openclimb/data/model/Attempt.kt +++ b/android/app/src/main/java/com/atridad/openclimb/data/model/Attempt.kt @@ -44,7 +44,8 @@ data class Attempt( val duration: Long? = null, val restTime: Long? = null, val timestamp: String, - val createdAt: String + val createdAt: String, + val updatedAt: String ) { companion object { fun create( @@ -68,8 +69,31 @@ data class Attempt( duration = duration, restTime = restTime, timestamp = timestamp, - createdAt = now + createdAt = now, + updatedAt = now ) } } + + fun updated( + result: AttemptResult? = null, + highestHold: String? = null, + notes: String? = null, + duration: Long? = null, + restTime: Long? = null + ): Attempt { + return Attempt( + id = this.id, + sessionId = this.sessionId, + problemId = this.problemId, + result = result ?: this.result, + highestHold = highestHold ?: this.highestHold, + notes = notes ?: this.notes, + duration = duration ?: this.duration, + restTime = restTime ?: this.restTime, + timestamp = this.timestamp, + createdAt = this.createdAt, + updatedAt = DateFormatUtils.nowISO8601() + ) + } } diff --git a/android/app/src/main/java/com/atridad/openclimb/data/sync/SyncService.kt b/android/app/src/main/java/com/atridad/openclimb/data/sync/SyncService.kt index 7e08d93..3619d49 100644 --- a/android/app/src/main/java/com/atridad/openclimb/data/sync/SyncService.kt +++ b/android/app/src/main/java/com/atridad/openclimb/data/sync/SyncService.kt @@ -74,6 +74,9 @@ class SyncService(private val context: Context, private val repository: ClimbRep private val _isConnected = MutableStateFlow(false) val isConnected: StateFlow = _isConnected.asStateFlow() + private val _isConfigured = MutableStateFlow(false) + val isConfiguredFlow: StateFlow = _isConfigured.asStateFlow() + private val _isTesting = MutableStateFlow(false) val isTesting: StateFlow = _isTesting.asStateFlow() @@ -91,17 +94,29 @@ class SyncService(private val context: Context, private val repository: ClimbRep get() = sharedPreferences.getString(Keys.SERVER_URL, "") ?: "" set(value) { sharedPreferences.edit { putString(Keys.SERVER_URL, value) } + updateConfiguredState() + // Clear connection status when configuration changes + _isConnected.value = false + sharedPreferences.edit().putBoolean(Keys.IS_CONNECTED, false).apply() } var authToken: String get() = sharedPreferences.getString(Keys.AUTH_TOKEN, "") ?: "" set(value) { sharedPreferences.edit { putString(Keys.AUTH_TOKEN, value) } + updateConfiguredState() + // Clear connection status when configuration changes + _isConnected.value = false + sharedPreferences.edit().putBoolean(Keys.IS_CONNECTED, false).apply() } val isConfigured: Boolean get() = serverURL.isNotEmpty() && authToken.isNotEmpty() + private fun updateConfiguredState() { + _isConfigured.value = serverURL.isNotEmpty() && authToken.isNotEmpty() + } + var isAutoSyncEnabled: Boolean get() = sharedPreferences.getBoolean(Keys.AUTO_SYNC_ENABLED, true) set(value) { @@ -111,6 +126,7 @@ class SyncService(private val context: Context, private val repository: ClimbRep init { _isConnected.value = sharedPreferences.getBoolean(Keys.IS_CONNECTED, false) _lastSyncTime.value = sharedPreferences.getString(Keys.LAST_SYNC_TIME, null) + updateConfiguredState() repository.setAutoSyncCallback { kotlinx.coroutines.CoroutineScope(Dispatchers.IO).launch { triggerAutoSync() } @@ -783,6 +799,7 @@ class SyncService(private val context: Context, private val repository: ClimbRep _syncError.value = null sharedPreferences.edit().clear().apply() + updateConfiguredState() } } diff --git a/android/app/src/main/java/com/atridad/openclimb/ui/OpenClimbApp.kt b/android/app/src/main/java/com/atridad/openclimb/ui/OpenClimbApp.kt index 1e42333..c6a4e33 100644 --- a/android/app/src/main/java/com/atridad/openclimb/ui/OpenClimbApp.kt +++ b/android/app/src/main/java/com/atridad/openclimb/ui/OpenClimbApp.kt @@ -205,11 +205,7 @@ fun OpenClimbApp( ) { showNotificationPermissionDialog = true } else { - if (gyms.size == 1) { - viewModel.startSession(context, gyms.first().id) - } else { - navController.navigate(Screen.AddEditSession()) - } + navController.navigate(Screen.AddEditSession()) } } ) diff --git a/android/app/src/main/java/com/atridad/openclimb/ui/screens/AddEditScreens.kt b/android/app/src/main/java/com/atridad/openclimb/ui/screens/AddEditScreens.kt index 8fea3d0..3705ea4 100644 --- a/android/app/src/main/java/com/atridad/openclimb/ui/screens/AddEditScreens.kt +++ b/android/app/src/main/java/com/atridad/openclimb/ui/screens/AddEditScreens.kt @@ -732,6 +732,9 @@ fun AddEditSessionScreen( LaunchedEffect(gymId, gyms) { if (gymId != null && selectedGym == null) { selectedGym = gyms.find { it.id == gymId } + } else if (gymId == null && selectedGym == null && gyms.size == 1) { + // Auto-select the gym if there's only one available + selectedGym = gyms.first() } } diff --git a/android/app/src/main/java/com/atridad/openclimb/ui/screens/SettingsScreen.kt b/android/app/src/main/java/com/atridad/openclimb/ui/screens/SettingsScreen.kt index ec31063..78a6f92 100644 --- a/android/app/src/main/java/com/atridad/openclimb/ui/screens/SettingsScreen.kt +++ b/android/app/src/main/java/com/atridad/openclimb/ui/screens/SettingsScreen.kt @@ -33,6 +33,7 @@ fun SettingsScreen(viewModel: ClimbViewModel) { val syncService = viewModel.syncService val isSyncing by syncService.isSyncing.collectAsState() val isConnected by syncService.isConnected.collectAsState() + val isConfigured by syncService.isConfiguredFlow.collectAsState() val isTesting by syncService.isTesting.collectAsState() val lastSyncTime by syncService.lastSyncTime.collectAsState() val syncError by syncService.syncError.collectAsState() @@ -49,6 +50,12 @@ fun SettingsScreen(viewModel: ClimbViewModel) { val packageInfo = remember { context.packageManager.getPackageInfo(context.packageName, 0) } val appVersion = packageInfo.versionName + // Update local state when sync service configuration changes + LaunchedEffect(syncService.serverURL, syncService.authToken) { + serverUrl = syncService.serverURL + authToken = syncService.authToken + } + // File picker launcher for import - only accepts ZIP files val importLauncher = rememberLauncherForActivityResult(contract = ActivityResultContracts.GetContent()) { uri @@ -142,7 +149,7 @@ fun SettingsScreen(viewModel: ClimbViewModel) { Spacer(modifier = Modifier.height(12.dp)) - if (syncService.isConfigured) { + if (isConfigured) { // Connected state Card( shape = RoundedCornerShape(12.dp), @@ -730,7 +737,60 @@ fun SettingsScreen(viewModel: ClimbViewModel) { Spacer(modifier = Modifier.height(16.dp)) - if (syncService.isConfigured) { + // Connection status indicator + if (isTesting) { + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.fillMaxWidth() + ) { + CircularProgressIndicator( + modifier = Modifier.size(16.dp), + strokeWidth = 2.dp + ) + Spacer(modifier = Modifier.width(8.dp)) + Text( + text = "Testing connection...", + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.primary + ) + } + } else if (isConnected && isConfigured) { + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.fillMaxWidth() + ) { + Icon( + Icons.Default.CheckCircle, + contentDescription = null, + tint = MaterialTheme.colorScheme.primary, + modifier = Modifier.size(16.dp) + ) + Spacer(modifier = Modifier.width(8.dp)) + Text( + text = "Connection successful", + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.primary + ) + } + } else if (syncError != null && isConfigured) { + Row( + verticalAlignment = Alignment.CenterVertically, + modifier = Modifier.fillMaxWidth() + ) { + Icon( + Icons.Default.Error, + contentDescription = null, + tint = MaterialTheme.colorScheme.error, + modifier = Modifier.size(16.dp) + ) + Spacer(modifier = Modifier.width(8.dp)) + Text( + text = "Connection failed: $syncError", + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.error + ) + } + } else if (isConfigured) { Text( text = "Test connection before enabling sync features", style = MaterialTheme.typography.bodySmall, @@ -747,18 +807,66 @@ fun SettingsScreen(viewModel: ClimbViewModel) { }, confirmButton = { Row { - if (syncService.isConfigured) { + // Primary action: Save & Test + Button( + onClick = { + coroutineScope.launch { + try { + syncService.serverURL = serverUrl.trim() + syncService.authToken = authToken.trim() + viewModel.testSyncConnection() + while (syncService.isTesting.value) { + kotlinx.coroutines.delay(100) + } + showSyncConfigDialog = false + } catch (e: Exception) { + viewModel.setError( + "Failed to save and test: ${e.message}" + ) + } + } + }, + enabled = + !isTesting && + serverUrl.isNotBlank() && + authToken.isNotBlank() + ) { + if (isTesting) { + Row(verticalAlignment = Alignment.CenterVertically) { + CircularProgressIndicator( + modifier = Modifier.size(16.dp), + strokeWidth = 2.dp, + color = MaterialTheme.colorScheme.onPrimary + ) + Spacer(modifier = Modifier.width(8.dp)) + Text("Save & Test") + } + } else { + Text("Save & Test") + } + } + + Spacer(modifier = Modifier.width(8.dp)) + + // Secondary action: Test only (when already configured) + if (isConfigured) { TextButton( onClick = { coroutineScope.launch { try { - // Save configuration first syncService.serverURL = serverUrl.trim() syncService.authToken = authToken.trim() viewModel.testSyncConnection() - showSyncConfigDialog = false - } catch (_: Exception) { - // Error will be shown via syncError state + while (syncService.isTesting.value) { + kotlinx.coroutines.delay(100) + } + if (isConnected) { + showSyncConfigDialog = false + } + } catch (e: Exception) { + viewModel.setError( + "Connection test failed: ${e.message}" + ) } } }, @@ -766,34 +874,13 @@ fun SettingsScreen(viewModel: ClimbViewModel) { !isTesting && serverUrl.isNotBlank() && authToken.isNotBlank() - ) { - if (isTesting) { - CircularProgressIndicator( - modifier = Modifier.size(16.dp), - strokeWidth = 2.dp - ) - } else { - Text("Test Connection") - } - } - - Spacer(modifier = Modifier.width(8.dp)) + ) { Text("Test Only") } } - - TextButton( - onClick = { - syncService.serverURL = serverUrl.trim() - syncService.authToken = authToken.trim() - showSyncConfigDialog = false - }, - enabled = serverUrl.isNotBlank() && authToken.isNotBlank() - ) { Text("Save") } } }, dismissButton = { TextButton( onClick = { - // Reset to current values serverUrl = syncService.serverURL authToken = syncService.authToken showSyncConfigDialog = false diff --git a/android/app/src/test/java/com/atridad/openclimb/BusinessLogicTests.kt b/android/app/src/test/java/com/atridad/openclimb/BusinessLogicTests.kt index c38ac36..7c2352d 100644 --- a/android/app/src/test/java/com/atridad/openclimb/BusinessLogicTests.kt +++ b/android/app/src/test/java/com/atridad/openclimb/BusinessLogicTests.kt @@ -489,7 +489,8 @@ class BusinessLogicTests { duration = attempt.duration, restTime = attempt.restTime, timestamp = attempt.timestamp, - createdAt = attempt.createdAt + createdAt = attempt.createdAt, + updatedAt = attempt.updatedAt, ) } ) diff --git a/android/app/src/test/java/com/atridad/openclimb/DataModelTests.kt b/android/app/src/test/java/com/atridad/openclimb/DataModelTests.kt index 8e70402..5c4b528 100644 --- a/android/app/src/test/java/com/atridad/openclimb/DataModelTests.kt +++ b/android/app/src/test/java/com/atridad/openclimb/DataModelTests.kt @@ -230,7 +230,8 @@ class DataModelTests { duration = 300, restTime = 120, timestamp = "2024-01-01T10:30:00Z", - createdAt = "2024-01-01T10:30:00Z" + createdAt = "2024-01-01T10:30:00Z", + updatedAt = "2024-01-01T10:30:00Z" ) assertEquals("attempt123", attempt.id) @@ -555,7 +556,8 @@ class DataModelTests { duration = 120, restTime = null, timestamp = "2024-01-01T10:30:00Z", - createdAt = "2024-01-01T10:30:00Z" + createdAt = "2024-01-01T10:30:00Z", + updatedAt = "2024-01-01T10:30:00Z" ) // Verify referential integrity diff --git a/android/app/src/test/java/com/atridad/openclimb/SyncMergeLogicTest.kt b/android/app/src/test/java/com/atridad/openclimb/SyncMergeLogicTest.kt index eff31fb..27699f2 100644 --- a/android/app/src/test/java/com/atridad/openclimb/SyncMergeLogicTest.kt +++ b/android/app/src/test/java/com/atridad/openclimb/SyncMergeLogicTest.kt @@ -73,7 +73,8 @@ class SyncMergeLogicTest { duration = 300, restTime = null, timestamp = "2024-01-01T10:30:00", - createdAt = "2024-01-01T10:30:00" + createdAt = "2024-01-01T10:30:00", + updatedAt = "2024-01-01T10:30:00" ) ) @@ -186,7 +187,8 @@ class SyncMergeLogicTest { duration = 180, restTime = 60, timestamp = "2024-01-02T14:30:00", - createdAt = "2024-01-02T14:30:00" + createdAt = "2024-01-02T14:30:00", + updatedAt = "2024-01-02T14:30:00" ) ) @@ -428,7 +430,11 @@ class SyncMergeLogicTest { // Add server attempts, preferring newer updates server.forEach { serverAttempt -> val localAttempt = merged[serverAttempt.id] - if (localAttempt == null || isNewerThan(serverAttempt.createdAt, localAttempt.createdAt) + if (localAttempt == null || + isNewerThan( + serverAttempt.updatedAt ?: serverAttempt.createdAt, + localAttempt.updatedAt ?: localAttempt.createdAt + ) ) { merged[serverAttempt.id] = serverAttempt } diff --git a/android/gradle/libs.versions.toml b/android/gradle/libs.versions.toml index b4f55cf..84d3273 100644 --- a/android/gradle/libs.versions.toml +++ b/android/gradle/libs.versions.toml @@ -18,15 +18,16 @@ viewmodel = "2.9.4" kotlinxSerialization = "1.9.0" kotlinxCoroutines = "1.10.2" coil = "2.7.0" -ksp = "2.2.10-2.0.2" -okhttp = "5.1.0" +ksp = "2.2.20-2.0.3" [libraries] androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } junit = { group = "junit", name = "junit", version.ref = "junit" } +#noinspection SimilarGradleDependency androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } androidx-test-core = { group = "androidx.test", name = "core", version.ref = "androidxTestCore" } +#noinspection SimilarGradleDependency androidx-test-ext = { group = "androidx.test.ext", name = "junit", version.ref = "androidxTestExt" } androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "androidxTestRunner" } androidx-test-rules = { group = "androidx.test", name = "rules", version.ref = "androidxTestRules" } diff --git a/ios/OpenClimb.xcodeproj/project.pbxproj b/ios/OpenClimb.xcodeproj/project.pbxproj index 1deee67..09f6bcc 100644 --- a/ios/OpenClimb.xcodeproj/project.pbxproj +++ b/ios/OpenClimb.xcodeproj/project.pbxproj @@ -465,7 +465,7 @@ CODE_SIGN_ENTITLEMENTS = OpenClimb/OpenClimb.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 13; + CURRENT_PROJECT_VERSION = 14; DEVELOPMENT_TEAM = 4BC9Y2LL4B; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -485,7 +485,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.2.2; + MARKETING_VERSION = 1.2.3; PRODUCT_BUNDLE_IDENTIFIER = com.atridad.OpenClimb; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -508,7 +508,7 @@ CODE_SIGN_ENTITLEMENTS = OpenClimb/OpenClimb.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 13; + CURRENT_PROJECT_VERSION = 14; DEVELOPMENT_TEAM = 4BC9Y2LL4B; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -528,7 +528,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.2.2; + MARKETING_VERSION = 1.2.3; PRODUCT_BUNDLE_IDENTIFIER = com.atridad.OpenClimb; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -592,7 +592,7 @@ ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; CODE_SIGN_ENTITLEMENTS = SessionStatusLiveExtension.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 13; + CURRENT_PROJECT_VERSION = 14; DEVELOPMENT_TEAM = 4BC9Y2LL4B; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = SessionStatusLive/Info.plist; @@ -603,7 +603,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.2.2; + MARKETING_VERSION = 1.2.3; PRODUCT_BUNDLE_IDENTIFIER = com.atridad.OpenClimb.SessionStatusLive; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -622,7 +622,7 @@ ASSETCATALOG_COMPILER_WIDGET_BACKGROUND_COLOR_NAME = WidgetBackground; CODE_SIGN_ENTITLEMENTS = SessionStatusLiveExtension.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 13; + CURRENT_PROJECT_VERSION = 14; DEVELOPMENT_TEAM = 4BC9Y2LL4B; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = SessionStatusLive/Info.plist; @@ -633,7 +633,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.2.2; + MARKETING_VERSION = 1.2.3; PRODUCT_BUNDLE_IDENTIFIER = com.atridad.OpenClimb.SessionStatusLive; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; diff --git a/ios/OpenClimb.xcodeproj/project.xcworkspace/xcuserdata/atridad.xcuserdatad/UserInterfaceState.xcuserstate b/ios/OpenClimb.xcodeproj/project.xcworkspace/xcuserdata/atridad.xcuserdatad/UserInterfaceState.xcuserstate index f619bc0e88782dce906f7512e5cba09d93deb6af..942517724692490ede78dafcbbdc5dbd5d2168b0 100644 GIT binary patch literal 134000 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 GkNyMGjjb2} literal 131070 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 z z3klNX(C@?sx8N6OUX$PHp>^u~NbvIi-30c(# zFo^T`5?|pmWLKA6U3T>pZl!)JJ>14LW-yC8nav#L@+iMx0q&;$6!NV98adSET9<2G z9(8%tUq+wx!$H{9j|&)$S-LWqyUUKc++o+#?BPHVHu@s-hP!EekrC*>q5sAe*g<0~ z=4hCsaT8HmkY~f24ShE3u(1_6HQa4uFS2ULs&OO;yF+>*ukQW~y-zm-0v7e^>G`-z4TXPiG6Gxq9hCD^e z)ab#En$xhOrX4lysHvx>nVXB)h&nxk(X-#S346ZD7`)LV^JBkJbL_w4kNfz~K?6Vj L^Z)-3dz$|PEqrJE diff --git a/ios/OpenClimb/Models/BackupFormat.swift b/ios/OpenClimb/Models/BackupFormat.swift index 0cacb0f..577f4ac 100644 --- a/ios/OpenClimb/Models/BackupFormat.swift +++ b/ios/OpenClimb/Models/BackupFormat.swift @@ -336,6 +336,7 @@ struct BackupAttempt: Codable { let restTime: Int64? // Rest time in seconds let timestamp: String let createdAt: String + let updatedAt: String? /// Initialize from native iOS Attempt model init(from attempt: Attempt) { @@ -352,6 +353,7 @@ struct BackupAttempt: Codable { formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] self.timestamp = formatter.string(from: attempt.timestamp) self.createdAt = formatter.string(from: attempt.createdAt) + self.updatedAt = formatter.string(from: attempt.updatedAt) } /// Initialize with explicit parameters for import @@ -365,7 +367,8 @@ struct BackupAttempt: Codable { duration: Int64?, restTime: Int64?, timestamp: String, - createdAt: String + createdAt: String, + updatedAt: String? ) { self.id = id self.sessionId = sessionId @@ -377,6 +380,7 @@ struct BackupAttempt: Codable { self.restTime = restTime self.timestamp = timestamp self.createdAt = createdAt + self.updatedAt = updatedAt } /// Convert to native iOS Attempt model @@ -385,13 +389,15 @@ struct BackupAttempt: Codable { formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] guard let uuid = UUID(uuidString: id), - let sessionUuid = UUID(uuidString: sessionId), - let problemUuid = UUID(uuidString: problemId), - let timestampDate = formatter.date(from: timestamp), - let createdDate = formatter.date(from: createdAt) + let sessionUuid = UUID(uuidString: sessionId), + let problemUuid = UUID(uuidString: problemId), + let timestampDate = formatter.date(from: timestamp), + let createdDate = formatter.date(from: createdAt) else { throw BackupError.invalidDateFormat } + let updatedDateParsed = updatedAt.flatMap { formatter.date(from: $0) } + let updatedDate = updatedDateParsed ?? createdDate let durationValue = duration.map { Int($0) } let restTimeValue = restTime.map { Int($0) } @@ -406,7 +412,8 @@ struct BackupAttempt: Codable { duration: durationValue, restTime: restTimeValue, timestamp: timestampDate, - createdAt: createdDate + createdAt: createdDate, + updatedAt: updatedDate ) } } diff --git a/ios/OpenClimb/Models/DataModels.swift b/ios/OpenClimb/Models/DataModels.swift index a514538..6a4a30f 100644 --- a/ios/OpenClimb/Models/DataModels.swift +++ b/ios/OpenClimb/Models/DataModels.swift @@ -474,11 +474,13 @@ struct Attempt: Identifiable, Codable, Hashable { let restTime: Int? let timestamp: Date let createdAt: Date + let updatedAt: Date init( sessionId: UUID, problemId: UUID, result: AttemptResult, highestHold: String? = nil, notes: String? = nil, duration: Int? = nil, restTime: Int? = nil, timestamp: Date = Date() ) { + let now = Date() self.id = UUID() self.sessionId = sessionId self.problemId = problemId @@ -488,7 +490,8 @@ struct Attempt: Identifiable, Codable, Hashable { self.duration = duration self.restTime = restTime self.timestamp = timestamp - self.createdAt = Date() + self.createdAt = now + self.updatedAt = now } func updated( @@ -506,13 +509,15 @@ struct Attempt: Identifiable, Codable, Hashable { duration: duration ?? self.duration, restTime: restTime ?? self.restTime, timestamp: self.timestamp, - createdAt: self.createdAt + createdAt: self.createdAt, + updatedAt: Date() ) } private init( id: UUID, sessionId: UUID, problemId: UUID, result: AttemptResult, highestHold: String?, - notes: String?, duration: Int?, restTime: Int?, timestamp: Date, createdAt: Date + notes: String?, duration: Int?, restTime: Int?, timestamp: Date, createdAt: Date, + updatedAt: Date ) { self.id = id self.sessionId = sessionId @@ -524,11 +529,13 @@ struct Attempt: Identifiable, Codable, Hashable { self.restTime = restTime self.timestamp = timestamp self.createdAt = createdAt + self.updatedAt = updatedAt } static func fromImport( id: UUID, sessionId: UUID, problemId: UUID, result: AttemptResult, highestHold: String?, - notes: String?, duration: Int?, restTime: Int?, timestamp: Date, createdAt: Date + notes: String?, duration: Int?, restTime: Int?, timestamp: Date, createdAt: Date, + updatedAt: Date ) -> Attempt { return Attempt( id: id, @@ -540,7 +547,8 @@ struct Attempt: Identifiable, Codable, Hashable { duration: duration, restTime: restTime, timestamp: timestamp, - createdAt: createdAt + createdAt: createdAt, + updatedAt: updatedAt ) } } diff --git a/sync/go.mod b/sync/go.mod index 44618d1..3103696 100644 --- a/sync/go.mod +++ b/sync/go.mod @@ -1,3 +1,3 @@ module openclimb-sync -go 1.21 +go 1.25