session-android/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DownloadDialog.kt

62 lines
2.7 KiB
Kotlin
Raw Normal View History

2021-06-24 06:05:55 +02:00
package org.thoughtcrime.securesms.conversation.v2.dialogs
import android.app.Dialog
2021-06-24 06:05:55 +02:00
import android.graphics.Typeface
import android.os.Bundle
2021-06-24 06:05:55 +02:00
import android.text.Spannable
import android.text.SpannableStringBuilder
import android.text.style.StyleSpan
import androidx.fragment.app.DialogFragment
import dagger.hilt.android.AndroidEntryPoint
2021-06-24 06:05:55 +02:00
import network.loki.messenger.R
import org.session.libsession.database.StorageProtocol
2021-06-24 06:05:55 +02:00
import org.session.libsession.messaging.contacts.Contact
import org.session.libsession.messaging.sending_receiving.attachments.DatabaseAttachment
2021-06-24 06:05:55 +02:00
import org.session.libsession.utilities.recipients.Recipient
import org.thoughtcrime.securesms.createSessionDialog
import org.thoughtcrime.securesms.database.SessionContactDatabase
import javax.inject.Inject
2021-06-24 06:05:55 +02:00
2021-06-25 01:19:21 +02:00
/** Shown when receiving media from a contact for the first time, to confirm that
* they are to be trusted and files sent by them are to be downloaded. */
@AndroidEntryPoint
class AutoDownloadDialog(private val threadRecipient: Recipient,
private val databaseAttachment: DatabaseAttachment
Merge remote-tracking branch 'upstream/dev' into closed_groups # Conflicts: # app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java # app/src/main/java/org/thoughtcrime/securesms/MediaOverviewActivity.java # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailActivity.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DownloadDialog.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt # app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java # app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt # app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java # app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java # app/src/main/java/org/thoughtcrime/securesms/dependencies/DatabaseModule.kt # app/src/main/java/org/thoughtcrime/securesms/preferences/BlockedContactsViewModel.kt # app/src/main/res/drawable/profile_picture_view_large_background.xml # app/src/main/res/layout/dialog_download.xml # app/src/main/res/layout/view_untrusted_attachment.xml # app/src/main/res/values/strings.xml # app/src/test/java/org/thoughtcrime/securesms/util/OpenGroupMigrationTests.kt # libsession/src/main/java/org/session/libsession/database/StorageProtocol.kt # libsession/src/main/java/org/session/libsession/messaging/messages/Message.kt # libsession/src/main/java/org/session/libsession/utilities/bencode/Bencode.kt # libsession/src/main/java/org/session/libsession/utilities/recipients/Recipient.java # libsignal/src/main/java/org/session/libsignal/protos/SignalServiceProtos.java # libsignal/src/main/java/org/session/libsignal/utilities/IdPrefix.kt
2023-08-23 08:45:24 +02:00
) : DialogFragment() {
2021-06-24 06:05:55 +02:00
@Inject lateinit var storage: StorageProtocol
@Inject lateinit var contactDB: SessionContactDatabase
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog = createSessionDialog {
val threadId = storage.getThreadId(threadRecipient) ?: run {
dismiss()
return@createSessionDialog
}
val displayName = when {
threadRecipient.isOpenGroupRecipient -> storage.getOpenGroup(threadId)?.name ?: "UNKNOWN"
threadRecipient.isLegacyClosedGroupRecipient -> storage.getGroup(threadRecipient.address.toGroupString())?.title ?: "UNKNOWN"
threadRecipient.isClosedGroupRecipient -> threadRecipient.name ?: "UNKNOWN"
else -> storage.getContactWithSessionID(threadRecipient.address.serialize())?.displayName(Contact.ContactContext.REGULAR) ?: "UNKNOWN"
}
Merge remote-tracking branch 'upstream/dev' into closed_groups # Conflicts: # app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java # app/src/main/java/org/thoughtcrime/securesms/MediaOverviewActivity.java # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailActivity.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DownloadDialog.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt # app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java # app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt # app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java # app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java # app/src/main/java/org/thoughtcrime/securesms/dependencies/DatabaseModule.kt # app/src/main/java/org/thoughtcrime/securesms/preferences/BlockedContactsViewModel.kt # app/src/main/res/drawable/profile_picture_view_large_background.xml # app/src/main/res/layout/dialog_download.xml # app/src/main/res/layout/view_untrusted_attachment.xml # app/src/main/res/values/strings.xml # app/src/test/java/org/thoughtcrime/securesms/util/OpenGroupMigrationTests.kt # libsession/src/main/java/org/session/libsession/database/StorageProtocol.kt # libsession/src/main/java/org/session/libsession/messaging/messages/Message.kt # libsession/src/main/java/org/session/libsession/utilities/bencode/Bencode.kt # libsession/src/main/java/org/session/libsession/utilities/recipients/Recipient.java # libsignal/src/main/java/org/session/libsignal/protos/SignalServiceProtos.java # libsignal/src/main/java/org/session/libsignal/utilities/IdPrefix.kt
2023-08-23 08:45:24 +02:00
title(resources.getString(R.string.dialog_auto_download_title))
val explanation = resources.getString(R.string.dialog_auto_download_explanation, displayName)
2021-06-24 06:05:55 +02:00
val spannable = SpannableStringBuilder(explanation)
val startIndex = explanation.indexOf(displayName)
spannable.setSpan(StyleSpan(Typeface.BOLD), startIndex, startIndex + displayName.count(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
text(spannable)
Merge remote-tracking branch 'upstream/dev' into closed_groups # Conflicts: # app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java # app/src/main/java/org/thoughtcrime/securesms/MediaOverviewActivity.java # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailActivity.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DownloadDialog.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt # app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java # app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt # app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java # app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java # app/src/main/java/org/thoughtcrime/securesms/dependencies/DatabaseModule.kt # app/src/main/java/org/thoughtcrime/securesms/preferences/BlockedContactsViewModel.kt # app/src/main/res/drawable/profile_picture_view_large_background.xml # app/src/main/res/layout/dialog_download.xml # app/src/main/res/layout/view_untrusted_attachment.xml # app/src/main/res/values/strings.xml # app/src/test/java/org/thoughtcrime/securesms/util/OpenGroupMigrationTests.kt # libsession/src/main/java/org/session/libsession/database/StorageProtocol.kt # libsession/src/main/java/org/session/libsession/messaging/messages/Message.kt # libsession/src/main/java/org/session/libsession/utilities/bencode/Bencode.kt # libsession/src/main/java/org/session/libsession/utilities/recipients/Recipient.java # libsignal/src/main/java/org/session/libsignal/protos/SignalServiceProtos.java # libsignal/src/main/java/org/session/libsignal/utilities/IdPrefix.kt
2023-08-23 08:45:24 +02:00
button(R.string.dialog_download_button_title, R.string.AccessibilityId_download_media) {
setAutoDownload(true)
}
Merge remote-tracking branch 'upstream/dev' into closed_groups # Conflicts: # app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java # app/src/main/java/org/thoughtcrime/securesms/MediaOverviewActivity.java # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationActivityV2.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailActivity.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/dialogs/DownloadDialog.kt # app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageContentView.kt # app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java # app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt # app/src/main/java/org/thoughtcrime/securesms/database/ThreadDatabase.java # app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java # app/src/main/java/org/thoughtcrime/securesms/dependencies/DatabaseModule.kt # app/src/main/java/org/thoughtcrime/securesms/preferences/BlockedContactsViewModel.kt # app/src/main/res/drawable/profile_picture_view_large_background.xml # app/src/main/res/layout/dialog_download.xml # app/src/main/res/layout/view_untrusted_attachment.xml # app/src/main/res/values/strings.xml # app/src/test/java/org/thoughtcrime/securesms/util/OpenGroupMigrationTests.kt # libsession/src/main/java/org/session/libsession/database/StorageProtocol.kt # libsession/src/main/java/org/session/libsession/messaging/messages/Message.kt # libsession/src/main/java/org/session/libsession/utilities/bencode/Bencode.kt # libsession/src/main/java/org/session/libsession/utilities/recipients/Recipient.java # libsignal/src/main/java/org/session/libsignal/protos/SignalServiceProtos.java # libsignal/src/main/java/org/session/libsignal/utilities/IdPrefix.kt
2023-08-23 08:45:24 +02:00
cancelButton {
setAutoDownload(false)
}
2021-06-24 06:05:55 +02:00
}
private fun setAutoDownload(shouldDownload: Boolean) {
storage.setAutoDownloadAttachments(threadRecipient, shouldDownload)
2021-06-24 06:05:55 +02:00
}
}