Merge branch 'develop' into feature/fga/fix_timeline_read_marker

This commit is contained in:
ganfra 2021-05-10 17:33:52 +02:00 committed by GitHub
commit 525cd3edd7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 19 additions and 11 deletions

View File

@ -25,6 +25,7 @@ Bugfix 🐛:
- Sent video does not contains duration (#3272) - Sent video does not contains duration (#3272)
- Properly clean the back stack if the user cancel registration when waiting for email validation - Properly clean the back stack if the user cancel registration when waiting for email validation
- Fix read marker visibility/position when filtering some events - Fix read marker visibility/position when filtering some events
- Fix user invitation in case of restricted profile api (#3306)
Translations 🗣: Translations 🗣:
- -
@ -35,6 +36,7 @@ SDK API changes ⚠️:
Build 🧱: Build 🧱:
- Upgrade to gradle 7 - Upgrade to gradle 7
- https://github.com/Piasy/BigImageViewer is now hosted on mavenCentral() - https://github.com/Piasy/BigImageViewer is now hosted on mavenCentral()
- Upgrade Realm to version 10.4.0
Test: Test:
- -

View File

@ -6,13 +6,10 @@ apply plugin: 'realm-android'
buildscript { buildscript {
repositories { repositories {
// mavenCentral() mavenCentral()
//noinspection GrDeprecatedAPIUsage
jcenter()
} }
dependencies { dependencies {
// Stick to this version until https://github.com/realm/realm-java/issues/7402 is fixed classpath "io.realm:realm-gradle-plugin:10.4.0"
classpath "io.realm:realm-gradle-plugin:10.3.1"
} }
} }

View File

@ -66,6 +66,7 @@ interface ProfileService {
/** /**
* Get the combined profile information for this user. * Get the combined profile information for this user.
* This may return keys which are not limited to displayname or avatar_url. * This may return keys which are not limited to displayname or avatar_url.
* If server is configured as limit_profile_requests_to_users_who_share_rooms: true then response can be HTTP 403.
* @param userId the userId param to look for * @param userId the userId param to look for
* *
*/ */

View File

@ -144,10 +144,6 @@ class RealmSessionStoreMigration @Inject constructor() : RealmMigration {
Timber.d("Step 7 -> 8") Timber.d("Step 7 -> 8")
val editionOfEventSchema = realm.schema.create("EditionOfEvent") val editionOfEventSchema = realm.schema.create("EditionOfEvent")
.apply {
// setEmbedded does not return `this`...
isEmbedded = true
}
.addField(EditionOfEventFields.CONTENT, String::class.java) .addField(EditionOfEventFields.CONTENT, String::class.java)
.addField(EditionOfEventFields.EVENT_ID, String::class.java) .addField(EditionOfEventFields.EVENT_ID, String::class.java)
.setRequired(EditionOfEventFields.EVENT_ID, true) .setRequired(EditionOfEventFields.EVENT_ID, true)
@ -162,6 +158,10 @@ class RealmSessionStoreMigration @Inject constructor() : RealmMigration {
?.removeField("lastEditTs") ?.removeField("lastEditTs")
?.removeField("sourceLocalEchoEvents") ?.removeField("sourceLocalEchoEvents")
?.addRealmListField(EditAggregatedSummaryEntityFields.EDITIONS.`$`, editionOfEventSchema) ?.addRealmListField(EditAggregatedSummaryEntityFields.EDITIONS.`$`, editionOfEventSchema)
// This has to be done once a parent use the model as a child
// See https://github.com/realm/realm-java/issues/7402
editionOfEventSchema.isEmbedded = true
} }
private fun migrateTo9(realm: DynamicRealm) { private fun migrateTo9(realm: DynamicRealm) {

View File

@ -33,6 +33,7 @@ internal interface ProfileAPI {
* Get the combined profile information for this user. * Get the combined profile information for this user.
* This API may be used to fetch the user's own profile information or other users; either locally or on remote homeservers. * This API may be used to fetch the user's own profile information or other users; either locally or on remote homeservers.
* This API may return keys which are not limited to displayname or avatar_url. * This API may return keys which are not limited to displayname or avatar_url.
* If server is configured as limit_profile_requests_to_users_who_share_rooms: true then response can be HTTP 403.
* @param userId the user id to fetch profile info * @param userId the user id to fetch profile info
*/ */
@GET(NetworkConstants.URI_API_PREFIX_PATH_R0 + "profile/{userId}") @GET(NetworkConstants.URI_API_PREFIX_PATH_R0 + "profile/{userId}")

View File

@ -33,7 +33,6 @@ import org.matrix.android.sdk.api.MatrixPatterns
import org.matrix.android.sdk.api.session.Session import org.matrix.android.sdk.api.session.Session
import org.matrix.android.sdk.api.session.profile.ProfileService import org.matrix.android.sdk.api.session.profile.ProfileService
import org.matrix.android.sdk.api.session.user.model.User import org.matrix.android.sdk.api.session.user.model.User
import org.matrix.android.sdk.api.util.Optional
import org.matrix.android.sdk.api.util.toMatrixItem import org.matrix.android.sdk.api.util.toMatrixItem
import org.matrix.android.sdk.api.util.toOptional import org.matrix.android.sdk.api.util.toOptional
import org.matrix.android.sdk.rx.rx import org.matrix.android.sdk.rx.rx
@ -137,7 +136,15 @@ class UserListViewModel @AssistedInject constructor(@Assisted initialState: User
avatarUrl = json[ProfileService.AVATAR_URL_KEY] as? String avatarUrl = json[ProfileService.AVATAR_URL_KEY] as? String
).toOptional() ).toOptional()
} }
.onErrorReturn { Optional.empty() } .onErrorReturn {
// Profile API can be restricted and doesn't have to return result.
// In this case allow inviting valid user ids.
User(
userId = search,
displayName = null,
avatarUrl = null
).toOptional()
}
Single.zip( Single.zip(
searchObservable, searchObservable,