Better fix for chat message state update + bit of cleanup
This commit is contained in:
parent
3f1fc697da
commit
c04ba0ce41
9 changed files with 7 additions and 84 deletions
|
@ -83,14 +83,12 @@ import org.linphone.core.AccountCreatorListener;
|
||||||
import org.linphone.core.AccountCreator;
|
import org.linphone.core.AccountCreator;
|
||||||
import org.linphone.core.Address;
|
import org.linphone.core.Address;
|
||||||
import org.linphone.core.AuthInfo;
|
import org.linphone.core.AuthInfo;
|
||||||
import org.linphone.core.Buffer;
|
|
||||||
import org.linphone.core.Call;
|
import org.linphone.core.Call;
|
||||||
import org.linphone.core.Call.State;
|
import org.linphone.core.Call.State;
|
||||||
import org.linphone.core.CallLog;
|
import org.linphone.core.CallLog;
|
||||||
import org.linphone.core.CallParams;
|
import org.linphone.core.CallParams;
|
||||||
import org.linphone.core.CallStats;
|
import org.linphone.core.CallStats;
|
||||||
import org.linphone.core.ChatMessage;
|
import org.linphone.core.ChatMessage;
|
||||||
import org.linphone.core.ChatMessageListener;
|
|
||||||
import org.linphone.core.ChatRoom;
|
import org.linphone.core.ChatRoom;
|
||||||
import org.linphone.core.Content;
|
import org.linphone.core.Content;
|
||||||
import org.linphone.core.Core;
|
import org.linphone.core.Core;
|
||||||
|
@ -159,7 +157,7 @@ import static android.media.AudioManager.STREAM_VOICE_CALL;
|
||||||
* Add Service Listener to react to Linphone state changes.
|
* Add Service Listener to react to Linphone state changes.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class LinphoneManager implements CoreListener, ChatMessageListener, SensorEventListener, AccountCreatorListener {
|
public class LinphoneManager implements CoreListener, SensorEventListener, AccountCreatorListener {
|
||||||
|
|
||||||
private static LinphoneManager instance;
|
private static LinphoneManager instance;
|
||||||
private Context mServiceContext;
|
private Context mServiceContext;
|
||||||
|
@ -203,16 +201,6 @@ public class LinphoneManager implements CoreListener, ChatMessageListener, Senso
|
||||||
|
|
||||||
public String wizardLoginViewDomain = null;
|
public String wizardLoginViewDomain = null;
|
||||||
|
|
||||||
private static List<ChatMessageListener> simpleListeners = new ArrayList<ChatMessageListener>();
|
|
||||||
public static void addListener(ChatMessageListener listener) {
|
|
||||||
if (!simpleListeners.contains(listener)) {
|
|
||||||
simpleListeners.add(listener);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public static void removeListener(ChatMessageListener listener) {
|
|
||||||
simpleListeners.remove(listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected LinphoneManager(final Context c) {
|
protected LinphoneManager(final Context c) {
|
||||||
sExited = false;
|
sExited = false;
|
||||||
echoTesterIsRunning = false;
|
echoTesterIsRunning = false;
|
||||||
|
@ -386,68 +374,6 @@ public class LinphoneManager implements CoreListener, ChatMessageListener, Senso
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUploadPendingFileMessage(ChatMessage message){
|
|
||||||
mUploadPendingFileMessage = message;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ChatMessage getMessageUploadPending(){
|
|
||||||
return mUploadPendingFileMessage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUploadingImage(byte[] array){
|
|
||||||
this.mUploadingImage = array;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMsgStateChanged(ChatMessage msg, ChatMessage.State state) {
|
|
||||||
if (state == ChatMessage.State.FileTransferDone) {
|
|
||||||
if (msg.isOutgoing() && mUploadingImage != null) {
|
|
||||||
mUploadPendingFileMessage = null;
|
|
||||||
mUploadingImage = null;
|
|
||||||
} else {
|
|
||||||
LinphoneUtils.storeImage(getContext(), msg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (state == ChatMessage.State.FileTransferError) {
|
|
||||||
LinphoneUtils.displayErrorAlert(getString(R.string.image_transfert_error), LinphoneActivity.instance());
|
|
||||||
}
|
|
||||||
|
|
||||||
for (ChatMessageListener l: simpleListeners) {
|
|
||||||
l.onMsgStateChanged(msg, state);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFileTransferRecv(ChatMessage msg, Content content, Buffer buffer) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Buffer onFileTransferSend(ChatMessage message, Content content, int offset, int size) {
|
|
||||||
if (mUploadingImage != null && size > 0) {
|
|
||||||
Buffer bufferToFill = Factory.instance().createBuffer();
|
|
||||||
byte[] data = new byte[size];
|
|
||||||
if (offset + size <= mUploadingImage.length) {
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
data[i] = mUploadingImage[i + offset];
|
|
||||||
}
|
|
||||||
bufferToFill.setContent(data, size);
|
|
||||||
bufferToFill.setSize(size);
|
|
||||||
return bufferToFill;
|
|
||||||
} else {
|
|
||||||
Log.e("Error, upload task asking for more bytes( " + (size+offset) + " ) than available (" + mUploadingImage.length + ")");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFileTransferProgressIndication(ChatMessage msg, Content content, int offset, int total) {
|
|
||||||
for (ChatMessageListener l: simpleListeners) {
|
|
||||||
l.onFileTransferProgressIndication(msg, content, offset, total);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean isPresenceModelActivitySet() {
|
private boolean isPresenceModelActivitySet() {
|
||||||
Core lc = getLcIfManagerNotDestroyedOrNull();
|
Core lc = getLcIfManagerNotDestroyedOrNull();
|
||||||
if (isInstanciated() && lc != null) {
|
if (isInstanciated() && lc != null) {
|
||||||
|
|
|
@ -46,7 +46,7 @@ import org.linphone.core.ChatRoom;
|
||||||
import org.linphone.core.ChatRoomListenerStub;
|
import org.linphone.core.ChatRoomListenerStub;
|
||||||
import org.linphone.mediastream.Log;
|
import org.linphone.mediastream.Log;
|
||||||
import org.linphone.ui.ContactSelectView;
|
import org.linphone.ui.ContactSelectView;
|
||||||
import org.linphone.receivers.ContactsUpdatedListener;
|
import org.linphone.contacts.ContactsUpdatedListener;
|
||||||
import org.linphone.activities.LinphoneActivity;
|
import org.linphone.activities.LinphoneActivity;
|
||||||
import org.linphone.R;
|
import org.linphone.R;
|
||||||
|
|
||||||
|
|
|
@ -451,7 +451,7 @@ public class ChatEventsAdapter extends ListSelectionAdapter implements ChatMessa
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMsgStateChanged(ChatMessage msg, ChatMessage.State state) {
|
public void onMsgStateChanged(ChatMessage msg, ChatMessage.State state) {
|
||||||
notifyDataSetInvalidated();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -32,7 +32,7 @@ import android.widget.TextView;
|
||||||
|
|
||||||
import org.linphone.contacts.ContactsManager;
|
import org.linphone.contacts.ContactsManager;
|
||||||
import org.linphone.ui.ListSelectionHelper;
|
import org.linphone.ui.ListSelectionHelper;
|
||||||
import org.linphone.receivers.ContactsUpdatedListener;
|
import org.linphone.contacts.ContactsUpdatedListener;
|
||||||
import org.linphone.fragments.FragmentsAvailable;
|
import org.linphone.fragments.FragmentsAvailable;
|
||||||
import org.linphone.activities.LinphoneActivity;
|
import org.linphone.activities.LinphoneActivity;
|
||||||
import org.linphone.LinphoneManager;
|
import org.linphone.LinphoneManager;
|
||||||
|
@ -97,7 +97,6 @@ public class ChatListFragment extends Fragment implements OnItemClickListener, C
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ import org.linphone.core.Core;
|
||||||
import org.linphone.core.EventLog;
|
import org.linphone.core.EventLog;
|
||||||
import org.linphone.core.Factory;
|
import org.linphone.core.Factory;
|
||||||
import org.linphone.core.Participant;
|
import org.linphone.core.Participant;
|
||||||
import org.linphone.receivers.ContactsUpdatedListener;
|
import org.linphone.contacts.ContactsUpdatedListener;
|
||||||
import org.linphone.ui.ListSelectionHelper;
|
import org.linphone.ui.ListSelectionHelper;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
|
@ -45,7 +45,6 @@ import android.widget.SectionIndexer;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import org.linphone.fragments.FragmentsAvailable;
|
import org.linphone.fragments.FragmentsAvailable;
|
||||||
import org.linphone.receivers.ContactsUpdatedListener;
|
|
||||||
import org.linphone.LinphoneManager;
|
import org.linphone.LinphoneManager;
|
||||||
import org.linphone.LinphoneUtils;
|
import org.linphone.LinphoneUtils;
|
||||||
import org.linphone.R;
|
import org.linphone.R;
|
||||||
|
|
|
@ -46,7 +46,6 @@ import org.linphone.core.Friend;
|
||||||
import org.linphone.core.FriendList;
|
import org.linphone.core.FriendList;
|
||||||
import org.linphone.core.ProxyConfig;
|
import org.linphone.core.ProxyConfig;
|
||||||
import org.linphone.mediastream.Log;
|
import org.linphone.mediastream.Log;
|
||||||
import org.linphone.receivers.ContactsUpdatedListener;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package org.linphone.receivers;
|
package org.linphone.contacts;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
ContactsUpdatedListener.java
|
ContactsUpdatedListener.java
|
|
@ -26,7 +26,7 @@ import java.util.Calendar;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.linphone.contacts.ContactsManager;
|
import org.linphone.contacts.ContactsManager;
|
||||||
import org.linphone.receivers.ContactsUpdatedListener;
|
import org.linphone.contacts.ContactsUpdatedListener;
|
||||||
import org.linphone.contacts.LinphoneContact;
|
import org.linphone.contacts.LinphoneContact;
|
||||||
import org.linphone.LinphoneManager;
|
import org.linphone.LinphoneManager;
|
||||||
import org.linphone.LinphoneUtils;
|
import org.linphone.LinphoneUtils;
|
||||||
|
|
Loading…
Reference in a new issue