Merge branch 'hotfix/v1.1.6'
This commit is contained in:
commit
e5bf87c09f
|
@ -1,4 +1,11 @@
|
||||||
Changes in Element 1.1.5 (2021-XX-XX)
|
Changes in Element 1.1.6 (2021-04-16)
|
||||||
|
===================================================
|
||||||
|
|
||||||
|
Bugfix 🐛:
|
||||||
|
- Fix crash on the timeline
|
||||||
|
- App crashes on "troubleshoot notifications" button (#3187)
|
||||||
|
|
||||||
|
Changes in Element 1.1.5 (2021-04-15)
|
||||||
===================================================
|
===================================================
|
||||||
|
|
||||||
Bugfix 🐛:
|
Bugfix 🐛:
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Main changes in this version: hot fixes for 1.1.5
|
||||||
|
Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.1.6
|
|
@ -14,7 +14,7 @@ kapt {
|
||||||
// Note: 2 digits max for each value
|
// Note: 2 digits max for each value
|
||||||
ext.versionMajor = 1
|
ext.versionMajor = 1
|
||||||
ext.versionMinor = 1
|
ext.versionMinor = 1
|
||||||
ext.versionPatch = 5
|
ext.versionPatch = 6
|
||||||
|
|
||||||
static def getGitTimestamp() {
|
static def getGitTimestamp() {
|
||||||
def cmd = 'git show -s --format=%ct'
|
def cmd = 'git show -s --format=%ct'
|
||||||
|
|
|
@ -24,9 +24,11 @@ import im.vector.app.core.pushers.PushersManager
|
||||||
import im.vector.app.core.resources.StringProvider
|
import im.vector.app.core.resources.StringProvider
|
||||||
import im.vector.app.features.settings.troubleshoot.TroubleshootTest
|
import im.vector.app.features.settings.troubleshoot.TroubleshootTest
|
||||||
import im.vector.app.push.fcm.FcmHelper
|
import im.vector.app.push.fcm.FcmHelper
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
import org.matrix.android.sdk.api.session.pushers.PushGatewayFailure
|
import org.matrix.android.sdk.api.session.pushers.PushGatewayFailure
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -47,22 +49,26 @@ class TestPushFromPushGateway @Inject constructor(private val context: AppCompat
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
action = GlobalScope.launch {
|
action = GlobalScope.launch {
|
||||||
status = runCatching { pushersManager.testPush(fcmToken) }
|
val result = runCatching { pushersManager.testPush(fcmToken) }
|
||||||
.fold(
|
|
||||||
{
|
withContext(Dispatchers.Main) {
|
||||||
// Wait for the push to be received
|
status = result
|
||||||
description = stringProvider.getString(R.string.settings_troubleshoot_test_push_loop_waiting_for_push)
|
.fold(
|
||||||
TestStatus.RUNNING
|
{
|
||||||
},
|
// Wait for the push to be received
|
||||||
{
|
description = stringProvider.getString(R.string.settings_troubleshoot_test_push_loop_waiting_for_push)
|
||||||
description = if (it is PushGatewayFailure.PusherRejected) {
|
TestStatus.RUNNING
|
||||||
stringProvider.getString(R.string.settings_troubleshoot_test_push_loop_failed)
|
},
|
||||||
} else {
|
{
|
||||||
errorFormatter.toHumanReadable(it)
|
description = if (it is PushGatewayFailure.PusherRejected) {
|
||||||
|
stringProvider.getString(R.string.settings_troubleshoot_test_push_loop_failed)
|
||||||
|
} else {
|
||||||
|
errorFormatter.toHumanReadable(it)
|
||||||
|
}
|
||||||
|
TestStatus.FAILED
|
||||||
}
|
}
|
||||||
TestStatus.FAILED
|
)
|
||||||
}
|
}
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -178,10 +178,7 @@ class RoomDetailViewModel @AssistedInject constructor(
|
||||||
updateShowDialerOptionState()
|
updateShowDialerOptionState()
|
||||||
room.getRoomSummaryLive()
|
room.getRoomSummaryLive()
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
try {
|
tryOrNull { room.markAsRead(ReadService.MarkAsReadParams.READ_RECEIPT) }
|
||||||
room.markAsRead(ReadService.MarkAsReadParams.READ_RECEIPT)
|
|
||||||
} catch (_: Exception) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// Inform the SDK that the room is displayed
|
// Inform the SDK that the room is displayed
|
||||||
session.onRoomDisplayed(initialState.roomId)
|
session.onRoomDisplayed(initialState.roomId)
|
||||||
|
@ -546,10 +543,7 @@ class RoomDetailViewModel @AssistedInject constructor(
|
||||||
if (trackUnreadMessages.getAndSet(false)) {
|
if (trackUnreadMessages.getAndSet(false)) {
|
||||||
mostRecentDisplayedEvent?.root?.eventId?.also {
|
mostRecentDisplayedEvent?.root?.eventId?.also {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
try {
|
tryOrNull { room.setReadMarker(it) }
|
||||||
room.setReadMarker(it)
|
|
||||||
} catch (_: Exception) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mostRecentDisplayedEvent = null
|
mostRecentDisplayedEvent = null
|
||||||
|
@ -1254,7 +1248,7 @@ class RoomDetailViewModel @AssistedInject constructor(
|
||||||
}
|
}
|
||||||
bufferedMostRecentDisplayedEvent.root.eventId?.let { eventId ->
|
bufferedMostRecentDisplayedEvent.root.eventId?.let { eventId ->
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
room.setReadReceipt(eventId)
|
tryOrNull { room.setReadReceipt(eventId) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -1263,10 +1257,7 @@ class RoomDetailViewModel @AssistedInject constructor(
|
||||||
|
|
||||||
private fun handleMarkAllAsRead() {
|
private fun handleMarkAllAsRead() {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
try {
|
tryOrNull { room.markAsRead(ReadService.MarkAsReadParams.BOTH) }
|
||||||
room.markAsRead(ReadService.MarkAsReadParams.BOTH)
|
|
||||||
} catch (_: Exception) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ import im.vector.app.core.di.ActiveSessionHolder
|
||||||
import im.vector.app.core.extensions.vectorComponent
|
import im.vector.app.core.extensions.vectorComponent
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import org.matrix.android.sdk.api.extensions.tryOrNull
|
||||||
import org.matrix.android.sdk.api.session.Session
|
import org.matrix.android.sdk.api.session.Session
|
||||||
import org.matrix.android.sdk.api.session.room.Room
|
import org.matrix.android.sdk.api.session.room.Room
|
||||||
import org.matrix.android.sdk.api.session.room.read.ReadService
|
import org.matrix.android.sdk.api.session.room.read.ReadService
|
||||||
|
@ -78,7 +79,7 @@ class NotificationBroadcastReceiver : BroadcastReceiver() {
|
||||||
val room = session.getRoom(roomId)
|
val room = session.getRoom(roomId)
|
||||||
if (room != null) {
|
if (room != null) {
|
||||||
GlobalScope.launch {
|
GlobalScope.launch {
|
||||||
room.join()
|
tryOrNull { room.join() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -89,7 +90,7 @@ class NotificationBroadcastReceiver : BroadcastReceiver() {
|
||||||
val room = session.getRoom(roomId)
|
val room = session.getRoom(roomId)
|
||||||
if (room != null) {
|
if (room != null) {
|
||||||
GlobalScope.launch {
|
GlobalScope.launch {
|
||||||
room.leave()
|
tryOrNull { room.leave() }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -100,10 +101,7 @@ class NotificationBroadcastReceiver : BroadcastReceiver() {
|
||||||
val room = session.getRoom(roomId)
|
val room = session.getRoom(roomId)
|
||||||
if (room != null) {
|
if (room != null) {
|
||||||
GlobalScope.launch {
|
GlobalScope.launch {
|
||||||
try {
|
tryOrNull { room.markAsRead(ReadService.MarkAsReadParams.READ_RECEIPT) }
|
||||||
room.markAsRead(ReadService.MarkAsReadParams.READ_RECEIPT)
|
|
||||||
} catch (_: Exception) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,8 +20,11 @@ import androidx.activity.result.ActivityResultLauncher
|
||||||
import im.vector.app.R
|
import im.vector.app.R
|
||||||
import im.vector.app.core.di.ActiveSessionHolder
|
import im.vector.app.core.di.ActiveSessionHolder
|
||||||
import im.vector.app.core.resources.StringProvider
|
import im.vector.app.core.resources.StringProvider
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
|
import org.matrix.android.sdk.api.extensions.tryOrNull
|
||||||
import org.matrix.android.sdk.api.pushrules.RuleIds
|
import org.matrix.android.sdk.api.pushrules.RuleIds
|
||||||
import org.matrix.android.sdk.api.pushrules.RuleKind
|
import org.matrix.android.sdk.api.pushrules.RuleKind
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
@ -50,10 +53,12 @@ class TestAccountSettings @Inject constructor(private val stringProvider: String
|
||||||
if (manager?.diagStatus == TestStatus.RUNNING) return // wait before all is finished
|
if (manager?.diagStatus == TestStatus.RUNNING) return // wait before all is finished
|
||||||
|
|
||||||
GlobalScope.launch {
|
GlobalScope.launch {
|
||||||
runCatching {
|
tryOrNull {
|
||||||
session.updatePushRuleEnableStatus(RuleKind.OVERRIDE, defaultRule, !defaultRule.enabled)
|
session.updatePushRuleEnableStatus(RuleKind.OVERRIDE, defaultRule, !defaultRule.enabled)
|
||||||
}
|
}
|
||||||
manager?.retry(activityResultLauncher)
|
withContext(Dispatchers.Main) {
|
||||||
|
manager?.retry(activityResultLauncher)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue