diff --git a/app/src/main/java/com/simplified/wsstatussaver/WhatSaveViewModel.kt b/app/src/main/java/com/simplified/wsstatussaver/WhatSaveViewModel.kt index 05addd8..7b116d8 100644 --- a/app/src/main/java/com/simplified/wsstatussaver/WhatSaveViewModel.kt +++ b/app/src/main/java/com/simplified/wsstatussaver/WhatSaveViewModel.kt @@ -168,6 +168,11 @@ class WhatSaveViewModel( emit(SaveResult(isSaving = true)) val result = repository.saveStatus(status, saveName) emit(SaveResult.single(result)) + // After saving, we must manually refresh the "Saved" list + // so the user sees the new, correct data when they switch tabs. + if (result != null) { + loadSavedStatuses() //calls refresh function in the bg + } } fun saveStatuses(statuses: List): LiveData = liveData(IO) { @@ -175,6 +180,10 @@ class WhatSaveViewModel( val savedStatuses = repository.saveStatuses(statuses) val savedUris = savedStatuses.map { it.fileUri } emit(SaveResult(statuses = savedStatuses, uris = savedUris, saved = savedStatuses.size)) + // Also refresh the "Saved" list here for consistency -- previously it worked by luck ig! + if (savedStatuses.isNotEmpty()) { + loadSavedStatuses() + } } fun deleteStatus(status: Status): LiveData = liveData(IO) { diff --git a/app/src/main/java/com/simplified/wsstatussaver/fragments/statuses/SavedStatusesFragment.kt b/app/src/main/java/com/simplified/wsstatussaver/fragments/statuses/SavedStatusesFragment.kt index df1e5e6..aeb3148 100644 --- a/app/src/main/java/com/simplified/wsstatussaver/fragments/statuses/SavedStatusesFragment.kt +++ b/app/src/main/java/com/simplified/wsstatussaver/fragments/statuses/SavedStatusesFragment.kt @@ -43,6 +43,13 @@ class SavedStatusesFragment : StatusesFragment() { } } + //Everytime the 'Saved' tab becomes visible -> Force reload + //So we beat the race condition that causing Unix time epoch + override fun onResume() { + super.onResume() + onRefresh() + } + override fun createAdapter(): StatusAdapter = StatusAdapter( requireActivity(), diff --git a/app/src/main/java/com/simplified/wsstatussaver/repository/StatusesRepository.kt b/app/src/main/java/com/simplified/wsstatussaver/repository/StatusesRepository.kt index 6f05f6d..a56c535 100644 --- a/app/src/main/java/com/simplified/wsstatussaver/repository/StatusesRepository.kt +++ b/app/src/main/java/com/simplified/wsstatussaver/repository/StatusesRepository.kt @@ -294,7 +294,11 @@ class StatusesRepositoryImpl( } override suspend fun save(status: Status, saveName: String?): SavedStatus? { - val savable = status.toStatusEntity(saveName) + + //Timestamp issue fix!! + val currentTimeMillis = System.currentTimeMillis() + val savable = status.toStatusEntity(saveName, currentTimeMillis) + val result = createSavedStatus(savable, true)?.also { status -> scanSavedStatus(listOf(status)) }