Hide scheduled messages bar with input panel.

This commit is contained in:
Clark 2023-01-27 11:25:48 -05:00 committed by Greyson Parrelli
parent 23190a2f6e
commit 834283ba9b
3 changed files with 35 additions and 16 deletions

View file

@ -469,6 +469,7 @@ public class ConversationParentFragment extends Fragment
private int distributionType; private int distributionType;
private int reactWithAnyEmojiStartPage = -1; private int reactWithAnyEmojiStartPage = -1;
private boolean isSearchRequested = false; private boolean isSearchRequested = false;
private boolean reshowScheduleMessagesBar = false;
private final LifecycleDisposable disposables = new LifecycleDisposable(); private final LifecycleDisposable disposables = new LifecycleDisposable();
private final Debouncer optionsMenuDebouncer = new Debouncer(50); private final Debouncer optionsMenuDebouncer = new Debouncer(50);
@ -3316,18 +3317,20 @@ public class ConversationParentFragment extends Fragment
} }
} }
private void updateScheduledMessagesBar(@NonNull Integer count) { private void updateScheduledMessagesBar(int count) {
if (count <= 0) { if (count <= 0) {
scheduledMessagesBarStub.setVisibility(View.GONE); scheduledMessagesBarStub.setVisibility(View.GONE);
reshowScheduleMessagesBar = false;
} else { } else {
if (!scheduledMessagesBarStub.resolved()) {
View scheduledMessagesBar = scheduledMessagesBarStub.get(); View scheduledMessagesBar = scheduledMessagesBarStub.get();
scheduledMessagesBar.findViewById(R.id.scheduled_messages_show_all).setOnClickListener(v -> { scheduledMessagesBar.findViewById(R.id.scheduled_messages_show_all).setOnClickListener(v -> {
ScheduledMessagesBottomSheet.show(getChildFragmentManager(), threadId, recipient.getId()); ScheduledMessagesBottomSheet.show(getChildFragmentManager(), threadId, recipient.getId());
}); });
}
scheduledMessagesBarStub.setVisibility(View.VISIBLE); scheduledMessagesBar.setVisibility(View.VISIBLE);
TextView scheduledText = scheduledMessagesBarStub.get().findViewById(R.id.scheduled_messages_text); reshowScheduleMessagesBar = true;
TextView scheduledText = scheduledMessagesBar.findViewById(R.id.scheduled_messages_text);
scheduledText.setText(getResources().getQuantityString(R.plurals.conversation_scheduled_messages_bar__number_of_messages, count, count)); scheduledText.setText(getResources().getQuantityString(R.plurals.conversation_scheduled_messages_bar__number_of_messages, count, count));
} }
} }
@ -4151,11 +4154,19 @@ public class ConversationParentFragment extends Fragment
public void onMessageActionToolbarOpened() { public void onMessageActionToolbarOpened() {
searchViewItem.collapseActionView(); searchViewItem.collapseActionView();
toolbar.setVisibility(View.GONE); toolbar.setVisibility(View.GONE);
if (scheduledMessagesBarStub.getVisibility() == View.VISIBLE) {
reshowScheduleMessagesBar = true;
scheduledMessagesBarStub.setVisibility(View.GONE);
}
} }
@Override @Override
public void onMessageActionToolbarClosed() { public void onMessageActionToolbarClosed() {
toolbar.setVisibility(View.VISIBLE); toolbar.setVisibility(View.VISIBLE);
if (reshowScheduleMessagesBar) {
scheduledMessagesBarStub.setVisibility(View.VISIBLE);
reshowScheduleMessagesBar = false;
}
} }
@Override @Override

View file

@ -35,4 +35,12 @@ public class Stub<T extends View> {
} }
} }
public int getVisibility() {
if (resolved()) {
return get().getVisibility();
} else {
return View.GONE;
}
}
} }

View file

@ -62,13 +62,6 @@
</FrameLayout> </FrameLayout>
<ViewStub
android:id="@+id/scheduled_messages_stub"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inflatedId="@+id/scheduled_messages"
android:layout="@layout/conversation_activity_scheduled_messages_stub" />
<ViewStub <ViewStub
android:id="@+id/attachment_editor_stub" android:id="@+id/attachment_editor_stub"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -84,6 +77,13 @@
android:clipChildren="false" android:clipChildren="false"
android:clipToPadding="false"> android:clipToPadding="false">
<ViewStub
android:id="@+id/scheduled_messages_stub"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inflatedId="@+id/scheduled_messages"
android:layout="@layout/conversation_activity_scheduled_messages_stub" />
<include layout="@layout/conversation_search_nav" /> <include layout="@layout/conversation_search_nav" />
<FrameLayout <FrameLayout