diff --git a/vector/src/main/java/im/vector/riotx/features/roommemberprofile/RoomMemberProfileFragment.kt b/vector/src/main/java/im/vector/riotx/features/roommemberprofile/RoomMemberProfileFragment.kt
index 6b51f78881..f261da2da9 100644
--- a/vector/src/main/java/im/vector/riotx/features/roommemberprofile/RoomMemberProfileFragment.kt
+++ b/vector/src/main/java/im/vector/riotx/features/roommemberprofile/RoomMemberProfileFragment.kt
@@ -29,7 +29,6 @@ import com.airbnb.mvrx.Success
import com.airbnb.mvrx.args
import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState
-import im.vector.matrix.android.api.permalinks.PermalinkFactory
import im.vector.matrix.android.api.util.MatrixItem
import im.vector.riotx.R
import im.vector.riotx.core.animations.AppBarStateChangeListener
@@ -99,7 +98,7 @@ class RoomMemberProfileFragment @Inject constructor(
is RoomMemberProfileViewEvents.Failure -> showFailure(it.throwable)
is RoomMemberProfileViewEvents.OnIgnoreActionSuccess -> Unit
is RoomMemberProfileViewEvents.StartVerification -> handleStartVerification(it)
- is RoomMemberProfileViewEvents.ShareRoomMemberProfile -> handleShareRoomMemberProfile()
+ is RoomMemberProfileViewEvents.ShareRoomMemberProfile -> handleShareRoomMemberProfile(it.permalink)
}.exhaustive
}
}
@@ -225,9 +224,7 @@ class RoomMemberProfileFragment @Inject constructor(
vectorBaseActivity.notImplemented("Mention")
}
- private fun handleShareRoomMemberProfile() = withState(viewModel) {
- PermalinkFactory.createPermalink(it.userId)?.let { permalink ->
- startSharePlainTextIntent(fragment = this, chooserTitle = null, text = permalink)
- }
+ private fun handleShareRoomMemberProfile(permalink: String) = withState(viewModel) {
+ startSharePlainTextIntent(fragment = this, chooserTitle = null, text = permalink)
}
}
diff --git a/vector/src/main/java/im/vector/riotx/features/roommemberprofile/RoomMemberProfileViewEvents.kt b/vector/src/main/java/im/vector/riotx/features/roommemberprofile/RoomMemberProfileViewEvents.kt
index d590040180..5d8757a337 100644
--- a/vector/src/main/java/im/vector/riotx/features/roommemberprofile/RoomMemberProfileViewEvents.kt
+++ b/vector/src/main/java/im/vector/riotx/features/roommemberprofile/RoomMemberProfileViewEvents.kt
@@ -32,5 +32,5 @@ sealed class RoomMemberProfileViewEvents : VectorViewEvents {
val canCrossSign: Boolean
) : RoomMemberProfileViewEvents()
- object ShareRoomMemberProfile : RoomMemberProfileViewEvents()
+ data class ShareRoomMemberProfile(val permalink: String) : RoomMemberProfileViewEvents()
}
diff --git a/vector/src/main/java/im/vector/riotx/features/roommemberprofile/RoomMemberProfileViewModel.kt b/vector/src/main/java/im/vector/riotx/features/roommemberprofile/RoomMemberProfileViewModel.kt
index eaad2c52a2..e4fbe85806 100644
--- a/vector/src/main/java/im/vector/riotx/features/roommemberprofile/RoomMemberProfileViewModel.kt
+++ b/vector/src/main/java/im/vector/riotx/features/roommemberprofile/RoomMemberProfileViewModel.kt
@@ -26,6 +26,7 @@ import com.airbnb.mvrx.ViewModelContext
import com.squareup.inject.assisted.Assisted
import com.squareup.inject.assisted.AssistedInject
import im.vector.matrix.android.api.MatrixCallback
+import im.vector.matrix.android.api.permalinks.PermalinkFactory
import im.vector.matrix.android.api.query.QueryStringValue
import im.vector.matrix.android.api.session.Session
import im.vector.matrix.android.api.session.events.model.EventType
@@ -236,7 +237,9 @@ class RoomMemberProfileViewModel @AssistedInject constructor(@Assisted private v
}
}
- private fun handleShareRoomMemberProfile() {
- _viewEvents.post(RoomMemberProfileViewEvents.ShareRoomMemberProfile)
+ private fun handleShareRoomMemberProfile() = withState { state ->
+ PermalinkFactory.createPermalink(state.userId)?.let { permalink ->
+ _viewEvents.post(RoomMemberProfileViewEvents.ShareRoomMemberProfile(permalink))
+ }
}
}
diff --git a/vector/src/main/java/im/vector/riotx/features/roomprofile/RoomProfileFragment.kt b/vector/src/main/java/im/vector/riotx/features/roomprofile/RoomProfileFragment.kt
index ec0a8e51e1..2b2a879e7e 100644
--- a/vector/src/main/java/im/vector/riotx/features/roomprofile/RoomProfileFragment.kt
+++ b/vector/src/main/java/im/vector/riotx/features/roomprofile/RoomProfileFragment.kt
@@ -26,7 +26,6 @@ import androidx.core.view.isVisible
import com.airbnb.mvrx.args
import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState
-import im.vector.matrix.android.api.permalinks.PermalinkFactory
import im.vector.matrix.android.api.session.room.notification.RoomNotificationState
import im.vector.matrix.android.api.util.toMatrixItem
import im.vector.riotx.R
@@ -94,7 +93,7 @@ class RoomProfileFragment @Inject constructor(
is RoomProfileViewEvents.Loading -> showLoading(it.message)
is RoomProfileViewEvents.Failure -> showFailure(it.throwable)
is RoomProfileViewEvents.OnLeaveRoomSuccess -> onLeaveRoom()
- is RoomProfileViewEvents.ShareRoomProfile -> onShareRoomProfile()
+ is RoomProfileViewEvents.ShareRoomProfile -> onShareRoomProfile(it.permalink)
}.exhaustive
}
roomListQuickActionsSharedActionViewModel
@@ -204,9 +203,7 @@ class RoomProfileFragment @Inject constructor(
.show()
}
- private fun onShareRoomProfile() {
- PermalinkFactory.createPermalink(roomProfileArgs.roomId)?.let { permalink ->
- startSharePlainTextIntent(fragment = this, chooserTitle = null, text = permalink)
- }
+ private fun onShareRoomProfile(permalink: String) {
+ startSharePlainTextIntent(fragment = this, chooserTitle = null, text = permalink)
}
}
diff --git a/vector/src/main/java/im/vector/riotx/features/roomprofile/RoomProfileViewEvents.kt b/vector/src/main/java/im/vector/riotx/features/roomprofile/RoomProfileViewEvents.kt
index 50e4775252..7a08a08126 100644
--- a/vector/src/main/java/im/vector/riotx/features/roomprofile/RoomProfileViewEvents.kt
+++ b/vector/src/main/java/im/vector/riotx/features/roomprofile/RoomProfileViewEvents.kt
@@ -26,5 +26,5 @@ sealed class RoomProfileViewEvents : VectorViewEvents {
data class Failure(val throwable: Throwable) : RoomProfileViewEvents()
object OnLeaveRoomSuccess : RoomProfileViewEvents()
- object ShareRoomProfile : RoomProfileViewEvents()
+ data class ShareRoomProfile(val permalink: String) : RoomProfileViewEvents()
}
diff --git a/vector/src/main/java/im/vector/riotx/features/roomprofile/RoomProfileViewModel.kt b/vector/src/main/java/im/vector/riotx/features/roomprofile/RoomProfileViewModel.kt
index e291556bd4..261e5f04d0 100644
--- a/vector/src/main/java/im/vector/riotx/features/roomprofile/RoomProfileViewModel.kt
+++ b/vector/src/main/java/im/vector/riotx/features/roomprofile/RoomProfileViewModel.kt
@@ -23,6 +23,7 @@ import com.airbnb.mvrx.ViewModelContext
import com.squareup.inject.assisted.Assisted
import com.squareup.inject.assisted.AssistedInject
import im.vector.matrix.android.api.MatrixCallback
+import im.vector.matrix.android.api.permalinks.PermalinkFactory
import im.vector.matrix.android.api.session.Session
import im.vector.matrix.rx.rx
import im.vector.matrix.rx.unwrap
@@ -90,7 +91,9 @@ class RoomProfileViewModel @AssistedInject constructor(@Assisted initialState: R
})
}
- private fun handleShareRoomProfile() {
- _viewEvents.post(RoomProfileViewEvents.ShareRoomProfile)
+ private fun handleShareRoomProfile() = withState { state ->
+ PermalinkFactory.createPermalink(state.roomId)?.let { permalink ->
+ _viewEvents.post(RoomProfileViewEvents.ShareRoomProfile(permalink))
+ }
}
}
diff --git a/vector/src/main/res/drawable/ic_material_share.xml b/vector/src/main/res/drawable/ic_material_share.xml
index fd72fa1c6d..5ecbfe3388 100644
--- a/vector/src/main/res/drawable/ic_material_share.xml
+++ b/vector/src/main/res/drawable/ic_material_share.xml
@@ -1,5 +1,24 @@
-
+
+
+
+
+
diff --git a/vector/src/main/res/layout/fragment_matrix_profile.xml b/vector/src/main/res/layout/fragment_matrix_profile.xml
index cf31a6fe60..6e3eca06bf 100644
--- a/vector/src/main/res/layout/fragment_matrix_profile.xml
+++ b/vector/src/main/res/layout/fragment_matrix_profile.xml
@@ -15,7 +15,7 @@
\ No newline at end of file
diff --git a/vector/src/main/res/menu/vector_room_profile.xml b/vector/src/main/res/menu/vector_room_profile.xml
index 637cb9ef11..f6331018f0 100644
--- a/vector/src/main/res/menu/vector_room_profile.xml
+++ b/vector/src/main/res/menu/vector_room_profile.xml
@@ -5,6 +5,6 @@
android:id="@+id/roomProfileShareAction"
android:icon="@drawable/ic_material_share"
android:title="@string/share"
- app:iconTint="@color/riotx_accent"
+ app:iconTint="?attr/colorAccent"
app:showAsAction="ifRoom" />
\ No newline at end of file
diff --git a/vector/src/main/res/values/styles_riot.xml b/vector/src/main/res/values/styles_riot.xml
index 76d1988f61..c4b42fe4fe 100644
--- a/vector/src/main/res/values/styles_riot.xml
+++ b/vector/src/main/res/values/styles_riot.xml
@@ -30,6 +30,10 @@
- "sans-serif"
+
+