From 7e5b9c464871c0dd538acbf429e8ead7d18b6af1 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 18 Mar 2021 11:14:26 +0100 Subject: [PATCH] Fixed various issues --- app/build.gradle | 2 +- .../linphone/call/AndroidAudioManager.java | 1 + .../java/org/linphone/call/CallActivity.java | 7 ++++ .../java/org/linphone/call/CallManager.java | 4 ++ .../linphone/chat/ChatMessageViewHolder.java | 3 +- .../linphone/chat/ChatMessagesFragment.java | 38 +++++++++++-------- .../contacts/ContactEditorFragment.java | 3 +- .../org/linphone/dialer/DialerActivity.java | 30 ++++++++------- .../main/res/layout/contact_control_cell.xml | 3 +- app/src/main/res/values-hu/strings.xml | 4 ++ .../res/values/non_localizable_custom.xml | 2 +- 11 files changed, 62 insertions(+), 35 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 33e8a737e..5e8ea8d52 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -100,7 +100,7 @@ android { defaultConfig { minSdkVersion 23 targetSdkVersion 29 - versionCode 4317 + versionCode 4318 versionName "${project.version}" applicationId getPackageName() multiDexEnabled true diff --git a/app/src/main/java/org/linphone/call/AndroidAudioManager.java b/app/src/main/java/org/linphone/call/AndroidAudioManager.java index e6931a2fd..83eadbfe8 100644 --- a/app/src/main/java/org/linphone/call/AndroidAudioManager.java +++ b/app/src/main/java/org/linphone/call/AndroidAudioManager.java @@ -189,6 +189,7 @@ public class AndroidAudioManager { if (currentCall == null) currentCall = LinphoneManager.getCore().getCalls()[0]; if (currentCall == null) return false; AudioDevice audioDevice = currentCall.getOutputAudioDevice(); + if (audioDevice == null) return false; Log.i("[Audio Manager] Currently used audio device: ", audioDevice.getDeviceName()); return audioDevice.getType() == AudioDevice.Type.Bluetooth; } diff --git a/app/src/main/java/org/linphone/call/CallActivity.java b/app/src/main/java/org/linphone/call/CallActivity.java index 952a20ee9..91533aa2f 100644 --- a/app/src/main/java/org/linphone/call/CallActivity.java +++ b/app/src/main/java/org/linphone/call/CallActivity.java @@ -409,6 +409,13 @@ public class CallActivity extends LinphoneGenericActivity setCurrentCallContactInformation(); updateInterfaceDependingOnVideo(); + } else if (state == Call.State.Updating) { + if (call.getCurrentParams().videoEnabled()) { + if (!LinphoneManager.getAudioManager() + .isUsingBluetoothAudioRoute()) { + LinphoneManager.getAudioManager().routeAudioToSpeaker(); + } + } } else if (state == Call.State.UpdatedByRemote) { // If the correspondent asks for video while in audio call boolean videoEnabled = LinphonePreferences.instance().isVideoEnabled(); diff --git a/app/src/main/java/org/linphone/call/CallManager.java b/app/src/main/java/org/linphone/call/CallManager.java index 26587029f..de54ccd19 100644 --- a/app/src/main/java/org/linphone/call/CallManager.java +++ b/app/src/main/java/org/linphone/call/CallManager.java @@ -144,6 +144,10 @@ public class CallManager { params.enableVideo(true); core.enableVideoCapture(true); core.enableVideoDisplay(true); + + if (!LinphoneManager.getAudioManager().isUsingBluetoothAudioRoute()) { + LinphoneManager.getAudioManager().routeAudioToSpeaker(); + } } else { params.enableVideo(false); } diff --git a/app/src/main/java/org/linphone/chat/ChatMessageViewHolder.java b/app/src/main/java/org/linphone/chat/ChatMessageViewHolder.java index 203e69d2e..667d741ac 100644 --- a/app/src/main/java/org/linphone/chat/ChatMessageViewHolder.java +++ b/app/src/main/java/org/linphone/chat/ChatMessageViewHolder.java @@ -264,7 +264,8 @@ public class ChatMessageViewHolder extends RecyclerView.ViewHolder implements Vi final TextView fileName = content.findViewById(R.id.file); fileName.setVisibility(View.GONE); - if (c.isFile() || (c.isFileTransfer() && !c.getFilePath().isEmpty())) { + if (c.isFile() + || (c.isFileTransfer() && message.isOutgoing() && !c.getFilePath().isEmpty())) { // If message is outgoing, even if content // is file transfer we have the file available final String filePath = c.getFilePath(); diff --git a/app/src/main/java/org/linphone/chat/ChatMessagesFragment.java b/app/src/main/java/org/linphone/chat/ChatMessagesFragment.java index 7496bfae5..ee6d2c735 100644 --- a/app/src/main/java/org/linphone/chat/ChatMessagesFragment.java +++ b/app/src/main/java/org/linphone/chat/ChatMessagesFragment.java @@ -668,10 +668,15 @@ public class ChatMessagesFragment extends Fragment } /** View initialization */ - private void setReadOnly() { - mMessageTextToSend.setEnabled(false); - mAttachImageButton.setEnabled(false); - mSendMessageButton.setEnabled(false); + private void setReadOnly(boolean readOnly) { + if (readOnly) { + mMessageTextToSend.setText(""); + mFilesUploadLayout.removeAllViews(); + } + + mMessageTextToSend.setEnabled(!readOnly); + mAttachImageButton.setEnabled(!readOnly); + mSendMessageButton.setEnabled(!readOnly); mSendEphemeralIcon.setEnabled(mSendMessageButton.isEnabled()); } @@ -801,7 +806,7 @@ public class ChatMessagesFragment extends Fragment mSendEphemeralIcon.setVisibility(mChatRoom.ephemeralEnabled() ? View.VISIBLE : View.GONE); if (mChatRoom.hasBeenLeft()) { - setReadOnly(); + setReadOnly(true); } updateSecurityLevelIcon(); @@ -1084,15 +1089,18 @@ public class ChatMessagesFragment extends Fragment boolean split = isBasicChatRoom; // Always split contents in basic chat rooms for compatibility - if (hasText && sendImageAndTextAsDifferentMessages) { - split = true; - } else if (mFilesUploadLayout.getChildCount() > 1 - && sendMultipleImagesAsDifferentMessages) { - split = true; + if (!split) { + if (hasText && sendImageAndTextAsDifferentMessages) { + split = true; + } else if (mFilesUploadLayout.getChildCount() > 1 + && sendMultipleImagesAsDifferentMessages) { + split = true; - // Allow the last image to be sent with text if image and text at the same time OK - if (hasText && i == filesCount - 1) { - split = false; + // Allow the last image to be sent with text if image and text at the same time + // OK + if (hasText && i == filesCount - 1) { + split = false; + } } } @@ -1450,9 +1458,7 @@ public class ChatMessagesFragment extends Fragment @Override public void onStateChanged(ChatRoom cr, ChatRoom.State newState) { - if (mChatRoom.hasBeenLeft()) { - setReadOnly(); - } + setReadOnly(mChatRoom.hasBeenLeft()); } @Override diff --git a/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java b/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java index 238681f51..e8bf17f8a 100644 --- a/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java +++ b/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java @@ -500,9 +500,8 @@ public class ContactEditorFragment extends Fragment { } catch (IOException e) { Log.e("[Contact Editor] Failed to get Exif rotation, error is ", e); } - } else { - } + if (image == null) { Log.e( "[Contact Editor] Couldn't get bitmap from either filePath [", diff --git a/app/src/main/java/org/linphone/dialer/DialerActivity.java b/app/src/main/java/org/linphone/dialer/DialerActivity.java index af30679a5..301351344 100644 --- a/app/src/main/java/org/linphone/dialer/DialerActivity.java +++ b/app/src/main/java/org/linphone/dialer/DialerActivity.java @@ -106,6 +106,9 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC @Override public void onCallStateChanged( Core core, Call call, Call.State state, String message) { + if (state == Call.State.OutgoingInit) { + if (mAddress != null) mAddress.setText(""); + } updateLayout(); } @@ -166,10 +169,6 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC }; mIsTransfer = false; - if (getIntent() != null) { - mIsTransfer = getIntent().getBooleanExtra("isTransfer", false); - } - handleIntentParams(getIntent()); } @@ -178,13 +177,6 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC super.onNewIntent(intent); handleIntentParams(intent); - - if (intent != null) { - mIsTransfer = intent.getBooleanExtra("isTransfer", mIsTransfer); - if (mAddress != null && intent.getStringExtra("SipUri") != null) { - mAddress.setText(intent.getStringExtra("SipUri")); - } - } } @Override @@ -207,7 +199,6 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC @Override protected void onPause() { enableVideoPreviewIfTablet(false); - if (mAddress != null) mAddress.setText(""); Core core = LinphoneManager.getCore(); if (core != null) { core.removeListener(mListener); @@ -219,6 +210,7 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC @Override protected void onDestroy() { if (mInterfaceLoaded) { + if (mAddress != null) mAddress.setText(""); mAddress = null; mStartCall = null; mAddCall = null; @@ -280,6 +272,7 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC intent.putExtra("EditOnClick", true); intent.putExtra("SipAddress", mAddress.getText().toString()); startActivity(intent); + if (mAddress != null) mAddress.setText(""); } }); @@ -289,6 +282,7 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC @Override public void onClick(View v) { goBackToCall(); + if (mAddress != null) mAddress.setText(""); } }); @@ -334,6 +328,7 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); + outState.putSerializable("address", mAddress.getText().toString()); outState.putSerializable("isTransfer", mIsTransfer); } @@ -341,6 +336,7 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); mIsTransfer = savedInstanceState.getBoolean("isTransfer"); + mAddress.setText(savedInstanceState.getString("address")); } @Override @@ -375,6 +371,8 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC private void handleIntentParams(Intent intent) { if (intent == null) return; + mIsTransfer = intent.getBooleanExtra("isTransfer", mIsTransfer); + String action = intent.getAction(); String addressToCall = null; if (ACTION_CALL_LINPHONE.equals(action) @@ -409,7 +407,13 @@ public class DialerActivity extends MainActivity implements AddressText.AddressC Log.i("[Dialer] " + action + " with number: " + addressToCall); } } else { - Log.w("[Dialer] Intent data is null for action " + action); + String sipUri = intent.getStringExtra("SipUri"); + if (sipUri != null) { + Log.i("[Dialer] Found extra SIP URI: " + sipUri); + addressToCall = sipUri; + } else { + Log.w("[Dialer] Intent data is null for action " + action); + } } } diff --git a/app/src/main/res/layout/contact_control_cell.xml b/app/src/main/res/layout/contact_control_cell.xml index 07c27700d..5662958e7 100644 --- a/app/src/main/res/layout/contact_control_cell.xml +++ b/app/src/main/res/layout/contact_control_cell.xml @@ -45,11 +45,12 @@ diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 594290fd9..5d1d7f1fb 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -130,6 +130,9 @@ A telefonszámát csak egy Linphone-fiókkal használhatja.\n\nHa már összekapcsolta telefonszámát egy másik fiókkal, de inkább ezt használja, egyszerűen kapcsolja össze, és a telefonszám önműködően átkerül ebbe a fiókba. Túl sok SMS-t küldtek erre a számra rövid idő alatt. Kérjük, várjon 24 órát, mielőtt újra megpróbálja. Fiók nem létezik + használati feltételek + adatvédelmi szabályzat + Elfogadom a Belledonne Communications %1$s és %2$s Érvénytelen e-mail Fiók már létezik @@ -613,6 +616,7 @@ Konferencia elhagyása Linphone szolgáltatás-értesítés Linphone csevegőüzenetek értesítések + Linphone nem fogadott hívások értesítései Csoportos csevegőszoba tárgya Csoportos csevegőszoba tájékoztatás Hívás felvétele diff --git a/app/src/main/res/values/non_localizable_custom.xml b/app/src/main/res/values/non_localizable_custom.xml index 590768902..21e2cfc5a 100644 --- a/app/src/main/res/values/non_localizable_custom.xml +++ b/app/src/main/res/values/non_localizable_custom.xml @@ -116,7 +116,7 @@ false false true - true + false true true