diff --git a/composeApp/src/commonMain/kotlin/com/avinal/memos/domain/MemoRepository.kt b/composeApp/src/commonMain/kotlin/com/avinal/memos/domain/MemoRepository.kt index 86859c1..d6fa0d2 100644 --- a/composeApp/src/commonMain/kotlin/com/avinal/memos/domain/MemoRepository.kt +++ b/composeApp/src/commonMain/kotlin/com/avinal/memos/domain/MemoRepository.kt @@ -52,19 +52,28 @@ class MemoRepository( suspend fun refreshMemos(): ApiResult> { nextPageToken = "" hasMorePages = true - return when (val result = apiClient.listMemos(pageSize = 50)) { - is ApiResult.Success -> { - val memos = result.data.memos.map { it.toDomain() } - val now = nowMillis() - lastFetchTime = now - memoDao.upsertAll(memos.map { it.toEntity(now) }) - nextPageToken = result.data.nextPageToken - hasMorePages = nextPageToken.isNotEmpty() - ApiResult.Success(memos) + val allFetched = mutableListOf() + + var token = "" + do { + val result = apiClient.listMemos(pageSize = 50, pageToken = token) + when (result) { + is ApiResult.Success -> { + allFetched.addAll(result.data.memos.map { it.toDomain() }) + token = result.data.nextPageToken + } + is ApiResult.Error -> return result + is ApiResult.NetworkError -> return result } - is ApiResult.Error -> result - is ApiResult.NetworkError -> result - } + } while (token.isNotEmpty()) + + val now = nowMillis() + lastFetchTime = now + memoDao.deleteAll() + memoDao.upsertAll(allFetched.map { it.toEntity(now) }) + nextPageToken = "" + hasMorePages = false + return ApiResult.Success(allFetched) } suspend fun loadNextPage(): ApiResult> { diff --git a/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/components/MemoCard.kt b/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/components/MemoCard.kt index 969c49c..2341017 100644 --- a/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/components/MemoCard.kt +++ b/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/components/MemoCard.kt @@ -75,7 +75,7 @@ fun MemoCard( onDismissRequest = { showDeleteDialog = false }, title = { Text("delete memo?", color = textColor) }, text = { Text("this cannot be undone.", color = subtleColor) }, - containerColor = MaterialTheme.colorScheme.surface, + containerColor = MaterialTheme.colorScheme.surfaceContainer, confirmButton = { TextButton(onClick = { showDeleteDialog = false; onDelete?.invoke() }) { Text("delete", color = MaterialTheme.colorScheme.error) @@ -90,7 +90,7 @@ fun MemoCard( if (showMenu) { AlertDialog( onDismissRequest = { showMenu = false }, - containerColor = MaterialTheme.colorScheme.surface, + containerColor = MaterialTheme.colorScheme.surfaceContainer, title = null, text = { Column { @@ -216,7 +216,7 @@ private fun InlineEditor( Text(visibility.name.lowercase(), fontSize = 13.sp, color = subtleColor, modifier = Modifier.clickable { showVisibilityMenu = true }) if (showVisibilityMenu) { AlertDialog( - onDismissRequest = { showVisibilityMenu = false }, containerColor = MaterialTheme.colorScheme.surface, title = null, + onDismissRequest = { showVisibilityMenu = false }, containerColor = MaterialTheme.colorScheme.surfaceContainer, title = null, text = { Column { MemoVisibility.entries.forEach { vis -> diff --git a/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/memos/MemoListScreen.kt b/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/memos/MemoListScreen.kt index c03ae0f..7212099 100644 --- a/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/memos/MemoListScreen.kt +++ b/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/memos/MemoListScreen.kt @@ -134,7 +134,7 @@ fun MemoListScreen( if (showVisibilityPicker) { AlertDialog( onDismissRequest = { showVisibilityPicker = false }, - containerColor = MaterialTheme.colorScheme.surface, + containerColor = MaterialTheme.colorScheme.surfaceContainer, title = null, text = { Column { @@ -188,7 +188,7 @@ fun MemoListScreen( if (showInsertMenu) { AlertDialog( onDismissRequest = { showInsertMenu = false }, - containerColor = MaterialTheme.colorScheme.surface, + containerColor = MaterialTheme.colorScheme.surfaceContainer, title = null, text = { Column { diff --git a/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/tasks/TaskDetailSheet.kt b/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/tasks/TaskDetailSheet.kt index 1ae29c8..9f6aa27 100644 --- a/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/tasks/TaskDetailSheet.kt +++ b/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/tasks/TaskDetailSheet.kt @@ -43,7 +43,7 @@ fun TaskDetailSheet( AlertDialog( onDismissRequest = onDismiss, - containerColor = MaterialTheme.colorScheme.surface, + containerColor = MaterialTheme.colorScheme.surfaceContainer, title = null, text = { Column { diff --git a/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/theme/Color.kt b/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/theme/Color.kt index a532df7..e91e7bb 100644 --- a/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/theme/Color.kt +++ b/composeApp/src/commonMain/kotlin/com/avinal/memos/ui/theme/Color.kt @@ -84,17 +84,19 @@ fun metroColorScheme(theme: MetroTheme, accent: Color): ColorScheme = when (them MetroTheme.AMOLED -> darkColorScheme( background = Color.Black, onBackground = Color.White, - surface = Color.Black, + surface = Color(0xFF161616), onSurface = Color.White, - surfaceVariant = Color(0xFF111111), + surfaceVariant = Color(0xFF1A1A1A), onSurfaceVariant = Color(0xFF999999), + surfaceContainer = Color(0xFF1E1E1E), + surfaceContainerHigh = Color(0xFF222222), primary = accent, onPrimary = Color.White, secondary = Color(0xFF1A1A1A), onSecondary = Color(0xFFCCCCCC), error = Color(0xFFE51400), onError = Color.White, - outline = Color(0xFF555555), + outline = Color(0xFF444444), outlineVariant = Color(0xFF333333), ) }