Skip to content

Commit

Permalink
Fix scroll jump when reacting with keyboard open.
Browse files Browse the repository at this point in the history
  • Loading branch information
cody-signal committed Aug 18, 2023
1 parent e7d0b57 commit 5d44bbe
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,15 @@ class InputAwareConstraintLayout @JvmOverloads constructor(
wasKeyboardVisibleBeforeToggle = false
}

fun hideKeyboard(imeTarget: EditText, keepHeightOverride: Boolean = false) {
if (isKeyboardShowing) {
if (keepHeightOverride) {
overrideKeyboardGuidelineWithPreviousHeight()
}
ViewUtil.hideKeyboard(context, imeTarget)
}
}

private fun showInput(fragmentCreator: FragmentCreator, imeTarget: EditText) {
inputId = fragmentCreator.id
input = fragmentCreator.create()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -444,11 +444,7 @@ private void hideInternal(@Nullable OnHideListener onHideListener) {
animatorSet.start();

if (onHideListener != null) {
onHideListener.startHide();
}

if (selectedConversationModel.getFocusedView() != null) {
ViewUtil.focusAndShowKeyboard(selectedConversationModel.getFocusedView());
onHideListener.startHide(selectedConversationModel.getFocusedView());
}

animatorSet.addListener(new AnimationCompleteListener() {
Expand Down Expand Up @@ -760,13 +756,15 @@ public void setOnHideListener(@Nullable OnHideListener onHideListener) {

private void handleActionItemClicked(@NonNull Action action) {
hideInternal(new OnHideListener() {
@Override public void startHide() {
@Override
public void startHide(@Nullable View focusedView) {
if (onHideListener != null) {
onHideListener.startHide();
onHideListener.startHide(focusedView);
}
}

@Override public void onHide() {
@Override
public void onHide() {
if (onHideListener != null) {
onHideListener.onHide();
}
Expand Down Expand Up @@ -893,7 +891,7 @@ public void onAnimationEnd(Animator animation) {
}

public interface OnHideListener {
void startHide();
void startHide(@Nullable View focusedView);
void onHide();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2884,7 +2884,7 @@ class ConversationFragment :
ViewUtil.fadeOut(target.quotedIndicatorView!!, 150, View.INVISIBLE)
}

ViewUtil.hideKeyboard(requireContext(), itemView)
container.hideKeyboard(composeText, keepHeightOverride = true)

viewModel.setHideScrollButtonsForReactionOverlay(true)

Expand All @@ -2894,9 +2894,13 @@ class ConversationFragment :
ReactionsToolbarListener(item.conversationMessage),
selectedConversationModel,
object : OnHideListener {
override fun startHide() {
override fun startHide(focusedView: View?) {
multiselectItemDecoration.hideShade(binding.conversationItemRecycler)
ViewUtil.fadeOut(binding.reactionsShade, resources.getInteger(R.integer.reaction_scrubber_hide_duration), View.GONE)

if (focusedView == composeText) {
container.showSoftkey(composeText)
}
}

override fun onHide() {
Expand Down

0 comments on commit 5d44bbe

Please sign in to comment.