diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyFragment.kt index 8806782e3c..ba4e10c5c2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/group/StoryGroupReplyFragment.kt @@ -16,7 +16,6 @@ import com.google.android.material.bottomsheet.BottomSheetBehaviorHack import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.dialog.MaterialAlertDialogBuilder import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers -import io.reactivex.rxjava3.kotlin.plusAssign import io.reactivex.rxjava3.kotlin.subscribeBy import org.signal.core.util.concurrent.SignalExecutors import org.signal.core.util.logging.Log @@ -146,6 +145,7 @@ class StoryGroupReplyFragment : private lateinit var adapter: PagingMappingAdapter private lateinit var dataObserver: RecyclerView.AdapterDataObserver private lateinit var composer: StoryReplyComposer + private lateinit var notInGroup: View private var markReadHelper: MarkReadHelper? = null @@ -164,6 +164,7 @@ class StoryGroupReplyFragment : recyclerView = view.findViewById(R.id.recycler) composer = view.findViewById(R.id.composer) + notInGroup = view.findViewById(R.id.not_in_group) lifecycleDisposable.bindTo(viewLifecycleOwner) @@ -215,10 +216,7 @@ class StoryGroupReplyFragment : adapter.registerAdapterDataObserver(dataObserver) initializeMentions() - - if (savedInstanceState == null) { - ViewUtil.focusAndShowKeyboard(composer) - } + initializeComposer(savedInstanceState) recyclerView.addOnScrollListener(GroupReplyScrollObserver()) } @@ -433,6 +431,22 @@ class StoryGroupReplyFragment : sendReaction(emoji) } + private fun initializeComposer(savedInstanceState: Bundle?) { + val isActiveGroup = Recipient.observable(groupRecipientId).map { it.isActiveGroup } + if (savedInstanceState == null) { + lifecycleDisposable += isActiveGroup.firstOrError().observeOn(AndroidSchedulers.mainThread()).subscribe { active -> + if (active) { + ViewUtil.focusAndShowKeyboard(composer) + } + } + } + + lifecycleDisposable += isActiveGroup.distinctUntilChanged().observeOn(AndroidSchedulers.mainThread()).forEach { active -> + composer.visible = active + notInGroup.visible = !active + } + } + private fun initializeMentions() { inlineQueryResultsController = InlineQueryResultsController( requireContext(), diff --git a/app/src/main/res/layout/stories_group_replies_fragment.xml b/app/src/main/res/layout/stories_group_replies_fragment.xml index 1ecb934529..caabd0232a 100644 --- a/app/src/main/res/layout/stories_group_replies_fragment.xml +++ b/app/src/main/res/layout/stories_group_replies_fragment.xml @@ -1,11 +1,11 @@ + tools:layout_gravity="bottom" + tools:viewBindingIgnore="true"> - + app:layout_constraintBottom_toBottomOf="parent"> + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1c49ca9e85..94d567e9a9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -4829,6 +4829,8 @@ Remove viewer No replies yet + + You can\'t reply to this story because you\'re no longer a member of this group. Reacted to the story