Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
16a7fb3
Multi account - Do not reset analytics store on sign out.
bmarty Jul 3, 2024
d487372
Multi accounts - first implementation.
bmarty Aug 26, 2025
8ebfadd
Multi accounts - Prevent user from logging twice with the same account
bmarty Aug 27, 2025
0859fc3
Multi accounts - ignore automatic GoBack in case of error.
bmarty Aug 27, 2025
f51b392
Multi accounts - update first view when adding an account.
bmarty Aug 27, 2025
8ea5d0e
Rename method storeData to addSession.
bmarty Aug 27, 2025
e9987ef
Multi accounts - handle account switch when coming from a notification
bmarty Aug 27, 2025
3355446
Multi accounts - handle login link when there is already an account.
bmarty Aug 28, 2025
00d06f4
Multi accounts - handle click on push history for not current account.
bmarty Aug 28, 2025
9fa25c5
Multi accounts - improve layout and add preview.
bmarty Aug 28, 2025
d2130bc
Add accountselect modules
bmarty Aug 28, 2025
b545f1e
Multi accounts - incoming share with account selection
bmarty Aug 28, 2025
77f0aec
Multi accounts - check the feature flag before allowing login using l…
bmarty Aug 28, 2025
4dc81ed
Multi accounts - swipe on account icon
bmarty Aug 29, 2025
a2bac35
Cleanup
bmarty Aug 29, 2025
b80ef4b
Multi accounts - fix other implementation of SessionStore
bmarty Sep 1, 2025
236bfa6
Multi accounts - fix PreferencesRootPresenterTest
bmarty Sep 1, 2025
38a0dc9
Multi accounts - Add test on AccountSelectPresenter
bmarty Sep 1, 2025
303927b
Multi accounts - Fix test on HomePresenter - WIP
bmarty Sep 1, 2025
3dc268f
Update database to be able to sort accounts by creation date.
bmarty Sep 4, 2025
06e3925
Add unit test on takeCurrentUserWithNeighbors
bmarty Sep 4, 2025
3dda8ac
Fix test and improve code.
bmarty Sep 4, 2025
29154cf
Add exception
bmarty Sep 4, 2025
0798c3a
Multi accounts - handle permalink
bmarty Sep 4, 2025
e3a2c62
Code quality
bmarty Sep 4, 2025
718cd5b
Multi accounts - localization
bmarty Sep 4, 2025
462491c
Fix issue after rebase on develop
bmarty Sep 4, 2025
5b9e233
Fix issue after rebase on develop
bmarty Sep 5, 2025
cabaf34
Fix tests
bmarty Sep 5, 2025
7e6af0f
Fix tests
bmarty Sep 5, 2025
6a954bf
Fix tests
bmarty Sep 5, 2025
b9b22c2
Fix tests
bmarty Sep 5, 2025
18d3d5b
Update Multi accounts flag details.
bmarty Sep 5, 2025
72113cd
Add missing test on DatabaseSessionStore
bmarty Sep 5, 2025
97aff0f
Add missing preview on LoginModeView
bmarty Sep 5, 2025
62e4e58
Remove dead code.
bmarty Sep 5, 2025
540f8d6
Add missing preview on PushHistoryView
bmarty Sep 5, 2025
4299e12
Document API.
bmarty Sep 5, 2025
b2df76e
Rename API and update test.
bmarty Sep 5, 2025
40718cd
Remove MatrixAuthenticationService.loggedInStateFlow()
bmarty Sep 5, 2025
dd677e6
Update screenshots
ElementBot Sep 5, 2025
7f822cd
Remove unused import
bmarty Sep 5, 2025
9ef6e8e
Add exception
bmarty Sep 5, 2025
614ea0d
Fix compilation issue after rebase on develop.
bmarty Sep 5, 2025
3a46fec
Update screenshots
ElementBot Sep 5, 2025
866a17d
Merge branch 'develop' into feature/bma/_poc/multiAccounts3
bmarty Sep 11, 2025
5e85065
Fix test
bmarty Sep 12, 2025
2d77a63
Avoid calling getLatestSession() twice
bmarty Sep 17, 2025
5d0db44
Rename `matrixUserAndNeighbors` to `currentUserAndNeighbors`
bmarty Sep 17, 2025
b334f27
Extract code to its own class.
bmarty Sep 17, 2025
2ec6b2c
Add comment to clarify the code.
bmarty Sep 17, 2025
6baf08b
Init current user profile with what we now have in the database.
bmarty Sep 17, 2025
a84e2ff
Let the RustMatrixClient update the profile in the session database
bmarty Sep 17, 2025
e942e90
Fix test.
bmarty Sep 17, 2025
823cd97
When logging out from Pin code screen, logout from all the sessions.
bmarty Sep 18, 2025
097fc98
Make PushData.clientSecret mandatory.
bmarty Sep 18, 2025
7059c23
Change test in RustMatrixAuthenticationServiceTest
bmarty Sep 18, 2025
f589dd2
Do not use MatrixAuthenticationService in RootFlowNode, only use Sess…
bmarty Sep 18, 2025
3fd97c1
Remove MatrixAuthenticationService.getLatestSessionId()
bmarty Sep 18, 2025
c3e88d6
Merge branch 'develop' into feature/bma/_poc/multiAccounts3
bmarty Sep 19, 2025
81e7911
Fix compilation issue after merging develop
bmarty Sep 19, 2025
b8c441f
Add test on DefaultAccountSelectEntryPoint
bmarty Sep 19, 2025
b3f3f52
Fix compilation issue after merging develop
bmarty Sep 19, 2025
9c698ff
Introduce LoggedInAccountSwitcherNode, to improve animation when swit…
bmarty Sep 19, 2025
883b1f3
Rename Node to follow naming convention.
bmarty Sep 19, 2025
e409630
Fix navigation issue after login.
bmarty Sep 19, 2025
c61c123
Merge branch 'develop' into feature/bma/_poc/multiAccounts3
bmarty Sep 22, 2025
42356cf
Remove unused import
bmarty Sep 22, 2025
1630aeb
Revert "Fix navigation issue after login."
bmarty Sep 26, 2025
b719e4d
Revert "Rename Node to follow naming convention."
bmarty Sep 26, 2025
c802489
Revert "Introduce LoggedInAccountSwitcherNode, to improve animation w…
bmarty Sep 26, 2025
d036966
Merge branch 'develop' into feature/bma/_poc/multiAccounts3
bmarty Sep 26, 2025
8772f2e
Metro now have `@AssistedInject`.
bmarty Sep 26, 2025
efa706e
Update screenshots
ElementBot Sep 26, 2025
419b304
Introduce DelegateTransitionHandler and use it in RootFlowNode
ganfra Sep 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions appnav/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,11 @@ dependencies {
allFeaturesApi(project)

implementation(projects.libraries.core)
implementation(projects.libraries.accountselect.api)
implementation(projects.libraries.androidutils)
implementation(projects.libraries.architecture)
implementation(projects.libraries.deeplink.api)
implementation(projects.libraries.featureflag.api)
implementation(projects.libraries.matrix.api)
implementation(projects.libraries.oidc.api)
implementation(projects.libraries.preferences.api)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ class LoggedInAppScopeFlowNode(
), DependencyInjectionGraphOwner {
interface Callback : Plugin {
fun onOpenBugReport()
fun onAddAccount()
}

@Parcelize
Expand All @@ -83,6 +84,10 @@ class LoggedInAppScopeFlowNode(
override fun onOpenBugReport() {
plugins<Callback>().forEach { it.onOpenBugReport() }
}

override fun onAddAccount() {
plugins<Callback>().forEach { it.onAddAccount() }
}
}
return createNode<LoggedInFlowNode>(buildContext, listOf(callback))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,6 @@ import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.MAIN_SPACE
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.core.RoomIdOrAlias
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.core.toRoomIdOrAlias
import io.element.android.libraries.matrix.api.permalink.PermalinkData
Expand Down Expand Up @@ -139,6 +138,7 @@ class LoggedInFlowNode(
) {
interface Callback : Plugin {
fun onOpenBugReport()
fun onAddAccount()
}

private val loggedInFlowProcessor = LoggedInEventProcessor(
Expand Down Expand Up @@ -393,6 +393,10 @@ class LoggedInFlowNode(
}
is NavTarget.Settings -> {
val callback = object : PreferencesEntryPoint.Callback {
override fun onAddAccount() {
plugins<Callback>().forEach { it.onAddAccount() }
}

override fun onOpenBugReport() {
plugins<Callback>().forEach { it.onOpenBugReport() }
}
Expand All @@ -405,11 +409,7 @@ class LoggedInFlowNode(
backstack.push(NavTarget.Room(roomId.toRoomIdOrAlias(), initialElement = RoomNavigationTarget.NotificationSettings))
}

override fun navigateTo(sessionId: SessionId, roomId: RoomId, eventId: EventId) {
// We do not check the sessionId, but it will have to be done at some point (multi account)
if (sessionId != matrixClient.sessionId) {
Timber.e("SessionId mismatch, expected ${matrixClient.sessionId} but got $sessionId")
}
override fun navigateTo(roomId: RoomId, eventId: EventId) {
backstack.push(NavTarget.Room(roomId.toRoomIdOrAlias(), initialElement = RoomNavigationTarget.Messages(eventId)))
}
}
Expand Down
Loading
Loading