From 0b72c6082f69ccdcac3af1e411b6a3557c5225b2 Mon Sep 17 00:00:00 2001 From: Pascal Hartig Date: Thu, 28 Mar 2019 03:09:14 -0700 Subject: [PATCH] Set up text filter to allow for correct emoji display Reviewed By: jknoxville Differential Revision: D14640808 fbshipit-source-id: 9ecdb15f32143f5615d5763b9da79c581698acc5 --- .../diagnostics/FlipperDiagnosticFragment.java | 17 ++++++++++++----- .../FlipperDiagnosticSummaryTextFilter.java | 6 ++++++ 2 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 android/src/main/java/com/facebook/flipper/android/diagnostics/FlipperDiagnosticSummaryTextFilter.java 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); +}