diff --git a/res/values-FR/strings.xml b/res/values-FR/strings.xml
index c46277740..592f64ae7 100644
--- a/res/values-FR/strings.xml
+++ b/res/values-FR/strings.xml
@@ -364,6 +364,7 @@
Utilisateur non trouvé
Paramètres média incompatibles
Votre correspondant à un débit faible, la vidéo ne peut démarrer
+ Le réseau n\'est pas joignable
Aujourd\'hui
Hier
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ed2aea972..7a16ad8eb 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -411,6 +411,7 @@
User not found
Incompatible media parameters
Your correspondent has low bandwidth, video can\'t be started
+ Network is unreachable
Today
Yesterday
diff --git a/src/org/linphone/ChatFragment.java b/src/org/linphone/ChatFragment.java
index cccc0b383..a54fde846 100644
--- a/src/org/linphone/ChatFragment.java
+++ b/src/org/linphone/ChatFragment.java
@@ -458,7 +458,10 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
}
private void sendTextMessage() {
- if (chatRoom != null && message != null && message.getText().length() > 0) {
+ LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
+ boolean isNetworkReachable = lc == null ? false : lc.isNetworkReachable();
+
+ if (chatRoom != null && message != null && message.getText().length() > 0 && isNetworkReachable) {
String messageToSend = message.getText().toString();
message.setText("");
@@ -472,11 +475,16 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
displayMessage(newId, messageToSend, String.valueOf(System.currentTimeMillis()), false, State.InProgress, messagesLayout);
scrollToEnd();
+ } else if (!isNetworkReachable && LinphoneActivity.isInstanciated()) {
+ LinphoneActivity.instance().displayCustomToast(getString(R.string.error_network_unreachable), Toast.LENGTH_LONG);
}
}
private void sendImageMessage(String url, Bitmap bitmap) {
- if (chatRoom != null && url != null && url.length() > 0) {
+ LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
+ boolean isNetworkReachable = lc == null ? false : lc.isNetworkReachable();
+
+ if (chatRoom != null && url != null && url.length() > 0 && isNetworkReachable) {
LinphoneChatMessage chatMessage = chatRoom.createLinphoneChatMessage("");
chatMessage.setExternalBodyUrl(url);
chatRoom.sendMessage(chatMessage, this);
@@ -489,6 +497,8 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
displayImageMessage(newId, bitmap, String.valueOf(System.currentTimeMillis()), false, State.InProgress, messagesLayout);
scrollToEnd();
+ } else if (!isNetworkReachable && LinphoneActivity.isInstanciated()) {
+ LinphoneActivity.instance().displayCustomToast(getString(R.string.error_network_unreachable), Toast.LENGTH_LONG);
}
}
diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java
index 15a03b398..86858044b 100644
--- a/src/org/linphone/LinphoneManager.java
+++ b/src/org/linphone/LinphoneManager.java
@@ -107,6 +107,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
+import android.widget.Toast;
/**
*
@@ -277,20 +278,26 @@ public final class LinphoneManager implements LinphoneCoreListener {
boolean isLowBandwidthConnection = !LinphoneUtils.isHightBandwidthConnection(LinphoneService.instance().getApplicationContext());
- try {
- if (Version.isVideoCapable()) {
- boolean prefVideoEnable = isVideoEnabled();
- int key = R.string.pref_video_initiate_call_with_video_key;
- boolean prefInitiateWithVideo = getPrefBoolean(key, false);
- CallManager.getInstance().inviteAddress(lAddress, prefVideoEnable && prefInitiateWithVideo, isLowBandwidthConnection);
- } else {
- CallManager.getInstance().inviteAddress(lAddress, false, isLowBandwidthConnection);
+ if (mLc.isNetworkReachable()) {
+ try {
+ if (Version.isVideoCapable()) {
+ boolean prefVideoEnable = isVideoEnabled();
+ int key = R.string.pref_video_initiate_call_with_video_key;
+ boolean prefInitiateWithVideo = getPrefBoolean(key, false);
+ CallManager.getInstance().inviteAddress(lAddress, prefVideoEnable && prefInitiateWithVideo, isLowBandwidthConnection);
+ } else {
+ CallManager.getInstance().inviteAddress(lAddress, false, isLowBandwidthConnection);
+ }
+
+
+ } catch (LinphoneCoreException e) {
+ mListenerDispatcher.tryingNewOutgoingCallButCannotGetCallParameters();
+ return;
}
-
-
- } catch (LinphoneCoreException e) {
- mListenerDispatcher.tryingNewOutgoingCallButCannotGetCallParameters();
- return;
+ } else if (LinphoneActivity.isInstanciated()) {
+ LinphoneActivity.instance().displayCustomToast(getString(R.string.error_network_unreachable), Toast.LENGTH_LONG);
+ } else {
+ Log.e("Error: " + getString(R.string.error_network_unreachable));
}
}