diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/MessageFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/MessageFragment.kt index b38fe5b6..6722e1fc 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/MessageFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/MessageFragment.kt @@ -15,9 +15,12 @@ import android.view.View import android.view.ViewGroup import android.widget.FrameLayout import android.widget.ProgressBar +import android.widget.Toast import androidx.appcompat.widget.PopupMenu +import androidx.core.view.isVisible import androidx.fragment.app.Fragment import com.google.android.material.chip.Chip +import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.mikepenz.iconics.IconicsColor import com.mikepenz.iconics.IconicsDrawable import com.mikepenz.iconics.IconicsSize @@ -37,6 +40,7 @@ import pl.szczodrzynski.edziennik.data.api.events.AttachmentGetEvent.Companion.T import pl.szczodrzynski.edziennik.data.api.events.MessageGetEvent import pl.szczodrzynski.edziennik.data.db.entity.LoginStore import pl.szczodrzynski.edziennik.data.db.entity.LoginStore.Companion.LOGIN_TYPE_IDZIENNIK +import pl.szczodrzynski.edziennik.data.db.entity.Message.Companion.TYPE_DELETED import pl.szczodrzynski.edziennik.data.db.entity.Message.Companion.TYPE_RECEIVED import pl.szczodrzynski.edziennik.data.db.entity.Message.Companion.TYPE_SENT import pl.szczodrzynski.edziennik.data.db.full.MessageFull @@ -108,6 +112,23 @@ class MessageFragment : Fragment(), CoroutineScope { "type" to "forward" )) } + b.deleteButton.onClick { + MaterialAlertDialogBuilder(activity) + .setTitle(R.string.messages_delete_confirmation) + .setMessage(R.string.messages_delete_confirmation_text) + .setPositiveButton(R.string.ok) { _, _ -> + launch { + message.type = TYPE_DELETED + withContext(Dispatchers.Default) { + app.db.messageDao().replace(message) + } + Toast.makeText(activity, "Wiadomość przeniesiona do usuniętych", Toast.LENGTH_SHORT).show() + activity.navigateUp() + } + } + .setNegativeButton(R.string.cancel, null) + .show() + } launch { @@ -217,7 +238,8 @@ class MessageFragment : Fragment(), CoroutineScope { b.subject.text = message.subject - b.replyButton.visibility = if (message.type == TYPE_RECEIVED) View.VISIBLE else View.INVISIBLE + b.replyButton.isVisible = message.type == TYPE_RECEIVED + b.deleteButton.isVisible = message.type == TYPE_RECEIVED if (message.type == TYPE_RECEIVED) { activity.navView.apply { bottomBar.apply { diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/MessagesAdapter.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/MessagesAdapter.kt index 564a19d6..f8ccb491 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/MessagesAdapter.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/MessagesAdapter.kt @@ -14,6 +14,7 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import pl.szczodrzynski.edziennik.App import pl.szczodrzynski.edziennik.cleanDiacritics +import pl.szczodrzynski.edziennik.data.db.entity.Message import pl.szczodrzynski.edziennik.data.db.entity.Teacher import pl.szczodrzynski.edziennik.data.db.full.MessageFull import pl.szczodrzynski.edziennik.ui.modules.grades.viewholder.BindableViewHolder @@ -138,12 +139,26 @@ class MessagesAdapter( it.filterWeight = 100 it.searchHighlightText = null - var weight = getMatchWeight(it.senderName, prefixString) - if (weight != 100) { - if (weight == 3) - weight = 31 - it.filterWeight = min(it.filterWeight, 10 + weight) + var weight: Int + if (it.type == Message.TYPE_SENT) { + it.recipients?.forEach { recipient -> + weight = getMatchWeight(recipient.fullName, prefixString) + if (weight != 100) { + if (weight == 3) + weight = 31 + it.filterWeight = min(it.filterWeight, 10 + weight) + } + } } + else { + weight = getMatchWeight(it.senderName, prefixString) + if (weight != 100) { + if (weight == 3) + weight = 31 + it.filterWeight = min(it.filterWeight, 10 + weight) + } + } + weight = getMatchWeight(it.subject, prefixString) if (weight != 100) { diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/MessagesListFragment.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/MessagesListFragment.kt index 3f40a629..a580be3e 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/MessagesListFragment.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/MessagesListFragment.kt @@ -69,6 +69,11 @@ class MessagesListFragment : LazyFragment(), CoroutineScope { items.forEach { message -> message.recipients?.removeAll { it.profileId != message.profileId } + message.recipients?.forEach { recipient -> + if (recipient.fullName == null) { + recipient.fullName = teachers.firstOrNull { it.id == recipient.id }?.fullName ?: "" + } + } } // load & configure the adapter diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/viewholder/MessageViewHolder.kt b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/viewholder/MessageViewHolder.kt index 484be3ab..62789a0c 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/viewholder/MessageViewHolder.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/ui/modules/messages/viewholder/MessageViewHolder.kt @@ -33,12 +33,6 @@ class MessageViewHolder( override fun onBind(activity: AppCompatActivity, app: App, item: MessageFull, position: Int, adapter: MessagesAdapter) { val manager = app.gradesManager - item.recipients?.forEach { recipient -> - if (recipient.fullName == null) { - recipient.fullName = adapter.teachers.firstOrNull { it.id == recipient.id }?.fullName ?: "" - } - } - b.messageSubject.text = item.subject b.messageDate.text = Date.fromMillis(item.addedDate).formattedStringShort b.messageAttachmentImage.isVisible = item.hasAttachments diff --git a/app/src/main/res/layout/message_fragment.xml b/app/src/main/res/layout/message_fragment.xml index ded95825..12f3c00c 100644 --- a/app/src/main/res/layout/message_fragment.xml +++ b/app/src/main/res/layout/message_fragment.xml @@ -309,7 +309,7 @@ android:layout_height="24dp" android:padding="4dp" app:iiv_color="?android:textColorSecondary" - app:iiv_icon="cmd-arrow-right-thick" + app:iiv_icon="cmd-arrow-right" tools:srcCompat="@android:drawable/ic_media_ff" /> + android:visibility="visible"> Usunięte Szukaj Znaleziono %d wiadomości + Czy chcesz usunąć wiadomość? + Spowoduje to przeniesienie wiadomości do zakładki \"Usunięte\" w aplikacji. Zmiany nie wpłyną na wiadomość w e-dzienniku (nie zostanie ona tam usunięta).