Commit 43321322 authored by Leonardo Aramaki's avatar Leonardo Aramaki

Add onMessageTap method to RoomPresenter differentiating a tap from a long press

parent f19c9522
...@@ -54,6 +54,8 @@ public interface RoomContract { ...@@ -54,6 +54,8 @@ public interface RoomContract {
void onMessageSelected(@Nullable Message message); void onMessageSelected(@Nullable Message message);
void onMessageTap(@Nullable Message message);
void sendMessage(String messageText); void sendMessage(String messageText);
void resendMessage(@NonNull Message message); void resendMessage(@NonNull Message message);
......
...@@ -97,6 +97,7 @@ public class RoomFragment extends AbstractChatRoomFragment implements ...@@ -97,6 +97,7 @@ public class RoomFragment extends AbstractChatRoomFragment implements
OnBackPressListener, OnBackPressListener,
ExtraActionPickerDialogFragment.Callback, ExtraActionPickerDialogFragment.Callback,
ModelListAdapter.OnItemLongClickListener<PairedMessage>, ModelListAdapter.OnItemLongClickListener<PairedMessage>,
ModelListAdapter.OnItemClickListener<PairedMessage>,
RoomContract.View { RoomContract.View {
private static final int DIALOG_ID = 1; private static final int DIALOG_ID = 1;
...@@ -208,6 +209,7 @@ public class RoomFragment extends AbstractChatRoomFragment implements ...@@ -208,6 +209,7 @@ public class RoomFragment extends AbstractChatRoomFragment implements
messageListAdapter = new MessageListAdapter(getContext(), hostname); messageListAdapter = new MessageListAdapter(getContext(), hostname);
messageRecyclerView.setAdapter(messageListAdapter); messageRecyclerView.setAdapter(messageListAdapter);
messageListAdapter.setOnItemLongClickListener(this); messageListAdapter.setOnItemLongClickListener(this);
messageListAdapter.setOnItemClickListener(this);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, true); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, true);
messageRecyclerView.setLayoutManager(linearLayoutManager); messageRecyclerView.setLayoutManager(linearLayoutManager);
...@@ -297,6 +299,11 @@ public class RoomFragment extends AbstractChatRoomFragment implements ...@@ -297,6 +299,11 @@ public class RoomFragment extends AbstractChatRoomFragment implements
return true; return true;
} }
@Override
public void onItemClick(PairedMessage pairedMessage) {
presenter.onMessageTap(pairedMessage.target);
}
private void setupToolbar() { private void setupToolbar() {
toolbar = getActivity().findViewById(R.id.activity_main_toolbar); toolbar = getActivity().findViewById(R.id.activity_main_toolbar);
toolbar.getMenu().clear(); toolbar.getMenu().clear();
......
...@@ -112,16 +112,23 @@ public class RoomPresenter extends BasePresenter<RoomContract.View> ...@@ -112,16 +112,23 @@ public class RoomPresenter extends BasePresenter<RoomContract.View>
return; return;
} }
if (message.getSyncState() == SyncState.FAILED) { if (message.getType() == null && message.getSyncState() == SyncState.SYNCED) {
view.showMessageSendFailure(message);
}
if (message.getType() == null) {
// If message is not a system message show applicable actions. // If message is not a system message show applicable actions.
view.showMessageActions(message); view.showMessageActions(message);
} }
} }
@Override
public void onMessageTap(@Nullable Message message) {
if (message == null) {
return;
}
if (message.getSyncState() == SyncState.FAILED) {
view.showMessageSendFailure(message);
}
}
@Override @Override
public void replyMessage(@NonNull Message message, boolean justQuote) { public void replyMessage(@NonNull Message message, boolean justQuote) {
this.absoluteUrlHelper.getRocketChatAbsoluteUrl() this.absoluteUrlHelper.getRocketChatAbsoluteUrl()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment