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 b855c5b75200670a795cbfdc99b6899b07be99b1..fed20e91e47ba29aa53a736d61bb28c77672485e 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 b7d11b53094d02cdf78a36ab5c67d05e0bc35c49..d9e7a06c70861b25896ec069014b8995b04390fb 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 abe59b04798150055e186d0422d1561cf02f5b59..2c616a26d96ee5f9d6004566fe6a54a2c7e5beaa 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