Show prev and next data for a SingleComponentSection
Summary: The SingleComponentSection doesn't store anything in the data field unless it's set manually by the dev; this adds custom info about the prev and next data so we can use it for debugging Reviewed By: pasqualeanatriello Differential Revision: D17112284 fbshipit-source-id: 55aa49583e3bc7d046661d34841b7c3283972d76
This commit is contained in:
committed by
Facebook Github Bot
parent
3cdc32c18b
commit
f716c34295
@@ -110,9 +110,9 @@ public class ChangesetDebug implements ChangesetDebugListener {
|
|||||||
|
|
||||||
changeData.put("render_infos", ChangesetDebugConfiguration.getRenderInfoNames(change));
|
changeData.put("render_infos", ChangesetDebugConfiguration.getRenderInfoNames(change));
|
||||||
|
|
||||||
changeData.put("prev_data", getDataNamesFromChange(change.getPrevData()));
|
changeData.put("prev_data", getPrevDataFromChange(change));
|
||||||
|
|
||||||
changeData.put("next_data", getDataNamesFromChange(change.getNextData()));
|
changeData.put("next_data", getNextDataFromChange(change));
|
||||||
|
|
||||||
changesets.put(i + "", changeData.build());
|
changesets.put(i + "", changeData.build());
|
||||||
}
|
}
|
||||||
@@ -121,6 +121,40 @@ public class ChangesetDebug implements ChangesetDebugListener {
|
|||||||
changesetData.put(globalKey, sectionChangesetInfo.build());
|
changesetData.put(globalKey, sectionChangesetInfo.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List getPrevDataFromChange(Change change) {
|
||||||
|
if (change.getPrevData() != null) {
|
||||||
|
return getDataNamesFromChange(change.getPrevData());
|
||||||
|
}
|
||||||
|
|
||||||
|
List data = new ArrayList<>();
|
||||||
|
if (change.getRenderInfo() != null) {
|
||||||
|
data.add(change.getRenderInfo().getDebugInfo("SCS_DATA_INFO_PREV"));
|
||||||
|
} else if (change.getRenderInfos() != null) {
|
||||||
|
for (int i = 0; i < change.getRenderInfos().size(); i++) {
|
||||||
|
data.add(change.getRenderInfos().get(i).getDebugInfo("SCS_DATA_INFO_PREV"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List getNextDataFromChange(Change change) {
|
||||||
|
if (change.getNextData() != null) {
|
||||||
|
return getDataNamesFromChange(change.getNextData());
|
||||||
|
}
|
||||||
|
|
||||||
|
List data = new ArrayList<>();
|
||||||
|
if (change.getRenderInfo() != null) {
|
||||||
|
data.add(change.getRenderInfo().getDebugInfo("SCS_DATA_INFO_NEXT"));
|
||||||
|
} else if (change.getRenderInfos() != null) {
|
||||||
|
for (int i = 0; i < change.getRenderInfos().size(); i++) {
|
||||||
|
data.add(change.getRenderInfos().get(i).getDebugInfo("SCS_DATA_INFO_NEXT"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
private static List<String> getDataNamesFromChange(List<?> data) {
|
private static List<String> getDataNamesFromChange(List<?> data) {
|
||||||
final List<String> names = new ArrayList<>();
|
final List<String> names = new ArrayList<>();
|
||||||
|
|
||||||
@@ -307,6 +341,8 @@ public class ChangesetDebug implements ChangesetDebugListener {
|
|||||||
DataModelChangeInfo dataInfo = new DataModelChangeInfo();
|
DataModelChangeInfo dataInfo = new DataModelChangeInfo();
|
||||||
if (change.getNextData() != null) {
|
if (change.getNextData() != null) {
|
||||||
dataInfo.model = change.getNextData().get(0);
|
dataInfo.model = change.getNextData().get(0);
|
||||||
|
} else {
|
||||||
|
dataInfo.model = getNextDataFromChange(change);
|
||||||
}
|
}
|
||||||
dataInfo.sectionKey =
|
dataInfo.sectionKey =
|
||||||
(String) change.getRenderInfo().getDebugInfo("section_global_key");
|
(String) change.getRenderInfo().getDebugInfo("section_global_key");
|
||||||
@@ -324,6 +360,8 @@ public class ChangesetDebug implements ChangesetDebugListener {
|
|||||||
DataModelChangeInfo dataInfo = new DataModelChangeInfo();
|
DataModelChangeInfo dataInfo = new DataModelChangeInfo();
|
||||||
if (change.getNextData() != null) {
|
if (change.getNextData() != null) {
|
||||||
dataInfo.model = change.getNextData().get(item);
|
dataInfo.model = change.getNextData().get(item);
|
||||||
|
} else {
|
||||||
|
dataInfo.model = getNextDataFromChange(change);
|
||||||
}
|
}
|
||||||
dataInfo.operation = Change.INSERT_RANGE;
|
dataInfo.operation = Change.INSERT_RANGE;
|
||||||
dataInfo.sectionKey =
|
dataInfo.sectionKey =
|
||||||
@@ -350,14 +388,18 @@ public class ChangesetDebug implements ChangesetDebugListener {
|
|||||||
case Change.UPDATE:
|
case Change.UPDATE:
|
||||||
{
|
{
|
||||||
int getPosition = getPositionWithChangesApplied(dataInfos, index);
|
int getPosition = getPositionWithChangesApplied(dataInfos, index);
|
||||||
dataInfos.get(getPosition).operation = Change.UPDATE;
|
DataModelChangeInfo dataInfo = dataInfos.get(getPosition);
|
||||||
|
dataInfo.operation = Change.UPDATE;
|
||||||
|
dataInfo.model = getNextDataFromChange(change);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case Change.UPDATE_RANGE:
|
case Change.UPDATE_RANGE:
|
||||||
{
|
{
|
||||||
for (int updateIndex = index; updateIndex < index + change.getCount(); updateIndex++) {
|
for (int updateIndex = index; updateIndex < index + change.getCount(); updateIndex++) {
|
||||||
int getPosition = getPositionWithChangesApplied(dataInfos, updateIndex);
|
int getPosition = getPositionWithChangesApplied(dataInfos, updateIndex);
|
||||||
dataInfos.get(getPosition).operation = Change.UPDATE_RANGE;
|
DataModelChangeInfo dataInfo = dataInfos.get(getPosition);
|
||||||
|
dataInfo.operation = Change.UPDATE_RANGE;
|
||||||
|
dataInfo.model = getNextDataFromChange(change);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user