2616: Save Scheduled Time for Drafts. (#2624)

* 2616: Save Scheduled Time for Drafts.

Signed-off-by: Martin Marconcini <martin.marconcini.rodriguez@nl.abnamro.com>

* Revert 39.json schema to the original state before my changes.
This commit is contained in:
Martin Marconcini 2022-07-27 21:06:51 +02:00 committed by GitHub
commit 8b026991e0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 965 additions and 10 deletions

View file

@ -76,6 +76,7 @@ class ComposeViewModel @Inject constructor(
private var contentWarningStateChanged: Boolean = false
private var modifiedInitialState: Boolean = false
private var hasScheduledTimeChanged: Boolean = false
val instanceInfo: SharedFlow<InstanceInfo> = instanceInfoRepo::getInstanceInfo.asFlow()
.shareIn(viewModelScope, SharingStarted.Eagerly, replay = 1)
@ -214,8 +215,9 @@ class ComposeViewModel @Inject constructor(
!startingContentWarning.startsWith(contentWarning.toString())
val mediaChanged = media.value.isNotEmpty()
val pollChanged = poll.value != null
val didScheduledTimeChange = hasScheduledTimeChanged
return modifiedInitialState || textChanged || contentWarningChanged || mediaChanged || pollChanged
return modifiedInitialState || textChanged || contentWarningChanged || mediaChanged || pollChanged || didScheduledTimeChange
}
fun contentWarningChanged(value: Boolean) {
@ -257,7 +259,8 @@ class ComposeViewModel @Inject constructor(
mediaUris = mediaUris,
mediaDescriptions = mediaDescriptions,
poll = poll.value,
failedToSend = false
failedToSend = false,
scheduledAt = scheduledAt.value
)
}
@ -456,6 +459,10 @@ class ComposeViewModel @Inject constructor(
}
fun updateScheduledAt(newScheduledAt: String?) {
if (newScheduledAt != scheduledAt.value) {
hasScheduledTimeChanged = true
}
scheduledAt.value = newScheduledAt
}

View file

@ -60,7 +60,8 @@ class DraftHelper @Inject constructor(
mediaUris: List<String>,
mediaDescriptions: List<String?>,
poll: NewPoll?,
failedToSend: Boolean
failedToSend: Boolean,
scheduledAt: String?
) = withContext(Dispatchers.IO) {
val externalFilesDir = context.getExternalFilesDir("Tusky")
@ -116,7 +117,8 @@ class DraftHelper @Inject constructor(
visibility = visibility,
attachments = attachments,
poll = poll,
failedToSend = failedToSend
failedToSend = failedToSend,
scheduledAt = scheduledAt
)
draftDao.insertOrReplace(draft)

View file

@ -106,7 +106,8 @@ class DraftsActivity : BaseActivity(), DraftActionListener {
draftAttachments = draft.attachments,
poll = draft.poll,
sensitive = draft.sensitive,
visibility = draft.visibility
visibility = draft.visibility,
scheduledAt = draft.scheduledAt
)
bottomSheet.state = BottomSheetBehavior.STATE_HIDDEN
@ -143,7 +144,8 @@ class DraftsActivity : BaseActivity(), DraftActionListener {
draftAttachments = draft.attachments,
poll = draft.poll,
sensitive = draft.sensitive,
visibility = draft.visibility
visibility = draft.visibility,
scheduledAt = draft.scheduledAt
)
startActivity(ComposeActivity.startIntent(this, composeOptions))