From f2bfc33bcd1262bd04fec41a8d241f32ec5500d6 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 10 Sep 2018 12:34:04 +0200 Subject: [PATCH] Keep files on device rotation --- .../org/linphone/chat/GroupChatFragment.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/android/org/linphone/chat/GroupChatFragment.java b/src/android/org/linphone/chat/GroupChatFragment.java index 0fb7fbb4f..41645f04d 100644 --- a/src/android/org/linphone/chat/GroupChatFragment.java +++ b/src/android/org/linphone/chat/GroupChatFragment.java @@ -239,6 +239,11 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con if (getArguments().getString("messageDraft") != null) mMessageTextToSend.setText(getArguments().getString("messageDraft")); } + + if (savedInstanceState != null) { + onRestoreInstanceState(savedInstanceState); + } + return view; } @@ -586,6 +591,31 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con * File transfer related */ + @Override + public void onSaveInstanceState(Bundle outState) { + String files[] = new String[mFilesUploadLayout.getChildCount()]; + for (int i = 0; i < mFilesUploadLayout.getChildCount(); i++) { + View child = mFilesUploadLayout.getChildAt(i); + String path = (String) child.getTag(); + files[i] = path; + } + outState.putStringArray("Files", files); + super.onSaveInstanceState(outState); + } + + public void onRestoreInstanceState(Bundle savedInstanceState) { + String files[] = savedInstanceState.getStringArray("Files"); + if (files.length > 0) { + for (String file : files) { + if (LinphoneUtils.isExtensionImage(file)) { + addImageToPendingList(file); + } else { + addFileToPendingList(file); + } + } + } + } + private void pickFile() { List cameraIntents = new ArrayList<>(); Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);