From 3237b60ff1b5c834a3fa687c0ad5765e49bfc940 Mon Sep 17 00:00:00 2001 From: John Knox Date: Fri, 3 Aug 2018 07:34:36 -0700 Subject: [PATCH] Add SonarDiagnosticActivity to android Summary: Open the screen by running adb shell am start -n com.facebook.wakizashi/com.facebook.sonar.android.diagnostics.SonarDiagnosticActivity Reviewed By: passy Differential Revision: D8954095 fbshipit-source-id: b4a638bc0ba2f69a69c121c7c1c00fbe47476ee3 --- android/sample/AndroidManifest.xml | 3 +- .../diagnostics/SonarDiagnosticActivity.java | 64 +++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 android/src/main/java/com/facebook/sonar/android/diagnostics/SonarDiagnosticActivity.java diff --git a/android/sample/AndroidManifest.xml b/android/sample/AndroidManifest.xml index f25295f7f..d053db33a 100644 --- a/android/sample/AndroidManifest.xml +++ b/android/sample/AndroidManifest.xml @@ -24,7 +24,8 @@ + - diff --git a/android/src/main/java/com/facebook/sonar/android/diagnostics/SonarDiagnosticActivity.java b/android/src/main/java/com/facebook/sonar/android/diagnostics/SonarDiagnosticActivity.java new file mode 100644 index 000000000..69df20cfb --- /dev/null +++ b/android/src/main/java/com/facebook/sonar/android/diagnostics/SonarDiagnosticActivity.java @@ -0,0 +1,64 @@ +package com.facebook.sonar.android.diagnostics; + +import android.app.Activity; +import android.content.Context; +import android.os.Bundle; +import android.widget.Toast; +import com.facebook.sonar.android.AndroidSonarClient; +import com.facebook.sonar.core.SonarClient; +import com.facebook.sonar.core.SonarStateUpdateListener; +import android.widget.LinearLayout; +import android.view.View; +import android.widget.TextView; +import android.widget.ScrollView; + +public class SonarDiagnosticActivity extends Activity implements SonarStateUpdateListener { + + private TextView textView; + private ScrollView scrollView; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + LinearLayout root = new LinearLayout(this); + + textView = new TextView(this); + scrollView = new ScrollView(this); + scrollView.addView(textView); + root.addView(scrollView); + + setContentView(root); + } + + protected void onStart() { + super.onStart(); + SonarClient client = AndroidSonarClient.getInstance(this); + client.subscribeForUpdates(this); + textView.setText(client.getState()); + } + + protected void onResume() { + super.onResume(); + scrollView.fullScroll(View.FOCUS_DOWN); + } + +@Override + public void onUpdate() { + final Context context = this; + final String state = AndroidSonarClient.getInstance(context).getState(); + runOnUiThread(new Runnable() { + @Override + public void run() { + textView.setText(state); + scrollView.fullScroll(View.FOCUS_DOWN); + } + }); + } + + protected void onStop() { + super.onStop(); + SonarClient client = AndroidSonarClient.getInstance(this); + client.unsubscribe(); + } +}