diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 9b7cdbe06..10968ef34 100755
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -112,7 +112,7 @@
-
+
diff --git a/src/android/org/linphone/ChatFragment.java b/src/android/org/linphone/ChatFragment.java
index a2da04e0a..20841d4e6 100644
--- a/src/android/org/linphone/ChatFragment.java
+++ b/src/android/org/linphone/ChatFragment.java
@@ -683,10 +683,23 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
LinphoneActivity.instance().setAddresGoToDialerAndCall(sipUri, LinphoneUtils.getUsernameFromAddress(sipUri), null);
}
if (id == R.id.back) {
+ cleanIntentAndFiles();
getFragmentManager().popBackStackImmediate();
}
}
+ private void cleanIntentAndFiles() {
+ if (getArguments().getString("fileSharedUri") != null){
+ getArguments().remove("fileSharedUri");
+ fileSharedUri = null;
+ }
+ message.setText("");
+ if (getArguments().getString("messageDraft") != null)
+ getArguments().remove("messageDraft");
+
+ this.getArguments().clear();
+ }
+
private void sendTextMessage() {
if (!LinphoneManager.isInstanciated() || LinphoneManager.getLc() == null)
return;
@@ -774,6 +787,11 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
private void sendFileSharingMessage(String path, int size ) {
if(path.contains("file://")) {
path = path.substring(7);
+ }else if(path.contains("com.android.contacts/contacts/")){
+ Log.e("===>>> ChatFragment - sendFileSharingMessage : path = "+path);
+ path = getCVSPathFromLookupUri(path).toString();
+ }else if(path.contains(".vcf")){
+ //TODO : do something
}
LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
@@ -926,7 +944,11 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
}
public Uri getCVSPathFromLookupUri(Uri contentUri) {
- String contactId = LinphoneUtils.getNameFromFilePath(contentUri.getPath());
+ return getCVSPathFromLookupUri(contentUri.getPath());
+ }
+
+ public Uri getCVSPathFromLookupUri(String content) {
+ String contactId = LinphoneUtils.getNameFromFilePath(content);
LinphoneFriend[] friendList = LinphoneManager.getLc().getFriendList();
for(LinphoneFriend friend : friendList){
if(friend.getRefKey().toString().equals(contactId)) {
@@ -953,7 +975,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
@Override
public void onContactsUpdated() {
- if(fileSharedUri != null){
+ if(fileSharedUri != null || message.getText() != null){
initNewChatConversation();
}
}
diff --git a/src/android/org/linphone/LinphoneLauncherActivity.java b/src/android/org/linphone/LinphoneLauncherActivity.java
index 174e473f8..6ef54e503 100644
--- a/src/android/org/linphone/LinphoneLauncherActivity.java
+++ b/src/android/org/linphone/LinphoneLauncherActivity.java
@@ -116,9 +116,18 @@ public class LinphoneLauncherActivity extends Activity {
String type = intent.getType();
newIntent.setData(intent.getData());
if (Intent.ACTION_SEND.equals(action) && type != null) {
- if ("text/plain".equals(type) && intent.getStringExtra(Intent.EXTRA_TEXT) != null) {
- stringFileShared = intent.getStringExtra(Intent.EXTRA_TEXT);
- newIntent.putExtra("msgShared", stringFileShared);
+ Log.e("====>>> LinphoneLauncherActivity : onServiceReady - type = "+type);
+ if (type.contains("text/")){ //&& intent.getStringExtra(Intent.EXTRA_TEXT) != null) {
+
+ if(("text/plain").equals(type) && intent.getStringExtra(Intent.EXTRA_TEXT)!= null) {
+ stringFileShared = intent.getStringExtra(Intent.EXTRA_TEXT);
+ Log.e("====>>> LinphoneLauncherActivity : onServiceReady - stringText = "+stringFileShared);
+ newIntent.putExtra("msgShared", stringFileShared);
+ } else if(((Uri) intent.getExtras().get(Intent.EXTRA_STREAM)) != null){
+ stringFileShared = ((Uri) intent.getExtras().get(Intent.EXTRA_STREAM)).getPath();
+ Log.e("====>>> LinphoneLauncherActivity : onServiceReady - stringFileShared = "+stringFileShared);
+ newIntent.putExtra("fileShared", stringFileShared);
+ }
}else {
if(intent.getStringExtra(Intent.EXTRA_STREAM) != null){
stringFileShared = intent.getStringExtra(Intent.EXTRA_STREAM);