diff --git a/android/src/main/java/com/facebook/flipper/android/diagnostics/FlipperDiagnosticFragment.java b/android/src/main/java/com/facebook/flipper/android/diagnostics/FlipperDiagnosticFragment.java index 91550e83f..06db7714b 100644 --- a/android/src/main/java/com/facebook/flipper/android/diagnostics/FlipperDiagnosticFragment.java +++ b/android/src/main/java/com/facebook/flipper/android/diagnostics/FlipperDiagnosticFragment.java @@ -35,13 +35,14 @@ public class FlipperDiagnosticFragment extends Fragment implements FlipperStateU Button mReportButton; @Nullable FlipperDiagnosticReportListener mReportCallback; + @Nullable FlipperDiagnosticSummaryTextFilter mDiagnosticSummaryTextFilter; private final View.OnClickListener mOnBugReportClickListener = new View.OnClickListener() { @Override public void onClick(View v) { mReportCallback.report( - AndroidFlipperClient.getInstance(getContext()).getState(), getSummary()); + AndroidFlipperClient.getInstance(getContext()).getState(), getSummary().toString()); } }; @@ -96,7 +97,10 @@ public class FlipperDiagnosticFragment extends Fragment implements FlipperStateU @Override public void onUpdate() { final String state = AndroidFlipperClient.getInstance(getContext()).getState(); - final String summary = getSummary(); + final CharSequence summary = + mDiagnosticSummaryTextFilter == null + ? getSummary() + : mDiagnosticSummaryTextFilter.applyDiagnosticSummaryTextFilter(getSummary()); final Activity activity = getActivity(); if (activity != null) { @@ -112,10 +116,10 @@ public class FlipperDiagnosticFragment extends Fragment implements FlipperStateU } } - String getSummary() { + CharSequence getSummary() { final Context context = getContext(); final StateSummary summary = AndroidFlipperClient.getInstance(context).getStateSummary(); - final StringBuilder stateText = new StringBuilder(); + final StringBuilder stateText = new StringBuilder(16); for (StateElement e : summary.mList) { final String status; switch (e.getState()) { @@ -132,7 +136,7 @@ public class FlipperDiagnosticFragment extends Fragment implements FlipperStateU default: status = "❓"; } - stateText.append(status).append(e.getName()).append("\n"); + stateText.append(status).append(e.getName()).append('\n'); } return stateText.toString(); } @@ -151,5 +155,8 @@ public class FlipperDiagnosticFragment extends Fragment implements FlipperStateU if (context instanceof FlipperDiagnosticReportListener) { mReportCallback = (FlipperDiagnosticReportListener) context; } + if (context instanceof FlipperDiagnosticSummaryTextFilter) { + mDiagnosticSummaryTextFilter = (FlipperDiagnosticSummaryTextFilter) context; + } } } diff --git a/android/src/main/java/com/facebook/flipper/android/diagnostics/FlipperDiagnosticSummaryTextFilter.java b/android/src/main/java/com/facebook/flipper/android/diagnostics/FlipperDiagnosticSummaryTextFilter.java new file mode 100644 index 000000000..1c92ed1aa --- /dev/null +++ b/android/src/main/java/com/facebook/flipper/android/diagnostics/FlipperDiagnosticSummaryTextFilter.java @@ -0,0 +1,6 @@ +package com.facebook.flipper.android.diagnostics; + +public interface FlipperDiagnosticSummaryTextFilter { + /** Reformat the string display of the summary if necessary. */ + CharSequence applyDiagnosticSummaryTextFilter(CharSequence summary); +}