Skip to content

Commit db35f5c

Browse files
committed
Merge branch 'release/1.5.4' into main
2 parents f6411d6 + 86f7099 commit db35f5c

File tree

555 files changed

+13980
-2765
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

555 files changed

+13980
-2765
lines changed

.github/ISSUE_TEMPLATE/enhancement.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ body:
55
- type: markdown
66
attributes:
77
value: |
8-
Thank you for taking the time to propose a new feature or make a suggestion.
8+
Thank you for taking the time to propose an enhancement to an existing feature. If you would like to propose a new feature or a major cross-platform change, please [start a discussion here](https://github.com/vector-im/element-meta/discussions/new?category=ideas).
99
- type: textarea
1010
id: usecase
1111
attributes:

.github/ISSUE_TEMPLATE/release.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ body:
2020
- [ ] Check the update of the store descriptions (using Google Translate if necessary) to ensure that the changes are acceptable to be published to the stores.
2121
- [ ] While Weblate is locked, and after the PR from Weblate has been merged, handle all the TODOs in the main `strings.xml` file
2222
- [ ] Run the script `./tools/release/pushPlayStoreMetaData.sh`. You can check in the GooglePlay console the Activity log to check the effect.
23-
2423
- [ ] Ensure all [the required PRs](https://github.com/vector-im/element-android/pulls?q=is%3Aopen+is%3Apr+label%3AZ-NextRelease) have been merged
2524
2625
### Do the release
@@ -32,7 +31,6 @@ body:
3231
- [ ] Run the integration test, and especially `UiAllScreensSanityTest.allScreensTest()`
3332
- [ ] Create an account on matrix.org and do some smoke tests that the sanity test does not cover like: 1-1 call, 1-1 video call, Jitsi call for instance
3433
- [ ] Run towncrier: `towncrier build --version v1.2.3 --draft` (remove `--draft` do write the file CHANGES.md)
35-
- [ ] Check that the folder `changelog.d` is empty. It can happen that some remaining files stay here
3634
- [ ] Check the file CHANGES.md consistency. It's possible to reorder items (most important changes first) or change their section if relevant. Also an opportunity to fix some typo, or rewrite things
3735
- [ ] Add file for fastlane under ./fastlane/metadata/android/en-US/changelogs
3836
- [ ] (optional) Push the branch and start a draft PR (will not be merged), to check that the CI is happy with all the changes.

.github/workflows/post-pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ jobs:
9494
needs:
9595
- should-i-run
9696
- ui-tests
97-
if: always() && (needs.should-i-run.result == 'success' ) && ((needs.codecov-units.result != 'success' ) || (needs.ui-tests.result != 'success') || (needs.integration-tests.result != 'success'))
97+
if: always() && (needs.should-i-run.result == 'success' ) && (needs.ui-tests.result != 'success')
9898
# No concurrency required, runs every time on a schedule.
9999
steps:
100100
- uses: michaelkaye/matrix-hookshot-action@v1.0.0

CHANGES.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,64 @@
1+
Changes in Element v1.5.4 (2022-10-19)
2+
======================================
3+
4+
Features ✨
5+
----------
6+
- Add WYSIWYG editor, under a lab flag. ([#7288](https://github.com/vector-im/element-android/issues/7288))
7+
- New Device management, can be enabled in the labs settings.
8+
- Voice broadcast can be enabled in the labs settings (recording is possible only on Android 10 and up).
9+
10+
Bugfixes 🐛
11+
----------
12+
- Fix wrong mic button direction to cancel on RTL languages ([#5968](https://github.com/vector-im/element-android/issues/5968))
13+
- Handle properly when getUser returns null - prefer using getUserOrDefault ([#7372](https://github.com/vector-im/element-android/issues/7372))
14+
- [Device Management] Long session names not handled well ([#7310](https://github.com/vector-im/element-android/issues/7310))
15+
- Fix editing formatted messages with plain text editor ([#7359](https://github.com/vector-im/element-android/issues/7359))
16+
17+
In development 🚧
18+
----------------
19+
- [Device Management] Save "matrix_client_information" events on login/registration ([#7257](https://github.com/vector-im/element-android/issues/7257))
20+
- [Device management] Add lab flag for the feature ([#7336](https://github.com/vector-im/element-android/issues/7336))
21+
- [Device management] Add lab flag for matrix client info account data event ([#7344](https://github.com/vector-im/element-android/issues/7344))
22+
- [Device Management] Redirect to the new screen everywhere when lab flag is on ([#7374](https://github.com/vector-im/element-android/issues/7374))
23+
- [Device Management] Show correct device type icons ([#7277](https://github.com/vector-im/element-android/issues/7277))
24+
- [Device Management] Render extended device info ([#7294](https://github.com/vector-im/element-android/issues/7294))
25+
- [Device management] Improve the parsing for OS of Desktop/Web sessions ([#7321](https://github.com/vector-im/element-android/issues/7321))
26+
- [Device management] Hide the IP address and last activity date on current session ([#7324](https://github.com/vector-im/element-android/issues/7324))
27+
- [Device management] Update the unknown verification status icon ([#7327](https://github.com/vector-im/element-android/issues/7327))
28+
- [Voice Broadcast] Add the "io.element.voice_broadcast_info" state event with a minimalist timeline widget ([#7273](https://github.com/vector-im/element-android/issues/7273))
29+
- [Voice Broadcast] Aggregate state events in the timeline ([#7283](https://github.com/vector-im/element-android/issues/7283))
30+
- [Voice Broadcast] Record and send non aggregated voice messages to the room ([#7363](https://github.com/vector-im/element-android/issues/7363))
31+
- [Voice Broadcast] Start listening to a voice broadcast ([#7387](https://github.com/vector-im/element-android/issues/7387))
32+
- [Voice Broadcast] Enable the feature (behind a lab flag and only for Android 10 and up) ([#7393](https://github.com/vector-im/element-android/issues/7393))
33+
- [Voice Broadcast] Add additional data in events ([#7397](https://github.com/vector-im/element-android/issues/7397))
34+
- Implements MSC3881: Parses `enabled` and `device_id` fields from updated Pusher API ([#7217](https://github.com/vector-im/element-android/issues/7217))
35+
- Adds pusher toggle setting to device manager v2 ([#7261](https://github.com/vector-im/element-android/issues/7261))
36+
- Implement QR Code Login UI ([#7338](https://github.com/vector-im/element-android/issues/7338))
37+
- Implements client-side of local notification settings event ([#7300](https://github.com/vector-im/element-android/issues/7300))
38+
- Links "Enable Notifications for this session" setting to enabled value in pusher ([#7281](https://github.com/vector-im/element-android/issues/7281))
39+
40+
SDK API changes ⚠️
41+
------------------
42+
- Stop using `original_event` field from `/relations` endpoint ([#7282](https://github.com/vector-im/element-android/issues/7282))
43+
- Add `formattedText` or similar optional parameters in several methods:
44+
* RelationService:
45+
* editTextMessage
46+
* editReply
47+
* replyToMessage
48+
* SendService:
49+
* sendQuotedTextMessage
50+
This allows us to send any HTML formatted text message without needing to rely on automatic Markdown > HTML translation. All these new parameters have a `null` value by default, so previous calls to these API methods remain compatible. ([#7288](https://github.com/vector-im/element-android/issues/7288))
51+
- Add support for `m.login.token` auth during QR code based sign in ([#7358](https://github.com/vector-im/element-android/issues/7358))
52+
- Allow getting the formatted or plain text body of a message for the fun `TimelineEvent.getTextEditableContent()`. ([#7359](https://github.com/vector-im/element-android/issues/7359))
53+
54+
Other changes
55+
-------------
56+
- Refactor TimelineFragment, split it into MessageComposerFragment and VoiceRecorderFragment. ([#7285](https://github.com/vector-im/element-android/issues/7285))
57+
- Dependency to arrow has been removed. Please use `org.matrix.android.sdk.api.util.Optional` instead. ([#7335](https://github.com/vector-im/element-android/issues/7335))
58+
- Update WYSIWYG editor designs. ([#7354](https://github.com/vector-im/element-android/issues/7354))
59+
- Update WYSIWYG library to v0.2.1. ([#7384](https://github.com/vector-im/element-android/issues/7384))
60+
61+
162
Changes in Element v1.5.2 (2022-10-05)
263
======================================
364

build.gradle

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@ buildscript {
2828
classpath 'com.google.gms:google-services:4.3.14'
2929
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.4.0.2513'
3030
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
31-
classpath "com.likethesalad.android:stem-plugin:2.2.2"
31+
classpath "com.likethesalad.android:stem-plugin:2.2.3"
3232
classpath 'org.owasp:dependency-check-gradle:7.2.1'
33-
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.7.10"
33+
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.7.20"
3434
classpath "org.jetbrains.kotlinx:kotlinx-knit:0.4.0"
3535
classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.3'
36-
classpath 'app.cash.paparazzi:paparazzi-gradle-plugin:1.0.0'
36+
classpath 'app.cash.paparazzi:paparazzi-gradle-plugin:1.1.0'
3737
// NOTE: Do not place your application dependencies here; they belong
3838
// in the individual module build.gradle files
3939
}
@@ -44,6 +44,8 @@ plugins {
4444
id "org.jlleitschuh.gradle.ktlint" version "11.0.0"
4545
// Detekt
4646
id "io.gitlab.arturbosch.detekt" version "1.21.0"
47+
// Ksp
48+
id "com.google.devtools.ksp" version "1.7.20-1.0.6"
4749

4850
// Dependency Analysis
4951
id 'com.autonomousapps.dependency-analysis' version "1.13.1"
@@ -146,6 +148,9 @@ allprojects {
146148
// To have XML report for Danger
147149
reporter(org.jlleitschuh.gradle.ktlint.reporter.ReporterType.CHECKSTYLE)
148150
}
151+
filter {
152+
exclude { element -> element.file.path.contains("$buildDir/generated/") }
153+
}
149154
disabledRules = [
150155
// TODO Re-enable these 4 rules after reformatting project
151156
"indent",
@@ -327,3 +332,35 @@ ext.initScreenshotTests = { project ->
327332
}
328333
}
329334
}
335+
336+
// Workaround to have KSP generated Kotlin code available in the IDE (for code completion)
337+
// Ref: https://github.com/airbnb/epoxy/releases/tag/5.0.0beta02
338+
subprojects { project ->
339+
afterEvaluate {
340+
if (project.hasProperty("android")) {
341+
android {
342+
if (it instanceof com.android.build.gradle.LibraryExtension) {
343+
libraryVariants.all { variant ->
344+
def outputFolder = new File("build/generated/ksp/${variant.name}/kotlin")
345+
if (outputFolder.exists()) {
346+
variant.addJavaSourceFoldersToModel(outputFolder)
347+
android.sourceSets.getAt(variant.name).java {
348+
srcDir(outputFolder)
349+
}
350+
}
351+
}
352+
} else if (it instanceof com.android.build.gradle.AppExtension) {
353+
applicationVariants.all { variant ->
354+
def outputFolder = new File("build/generated/ksp/${variant.name}/kotlin")
355+
if (outputFolder.exists()) {
356+
variant.addJavaSourceFoldersToModel(outputFolder)
357+
android.sourceSets.getAt(variant.name).java {
358+
srcDir(outputFolder)
359+
}
360+
}
361+
}
362+
}
363+
}
364+
}
365+
}
366+
}

dependencies.gradle

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,34 @@
11
ext.versions = [
22

33
'minSdk' : 21,
4-
'compileSdk' : 32,
5-
'targetSdk' : 32,
4+
'compileSdk' : 33,
5+
'targetSdk' : 33,
66
'sourceCompat' : JavaVersion.VERSION_11,
77
'targetCompat' : JavaVersion.VERSION_11,
88
]
99

10-
def gradle = "7.2.2"
10+
def gradle = "7.3.1"
1111
// Ref: https://kotlinlang.org/releases.html
1212
def kotlin = "1.7.20"
1313
def kotlinCoroutines = "1.6.4"
1414
def dagger = "2.44"
1515
def appDistribution = "16.0.0-beta04"
1616
def retrofit = "2.9.0"
17-
def arrow = "0.8.2"
1817
def markwon = "4.6.2"
1918
def moshi = "1.14.0"
2019
def lifecycle = "2.5.1"
2120
def flowBinding = "1.2.0"
22-
def flipper = "0.164.0"
23-
def epoxy = "4.6.2"
24-
def mavericks = "2.7.0"
25-
def glide = "4.14.1"
21+
def flipper = "0.171.1"
22+
def epoxy = "5.0.0"
23+
def mavericks = "3.0.1"
24+
def glide = "4.14.2"
2625
def bigImageViewer = "1.8.1"
2726
def jjwt = "0.11.5"
2827
// Temporary version to unblock #6929. Once 0.16.0 is released we should use it, and revert
2928
// the whole commit which set version 0.16.0-SNAPSHOT
3029
def vanniktechEmoji = "0.16.0-SNAPSHOT"
3130

32-
def sentry = "6.4.1"
31+
def sentry = "6.4.3"
3332

3433
def fragment = "1.5.3"
3534

@@ -51,12 +50,12 @@ ext.libs = [
5150
'coroutinesTest' : "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutines"
5251
],
5352
androidx : [
54-
'activity' : "androidx.activity:activity:1.5.1",
53+
'activity' : "androidx.activity:activity-ktx:1.6.0",
5554
'appCompat' : "androidx.appcompat:appcompat:1.5.1",
5655
'biometric' : "androidx.biometric:biometric:1.1.0",
57-
'core' : "androidx.core:core-ktx:1.8.0",
56+
'core' : "androidx.core:core-ktx:1.9.0",
5857
'recyclerview' : "androidx.recyclerview:recyclerview:1.2.1",
59-
'exifinterface' : "androidx.exifinterface:exifinterface:1.3.3",
58+
'exifinterface' : "androidx.exifinterface:exifinterface:1.3.4",
6059
'fragmentKtx' : "androidx.fragment:fragment-ktx:$fragment",
6160
'fragmentTesting' : "androidx.fragment:fragment-testing:$fragment",
6261
'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.4",
@@ -87,7 +86,7 @@ ext.libs = [
8786
'appdistributionApi' : "com.google.firebase:firebase-appdistribution-api-ktx:$appDistribution",
8887
'appdistribution' : "com.google.firebase:firebase-appdistribution:$appDistribution",
8988
// Phone number https://github.com/google/libphonenumber
90-
'phonenumber' : "com.googlecode.libphonenumber:libphonenumber:8.12.56"
89+
'phonenumber' : "com.googlecode.libphonenumber:libphonenumber:8.12.57"
9190
],
9291
dagger : [
9392
'dagger' : "com.google.dagger:dagger:$dagger",
@@ -102,6 +101,7 @@ ext.libs = [
102101
],
103102
element : [
104103
'opusencoder' : "io.element.android:opusencoder:1.1.0",
104+
'wysiwyg' : "io.element.android:wysiwyg:0.2.1"
105105
],
106106
squareup : [
107107
'moshi' : "com.squareup.moshi:moshi:$moshi",
@@ -114,10 +114,6 @@ ext.libs = [
114114
rx : [
115115
'rxKotlin' : "io.reactivex.rxjava2:rxkotlin:2.4.0"
116116
],
117-
arrow : [
118-
'core' : "io.arrow-kt:arrow-core:$arrow",
119-
'instances' : "io.arrow-kt:arrow-instances-core:$arrow"
120-
],
121117
markwon : [
122118
'core' : "io.noties.markwon:core:$markwon",
123119
'extLatex' : "io.noties.markwon:ext-latex:$markwon",

dependencies_groups.gradle

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ ext.groups = [
8484
'com.google',
8585
'com.google.android',
8686
'com.google.api.grpc',
87+
'com.google.auto',
8788
'com.google.auto.service',
8889
'com.google.auto.value',
8990
'com.google.code.findbugs',
@@ -101,6 +102,7 @@ ext.groups = [
101102
'com.googlecode.json-simple',
102103
'com.googlecode.libphonenumber',
103104
'com.ibm.icu',
105+
'com.intellij',
104106
'com.jakewharton.android.repackaged',
105107
'com.jakewharton.timber',
106108
'com.kgurgul.flipper',
@@ -132,7 +134,6 @@ ext.groups = [
132134
'commons-io',
133135
'commons-logging',
134136
'info.picocli',
135-
'io.arrow-kt',
136137
'io.element.android',
137138
'io.github.davidburstrom.contester',
138139
'io.github.detekt.sarif4k',
@@ -146,6 +147,7 @@ ext.groups = [
146147
'io.netty',
147148
'io.noties.markwon',
148149
'io.opencensus',
150+
'io.perfmark',
149151
'io.reactivex.rxjava2',
150152
'io.realm',
151153
'io.sentry',
@@ -176,6 +178,7 @@ ext.groups = [
176178
'org.apache.httpcomponents',
177179
'org.apache.sanselan',
178180
'org.bouncycastle',
181+
'org.ccil.cowan.tagsoup',
179182
'org.checkerframework',
180183
'org.codehaus',
181184
'org.codehaus.groovy',

docs/unit_testing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ class ViewModelTest {
314314
private var initialState = ViewState.Empty
315315

316316
@get:Rule
317-
val mvrxTestRule = MvRxTestRule(testDispatcher = UnconfinedTestDispatcher())
317+
val mavericksTestRule = MavericksTestRule(testDispatcher = UnconfinedTestDispatcher())
318318

319319
@Test
320320
fun `when handling MyAction, then emits Loading and Content states`() {
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Hlavní změny v této verzi: Odložené přímé zprávy jsou ve výchozím nastavení povoleny.
2+
Úplný seznam změn: https://github.com/vector-im/element-android/releases
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Hlavní změny v této verzi: Nové rozvržení aplikace je povoleno ve výchozím nastavení!
2+
Úplný seznam změn: https://github.com/vector-im/element-android/releases

0 commit comments

Comments
 (0)