diff --git a/android/src/main/java/com/facebook/flipper/nativeplugins/table/TableMetadata.java b/android/src/main/java/com/facebook/flipper/nativeplugins/table/TableMetadata.java index d6cd0ecfe..af4226dc7 100644 --- a/android/src/main/java/com/facebook/flipper/nativeplugins/table/TableMetadata.java +++ b/android/src/main/java/com/facebook/flipper/nativeplugins/table/TableMetadata.java @@ -1,12 +1,36 @@ package com.facebook.flipper.nativeplugins.table; import androidx.annotation.Nullable; +import com.facebook.flipper.core.FlipperArray; +import com.facebook.flipper.core.FlipperObject; public class TableMetadata { final Column[] mColumns; final QueryableTableRowProvider mResponder; + FlipperObject serialize() { + final FlipperObject.Builder columns = new FlipperObject.Builder(); + final FlipperObject.Builder columnSizes = new FlipperObject.Builder(); + final FlipperArray.Builder columnOrder = new FlipperArray.Builder(); + final FlipperArray.Builder filterableColumns = new FlipperArray.Builder(); + for (Column c : mColumns) { + columns.put(c.id, new FlipperObject.Builder().put("value", c.displayName).build()); + columnSizes.put(c.id, c.displayWidth); + columnOrder.put(new FlipperObject.Builder().put("key", c.id).put("visible", c.showByDefault)); + if (c.isFilterable) { + filterableColumns.put(c.id); + } + } + + return new FlipperObject.Builder() + .put("columns", columns.build()) + .put("columnSizes", columnSizes.build()) + .put("columnOrder", columnOrder.build()) + .put("filterableColumns", filterableColumns.build()) + .build(); + } + private TableMetadata( @Nullable Column[] columns, @Nullable QueryableTableRowProvider queryResponder) { this.mColumns = columns == null ? new Column[] {} : columns; diff --git a/android/src/main/java/com/facebook/flipper/nativeplugins/table/TableRowDisplayImpl.java b/android/src/main/java/com/facebook/flipper/nativeplugins/table/TableRowDisplayImpl.java index 8bb4d2872..22e0535bc 100644 --- a/android/src/main/java/com/facebook/flipper/nativeplugins/table/TableRowDisplayImpl.java +++ b/android/src/main/java/com/facebook/flipper/nativeplugins/table/TableRowDisplayImpl.java @@ -18,27 +18,8 @@ public class TableRowDisplayImpl implements TableRowDisplay { new FlipperReceiver() { @Override public void onReceive(FlipperObject params, FlipperResponder responder) throws Exception { - final FlipperObject.Builder columns = new FlipperObject.Builder(); - final FlipperObject.Builder columnSizes = new FlipperObject.Builder(); - final FlipperArray.Builder columnOrder = new FlipperArray.Builder(); - final FlipperArray.Builder filterableColumns = new FlipperArray.Builder(); - for (Column c : subscriber.getMetadata().mColumns) { - columns.put(c.id, new FlipperObject.Builder().put("value", c.displayName).build()); - columnSizes.put(c.id, c.displayWidth); - columnOrder.put( - new FlipperObject.Builder().put("key", c.id).put("visible", c.showByDefault)); - if (c.isFilterable) { - filterableColumns.put(c.id); - } - } - - responder.success( - new FlipperObject.Builder() - .put("columns", columns.build()) - .put("columnSizes", columnSizes.build()) - .put("columnOrder", columnOrder.build()) - .put("filterableColumns", filterableColumns.build()) - .build()); + final FlipperObject metadata = subscriber.getMetadata().serialize(); + responder.success(metadata); } }); }