Skip to content
Snippets Groups Projects
Commit daacbb06 authored by Taras's avatar Taras
Browse files

Add message to knock request

parent 2fda3bb0
No related branches found
No related tags found
No related merge requests found
...@@ -7,6 +7,7 @@ import androidx.fragment.app.viewModels ...@@ -7,6 +7,7 @@ import androidx.fragment.app.viewModels
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import org.futo.circles.R import org.futo.circles.R
import org.futo.circles.core.base.fragment.BaseFullscreenDialogFragment import org.futo.circles.core.base.fragment.BaseFullscreenDialogFragment
import org.futo.circles.core.extensions.getText
import org.futo.circles.core.extensions.gone import org.futo.circles.core.extensions.gone
import org.futo.circles.core.extensions.loadProfileIcon import org.futo.circles.core.extensions.loadProfileIcon
import org.futo.circles.core.extensions.observeData import org.futo.circles.core.extensions.observeData
...@@ -38,7 +39,7 @@ class RoomWellKnownDialogFragment : ...@@ -38,7 +39,7 @@ class RoomWellKnownDialogFragment :
private fun setupViews() { private fun setupViews() {
binding.btnRequest.setOnClickListener { binding.btnRequest.setOnClickListener {
viewModel.sendKnockRequest() viewModel.sendKnockRequest(binding.tilRequestMessage.getText().takeIf { it.isNotEmpty() })
binding.btnRequest.setIsLoading(true) binding.btnRequest.setIsLoading(true)
} }
} }
...@@ -83,6 +84,7 @@ class RoomWellKnownDialogFragment : ...@@ -83,6 +84,7 @@ class RoomWellKnownDialogFragment :
text = roomInfo.name text = roomInfo.name
} }
btnRequest.setIsVisible(shouldShowKnockButton(roomInfo.membership)) btnRequest.setIsVisible(shouldShowKnockButton(roomInfo.membership))
tilRequestMessage.setIsVisible(shouldShowKnockButton(roomInfo.membership))
binding.tvRoomId.text = roomInfo.id binding.tvRoomId.text = roomInfo.id
tvMembersCount.apply { tvMembersCount.apply {
setIsVisible(roomInfo.memberCount > 0) setIsVisible(roomInfo.memberCount > 0)
......
...@@ -38,11 +38,13 @@ class RoomWellKnownViewModel @Inject constructor( ...@@ -38,11 +38,13 @@ class RoomWellKnownViewModel @Inject constructor(
} }
} }
fun sendKnockRequest() { fun sendKnockRequest(message: String?) {
val roomId = urlData?.roomId ?: return val roomId = urlData?.roomId ?: return
launchBg { launchBg {
val result = val result =
createResult { MatrixSessionProvider.currentSession?.roomService()?.knock(roomId) } createResult {
MatrixSessionProvider.currentSession?.roomService()?.knock(roomId, message)
}
knockRequestLiveData.postValue(result) knockRequestLiveData.postValue(result)
} }
} }
......
...@@ -135,25 +135,53 @@ ...@@ -135,25 +135,53 @@
android:layout_marginHorizontal="36dp" android:layout_marginHorizontal="36dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:gravity="center" android:gravity="center"
app:layout_constraintBottom_toTopOf="@id/btnRequest" app:layout_constraintBottom_toTopOf="@id/tilRequestMessage"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvMembersCount" app:layout_constraintTop_toBottomOf="@id/tvMembersCount"
tools:text="@string/you_have_pending_invitation_room" /> tools:text="@string/you_have_pending_invitation_room" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/tilRequestMessage"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="24dp"
android:visibility="gone"
app:hintEnabled="false"
app:layout_constraintBottom_toTopOf="@id/btnRequest"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvMembersip"
tools:visibility="visible">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:hint="@string/optional_request_message"
android:imeOptions="actionDone"
android:inputType="textMultiLine"
android:lines="3"
android:maxLines="3"
android:padding="12dp" />
</com.google.android.material.textfield.TextInputLayout>
<org.futo.circles.core.view.LoadingButton <org.futo.circles.core.view.LoadingButton
android:id="@+id/btnRequest" android:id="@+id/btnRequest"
style="@style/AccentButtonStyle" style="@style/AccentButtonStyle"
android:layout_width="450dp" android:layout_width="450dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginTop="24dp"
android:text="@string/request_to_join" android:text="@string/request_to_join"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvMembersip" app:layout_constraintTop_toBottomOf="@id/tilRequestMessage"
tools:visibility="visible" /> tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -214,6 +214,7 @@ ...@@ -214,6 +214,7 @@
<string name="group_topic_optional">Group topic (optional)</string> <string name="group_topic_optional">Group topic (optional)</string>
<string name="session">Session</string> <string name="session">Session</string>
<string name="help">Help</string> <string name="help">Help</string>
<string name="optional_request_message">Optional: Request message</string>
<string-array name="report_categories"> <string-array name="report_categories">
<item>@string/crude_language</item> <item>@string/crude_language</item>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment