From b8bf380eadc88546cd189bda2a937774327d4bc7 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Mon, 11 Mar 2024 15:03:00 +0200 Subject: [PATCH] Add navigation --- .../feature/settings/SettingsNavigator.kt | 24 ++++++++++++++++++ .../feature/settings/SettingsViewModel.kt | 6 ++++- .../res/navigation/settings_nav_graph.xml | 25 +++++++++++++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/futo/circles/feature/settings/SettingsNavigator.kt b/app/src/main/java/org/futo/circles/feature/settings/SettingsNavigator.kt index b855c5b75..fed20e91e 100644 --- a/app/src/main/java/org/futo/circles/feature/settings/SettingsNavigator.kt +++ b/app/src/main/java/org/futo/circles/feature/settings/SettingsNavigator.kt @@ -1,7 +1,11 @@ package org.futo.circles.feature.settings import androidx.navigation.fragment.findNavController +import org.futo.circles.R import org.futo.circles.core.extensions.navigateSafe +import org.futo.circles.core.extensions.showError +import org.futo.circles.core.model.ShareUrlTypeArg +import org.futo.circles.feature.people.PeopleFragmentDirections class SettingsNavigator(private val fragment: SettingsFragment) { @@ -31,4 +35,24 @@ class SettingsNavigator(private val fragment: SettingsFragment) { .navigateSafe(SettingsFragmentDirections.toManageSubscriptionDialogFragment()) } + fun navigateToEditProfile() { + fragment.findNavController() + .navigateSafe(PeopleFragmentDirections.toEditProfileDialogFragment()) + } + + fun navigateToShareProfile(sharedSpaceId: String?) { + sharedSpaceId ?: kotlin.run { + fragment.showError( + fragment.requireContext().getString(R.string.shared_circles_space_not_found) + ) + return + } + fragment.findNavController().navigateSafe( + PeopleFragmentDirections.toShareProfileDialogFragment( + sharedSpaceId, + ShareUrlTypeArg.PROFILE + ) + ) + } + } \ No newline at end of file diff --git a/app/src/main/java/org/futo/circles/feature/settings/SettingsViewModel.kt b/app/src/main/java/org/futo/circles/feature/settings/SettingsViewModel.kt index b7d11b530..d9e7a06c7 100644 --- a/app/src/main/java/org/futo/circles/feature/settings/SettingsViewModel.kt +++ b/app/src/main/java/org/futo/circles/feature/settings/SettingsViewModel.kt @@ -7,6 +7,7 @@ import org.futo.circles.core.base.SingleEventLiveData import org.futo.circles.core.extensions.Response import org.futo.circles.core.extensions.createResult import org.futo.circles.core.extensions.launchBg +import org.futo.circles.core.feature.workspace.SharedCircleDataSource import org.futo.circles.core.provider.MatrixSessionProvider import org.matrix.android.sdk.internal.session.media.MediaUsageInfo import javax.inject.Inject @@ -14,7 +15,8 @@ import javax.inject.Inject @HiltViewModel class SettingsViewModel @Inject constructor( private val settingsDataSource: SettingsDataSource, - private val refreshTokenManager: RefreshTokenManager + private val refreshTokenManager: RefreshTokenManager, + private val sharedCircleDataSource: SharedCircleDataSource ) : ViewModel() { val passPhraseLoadingLiveData = settingsDataSource.passPhraseLoadingLiveData @@ -65,4 +67,6 @@ class SettingsViewModel @Inject constructor( mediaUsageInfoLiveData.postValue(mediaUsageInfoResult) } } + + fun getSharedCircleSpaceId(): String? = sharedCircleDataSource.getSharedCirclesSpaceId() } \ No newline at end of file diff --git a/app/src/main/res/navigation/settings_nav_graph.xml b/app/src/main/res/navigation/settings_nav_graph.xml index abe59b047..2c616a26d 100644 --- a/app/src/main/res/navigation/settings_nav_graph.xml +++ b/app/src/main/res/navigation/settings_nav_graph.xml @@ -26,6 +26,24 @@ <action android:id="@+id/to_manageSubscriptionDialogFragment" app:destination="@id/manageSubscriptionDialogFragment" /> + <action + android:id="@+id/to_editProfileDialogFragment" + app:destination="@id/editProfileDialogFragment" /> + <action + android:id="@+id/to_shareProfileDialogFragment" + app:destination="@id/share_room_nav_graph"> + + <argument + android:name="roomId" + app:argType="string" + app:nullable="false" /> + + <argument + android:name="urlType" + app:argType="org.futo.circles.core.model.ShareUrlTypeArg" + app:nullable="false" /> + + </action> </fragment> @@ -59,4 +77,11 @@ android:name="org.futo.circles.auth.feature.uia.UIADialogFragment" tools:layout="@layout/dialog_fragment_uia" /> + <include app:graph="@navigation/share_room_nav_graph" /> + + <dialog + android:id="@+id/editProfileDialogFragment" + android:name="org.futo.circles.auth.feature.profile.edit.EditProfileDialogFragment" + tools:layout="@layout/dialog_fragment_edit_profile" /> + </navigation> \ No newline at end of file -- GitLab