Better fix for chat message state update + bit of cleanup

This commit is contained in:
Sylvain Berfini 2017-11-30 10:17:00 +01:00
parent 3f1fc697da
commit c04ba0ce41
9 changed files with 7 additions and 84 deletions

View file

@ -83,14 +83,12 @@ import org.linphone.core.AccountCreatorListener;
import org.linphone.core.AccountCreator;
import org.linphone.core.Address;
import org.linphone.core.AuthInfo;
import org.linphone.core.Buffer;
import org.linphone.core.Call;
import org.linphone.core.Call.State;
import org.linphone.core.CallLog;
import org.linphone.core.CallParams;
import org.linphone.core.CallStats;
import org.linphone.core.ChatMessage;
import org.linphone.core.ChatMessageListener;
import org.linphone.core.ChatRoom;
import org.linphone.core.Content;
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.
*
*/
public class LinphoneManager implements CoreListener, ChatMessageListener, SensorEventListener, AccountCreatorListener {
public class LinphoneManager implements CoreListener, SensorEventListener, AccountCreatorListener {
private static LinphoneManager instance;
private Context mServiceContext;
@ -203,16 +201,6 @@ public class LinphoneManager implements CoreListener, ChatMessageListener, Senso
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) {
sExited = false;
echoTesterIsRunning = false;
@ -386,68 +374,6 @@ public class LinphoneManager implements CoreListener, ChatMessageListener, Senso
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() {
Core lc = getLcIfManagerNotDestroyedOrNull();
if (isInstanciated() && lc != null) {

View file

@ -46,7 +46,7 @@ import org.linphone.core.ChatRoom;
import org.linphone.core.ChatRoomListenerStub;
import org.linphone.mediastream.Log;
import org.linphone.ui.ContactSelectView;
import org.linphone.receivers.ContactsUpdatedListener;
import org.linphone.contacts.ContactsUpdatedListener;
import org.linphone.activities.LinphoneActivity;
import org.linphone.R;

View file

@ -451,7 +451,7 @@ public class ChatEventsAdapter extends ListSelectionAdapter implements ChatMessa
@Override
public void onMsgStateChanged(ChatMessage msg, ChatMessage.State state) {
notifyDataSetInvalidated();
notifyDataSetChanged();
}
/*

View file

@ -32,7 +32,7 @@ import android.widget.TextView;
import org.linphone.contacts.ContactsManager;
import org.linphone.ui.ListSelectionHelper;
import org.linphone.receivers.ContactsUpdatedListener;
import org.linphone.contacts.ContactsUpdatedListener;
import org.linphone.fragments.FragmentsAvailable;
import org.linphone.activities.LinphoneActivity;
import org.linphone.LinphoneManager;
@ -97,7 +97,6 @@ public class ChatListFragment extends Fragment implements OnItemClickListener, C
}
};
return view;
}

View file

@ -63,7 +63,7 @@ import org.linphone.core.Core;
import org.linphone.core.EventLog;
import org.linphone.core.Factory;
import org.linphone.core.Participant;
import org.linphone.receivers.ContactsUpdatedListener;
import org.linphone.contacts.ContactsUpdatedListener;
import org.linphone.ui.ListSelectionHelper;
import java.io.File;

View file

@ -45,7 +45,6 @@ import android.widget.SectionIndexer;
import android.widget.TextView;
import org.linphone.fragments.FragmentsAvailable;
import org.linphone.receivers.ContactsUpdatedListener;
import org.linphone.LinphoneManager;
import org.linphone.LinphoneUtils;
import org.linphone.R;

View file

@ -46,7 +46,6 @@ import org.linphone.core.Friend;
import org.linphone.core.FriendList;
import org.linphone.core.ProxyConfig;
import org.linphone.mediastream.Log;
import org.linphone.receivers.ContactsUpdatedListener;
import java.util.ArrayList;
import java.util.Collections;

View file

@ -1,4 +1,4 @@
package org.linphone.receivers;
package org.linphone.contacts;
/*
ContactsUpdatedListener.java

View file

@ -26,7 +26,7 @@ import java.util.Calendar;
import java.util.List;
import org.linphone.contacts.ContactsManager;
import org.linphone.receivers.ContactsUpdatedListener;
import org.linphone.contacts.ContactsUpdatedListener;
import org.linphone.contacts.LinphoneContact;
import org.linphone.LinphoneManager;
import org.linphone.LinphoneUtils;