Change summary
  src/main/java/eu/siacs/conversations/entities/Conversation.java | 25 +-
1 file changed, 14 insertions(+), 11 deletions(-)
  Detailed changes
  
  
    
    @@ -2858,7 +2858,7 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
             protected List<Field> reported = null;
             protected SparseArray<Item> 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)) {