diff options
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui/ConversationFragment.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/ConversationFragment.java | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java index f0e715d1f..8fb0cceb1 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java @@ -231,7 +231,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke conversation.messagesLoaded.set(true); return; } - activity.runOnUiThread(() -> { + runOnUiThread(() -> { final int oldPosition = binding.messagesView.getFirstVisiblePosition(); Message message = null; int childPos; @@ -265,7 +265,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke @Override public void informUser(final int resId) { - activity.runOnUiThread(() -> { + runOnUiThread(() -> { if (messageLoaderToast != null) { messageLoaderToast.cancel(); } @@ -637,12 +637,12 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke @Override public void inform(final String text) { hidePrepareFileToast(prepareFileToast); - activity.runOnUiThread(() -> activity.replaceToast(text)); + runOnUiThread(() -> activity.replaceToast(text)); } @Override public void success(Message message) { - activity.runOnUiThread(() -> activity.hideToast()); + runOnUiThread(() -> activity.hideToast()); hidePrepareFileToast(prepareFileToast); activity.xmppConnectionService.sendMessage(message); } @@ -650,7 +650,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke @Override public void error(final int errorCode, Message message) { hidePrepareFileToast(prepareFileToast); - activity.runOnUiThread(() -> activity.replaceToast(getString(errorCode))); + runOnUiThread(() -> activity.replaceToast(getString(errorCode))); } @@ -685,7 +685,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke @Override public void error(final int error, Message message) { hidePrepareFileToast(prepareFileToast); - getActivity().runOnUiThread(() -> activity.replaceToast(getString(error))); + runOnUiThread(() -> activity.replaceToast(getString(error))); } }); } @@ -714,7 +714,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke @Override public void error(final int error, Message message) { hidePrepareFileToast(prepareFileToast); - getActivity().runOnUiThread(() -> activity.replaceToast(getString(error))); + runOnUiThread(() -> activity.replaceToast(getString(error))); } }); } @@ -1043,7 +1043,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke @Override public void onDetach() { super.onDetach(); - this.activity = null; + this.activity = null; //TODO maybe not a good idea since some callbacks really need it } @Override @@ -2560,30 +2560,42 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke @Override public void onTypingStarted() { + final XmppConnectionService service = activity == null ? null : activity.xmppConnectionService; + if (service == null) { + return; + } final boolean broadcastLastActivity = activity.xmppConnectionService.broadcastLastActivity(); Account.State status = conversation.getAccount().getStatus(); if (status == Account.State.ONLINE && conversation.setOutgoingChatState(ChatState.COMPOSING)) { - activity.xmppConnectionService.sendChatState(conversation); + service.sendChatState(conversation); } if (broadcastLastActivity) { - activity.xmppConnectionService.sendPresence(conversation.getAccount(), false); //send new presence but don't include idle because we are not + service.sendPresence(conversation.getAccount(), false); //send new presence but don't include idle because we are not } updateSendButton(); } @Override public void onTypingStopped() { + final XmppConnectionService service = activity == null ? null : activity.xmppConnectionService; + if (service == null) { + return; + } Account.State status = conversation.getAccount().getStatus(); if (status == Account.State.ONLINE && conversation.setOutgoingChatState(ChatState.PAUSED)) { - activity.xmppConnectionService.sendChatState(conversation); + service.sendChatState(conversation); } } @Override public void onTextDeleted() { + final XmppConnectionService service = activity == null ? null : activity.xmppConnectionService; + if (service == null) { + return; + } Account.State status = conversation.getAccount().getStatus(); if (status == Account.State.ONLINE && conversation.setOutgoingChatState(Config.DEFAULT_CHATSTATE)) { - activity.xmppConnectionService.sendChatState(conversation); + service.sendChatState(conversation); } updateSendButton(); } |