Temp workaround for chat message status crash
This commit is contained in:
parent
f06b9410ba
commit
68472f7bd6
1 changed files with 7 additions and 6 deletions
|
@ -40,6 +40,7 @@ import org.linphone.core.LinphoneChatMessage;
|
||||||
import org.linphone.core.LinphoneChatMessage.State;
|
import org.linphone.core.LinphoneChatMessage.State;
|
||||||
import org.linphone.core.LinphoneChatRoom;
|
import org.linphone.core.LinphoneChatRoom;
|
||||||
import org.linphone.core.LinphoneCore;
|
import org.linphone.core.LinphoneCore;
|
||||||
|
import org.linphone.mediastream.Log;
|
||||||
import org.linphone.ui.AvatarWithShadow;
|
import org.linphone.ui.AvatarWithShadow;
|
||||||
import org.linphone.ui.BubbleChat;
|
import org.linphone.ui.BubbleChat;
|
||||||
import org.linphone.ui.LinphoneScrollView;
|
import org.linphone.ui.LinphoneScrollView;
|
||||||
|
@ -640,6 +641,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
|
||||||
|
|
||||||
BubbleChat bubble = displayMessage(newId, messageToSend, System.currentTimeMillis(), false, State.InProgress, messagesLayout);
|
BubbleChat bubble = displayMessage(newId, messageToSend, System.currentTimeMillis(), false, State.InProgress, messagesLayout);
|
||||||
bubble.setNativeMessageObject(chatMessage);
|
bubble.setNativeMessageObject(chatMessage);
|
||||||
|
Log.e("Sent message current status: " + chatMessage.getStatus());
|
||||||
scrollToEnd();
|
scrollToEnd();
|
||||||
} else if (!isNetworkReachable && LinphoneActivity.isInstanciated()) {
|
} else if (!isNetworkReachable && LinphoneActivity.isInstanciated()) {
|
||||||
LinphoneActivity.instance().displayCustomToast(getString(R.string.error_network_unreachable), Toast.LENGTH_LONG);
|
LinphoneActivity.instance().displayCustomToast(getString(R.string.error_network_unreachable), Toast.LENGTH_LONG);
|
||||||
|
@ -765,16 +767,15 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void onLinphoneChatMessageStateChanged(LinphoneChatMessage msg, State state) {
|
public synchronized void onLinphoneChatMessageStateChanged(final LinphoneChatMessage msg, final State state) {
|
||||||
final String finalMessage = msg.getText();
|
final String finalMessage = msg.getText();
|
||||||
final String finalImage = msg.getExternalBodyUrl();
|
final String finalImage = msg.getExternalBodyUrl();
|
||||||
final State finalState = state;
|
|
||||||
if (LinphoneActivity.isInstanciated() && state != State.InProgress) {
|
if (LinphoneActivity.isInstanciated() && state != State.InProgress) {
|
||||||
mHandler.post(new Runnable() {
|
mHandler.post(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
if (finalMessage != null && !finalMessage.equals("")) {
|
if (finalMessage != null && !finalMessage.equals("")) {
|
||||||
LinphoneActivity.instance().onMessageStateChanged(sipUri, finalMessage, finalState.toInt());
|
LinphoneActivity.instance().onMessageStateChanged(sipUri, finalMessage, state.toInt());
|
||||||
} else if (finalImage != null && !finalImage.equals("")) {
|
} else if (finalImage != null && !finalImage.equals("")) {
|
||||||
if (latestImageMessages != null && latestImageMessages.containsValue(finalImage)) {
|
if (latestImageMessages != null && latestImageMessages.containsValue(finalImage)) {
|
||||||
int id = -1;
|
int id = -1;
|
||||||
|
@ -786,15 +787,15 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (id != -1) {
|
if (id != -1) {
|
||||||
LinphoneActivity.instance().onImageMessageStateChanged(sipUri, id, finalState.toInt());
|
LinphoneActivity.instance().onImageMessageStateChanged(sipUri, id, state.toInt());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lastSentMessagesBubbles != null && lastSentMessagesBubbles.size() > 0) {
|
if (lastSentMessagesBubbles != null && lastSentMessagesBubbles.size() > 0) {
|
||||||
for (BubbleChat bubble : lastSentMessagesBubbles) {
|
for (BubbleChat bubble : lastSentMessagesBubbles) {
|
||||||
if (bubble.getStatus() == State.InProgress || bubble.getStatus() == State.Idle) {
|
if (bubble.getNativeMessageObject() == msg) {
|
||||||
bubble.updateStatusView(bubble.getNativeMessageObject().getStatus());
|
bubble.updateStatusView(state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue