diff options
author | wangqi <wangqi@google.com> | 2018-03-09 10:14:47 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-03-09 11:10:35 -0800 |
commit | 93d27d0a5db53bc7cb7b03c58889667887d5816b (patch) | |
tree | a8fe62c062534b95caeeb29cdfe74e5c39dd686b /java/com/android/incallui/rtt/impl/RttChatFragment.java | |
parent | 93a51cc5d641c45bcc4d8bcd47b715919935b918 (diff) |
Save RTT chat history during the call.
Thus putting call into background won't lose the history.
This is only stored in memory by making RttChatMessage Parcelable and saved
along with fragment's life cycle.
Bug: 67596257
Test: manual
PiperOrigin-RevId: 188500104
Change-Id: I11e8e55f0475defd9c3b9a8cc10db4186392ddd8
Diffstat (limited to 'java/com/android/incallui/rtt/impl/RttChatFragment.java')
-rw-r--r-- | java/com/android/incallui/rtt/impl/RttChatFragment.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/java/com/android/incallui/rtt/impl/RttChatFragment.java b/java/com/android/incallui/rtt/impl/RttChatFragment.java index f9c91e5fb..9e8a24a48 100644 --- a/java/com/android/incallui/rtt/impl/RttChatFragment.java +++ b/java/com/android/incallui/rtt/impl/RttChatFragment.java @@ -124,6 +124,8 @@ public class RttChatFragment extends Fragment if (savedInstanceState != null) { inCallButtonUiDelegate.onRestoreInstanceState(savedInstanceState); } + // Prevent updating local message until UI is ready. + isClearingInput = true; } @Override @@ -158,7 +160,7 @@ public class RttChatFragment extends Fragment layoutManager.setStackFromEnd(true); recyclerView.setLayoutManager(layoutManager); recyclerView.setHasFixedSize(false); - adapter = new RttChatAdapter(getContext(), this); + adapter = new RttChatAdapter(getContext(), this, savedInstanceState); recyclerView.setAdapter(adapter); recyclerView.addOnScrollListener(onScrollListener); submitButton = view.findViewById(R.id.rtt_chat_submit_button); @@ -242,13 +244,21 @@ public class RttChatFragment extends Fragment public void onStart() { LogUtil.enterBlock("RttChatFragment.onStart"); super.onStart(); + isClearingInput = false; onRttScreenStart(); } @Override + public void onSaveInstanceState(@NonNull Bundle bundle) { + super.onSaveInstanceState(bundle); + adapter.onSaveInstanceState(bundle); + } + + @Override public void onStop() { LogUtil.enterBlock("RttChatFragment.onStop"); super.onStop(); + isClearingInput = true; if (overflowMenu.isShowing()) { overflowMenu.dismiss(); } |