Skip to content
This repository was archived by the owner on Apr 12, 2022. It is now read-only.

Commit 7c10698

Browse files
committed
Merge branch 'release/0.9.30'
2 parents f3475f8 + 7ae9bd6 commit 7c10698

File tree

19 files changed

+91
-45
lines changed

19 files changed

+91
-45
lines changed

CHANGES.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
Changes to Matrix Android SDK in 0.9.30 (2019-10-09)
2+
=======================================================
3+
4+
Bugfix:
5+
- App won't start with some custom HS config #499
6+
7+
Translations:
8+
- Updated translations
9+
10+
111
Changes to Matrix Android SDK in 0.9.29 (2019-10-04)
212
=======================================================
313

matrix-sdk-crypto/src/main/java/org/matrix/androidsdk/crypto/interfaces/CryptoDataHandler.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package org.matrix.androidsdk.crypto.interfaces
1818

1919
interface CryptoDataHandler {
20-
val store: CryptoStore
20+
val store: CryptoStore?
2121
fun setCryptoEventsListener(eventListener: CryptoEventListener)
2222
fun getRoom(roomId: String): CryptoRoom
2323
fun onEventDecrypted(event: CryptoEvent)

matrix-sdk-crypto/src/main/java/org/matrix/androidsdk/crypto/interfaces/CryptoStore.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ package org.matrix.androidsdk.crypto.interfaces
1818

1919
// For classical store
2020
interface CryptoStore {
21-
val eventStreamToken: String
21+
val eventStreamToken: String?
2222
}

matrix-sdk/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ android {
2727
defaultConfig {
2828
minSdkVersion 16
2929
targetSdkVersion 28
30-
versionCode 929
31-
versionName "0.9.29"
30+
versionCode 930
31+
versionName "0.9.30"
3232
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
3333

3434
// Enable multi dex for test

matrix-sdk/src/androidTest/java/org/matrix/androidsdk/crypto/PartialSharedSessionTest.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,7 @@ class PartialSharedSessionTest {
9999
mTestHelper.await(latch)
100100

101101
val aliceRoom = aliceSession.dataHandler
102-
.store
103-
.getRoom(roomId)
102+
.store!!.getRoom(roomId)
104103

105104

106105
latch = CountDownLatch(1)
@@ -140,7 +139,7 @@ class PartialSharedSessionTest {
140139

141140
val aliceNewSession = mTestHelper.logIntoAccount(aliceSession.myUserId, defaultSessionParamsWithInitialSync)
142141

143-
val aliceRoomOtherSession = aliceNewSession.dataHandler.store.getRoom(aliceRoom.roomId)
142+
val aliceRoomOtherSession = aliceNewSession.dataHandler.store!!.getRoom(aliceRoom.roomId)
144143

145144
val aliceSecondSessionEvents = sentEvents.map {
146145
aliceRoomOtherSession.store.getEvent(it.eventId, aliceRoomOtherSession.roomId)

matrix-sdk/src/main/java/org/matrix/androidsdk/MXDataHandler.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -681,6 +681,7 @@ void checkPermanentStorageData() {
681681
* @return the used store.
682682
*/
683683
@Override
684+
@Nullable
684685
public IMXStore getStore() {
685686
if (isAlive()) {
686687
return mStore;
@@ -1911,7 +1912,13 @@ public void onBingEvent(final Event event, final RoomState roomState, final Bing
19111912
public void updateEventState(Event event, Event.SentState newState) {
19121913
if ((null != event) && (event.mSentState != newState)) {
19131914
event.mSentState = newState;
1914-
getStore().flushRoomEvents(event.roomId);
1915+
//crash reported on app store
1916+
if (getStore() != null) {
1917+
getStore().flushRoomEvents(event.roomId);
1918+
} else {
1919+
Log.e(LOG_TAG, "#updateEventState Failed to access to store ");
1920+
}
1921+
19151922
onEventSentStateUpdated(event);
19161923
}
19171924
}

matrix-sdk/src/main/java/org/matrix/androidsdk/MXSession.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -289,11 +289,16 @@ public void onStoreReady(String accountId) {
289289

290290
@Override
291291
public void onStoreCorrupted(String accountId, String description) {
292-
Log.d(LOG_TAG, "## onStoreCorrupted() : token " + getDataHandler().getStore().getEventStreamToken());
292+
//NPE reported on store
293+
if (getDataHandler().getStore() != null) {
294+
Log.d(LOG_TAG, "## onStoreCorrupted() : token " + getDataHandler().getStore().getEventStreamToken());
293295

294-
// nothing was saved
295-
if (null == getDataHandler().getStore().getEventStreamToken()) {
296-
getDataHandler().onStoreReady();
296+
// nothing was saved
297+
if (null == getDataHandler().getStore().getEventStreamToken()) {
298+
getDataHandler().onStoreReady();
299+
}
300+
} else {
301+
Log.d(LOG_TAG, "## onStoreCorrupted() : no store access ");
297302
}
298303
}
299304

matrix-sdk/src/main/java/org/matrix/androidsdk/data/MyUser.java

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -124,17 +124,20 @@ public void onSuccess(Void info) {
124124
* Build the lists of identifiers
125125
*/
126126
private void buildIdentifiersLists() {
127-
List<ThirdPartyIdentifier> identifiers = mDataHandler.getStore().thirdPartyIdentifiers();
128127
mEmailIdentifiers = new ArrayList<>();
129128
mPhoneNumberIdentifiers = new ArrayList<>();
130-
for (ThirdPartyIdentifier identifier : identifiers) {
131-
switch (identifier.medium) {
132-
case ThreePid.MEDIUM_EMAIL:
133-
mEmailIdentifiers.add(identifier);
134-
break;
135-
case ThreePid.MEDIUM_MSISDN:
136-
mPhoneNumberIdentifiers.add(identifier);
137-
break;
129+
//NPE reported on playstore
130+
if (mDataHandler.getStore() != null) {
131+
List<ThirdPartyIdentifier> identifiers = mDataHandler.getStore().thirdPartyIdentifiers();
132+
for (ThirdPartyIdentifier identifier : identifiers) {
133+
switch (identifier.medium) {
134+
case ThreePid.MEDIUM_EMAIL:
135+
mEmailIdentifiers.add(identifier);
136+
break;
137+
case ThreePid.MEDIUM_MSISDN:
138+
mPhoneNumberIdentifiers.add(identifier);
139+
break;
140+
}
138141
}
139142
}
140143
}
@@ -311,7 +314,9 @@ public void onSuccess(String aDisplayname) {
311314
// local value
312315
displayname = aDisplayname;
313316
// store metadata
314-
mDataHandler.getStore().setDisplayName(aDisplayname, System.currentTimeMillis());
317+
if (mDataHandler.getStore() != null) {
318+
mDataHandler.getStore().setDisplayName(aDisplayname, System.currentTimeMillis());
319+
}
315320

316321
mIsDisplayNameRefreshed = true;
317322

matrix-sdk/src/main/java/org/matrix/androidsdk/features/identityserver/IdentityServerManager.kt

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ class IdentityServerManager(val mxSession: MXSession,
7474
if (accountDataElement.type == AccountDataElement.ACCOUNT_DATA_TYPE_IDENTITY_SERVER) {
7575
// The identity server has been updated
7676
val accountDataIdentityServer =
77-
mxSession.dataHandler.store.getAccountDataElement(AccountDataElement.ACCOUNT_DATA_TYPE_IDENTITY_SERVER)
77+
mxSession.dataHandler.store?.getAccountDataElement(AccountDataElement.ACCOUNT_DATA_TYPE_IDENTITY_SERVER)
7878

7979
accountDataIdentityServer?.content?.let {
8080
localSetIdentityServerUrl(it[AccountDataElement.ACCOUNT_DATA_KEY_IDENTITY_SERVER_BASE_URL] as String?)
@@ -124,7 +124,7 @@ class IdentityServerManager(val mxSession: MXSession,
124124
*/
125125
private fun retrieveIdentityServerUrl(): String? {
126126
val accountDataIdentityServer =
127-
mxSession.dataHandler.store.getAccountDataElement(AccountDataElement.ACCOUNT_DATA_TYPE_IDENTITY_SERVER)
127+
mxSession.dataHandler.store?.getAccountDataElement(AccountDataElement.ACCOUNT_DATA_TYPE_IDENTITY_SERVER)
128128

129129
accountDataIdentityServer?.content?.let {
130130
return it[AccountDataElement.ACCOUNT_DATA_KEY_IDENTITY_SERVER_BASE_URL] as String?
@@ -270,12 +270,18 @@ class IdentityServerManager(val mxSession: MXSession,
270270
identityAuthRestClient = null
271271
thirdPidRestClient = null
272272
} else {
273-
val alteredHsConfig = HomeServerConnectionConfig.Builder(mxSession.homeServerConfig)
274-
.withIdentityServerUri(Uri.parse(newUrl))
275-
.build()
273+
try {
274+
val alteredHsConfig = HomeServerConnectionConfig.Builder(mxSession.homeServerConfig)
275+
.withIdentityServerUri(Uri.parse(newUrl))
276+
.build()
276277

277-
identityAuthRestClient = IdentityAuthRestClient(alteredHsConfig)
278-
thirdPidRestClient = ThirdPidRestClient(alteredHsConfig)
278+
identityAuthRestClient = IdentityAuthRestClient(alteredHsConfig)
279+
thirdPidRestClient = ThirdPidRestClient(alteredHsConfig)
280+
} catch (t: Throwable) {
281+
Log.e(LOG_TAG, "Failed to create IS Rest clients", t)
282+
//What to do from there? this IS is invalid
283+
return
284+
}
279285
}
280286

281287
synchronized(listeners) { listeners.forEach { it.onIdentityServerChange() } }
@@ -302,6 +308,11 @@ class IdentityServerManager(val mxSession: MXSession,
302308
}
303309

304310
private fun requestIdentityServerToken(requestOpenIdTokenResponse: RequestOpenIdTokenResponse, callback: ApiCallback<String>) {
311+
if (identityAuthRestClient == null) {
312+
callback.onUnexpectedError(IdentityServerNotConfiguredException())
313+
return
314+
}
315+
305316
identityAuthRestClient?.register(requestOpenIdTokenResponse, object : SimpleApiCallback<IdentityServerRegisterResponse>(callback) {
306317
override fun onSuccess(info: IdentityServerRegisterResponse) {
307318
// Store the token for next time
@@ -596,7 +607,7 @@ class IdentityServerManager(val mxSession: MXSession,
596607
override fun onUnexpectedError(e: Exception) {
597608
if (e is IdentityServerV2ApiNotAvailable) {
598609
//mm ? request to HS?
599-
legacyDeleteAndRequestToken(threePid,callback,idServer)
610+
legacyDeleteAndRequestToken(threePid, callback, idServer)
600611
} else {
601612
super.onUnexpectedError(e)
602613
}
@@ -659,7 +670,7 @@ class IdentityServerManager(val mxSession: MXSession,
659670
override fun onUnexpectedError(e: Exception) {
660671
if (e is IdentityServerV2ApiNotAvailable) {
661672
//mm ? request to HS?
662-
legacyDeleteAndAddMsisdn(threePid,callback,idServer)
673+
legacyDeleteAndAddMsisdn(threePid, callback, idServer)
663674
} else {
664675
super.onUnexpectedError(e)
665676
}

matrix-sdk/src/main/java/org/matrix/androidsdk/features/terms/TermsManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ class TermsManager(private val mxSession: MXSession) {
113113

114114
private fun getAlreadyAcceptedTermUrlsFromAccountData(): Set<String> {
115115
val accountDataCurrentAcceptedTerms =
116-
mxSession.dataHandler.store.getAccountDataElement(AccountDataElement.ACCOUNT_DATA_TYPE_ACCEPTED_TERMS)
116+
mxSession.dataHandler.store?.getAccountDataElement(AccountDataElement.ACCOUNT_DATA_TYPE_ACCEPTED_TERMS)
117117

118118
return (accountDataCurrentAcceptedTerms?.content
119119
?.get(AccountDataElement.ACCOUNT_DATA_KEY_ACCEPTED_TERMS) as? List<*>)

0 commit comments

Comments
 (0)