diff --git a/src/main/java/eu/siacs/conversations/entities/Conversation.java b/src/main/java/eu/siacs/conversations/entities/Conversation.java index 98c041a8cb1f5ec43727f61ef83b9359326937b4..3cbd8348110cc1504e0faec5190bcf795731b6b9 100644 --- a/src/main/java/eu/siacs/conversations/entities/Conversation.java +++ b/src/main/java/eu/siacs/conversations/entities/Conversation.java @@ -2858,7 +2858,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl protected List reported = null; protected SparseArray items = new SparseArray<>(); protected XmppConnectionService xmppConnectionService; - protected ActionsAdapter actionsAdapter; + protected ActionsAdapter actionsAdapter = null; protected GridLayoutManager layoutManager; protected WebView actionToWebview = null; protected int fillableFieldCount = 0; @@ -3438,18 +3438,21 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl mBinding.form.setLayoutManager(setupLayoutManager()); mBinding.form.setAdapter(this); - actionsAdapter = new ActionsAdapter(mBinding.getRoot().getContext()); - actionsAdapter.registerDataSetObserver(new DataSetObserver() { - @Override - public void onChanged() { - if (mBinding == null) return; + if (actionsAdapter == null) { + actionsAdapter = new ActionsAdapter(mBinding.getRoot().getContext()); + actionsAdapter.registerDataSetObserver(new DataSetObserver() { + @Override + public void onChanged() { + if (mBinding == null) return; - mBinding.actions.setNumColumns(actionsAdapter.getCount() > 1 ? 2 : 1); - } + mBinding.actions.setNumColumns(actionsAdapter.getCount() > 1 ? 2 : 1); + } + + @Override + public void onInvalidated() {} + }); + } - @Override - public void onInvalidated() {} - }); mBinding.actions.setAdapter(actionsAdapter); mBinding.actions.setOnItemClickListener((parent, v, pos, id) -> { if (execute(pos)) {