Skip to content
This repository was archived by the owner on Jul 25, 2024. It is now read-only.

Commit 345db79

Browse files
committed
Fix: Crash on context menu item selected when fragment replaced.
1 parent edc6d5b commit 345db79

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

app/src/main/java/com/zulip/android/activities/MessageListFragment.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,14 @@ public void onDetach() {
202202

203203
@Override
204204
public boolean onContextItemSelected(MenuItem item) {
205-
Message message = (Message) adapter.getItem(adapter.getContextMenuItemSelectedPosition());
205+
// fragment replace transaction can be committed during long press on a message
206+
int position = adapter.getContextMenuItemSelectedPosition();
207+
if (position == RecyclerView.NO_POSITION) {
208+
Toast.makeText(getContext(), R.string.try_again_error_msg, Toast.LENGTH_SHORT).show();
209+
return false;
210+
}
211+
212+
Message message = (Message) adapter.getItem(position);
206213
switch (item.getItemId()) {
207214
case R.id.reply_to_stream:
208215
((NarrowListener) getActivity()).onNarrowFillSendBox(message, true);

app/src/main/java/com/zulip/android/activities/RecyclerMessageAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public class RecyclerMessageAdapter extends RecyclerView.Adapter<RecyclerView.Vi
8686
@ColorInt
8787
private int privateMessageBackground;
8888
private OnItemClickListener onItemClickListener;
89-
private int contextMenuItemSelectedPosition;
89+
private int contextMenuItemSelectedPosition = RecyclerView.NO_POSITION;
9090
private View footerView;
9191
private View headerView;
9292
private UpdateBuilder<Message, Object> updateBuilder;

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,4 +155,5 @@
155155
<string name="no_edit">No edits detected</string>
156156
<string name="copy_message_fetch">Copying message to clipboard</string>
157157
<string name="copy_failed">Copying to clipboard failed</string>
158+
<string name="try_again_error_msg">Something went wrong, try again</string>
158159
</resources>

0 commit comments

Comments
 (0)