mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-11-25 19:05:56 +03:00
Merge branch 'develop' into feature/read_marker
This commit is contained in:
commit
737959f616
6 changed files with 27 additions and 36 deletions
|
@ -20,7 +20,7 @@ data class HomeServerCapabilities(
|
|||
/**
|
||||
* Max size of file which can be uploaded to the homeserver in bytes. [MAX_UPLOAD_FILE_SIZE_UNKNOWN] if unknown or not retrieved yet
|
||||
*/
|
||||
val maxUploadFileSize: Long
|
||||
val maxUploadFileSize: Long = MAX_UPLOAD_FILE_SIZE_UNKNOWN
|
||||
) {
|
||||
companion object {
|
||||
const val MAX_UPLOAD_FILE_SIZE_UNKNOWN = -1L
|
||||
|
|
|
@ -26,13 +26,13 @@ internal object HomeServerCapabilitiesMapper {
|
|||
|
||||
fun map(entity: HomeServerCapabilitiesEntity): HomeServerCapabilities {
|
||||
return HomeServerCapabilities(
|
||||
entity.maxUploadFileSize
|
||||
maxUploadFileSize = entity.maxUploadFileSize
|
||||
)
|
||||
}
|
||||
|
||||
fun map(domain: HomeServerCapabilities): HomeServerCapabilitiesEntity {
|
||||
return HomeServerCapabilitiesEntity(
|
||||
domain.maxUploadFileSize
|
||||
maxUploadFileSize = domain.maxUploadFileSize
|
||||
)
|
||||
}
|
||||
}
|
|
@ -21,17 +21,16 @@ import io.realm.Realm
|
|||
import io.realm.kotlin.createObject
|
||||
import io.realm.kotlin.where
|
||||
|
||||
/**
|
||||
* Get the current HomeServerCapabilitiesEntity, return null if it does not exist
|
||||
*/
|
||||
internal fun HomeServerCapabilitiesEntity.Companion.get(realm: Realm): HomeServerCapabilitiesEntity? {
|
||||
return realm.where<HomeServerCapabilitiesEntity>().findFirst()
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current HomeServerCapabilitiesEntity, create one if it does not exist
|
||||
*/
|
||||
internal fun HomeServerCapabilitiesEntity.Companion.getOrCreate(realm: Realm): HomeServerCapabilitiesEntity {
|
||||
var homeServerCapabilitiesEntity = realm.where<HomeServerCapabilitiesEntity>().findFirst()
|
||||
if (homeServerCapabilitiesEntity == null) {
|
||||
realm.executeTransaction {
|
||||
realm.createObject<HomeServerCapabilitiesEntity>()
|
||||
}
|
||||
homeServerCapabilitiesEntity = realm.where<HomeServerCapabilitiesEntity>().findFirst()!!
|
||||
}
|
||||
|
||||
return homeServerCapabilitiesEntity
|
||||
return get(realm) ?: realm.createObject()
|
||||
}
|
||||
|
|
|
@ -56,16 +56,15 @@ internal class DefaultGetHomeServerCapabilitiesTask @Inject constructor(
|
|||
}
|
||||
|
||||
|
||||
private fun insertInDb(getUploadCapabilitiesResult: GetUploadCapabilitiesResult) {
|
||||
monarchy
|
||||
.writeAsync { realm ->
|
||||
val homeServerCapabilitiesEntity = HomeServerCapabilitiesEntity.getOrCreate(realm)
|
||||
private suspend fun insertInDb(getUploadCapabilitiesResult: GetUploadCapabilitiesResult) {
|
||||
monarchy.awaitTransaction { realm ->
|
||||
val homeServerCapabilitiesEntity = HomeServerCapabilitiesEntity.getOrCreate(realm)
|
||||
|
||||
homeServerCapabilitiesEntity.maxUploadFileSize = getUploadCapabilitiesResult.maxUploadSize
|
||||
?: HomeServerCapabilities.MAX_UPLOAD_FILE_SIZE_UNKNOWN
|
||||
homeServerCapabilitiesEntity.maxUploadFileSize = getUploadCapabilitiesResult.maxUploadSize
|
||||
?: HomeServerCapabilities.MAX_UPLOAD_FILE_SIZE_UNKNOWN
|
||||
|
||||
homeServerCapabilitiesEntity.lastUpdatedTimestamp = Date().time
|
||||
}
|
||||
homeServerCapabilitiesEntity.lastUpdatedTimestamp = Date().time
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
|
|
@ -21,24 +21,18 @@ import im.vector.matrix.android.api.session.homeserver.HomeServerCapabilities
|
|||
import im.vector.matrix.android.api.session.homeserver.HomeServerCapabilitiesService
|
||||
import im.vector.matrix.android.internal.database.mapper.HomeServerCapabilitiesMapper
|
||||
import im.vector.matrix.android.internal.database.model.HomeServerCapabilitiesEntity
|
||||
import im.vector.matrix.android.internal.database.query.getOrCreate
|
||||
import im.vector.matrix.android.internal.database.query.get
|
||||
import io.realm.Realm
|
||||
import javax.inject.Inject
|
||||
|
||||
internal class DefaultHomeServerCapabilitiesService @Inject constructor(private val monarchy: Monarchy) : HomeServerCapabilitiesService {
|
||||
|
||||
override fun getHomeServerCapabilities(): HomeServerCapabilities {
|
||||
var entity: HomeServerCapabilitiesEntity? = null
|
||||
monarchy.doWithRealm { realm ->
|
||||
entity = HomeServerCapabilitiesEntity.getOrCreate(realm)
|
||||
}
|
||||
|
||||
return with(entity) {
|
||||
if (this != null) {
|
||||
HomeServerCapabilitiesMapper.map(this)
|
||||
} else {
|
||||
// Should not happen
|
||||
HomeServerCapabilities(HomeServerCapabilities.MAX_UPLOAD_FILE_SIZE_UNKNOWN)
|
||||
return Realm.getInstance(monarchy.realmConfiguration).use { realm ->
|
||||
HomeServerCapabilitiesEntity.get(realm)?.let {
|
||||
HomeServerCapabilitiesMapper.map(it)
|
||||
}
|
||||
}
|
||||
?: HomeServerCapabilities()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -91,8 +91,6 @@ abstract class AbsMessageItem<H : AbsMessageItem.Holder> : BaseEventItem<H>() {
|
|||
holder.timeView.text = attributes.informationData.time
|
||||
holder.memberNameView.text = attributes.informationData.memberName
|
||||
attributes.avatarRenderer.render(attributes.informationData.avatarUrl, attributes.informationData.senderId, attributes.informationData.memberName?.toString(), holder.avatarImageView)
|
||||
holder.view.setOnClickListener(attributes.itemClickListener)
|
||||
holder.view.setOnLongClickListener(attributes.itemLongClickListener)
|
||||
holder.avatarImageView.setOnLongClickListener(attributes.itemLongClickListener)
|
||||
holder.memberNameView.setOnLongClickListener(attributes.itemLongClickListener)
|
||||
} else {
|
||||
|
@ -101,11 +99,12 @@ abstract class AbsMessageItem<H : AbsMessageItem.Holder> : BaseEventItem<H>() {
|
|||
holder.avatarImageView.visibility = View.GONE
|
||||
holder.memberNameView.visibility = View.GONE
|
||||
holder.timeView.visibility = View.GONE
|
||||
holder.view.setOnClickListener(null)
|
||||
holder.view.setOnLongClickListener(null)
|
||||
holder.avatarImageView.setOnLongClickListener(null)
|
||||
holder.memberNameView.setOnLongClickListener(null)
|
||||
}
|
||||
holder.view.setOnClickListener(attributes.itemClickListener)
|
||||
holder.view.setOnLongClickListener(attributes.itemLongClickListener)
|
||||
|
||||
holder.readReceiptsView.render(attributes.informationData.readReceipts, attributes.avatarRenderer, _readReceiptsClickListener)
|
||||
holder.readMarkerView.bindView(
|
||||
attributes.informationData.eventId,
|
||||
|
|
Loading…
Reference in a new issue