diff --git a/app/src/main/java/org/linphone/LinphoneActivity.java b/app/src/main/java/org/linphone/LinphoneActivity.java index 2e0a8196e..d0ecd8d90 100644 --- a/app/src/main/java/org/linphone/LinphoneActivity.java +++ b/app/src/main/java/org/linphone/LinphoneActivity.java @@ -700,34 +700,6 @@ public class LinphoneActivity extends LinphoneGenericActivity startActivity(new Intent(LinphoneActivity.this, InAppPurchaseActivity.class)); } - private void displayChat( - String localSipUri, - String remoteSipUri, - String message, - String fileUri, - String pictureUri, - String thumbnailUri, - String displayName, - Address lAddress) { - Bundle extras = new Bundle(); - extras.putString("LocalSipUri", localSipUri); - extras.putString("RemoteSipUri", remoteSipUri); - - if (message != null) extras.putString("messageDraft", message); - if (fileUri != null) extras.putString("fileSharedUri", fileUri); - if (remoteSipUri != null && lAddress.getDisplayName() != null) { - extras.putString("DisplayName", displayName); - extras.putString("PictureUri", pictureUri); - extras.putString("ThumbnailUri", thumbnailUri); - } - - if (remoteSipUri == null) { - changeCurrentFragment(FragmentsAvailable.CREATE_CHAT, extras); - } else { - changeCurrentFragment(FragmentsAvailable.GROUP_CHAT, extras); - } - } - public void goToChatCreator( String address, ArrayList selectedContacts, @@ -837,70 +809,6 @@ public class LinphoneActivity extends LinphoneGenericActivity changeCurrentFragment(FragmentsAvailable.CHAT_LIST, null); } - public void displayChat( - String localSipUri, String remoteSipUri, String message, String fileUri) { - if (getResources().getBoolean(R.bool.disable_chat)) { - return; - } - - String pictureUri = null; - String thumbnailUri = null; - String displayName = null; - - Address lAddress = null; - if (remoteSipUri != null) { - lAddress = LinphoneManager.getLc().interpretUrl(remoteSipUri); - if (lAddress == null) return; - LinphoneContact contact = - ContactsManager.getInstance().findContactFromAddress(lAddress); - displayName = contact != null ? contact.getFullName() : null; - - if (contact != null && contact.getPhotoUri() != null) { - pictureUri = contact.getPhotoUri().toString(); - thumbnailUri = contact.getThumbnailUri().toString(); - } - } - - if (mCurrentFragment == FragmentsAvailable.CHAT_LIST - || mCurrentFragment == FragmentsAvailable.GROUP_CHAT) { - Fragment fragment2 = getFragmentManager().findFragmentById(R.id.fragmentContainer2); - if (fragment2 != null - && fragment2.isVisible() - && mCurrentFragment == FragmentsAvailable.GROUP_CHAT - && !mEmptyFragment) { - ChatMessagesFragment chatFragment = (ChatMessagesFragment) fragment2; - chatFragment.changeDisplayedChat(localSipUri, remoteSipUri); - } else { - displayChat( - localSipUri, - remoteSipUri, - message, - fileUri, - pictureUri, - thumbnailUri, - displayName, - lAddress); - } - } else { - if (isTablet()) { - changeCurrentFragment(FragmentsAvailable.CHAT_LIST, null); - } else { - displayChat( - localSipUri, - remoteSipUri, - message, - fileUri, - pictureUri, - thumbnailUri, - displayName, - lAddress); - } - } - - LinphoneManager.getInstance().updateUnreadCountForChatRoom(localSipUri, remoteSipUri, 0); - displayMissedChats(LinphoneManager.getInstance().getUnreadMessageCount()); - } - @Override public void onClick(View v) { int id = v.getId(); @@ -1122,12 +1030,6 @@ public class LinphoneActivity extends LinphoneGenericActivity } public void setAddresGoToDialerAndCall(String number, String name) { - // Bundle extras = new Bundle(); - // extras.putString("SipUri", number); - // extras.putString("DisplayName", name); - // extras.putString("Photo", photo == null ? null : photo.toString()); - // changeCurrentFragment(FragmentsAvailable.DIALER, extras); - AddressType address = new AddressText(this, null); address.setText(number); address.setDisplayedName(name); @@ -1407,13 +1309,12 @@ public class LinphoneActivity extends LinphoneGenericActivity protected void onStart() { super.onStart(); ArrayList permissionsList = new ArrayList<>(); - permissionsList.add( - Manifest.permission - .SYSTEM_ALERT_WINDOW); // This one is to allow floating notifications - permissionsList.add( - "android.permission.FOREGROUND_SERVICE"); // Manifest.permission.FOREGROUND_SERVICE, + // This one is to allow floating notifications + permissionsList.add(Manifest.permission.SYSTEM_ALERT_WINDOW); + // Manifest.permission.FOREGROUND_SERVICE, // required starting Android 9 to be able // to start a foreground service + permissionsList.add("android.permission.FOREGROUND_SERVICE"); int contacts = getPackageManager() @@ -1557,13 +1458,16 @@ public class LinphoneActivity extends LinphoneGenericActivity Intent intent = getIntent(); if (intent.getStringExtra("msgShared") != null) { - displayChat(null, null, intent.getStringExtra("msgShared"), null); - intent.putExtra("msgShared", ""); - } - if (intent.getStringExtra("fileShared") != null + Bundle extras = new Bundle(); + extras.putString("messageDraft", intent.getStringExtra("msgShared")); + changeCurrentFragment(FragmentsAvailable.CHAT_LIST, extras); + intent.removeExtra("msgShared"); + } else if (intent.getStringExtra("fileShared") != null && !intent.getStringExtra("fileShared").equals("")) { - displayChat(null, null, null, intent.getStringExtra("fileShared")); - intent.putExtra("fileShared", ""); + Bundle extras = new Bundle(); + extras.putString("fileSharedUri", intent.getStringExtra("fileShared")); + changeCurrentFragment(FragmentsAvailable.CHAT_LIST, extras); + intent.removeExtra("fileShared"); } mIsOnBackground = false; diff --git a/app/src/main/java/org/linphone/LinphoneLauncherActivity.java b/app/src/main/java/org/linphone/LinphoneLauncherActivity.java index 6ff4f5782..ffe689976 100644 --- a/app/src/main/java/org/linphone/LinphoneLauncherActivity.java +++ b/app/src/main/java/org/linphone/LinphoneLauncherActivity.java @@ -168,17 +168,6 @@ public class LinphoneLauncherActivity extends Activity { mAddressToCall = null; } startActivity(newIntent); - if (classToStart == LinphoneActivity.class - && LinphoneActivity.isInstanciated() - && (stringFileShared != null || fileUri != null)) { - if (stringFileShared != null) { - LinphoneActivity.instance() - .displayChat(null, null, stringFileShared, null); - } else if (fileUri != null) { - LinphoneActivity.instance() - .displayChat(null, null, null, stringUriFileShared); - } - } } }, 1000); diff --git a/app/src/main/java/org/linphone/chat/ChatRoomsFragment.java b/app/src/main/java/org/linphone/chat/ChatRoomsFragment.java index cc6a3a020..4bfd47d39 100644 --- a/app/src/main/java/org/linphone/chat/ChatRoomsFragment.java +++ b/app/src/main/java/org/linphone/chat/ChatRoomsFragment.java @@ -30,6 +30,7 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; +import android.widget.Toast; import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -115,8 +116,10 @@ public class ChatRoomsFragment extends Fragment new View.OnClickListener() { @Override public void onClick(View v) { + Bundle extras = (Bundle) getArguments().clone(); + getArguments().clear(); LinphoneActivity.instance() - .goToChatCreator(null, null, null, false, null, false, false); + .goToChatCreator(null, null, null, false, extras, false, false); } }); @@ -124,8 +127,10 @@ public class ChatRoomsFragment extends Fragment new View.OnClickListener() { @Override public void onClick(View v) { + Bundle extras = (Bundle) getArguments().clone(); + getArguments().clear(); LinphoneActivity.instance() - .goToChatCreator(null, null, null, false, null, true, false); + .goToChatCreator(null, null, null, false, extras, true, false); } }); @@ -173,6 +178,19 @@ public class ChatRoomsFragment extends Fragment } } }; + + if (getArguments() != null) { + String fileSharedUri = getArguments().getString("fileSharedUri"); + String messageSharedUri = getArguments().getString("messageDraft"); + if (fileSharedUri != null || messageSharedUri != null) { + Toast.makeText( + LinphoneActivity.instance(), + R.string.toast_choose_chat_room_for_sharing, + Toast.LENGTH_SHORT) + .show(); + } + } + return view; } @@ -182,11 +200,13 @@ public class ChatRoomsFragment extends Fragment mChatRoomsAdapter.toggleSelection(position); } else { ChatRoom room = (ChatRoom) mChatRoomsAdapter.getItem(position); + Bundle extras = (Bundle) getArguments().clone(); + getArguments().clear(); LinphoneActivity.instance() .goToChat( room.getLocalAddress().asStringUriOnly(), room.getPeerAddress().asString(), - null); + extras); } } diff --git a/app/src/main/java/org/linphone/contacts/ContactsFragment.java b/app/src/main/java/org/linphone/contacts/ContactsFragment.java index c46e35c02..33b0de0da 100644 --- a/app/src/main/java/org/linphone/contacts/ContactsFragment.java +++ b/app/src/main/java/org/linphone/contacts/ContactsFragment.java @@ -31,6 +31,7 @@ import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.SearchView; import android.widget.TextView; +import android.widget.Toast; import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -75,9 +76,19 @@ public class ContactsFragment extends Fragment if (getArguments() != null) { mEditOnClick = getArguments().getBoolean("EditOnClick"); mSipAddressToAdd = getArguments().getString("SipAddress"); - if (getArguments().getString("DisplayName") != null) + if (getArguments().getString("DisplayName") != null) { mDisplayName = getArguments().getString("DisplayName"); + } mOnlyDisplayChatAddress = getArguments().getBoolean("ChatAddressOnly"); + + if (getArguments().getBoolean("EditOnClick")) { + Toast.makeText( + LinphoneActivity.instance(), + R.string.toast_choose_contact_for_edition, + Toast.LENGTH_SHORT) + .show(); + } + getArguments().clear(); } mNoSipContact = view.findViewById(R.id.noSipContact); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8dcd68868..da8411e75 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -178,6 +178,7 @@ Organization Invite Hello, join me on Linphone! You can download it for free at http://www.linphone.org/technical-corner/linphone/downloads + Select the contact to edit or create a new one No conversations @@ -244,6 +245,7 @@ Max participant count exceeded by %s Unexpected event %i for %s Download + Select the conversation in which to send your selection or create a new one Registered