Skip to content

Commit dffdcfe

Browse files
committed
Merge branch 'release/1.0.11'
2 parents bba167d + 7b969eb commit dffdcfe

File tree

363 files changed

+7835
-4008
lines changed

Some content is hidden

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

363 files changed

+7835
-4008
lines changed

AUTHORS.md

+12-7
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,33 @@ A full developer contributors list can be found [here](https://github.com/vector
44

55
Even if we try to be able to work on all the functionalities, we have more knowledge about what we have developed ourselves.
66

7-
## Benoit: Android team leader
7+
## [Benoit](https://github.com/bmarty): Android team leader
88

99
[@benoit.marty:matrix.org](https://matrix.to/#/@benoit.marty:matrix.org)
1010
- Android team leader and project leader, Android developer, GitHub community manager.
1111
- Specialist of the account creation, and many other fun features.
1212
- Reviewing and polishing developed features, code quality manager, PRs reviewer, GitHub community manager.
1313
- Release manager on the Play Store
1414

15-
## François: Software architect
15+
## [Ganfra](https://github.com/ganfra) (aka François): Software architect
1616

1717
[@ganfra:matrix.org](https://matrix.to/#/@ganfra:matrix.org)
1818
- Software architect, Android developer
1919
- First developer on the project.
2020
- Work mainly on the global architecture of the project.
2121
- Specialist of the timeline, and lots of other features.
2222

23-
## Valere: Product manager, Android developer
23+
## [Valere](https://github.com/BillCarsonFr): Product manager, Android developer
2424

2525
[@valere35:matrix.org](https://matrix.to/#/@valere35:matrix.org)
2626
- Product manager, Android developer
2727
- Specialist on the crypto implementation.
2828

29+
## [Onuray](https://github.com/onurays): Android developer
30+
31+
[@onurays:matrix.org](https://matrix.to/#/@onurays:matrix.org)
32+
- Android developer
33+
2934
# Other contributors
3035

3136
First of all, we thank all contributors who use Element and report problems on this GitHub project or via the integrated rageshake function.
@@ -34,7 +39,7 @@ We do not forget all translators, for their work of translating Element into man
3439

3540
Feel free to add your name below, when you contribute to the project!
3641

37-
Name | Matrix ID | GitHub
38-
--------|---------------------|--------------------------------------
39-
gjpower | @gjpower:matrix.org | [gjpower](https://github.com/gjpower)
40-
42+
Name | Matrix ID | GitHub
43+
----------|-----------------------------|--------------------------------------
44+
gjpower | @gjpower:matrix.org | [gjpower](https://github.com/gjpower)
45+
TR_SLimey | @tr_slimey:an-atom-in.space | [TR-SLimey](https://github.com/TR-SLimey)

CHANGES.md

+45
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,45 @@
1+
Changes in Element 1.0.11 (2020-11-27)
2+
===================================================
3+
4+
Features ✨:
5+
- Create DMs with users by scanning their QR code (#2025)
6+
- Add Invite friends quick invite actions (#2348)
7+
- Add friend by scanning QR code, show your code to friends (#2025)
8+
9+
Improvements 🙌:
10+
- New room creation tile with quick action (#2346)
11+
- Open an existing DM instead of creating a new one (#2319)
12+
- Use RoomMember instead of User in the context of a Room.
13+
- Ask for explicit user consent to send their contact details to the identity server (#2375)
14+
- Handle events of type "m.room.server_acl" (#890)
15+
- Room creation form: add advanced section to disable federation (#1314)
16+
- Move "Enable Encryption" from room setting screen to room profile screen (#2394)
17+
- Home empty screens quick design update (#2347)
18+
- Improve Invite user screen (seamless search for matrix ID)
19+
20+
Bugfix 🐛:
21+
- Fix crash on AttachmentViewer (#2365)
22+
- Exclude yourself when decorating rooms which are direct or don't have more than 2 users (#2370)
23+
- F-Droid version: ensure timeout of sync request can be more than 60 seconds (#2169)
24+
- Fix issue when restoring draft after sharing (#2287)
25+
- Fix issue when updating the avatar of a room (new avatar vanishing)
26+
- Discard change dialog displayed by mistake when avatar has been updated
27+
- Try to fix cropped image in timeline (#2126)
28+
- Registration: annoying error message scares every new user when they add an email (#2391)
29+
- Fix jitsi integration for those with non-vanilla dialler frameworks
30+
- Update profile has no effect if user is in zero rooms
31+
- Fix issues with matrix.to deep linking (#2349)
32+
33+
SDK API changes ⚠️:
34+
- AccountService now exposes suspendable function instead of using MatrixCallback (#2354).
35+
Note: We will incrementally migrate all the SDK API in a near future (#2449)
36+
37+
Test:
38+
- Add `allScreensTest` to cover all screens of the app
39+
40+
Other changes:
41+
- Upgrade Realm dependency to 10.0.0
42+
143
Changes in Element 1.0.10 (2020-11-04)
244
===================================================
345

@@ -1008,5 +1050,8 @@ SDK API changes ⚠️:
10081050
Build 🧱:
10091051
-
10101052

1053+
Test:
1054+
-
1055+
10111056
Other changes:
10121057
-
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
// TODO
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
Element és un nou tipus d'aplicació de missatgeria i col·laboració que:
2+
3+
1. Et dóna a tu el control per preservar la teva privadesa
4+
2. Et permet comunicar-te amb qualsevol persona de la xarxa Matrix i, fins i tot més enllà gràcies a integracions amb altres aplicacions com Slack
5+
3. Et protegeix de la publicitat, l'obtenció no desitjada de dades i dels navegadors amb accés controlat
6+
4. T'assegura a tu mitjançant l'encriptació d'extrem a extrem i amb signatures creuades per verificar els altres
7+
8+
Element és completament diferent a les altres aplicacions de missatgeria i col·laboració ja que és descentralitzat i de codi obert.
9+
10+
Element et deixa triar l'allotjament perquè disposis de privadesa, propietat i control de les teves dades i converses. Et dóna accés a una xarxa oberta perquè no et quedis únicament parlant amb els usuaris d'Element.
11+
12+
Element pot fer tot això ja que opera sobre Matrix - l'estàndard per a les comunicacions obertes i descentralitzades.
13+
14+
Element et dóna el control perquè et deixa escollir qui vols que allotgi les teves converses. Des de l'aplicació d'Element, pots triar l'allotjament de diferents maneres:
15+
16+
1. Crea un compte gratuït al servidor públic de matrix.org allotjat pels desenvolupadors de Matrix o tria'n un entre els milers de servidors públics creats per voluntaris
17+
2. Allotja tu mateix el teu compte en el teu propi servidor
18+
3. Registra el compte en un servidor personalitzat subscrivint-te a la plataforma d'Element Matrix Services (EMS)
19+
20+
<b>Per què escollir Element?</b>
21+
22+
<b>PROPIETAT DE LES TEVES DADES</b>: Tu decideixes a on desar les teves dades i missatges. Tu les controles i n'ets el propietari, no una mega-corporació que s'aprofita de les teves dades o les cedeix a tercers.
23+
24+
<b>MISSATGERIA I COL·LABORACIÓ OBERTA</b>: Pots parlar amb qualsevol que estigui a la xarxa Matrix, ja sigui amb Element o amb qualsevol altre aplicació Matrix, fins i tot encara que utilitzin sistemes de missatgeria diferents com Slack, IRC o XMPP.
25+
26+
<b>SUPER-SEGUR</b>: Encriptació d'extrem a extrem real (només qui està conversant pot desxifrar els missatges), i amb signatures creuades per a verificar els dispositius dels participants en les converses.
27+
28+
<b>COMUNICACIÓ COMPLETA</b>: Missatgeria, veu i video-trucades, compartició de fitxers, compartició de pantalla i un munt d'integracions, bots i ginys. Crea sales, comunitats, mantén-te en contacte i enllesteix el que et proposes.
29+
30+
<b>A TOT ARREU</b>: Mantingues el contacte des de qualsevol lloc on siguis, amb un historial de missatges totalment sincronitzat entre tots els teus dispositius i també a la web: https://app.element.io.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Xat i VoIP segurs i descentralitzats. Protegeix les teves dades de tercers.
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Element (anteriorment Riot.im)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
// TODO
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
This new version mainly contains user interface and user experience improvements. Now you can invite friends, and create DM very fast by scanning QR codes.
2+
Full changelog: https://github.com/vector-im/element-android/releases/tag/v1.0.11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
// TODO
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
Element es un nuevo tipo de aplicación de mensajería y colaboración que:
22

3-
1. Le da el control para preservar su privacidad
4-
2. Le permite comunicarse con cualquier persona en la red Matrix e incluso más allá al integrarse con aplicaciones como Slack.
5-
3. Te protege de la publicidad, la minería de datos y los jardines vallados.
6-
4. Lo protege a través del cifrado de un extremo a otro, con firma cruzada para verificar a otros
3+
1. Te da el control para preservar su privacidad
4+
2. Te permite comunicarse con cualquier persona en la red Matrix e incluso más allá al integrarse con aplicaciones como Slack
5+
3. Te protege de la publicidad, la minería de datos y los jardines vallados
6+
4. Te protege a través de encriptación de Extremo-a-Extremo, con firma cruzada para verificar a otros
77

88
Element es completamente diferente de otras aplicaciones de mensajería y colaboración porque es descentralizado y de código abierto.
99

10-
Element le permite autohospedarse, o elegir un host, para que tenga privacidad, propiedad y control de sus datos y conversaciones. Te da acceso a una red abierta; para que no se quede atascado hablando solo con otros usuarios de Element. Y es muy seguro.
10+
Element te permite tener su propio servidor privado, o elegir uno público, para que tenga privacidad, posesión, y control de sus datos y conversaciones. Te da acceso a una red abierta; para que no se quede atrapado hablando solo con otros usuarios de Element. Y es muy seguro.
1111

1212
Element puede hacer todo esto porque opera en Matrix, el estándar para la comunicación abierta y descentralizada.
1313

14-
Element te da el control permitiéndote elegir quién aloja tus conversaciones. Desde la aplicación Element, puede elegir hospedar de diferentes maneras:
14+
Element te da el control permitiéndote elegir quién aloja tus conversaciones. Desde la aplicación Element, puedes elegir hospedar de diferentes maneras:
1515

16-
1. Obtenga una cuenta gratuita en el servidor público de matrix.org alojado por los desarrolladores de Matrix, o elija entre miles de servidores públicos alojados por voluntarios
17-
2. Autohospede su cuenta ejecutando un servidor en su propio hardware
18-
3. Regístrese para obtener una cuenta en un servidor personalizado simplemente suscribiéndose a la plataforma de alojamiento de Element Matrix Services
16+
1. Obtén una cuenta gratuita en el servidor público de matrix.org alojado por los desarrolladores de Matrix, o elije entre miles de servidores públicos alojados por voluntarios
17+
2. Autohospeda tu cuenta con un servidor en tu propio hardware
18+
3. Regístrate para obtener una cuenta en un servidor personalizado simplemente suscribiéndote a la plataforma de alojamiento de Element Matrix Services
1919

2020
<b>¿Por qué elegir Element?</b>
2121

22-
<b>POSEE SUS DATOS</b>: Tú decides dónde guardar tus datos y mensajes. Usted es el propietario y lo controla, no algún MEGACORP que extraiga sus datos o acceso a terceros.
22+
<b>TOMA POSESIÓN DE TUS DATOS</b>: Tú decides dónde guardar tus datos y mensajes. Tú eres el propietario y quien lo controla, no alguna MEGACORP que extrae tu datos o da acceso a terceros.
2323

24-
<b>MENSAJERÍA ABIERTA Y COLABORACIÓN</b>: Puede chatear con cualquier otra persona en la red de Matrix, ya sea que estén usando Element u otra aplicación de Matrix, e incluso si están usando un sistema de mensajería diferente como Slack, IRC o XMPP.
24+
<b>MENSAJERÍA ABIERTA Y COLABORACIÓN</b>: Puede chatear con cualquier otra persona en la red de Matrix, tanto si usan Element u otra aplicación de Matrix, e incluso si están usando un sistema de mensajería diferente como Slack, IRC o XMPP.
2525

26-
<b>SUPER SEGURO</b>: Cifrado real de extremo a extremo (solo aquellos en la conversación pueden descifrar mensajes) y firma cruzada para verificar los dispositivos de los participantes de la conversación.
26+
<b>SUPER SEGURO</b>: Encriptación de Extremo-a-Extremo real (solo aquellos en la conversación pueden descifrar mensajes) y firma cruzada para verificar los dispositivos de los participantes de la conversación.
2727

28-
<b>COMUNICACIÓN COMPLETA</b>: Mensajería, llamadas de voz y video, uso compartido de archivos, uso compartido de pantalla y un montón de integraciones, bots y widgets. Construya salas, comunidades, manténgase en contacto y haga las cosas.
28+
<b>COMUNICACIÓN COMPLETA</b>: Mensajería, llamadas de voz y video, uso compartido de archivos, uso compartido de pantalla y un montón de integraciones, bots y widgets. Crea salas, comunidades, mantente en contacto y organízate con eficacia.
2929

30-
<b>EN TODAS PARTES</b>: Manténgase en contacto donde quiera que esté con un historial de mensajes totalmente sincronizado en todos sus dispositivos y en la web en https://app.element.io.
30+
<b>EN TODAS PARTES</b>: Mantente en contacto donde quiera que estés con un historial de mensajes totalmente sincronizado en todos sus dispositivos y en la web en https://app.element.io.
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Chat y VoIP descentralizados seguros. Mantenga sus datos a salvo de terceros.
1+
Chat y VoIP descentralizados y seguros. Mantén tus datos a salvo de terceros.
+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Element (anteriorment Riot.im)
1+
Element (previamente Riot.im)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
// برای انجام
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
// DA FARE
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Sikker desentralisert chat & VoIP. Beskytt dataene dine fra tredjeparter.
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Element (tidligere Riot.im)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
// A FAZER
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
// ATT GÖRA
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
// 待辦事項
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
Element 是一種新型態的即時通訊軟體與協作應用程式:
2+
3+
1. 自己的隱私自己掌控
4+
2. 讓您與任何在 Matrix 網路中的人通訊,甚至可與如 Slack 等的應用程式整合
5+
3. 保護您免受廣告、資料採礦與圍牆花園的侵害
6+
4. 透過端到端加密保護您,並使用交叉簽章來驗證其他人
7+
8+
Element 是去中心化且開放原始碼的應用程式,因此與其他即時通訊與協作軟體完全不同。
9+
10+
Element 讓您可以自架(或是自行選擇服務提供者)所以您擁有您資料與對話的隱私、所有權與控制權。它讓您可以存取開放的網路;因此,您不僅可以與其他 Matrix 使用者聊天。而且非常安全。
11+
12+
Element 能作到這些事情是因為它在 Matrix 上執行,這是一個開放的去中心化通訊的標準。
13+
14+
Element 讓您選擇您要在哪裡託管您的對話來將控制權還給您。在 Element 應用程式中,您可以選擇其他方式來託管:
15+
16+
1. 在由 Matrix 開發者架設的 matrix.org 公開伺服器上取得免費的帳號,或是從數千個由志願者所架設的公開伺服器中選擇
17+
2. 在您自己的硬體上自行架設伺服器並建立帳號
18+
3. 訂閱 Element Matrix 服務託管平台並在自訂伺服氣上註冊帳號
19+
20+
<b>為何選擇 Element?</b>
21+
22+
<b>擁有您的資料</b>:您決定您的資料與訊息要放在哪裡。您擁有並控制它,而非某些科技巨頭會挖掘您的資料並將其售予第三方。
23+
24+
<b>開放的即時通訊與協作</b>:您可以與 Matrix 網路中的任何人聊天,不管他們是使用 Element 或其他 Matrix 應用程式都可以,或甚至是其他的訊息系統,如 Slack、IRC 或 XMPP 也都可以。
25+
26+
<b>超級安全</b>:即時的端到端加密(僅有參與對話的人可以解密訊息),以及交叉簽章以驗證對話參與者的裝置。
27+
28+
<b>完整通訊</b>:即時通訊、語音與視訊通話、檔案分享、畫面分享與超多的整合、機器人與小工具。建立聊天室、保持聯繫並完成工作。
29+
30+
<b>無論您身在何處</b>:無論您身在何處,都可以透過 https://app.element.io 來在所有裝置與網路上保持訊息歷史同步。
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
安全的去中心化聊天與 VoIP。確保您的資料不受第三方的影響。
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Element(曾名為 Riot.im)
+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionSha256Sum=0080de8491f0918e4f529a6db6820fa0b9e818ee2386117f4394f95feb1d5583
4-
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
3+
distributionSha256Sum=22449f5231796abd892c98b2a07c9ceebe4688d192cd2d6763f8e3bf8acbedeb
4+
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip
55
zipStoreBase=GRADLE_USER_HOME
66
zipStorePath=wrapper/dists

matrix-sdk-android-rx/src/main/java/org/matrix/android/sdk/rx/RxSession.kt

+8
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import org.matrix.android.sdk.api.session.identity.ThreePid
3535
import org.matrix.android.sdk.api.session.pushers.Pusher
3636
import org.matrix.android.sdk.api.session.room.RoomSummaryQueryParams
3737
import org.matrix.android.sdk.api.session.room.members.ChangeMembershipState
38+
import org.matrix.android.sdk.api.session.room.model.RoomMemberSummary
3839
import org.matrix.android.sdk.api.session.room.model.RoomSummary
3940
import org.matrix.android.sdk.api.session.room.model.create.CreateRoomParams
4041
import org.matrix.android.sdk.api.session.sync.SyncState
@@ -92,6 +93,13 @@ class RxSession(private val session: Session) {
9293
}
9394
}
9495

96+
fun liveRoomMember(userId: String, roomId: String): Observable<Optional<RoomMemberSummary>> {
97+
return session.getRoomMemberLive(userId, roomId).asObservable()
98+
.startWithCallable {
99+
session.getRoomMember(userId, roomId).toOptional()
100+
}
101+
}
102+
95103
fun liveUsers(): Observable<List<User>> {
96104
return session.getUsersLive().asObservable()
97105
}

matrix-sdk-android/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ buildscript {
99
jcenter()
1010
}
1111
dependencies {
12-
classpath "io.realm:realm-gradle-plugin:6.1.0"
12+
classpath "io.realm:realm-gradle-plugin:10.0.0"
1313
}
1414
}
1515

@@ -149,7 +149,7 @@ dependencies {
149149
implementation 'androidx.exifinterface:exifinterface:1.3.0'
150150

151151
// Database
152-
implementation 'com.github.Zhuinden:realm-monarchy:0.5.1'
152+
implementation 'com.github.Zhuinden:realm-monarchy:0.7.1'
153153
kapt 'dk.ilios:realmfieldnameshelper:1.1.1'
154154

155155
// Work

matrix-sdk-android/src/androidTest/java/org/matrix/android/sdk/account/ChangePasswordTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ class ChangePasswordTest : InstrumentedTest {
4343
val session = commonTestHelper.createAccount(TestConstants.USER_ALICE, SessionTestParams(withInitialSync = false))
4444

4545
// Change password
46-
commonTestHelper.doSync<Unit> {
47-
session.changePassword(TestConstants.PASSWORD, NEW_PASSWORD, it)
46+
commonTestHelper.runBlockingTest {
47+
session.changePassword(TestConstants.PASSWORD, NEW_PASSWORD)
4848
}
4949

5050
// Try to login with the previous password, it will fail

matrix-sdk-android/src/androidTest/java/org/matrix/android/sdk/account/DeactivateAccountTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ class DeactivateAccountTest : InstrumentedTest {
4343
val session = commonTestHelper.createAccount(TestConstants.USER_ALICE, SessionTestParams(withInitialSync = false))
4444

4545
// Deactivate the account
46-
commonTestHelper.doSync<Unit> {
47-
session.deactivateAccount(TestConstants.PASSWORD, false, it)
46+
commonTestHelper.runBlockingTest {
47+
session.deactivateAccount(TestConstants.PASSWORD, false)
4848
}
4949

5050
// Try to login on the previous account, it will fail (M_USER_DEACTIVATED)

matrix-sdk-android/src/androidTest/java/org/matrix/android/sdk/common/CommonTestHelper.kt

+9
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import kotlinx.coroutines.GlobalScope
4040
import kotlinx.coroutines.delay
4141
import kotlinx.coroutines.launch
4242
import kotlinx.coroutines.runBlocking
43+
import kotlinx.coroutines.withTimeout
4344
import org.junit.Assert.assertEquals
4445
import org.junit.Assert.assertNotNull
4546
import org.junit.Assert.assertTrue
@@ -343,6 +344,14 @@ class CommonTestHelper(context: Context) {
343344
await(latch, timeout)
344345
}
345346

347+
fun <T> runBlockingTest(timeout: Long = TestConstants.timeOutMillis, block: suspend () -> T): T {
348+
return runBlocking {
349+
withTimeout(timeout) {
350+
block()
351+
}
352+
}
353+
}
354+
346355
// Transform a method with a MatrixCallback to a synchronous method
347356
inline fun <reified T> doSync(timeout: Long? = TestConstants.timeOutMillis, block: (MatrixCallback<T>) -> Unit): T {
348357
val lock = CountDownLatch(1)

matrix-sdk-android/src/androidTest/java/org/matrix/android/sdk/common/CryptoTestHelper.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ class CryptoTestHelper(private val mTestHelper: CommonTestHelper) {
6868
if (encryptedRoom) {
6969
val room = aliceSession.getRoom(roomId)!!
7070

71-
mTestHelper.doSync<Unit> {
72-
room.enableEncryption(callback = it)
71+
mTestHelper.runBlockingTest {
72+
room.enableEncryption()
7373
}
7474
}
7575

0 commit comments

Comments
 (0)