diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 4afeb088e..c59875296 100755
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -108,6 +108,13 @@
+
+
+
+
+
+
+
>> ChatFragment : onCreateView - newChatConversation = "+newChatConversation+" - fileSharedUri = "+fileSharedUri);
initNewChatConversation();
}
@@ -283,7 +290,16 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
if (contact != null) {
outState.putSerializable("contactDraft",contact);
outState.putString("sipUriDraft",sipUri);
+
}
+ if (sipUri != null) {
+ Log.e("====>>>> ChatFragment - onSaveInstanceState : sipUri = "+sipUri);
+ outState.putString("sipUriDraft", sipUri);
+ outState.putString("SipUri", sipUri);
+
+ }
+ outState.putString("fileSharedUri", "");
+
super.onSaveInstanceState(outState);
}
@@ -350,7 +366,6 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
public void initChatRoom(String sipUri) {
LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
-
LinphoneAddress lAddress = null;
if (sipUri == null) {
contact = null; // Tablet rotation issue
@@ -410,9 +425,12 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
}
}
- public void changeDisplayedChat(String newSipUri, String displayName, String pictureUri, String message) {
+ public void changeDisplayedChat(String newSipUri, String displayName, String pictureUri, String message, String fileUri) {
this.sipUri = newSipUri;
- this.message.setText(message);
+ if(message != null)
+ this.message.setText(message);
+ if(fileUri != null)
+ fileSharedUri = fileUri;
initChatRoom(sipUri);
}
@@ -446,7 +464,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
chatRoom.deleteMessage(message);
if (getResources().getBoolean(R.bool.isTablet) && chatRoom.getHistorySize() <= 0) {
if (LinphoneActivity.isInstanciated()) {
- LinphoneActivity.instance().displayChat("", null);
+ LinphoneActivity.instance().displayChat("", null, null);
LinphoneActivity.instance().onMessageSent("", null);
initNewChatConversation();
}
@@ -516,7 +534,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
@Override
public void onResume() {
super.onResume();
-
+ ContactsManager.addContactsListener(this);
message.addTextChangedListener(textWatcher);
addVirtualKeyboardVisiblityListener();
@@ -537,11 +555,26 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
String draft = getArguments().getString("messageDraft");
message.setText(draft);
contact = (LinphoneContact)getArguments().getSerializable("contactDraft");
+
+ Log.e("===>>>> ChatFragment - onResume : sipUriDraft = "+getArguments().getString("sipUriDraft")+" - sipUri = "+getArguments().getString("sipUri")+" - VS sipUri = "+sipUri);
+
if (contact != null) {
+ Log.e("===>>> onResume - loop 1");
contactName.setText(contact.getFullName());
- sipUri = getArguments().getString("sipUriDraft");
+ sipUri = getArguments().getString("SipUri");
newChatConversation = false;
getArguments().clear();
+ }else if(getArguments().getString("sipUriDraft") != null){
+ Log.e("===>>> onResume - loop 2");
+ sipUri = getArguments().getString("sipUriDraft");
+ newChatConversation = false;
+ }else if (sipUri != null) {
+ Log.e("===>>> onResume - loop 3");
+ newChatConversation = false;
+ }else {
+ Log.e("===>>> onResume - loop 4");
+ sipUri = null;
+ newChatConversation = true;
}
if(LinphoneManager.getLc().isIncall()){
@@ -586,7 +619,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
}
if (getResources().getBoolean(R.bool.isTablet) && chatRoom.getHistorySize() <= 0) {
if (LinphoneActivity.isInstanciated()) {
- LinphoneActivity.instance().displayChat("", null);
+ LinphoneActivity.instance().displayChat("", null, null);
LinphoneActivity.instance().onMessageSent("", null);
initNewChatConversation();
}
@@ -714,9 +747,10 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
}
private void sendImageMessage(String path, int imageSize) {
+ Log.e("====>>> ChatFragment - sendImageMessage() : path = "+path+" - imageSize = "+imageSize);
LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
boolean isNetworkReachable = lc == null ? false : lc.isNetworkReachable();
-
+ Log.e("====>>> ChatFragment - sendImageMessage() : newChatConversation = "+ newChatConversation +" - chatRoom = "+chatRoom);
if(newChatConversation && chatRoom == null) {
String address = searchContactField.getText().toString();
if (address != null && !address.equals("")) {
@@ -725,6 +759,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
}
if (chatRoom != null && path != null && path.length() > 0 && isNetworkReachable) {
+ Log.e("====>>> ChatFragment - sendImageMessage() : Do something loop 2 ");
try {
Bitmap bm = BitmapFactory.decodeFile(path);
if (bm != null) {
@@ -736,6 +771,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
} catch (RuntimeException e) {
Log.e("Error, not enough memory to create the bitmap");
}
+ fileSharedUri = null;
} else if (!isNetworkReachable && LinphoneActivity.isInstanciated()) {
LinphoneActivity.instance().displayCustomToast(getString(R.string.error_network_unreachable), Toast.LENGTH_LONG);
}
@@ -833,6 +869,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
//File transfer
private void pickImage() {
+ //TODO : update to use with any file types
List cameraIntents = new ArrayList();
Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(), getString(R.string.temp_photo_name_with_date).replace("%s", String.valueOf(System.currentTimeMillis())));
@@ -841,7 +878,8 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
cameraIntents.add(captureIntent);
Intent galleryIntent = new Intent();
- galleryIntent.setType("image/*");
+ //galleryIntent.setType("image/*");
+ galleryIntent.setType("*/*");
galleryIntent.setAction(Intent.ACTION_PICK);
Intent chooserIntent = Intent.createChooser(galleryIntent, getString(R.string.image_picker_title));
@@ -863,6 +901,13 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
return null;
}
+ @Override
+ public void onContactsUpdated() {
+ if(fileSharedUri != null){
+ initNewChatConversation();
+ }
+ }
+
class FileUploadPrepareTask extends AsyncTask {
private String path;
private ProgressDialog progressDialog;
@@ -974,11 +1019,9 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
fileToUploadPath = imageToUploadUri.getPath();
}
- if (fileToUploadPath != null) {
- //showPopupMenuAskingImageSize(fileToUploadPath);
- sendImageMessage(fileToUploadPath,0);
- }
+ Log.e(" ====>>>> onActivityResult - requestCode = "+requestCode+" - resultCode = "+resultCode+" - data = "+data.toString()+" - fileToUploadPath = "+fileToUploadPath);
} else {
+ Log.e(" ====>>>> onActivityResult - requestCode = "+requestCode+" - resultCode = "+resultCode+" - data = "+data.toString());
super.onActivityResult(requestCode, resultCode, data);
}
}
@@ -1001,6 +1044,15 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
newChatConversation = false;
initChatRoom(sipUri);
+
+ //TODO :
+ if(fileSharedUri != null){
+ Log.e(" ===>>> exitNewConversationMode - sendImage from Uri");
+ //save SipUri into bundle
+ onSaveInstanceState(getArguments());
+ sendImageMessage(fileSharedUri,0);
+ fileSharedUri = null;
+ }
}
private void initNewChatConversation(){
diff --git a/src/android/org/linphone/ChatListFragment.java b/src/android/org/linphone/ChatListFragment.java
index 9f1797183..bd3162ab1 100644
--- a/src/android/org/linphone/ChatListFragment.java
+++ b/src/android/org/linphone/ChatListFragment.java
@@ -17,17 +17,6 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-import java.util.List;
-
-import org.linphone.core.LinphoneAddress;
-import org.linphone.core.LinphoneChatMessage;
-import org.linphone.core.LinphoneChatRoom;
-import org.linphone.core.LinphoneCore;
-import org.linphone.core.LinphoneCoreException;
-import org.linphone.core.LinphoneCoreFactory;
-import org.linphone.core.LinphoneCoreListenerBase;
-import org.linphone.mediastream.Log;
-
import android.app.Dialog;
import android.app.Fragment;
import android.graphics.Typeface;
@@ -52,6 +41,17 @@ import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
+import org.linphone.core.LinphoneAddress;
+import org.linphone.core.LinphoneChatMessage;
+import org.linphone.core.LinphoneChatRoom;
+import org.linphone.core.LinphoneCore;
+import org.linphone.core.LinphoneCoreException;
+import org.linphone.core.LinphoneCoreFactory;
+import org.linphone.core.LinphoneCoreListenerBase;
+import org.linphone.mediastream.Log;
+
+import java.util.List;
+
/**
* @author Sylvain Berfini
*/
@@ -182,14 +182,14 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte
public void refresh() {
mConversations = LinphoneActivity.instance().getChatList();
if (getResources().getBoolean(R.bool.isTablet)) {
- LinphoneActivity.instance().displayChat("", null);
+ LinphoneActivity.instance().displayChat("", null, null);
}
hideAndDisplayMessageIfNoChat();
}
public void displayFirstChat(){
if (mConversations != null && mConversations.size() > 0) {
- LinphoneActivity.instance().displayChat(mConversations.get(0), null);
+ LinphoneActivity.instance().displayChat(mConversations.get(0), null, null);
} else {
LinphoneActivity.instance().displayEmptyFragment();
}
@@ -321,7 +321,7 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte
enabledDeleteButton(false);
}
else if (id == R.id.new_discussion) {
- LinphoneActivity.instance().displayChat(null, null);
+ LinphoneActivity.instance().displayChat(null, null, null);
/*String sipUri = fastNewChat.getText().toString();
if (sipUri.equals("")) {
LinphoneActivity.instance().displayContacts(true);
@@ -345,7 +345,7 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte
String sipUri = chatList.getAdapter().getItem(position).toString();
if (LinphoneActivity.isInstanciated() && !isEditMode) {
- LinphoneActivity.instance().displayChat(sipUri, null);
+ LinphoneActivity.instance().displayChat(sipUri, null, null);
}
}
diff --git a/src/android/org/linphone/ContactDetailsFragment.java b/src/android/org/linphone/ContactDetailsFragment.java
index 45f415ab6..5061680d4 100644
--- a/src/android/org/linphone/ContactDetailsFragment.java
+++ b/src/android/org/linphone/ContactDetailsFragment.java
@@ -56,7 +56,7 @@ public class ContactDetailsFragment extends Fragment implements OnClickListener
@Override
public void onClick(View v) {
if (LinphoneActivity.isInstanciated()) {
- LinphoneActivity.instance().displayChat(v.getTag().toString(), null);
+ LinphoneActivity.instance().displayChat(v.getTag().toString(), null, null);
}
}
};
diff --git a/src/android/org/linphone/ContactsManager.java b/src/android/org/linphone/ContactsManager.java
index c3fa1065f..7bd05b680 100644
--- a/src/android/org/linphone/ContactsManager.java
+++ b/src/android/org/linphone/ContactsManager.java
@@ -19,23 +19,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
package org.linphone;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-
-import org.linphone.core.LinphoneAddress;
-import org.linphone.core.LinphoneCore;
-import org.linphone.core.LinphoneFriend;
-import org.linphone.core.LinphoneFriendImpl;
-import org.linphone.core.LinphoneProxyConfig;
-import org.linphone.mediastream.Log;
-
import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.ContentProviderOperation;
@@ -53,6 +36,23 @@ import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds;
import android.provider.ContactsContract.Data;
+import org.linphone.core.LinphoneAddress;
+import org.linphone.core.LinphoneCore;
+import org.linphone.core.LinphoneFriend;
+import org.linphone.core.LinphoneFriendImpl;
+import org.linphone.core.LinphoneProxyConfig;
+import org.linphone.mediastream.Log;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Locale;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
interface ContactsUpdatedListener {
void onContactsUpdated();
}
@@ -299,6 +299,7 @@ public class ContactsManager extends ContentObserver {
}
}
}
+ Log.e(" =====>>>> ContacsManager - fetchContactsSync Ended");
}
long timeElapsed = (new Date()).getTime() - contactsTime.getTime();
diff --git a/src/android/org/linphone/HistoryDetailFragment.java b/src/android/org/linphone/HistoryDetailFragment.java
index 3b9f5c834..8ede8d395 100644
--- a/src/android/org/linphone/HistoryDetailFragment.java
+++ b/src/android/org/linphone/HistoryDetailFragment.java
@@ -17,11 +17,6 @@ You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-import org.linphone.core.LinphoneAddress;
-import org.linphone.core.LinphoneCoreException;
-import org.linphone.core.LinphoneCoreFactory;
-import org.linphone.mediastream.Log;
-
import android.app.Fragment;
import android.net.Uri;
import android.os.Bundle;
@@ -32,6 +27,11 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
+import org.linphone.core.LinphoneAddress;
+import org.linphone.core.LinphoneCoreException;
+import org.linphone.core.LinphoneCoreFactory;
+import org.linphone.mediastream.Log;
+
/**
* @author Sylvain Berfini
*/
@@ -161,7 +161,7 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
} if (id == R.id.call) {
LinphoneActivity.instance().setAddresGoToDialerAndCall(sipUri, displayName, pictureUri == null ? null : Uri.parse(pictureUri));
} else if (id == R.id.chat) {
- LinphoneActivity.instance().displayChat(sipUri, null);
+ LinphoneActivity.instance().displayChat(sipUri, null, null);
} else if (id == R.id.add_contact) {
String uri = sipUri;
try {
diff --git a/src/android/org/linphone/LinphoneActivity.java b/src/android/org/linphone/LinphoneActivity.java
index 6c2db45f6..b71406261 100644
--- a/src/android/org/linphone/LinphoneActivity.java
+++ b/src/android/org/linphone/LinphoneActivity.java
@@ -19,44 +19,6 @@ package org.linphone;
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-import java.sql.Timestamp;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
-
-import org.linphone.SettingsFragment;
-import org.linphone.LinphoneManager.AddressType;
-import org.linphone.LinphoneService;
-import org.linphone.assistant.AssistantActivity;
-import org.linphone.assistant.RemoteProvisioningLoginActivity;
-import org.linphone.compatibility.Compatibility;
-import org.linphone.core.CallDirection;
-import org.linphone.core.LinphoneAddress;
-import org.linphone.core.LinphoneAuthInfo;
-import org.linphone.core.LinphoneCall;
-import org.linphone.core.LinphoneCall.State;
-import org.linphone.core.LinphoneCallLog;
-import org.linphone.core.LinphoneCallLog.CallStatus;
-import org.linphone.core.LinphoneChatMessage;
-import org.linphone.core.LinphoneChatRoom;
-import org.linphone.core.LinphoneCore;
-import org.linphone.core.LinphoneCore.RegistrationState;
-import org.linphone.core.LinphoneCoreException;
-import org.linphone.core.LinphoneCoreFactory;
-import org.linphone.core.LinphoneCoreListenerBase;
-import org.linphone.core.LinphoneProxyConfig;
-import org.linphone.core.Reason;
-import org.linphone.mediastream.Log;
-import org.linphone.purchase.InAppPurchaseActivity;
-import org.linphone.ui.AddressText;
-import org.linphone.xmlrpc.XmlRpcHelper;
-import org.linphone.xmlrpc.XmlRpcListenerBase;
-
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
@@ -99,6 +61,42 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
+import org.linphone.LinphoneManager.AddressType;
+import org.linphone.assistant.AssistantActivity;
+import org.linphone.assistant.RemoteProvisioningLoginActivity;
+import org.linphone.compatibility.Compatibility;
+import org.linphone.core.CallDirection;
+import org.linphone.core.LinphoneAddress;
+import org.linphone.core.LinphoneAuthInfo;
+import org.linphone.core.LinphoneCall;
+import org.linphone.core.LinphoneCall.State;
+import org.linphone.core.LinphoneCallLog;
+import org.linphone.core.LinphoneCallLog.CallStatus;
+import org.linphone.core.LinphoneChatMessage;
+import org.linphone.core.LinphoneChatRoom;
+import org.linphone.core.LinphoneCore;
+import org.linphone.core.LinphoneCore.RegistrationState;
+import org.linphone.core.LinphoneCoreException;
+import org.linphone.core.LinphoneCoreFactory;
+import org.linphone.core.LinphoneCoreListenerBase;
+import org.linphone.core.LinphoneProxyConfig;
+import org.linphone.core.Reason;
+import org.linphone.mediastream.Log;
+import org.linphone.purchase.InAppPurchaseActivity;
+import org.linphone.ui.AddressText;
+import org.linphone.xmlrpc.XmlRpcHelper;
+import org.linphone.xmlrpc.XmlRpcListenerBase;
+
+import java.sql.Timestamp;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+
/**
* @author Sylvain Berfini
*/
@@ -644,17 +642,19 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
return count;
}
- public void displayChat(String sipUri, String message) {
+ public void displayChat(String sipUri, String message, String fileUri) {
if (getResources().getBoolean(R.bool.disable_chat)) {
return;
}
+ Log.e(" ===>>> displayChat : message = "+message+" - fileUri = "+fileUri);
String pictureUri = null;
String thumbnailUri = null;
String displayName = null;
LinphoneAddress lAddress = null;
if(sipUri != null) {
+ Log.e(" ===>>> displayChat : sipUri = "+ sipUri);
try {
lAddress = LinphoneManager.getLc().interpretUrl(sipUri);
} catch (LinphoneCoreException e) {
@@ -672,14 +672,18 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
}
if (currentFragment == FragmentsAvailable.CHAT_LIST || currentFragment == FragmentsAvailable.CHAT) {
+ Log.e(" ===>>> displayChat : currentFragment = "+ currentFragment.toString());
Fragment fragment2 = getFragmentManager().findFragmentById(R.id.fragmentContainer2);
if (fragment2 != null && fragment2.isVisible() && currentFragment == FragmentsAvailable.CHAT && !emptyFragment) {
ChatFragment chatFragment = (ChatFragment) fragment2;
- chatFragment.changeDisplayedChat(sipUri, displayName, pictureUri, message);
+ chatFragment.changeDisplayedChat(sipUri, displayName, pictureUri, message, fileUri);
} else {
Bundle extras = new Bundle();
extras.putString("SipUri", sipUri);
- extras.putString("messageDraft", message);
+ if(message != null)
+ extras.putString("messageDraft", message);
+ if(fileUri != null)
+ extras.putString("fileSharedUri", fileUri);
if (sipUri != null && lAddress.getDisplayName() != null) {
extras.putString("DisplayName", displayName);
extras.putString("PictureUri", pictureUri);
@@ -688,13 +692,18 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
changeCurrentFragment(FragmentsAvailable.CHAT, extras);
}
} else {
+ Log.e(" ===>>> displayChat : currentFragment != Chat");
if(isTablet()){
changeCurrentFragment(FragmentsAvailable.CHAT_LIST, null);
- displayChat(sipUri, message);
+ //displayChat(sipUri, message, fileUri);
} else {
Bundle extras = new Bundle();
- extras.putString("SipUri", sipUri);
- extras.putString("messageDraft", message);
+ if(sipUri != null || sipUri != "")
+ extras.putString("SipUri", sipUri);
+ if(message != null)
+ extras.putString("messageDraft", message);
+ if(fileUri != null)
+ extras.putString("fileSharedUri", fileUri);
if (sipUri != null && lAddress.getDisplayName() != null) {
extras.putString("DisplayName", displayName);
extras.putString("PictureUri", pictureUri);
@@ -1276,6 +1285,8 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
ContactsManager.getInstance().enableContactsAccess();
if (!ContactsManager.getInstance().contactsFetchedOnce()) {
ContactsManager.getInstance().enableContactsAccess();
+
+ Log.e(" ====>>>> LinphoneActivity - ContactsManager.getInstance().fetchContactsAsync() 1 !!!");
ContactsManager.getInstance().fetchContactsAsync();
}
}
@@ -1315,6 +1326,7 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
} else {
if (!ContactsManager.getInstance().contactsFetchedOnce()) {
ContactsManager.getInstance().enableContactsAccess();
+ Log.e(" ====>>>> LinphoneActivity - ContactsManager.getInstance().fetchContactsAsync() 2 !!!");
ContactsManager.getInstance().fetchContactsAsync();
}
}
@@ -1393,9 +1405,14 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
Intent intent = getIntent();
- if (intent.getStringExtra("msgShared") != null)
- displayChat(null, intent.getStringExtra("msgShared"));
-
+ if (intent.getStringExtra("msgShared") != null) {
+ displayChat(null, intent.getStringExtra("msgShared"), null);
+ intent.putExtra("msgShared", "");
+ }
+ if (intent.getStringExtra("fileShared") != null && intent.getStringExtra("fileShared") != "") {
+ displayChat(null, null, intent.getStringExtra("fileShared"));
+ intent.putExtra("fileShared", "");
+ }
doNotGoToCallActivity = false;
isOnBackground = false;
@@ -1450,7 +1467,7 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
LinphoneService.instance().removeMessageNotification();
String sipUri = extras.getString("ChatContactSipUri");
doNotGoToCallActivity = true;
- displayChat(sipUri, null);
+ displayChat(sipUri, null, null);
} else if (extras != null && extras.getBoolean("GoToHistory", false)) {
doNotGoToCallActivity = true;
changeCurrentFragment(FragmentsAvailable.HISTORY_LIST, null);
diff --git a/src/android/org/linphone/LinphoneLauncherActivity.java b/src/android/org/linphone/LinphoneLauncherActivity.java
index 5df0bf897..cf9522e2f 100644
--- a/src/android/org/linphone/LinphoneLauncherActivity.java
+++ b/src/android/org/linphone/LinphoneLauncherActivity.java
@@ -18,13 +18,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package org.linphone;
-import static android.content.Intent.ACTION_MAIN;
-
-import org.linphone.assistant.RemoteProvisioningActivity;
-import org.linphone.mediastream.Log;
-import org.linphone.mediastream.Version;
-import org.linphone.tutorials.TutorialLauncherActivity;
-
import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
@@ -32,6 +25,13 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
+import org.linphone.assistant.RemoteProvisioningActivity;
+import org.linphone.mediastream.Log;
+import org.linphone.mediastream.Version;
+import org.linphone.tutorials.TutorialLauncherActivity;
+
+import static android.content.Intent.ACTION_MAIN;
+
/**
*
* Launch Linphone main activity when Service is ready.
@@ -104,20 +104,30 @@ public class LinphoneLauncherActivity extends Activity {
BluetoothManager.getInstance().initBluetooth();
}
+ //TODO :
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
Intent newIntent = new Intent(LinphoneLauncherActivity.this, classToStart);
Intent intent = getIntent();
String msgShared = null;
+ Uri imageUri = null;
if (intent != null) {
String action = intent.getAction();
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) {
+ Log.e(" ====>>> type = "+type+" share msg");
msgShared = intent.getStringExtra(Intent.EXTRA_TEXT);
newIntent.putExtra("msgShared", msgShared);
+ }else if ( type.contains("image") ){
+ msgShared = intent.getStringExtra(Intent.EXTRA_STREAM);
+ imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
+ Log.e(" ====>>> type = "+type+" share images msgShared = "+msgShared +" VS toPath() = "+imageUri.getPath());
+ newIntent.putExtra("fileShared", imageUri.getPath());
+ }else{
+ Log.e(" ====>>> type = "+type+" share something else");
}
}
}
@@ -132,8 +142,14 @@ public class LinphoneLauncherActivity extends Activity {
addressToCall = null;
}
startActivity(newIntent);
- if (classToStart == LinphoneActivity.class && LinphoneActivity.isInstanciated() && msgShared != null) {
- LinphoneActivity.instance().displayChat(null, msgShared);
+ if (classToStart == LinphoneActivity.class && LinphoneActivity.isInstanciated() && (msgShared != null || imageUri != null)) {
+
+ if(msgShared != null) {
+ LinphoneActivity.instance().displayChat(null, msgShared, null);
+ }
+ if(imageUri != null) {
+ LinphoneActivity.instance().displayChat(null, null, imageUri.toString());
+ }
}
finish();
}
@@ -159,6 +175,7 @@ public class LinphoneLauncherActivity extends Activity {
mServiceThread = null;
}
}
+
}
diff --git a/submodules/mswebrtc b/submodules/mswebrtc
index 1b8f7dfbd..475eb67b5 160000
--- a/submodules/mswebrtc
+++ b/submodules/mswebrtc
@@ -1 +1 @@
-Subproject commit 1b8f7dfbd8e5452800d79f0fc0b1e84ae8945a42
+Subproject commit 475eb67b5cb8d82f6636e69c3bde8b18daeb824e