diff --git a/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostAttachment.kt b/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostAttachment.kt index b1b5941d..9cb56f85 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostAttachment.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostAttachment.kt @@ -49,6 +49,7 @@ import kotlin.math.min private val log = LogCategory("ActPostAttachment") // AppStateに保存する +// シャローコピーなので attachmentList を変更する前後のどっちかで呼ばれてれば良い fun ActPost.saveAttachmentList() { if (!isMultiWindowPost) appState.attachmentList = this.attachmentList } diff --git a/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostDrafts.kt b/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostDrafts.kt index 600d6302..34866032 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostDrafts.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostDrafts.kt @@ -346,7 +346,6 @@ fun ActPost.initializeFromRedraftStatus(account: SavedAccount, jsonText: String) val srcAttachments = baseStatus.media_attachments if (srcAttachments?.isNotEmpty() == true) { - saveAttachmentList() this.attachmentList.clear() try { for (src in srcAttachments) { @@ -360,6 +359,7 @@ fun ActPost.initializeFromRedraftStatus(account: SavedAccount, jsonText: String) } catch (ex: Throwable) { log.e(ex, "can't initialize attachments from redraft.") } + saveAttachmentList() } views.cbNSFW.isChecked = baseStatus.sensitive == true @@ -443,7 +443,6 @@ fun ActPost.initializeFromEditStatus(account: SavedAccount, jsonText: String) { ?.mapNotNull { it as? TootAttachment } ?.notEmpty() ?.let { srcAttachments -> - saveAttachmentList() this.attachmentList.clear() for (src in srcAttachments) { try { @@ -455,6 +454,7 @@ fun ActPost.initializeFromEditStatus(account: SavedAccount, jsonText: String) { log.e(ex, "can't initialize attachments from edit status") } } + saveAttachmentList() } views.cbNSFW.isChecked = baseStatus.sensitive == true diff --git a/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostExtra.kt b/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostExtra.kt index 04071bc2..6a948236 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostExtra.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostExtra.kt @@ -274,6 +274,7 @@ fun ActPost.performMore() { views.etContent.setText("") views.etContentWarning.setText("") attachmentList.clear() + saveAttachmentList() showMediaAttachment() } diff --git a/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostSchedule.kt b/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostSchedule.kt index e5abe411..0d84b122 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostSchedule.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostSchedule.kt @@ -65,9 +65,9 @@ suspend fun ActPost.initializeFromScheduledStatus(account: SavedAccount, jsonTex } ?.notEmpty() ?.let { - saveAttachmentList() this.attachmentList.clear() this.attachmentList.addAll(it) + saveAttachmentList() } } catch (ex: Throwable) { log.e(ex, "initializeFromScheduledStatus failed.") diff --git a/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostStates.kt b/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostStates.kt index 404e0eba..54f29432 100644 --- a/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostStates.kt +++ b/app/src/main/java/jp/juggler/subwaytooter/actpost/ActPostStates.kt @@ -98,8 +98,8 @@ suspend fun ActPost.restoreState(savedInstanceState: Bundle) { } else { // state から復元する states.attachmentListEncoded?.let { - saveAttachmentList() decodeAttachments(it) + saveAttachmentList() } } }