From 531a47535b1cfc1536c05f0e3c1e0f6a0d20e53a Mon Sep 17 00:00:00 2001 From: John Knox Date: Tue, 7 Aug 2018 09:42:06 -0700 Subject: [PATCH] Add SonarDiagnosticActivity to android Summary: Open the screen by running adb shell am start -n com.facebook.samples.litho/com.facebook.sonar.android.diagnostics.SonarDiagnosticActivity Reviewed By: danielbuechele Differential Revision: D9150556 fbshipit-source-id: 534583cfa5e90af6fd0d2a50572e3763b8888da2 --- android/sample/AndroidManifest.xml | 3 +- .../android/diagnostics/AndroidManifest.xml | 7 ++ .../diagnostics/SonarDiagnosticActivity.java | 64 +++++++++++++++++++ 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 android/src/main/java/com/facebook/sonar/android/diagnostics/AndroidManifest.xml 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/AndroidManifest.xml b/android/src/main/java/com/facebook/sonar/android/diagnostics/AndroidManifest.xml new file mode 100644 index 000000000..892ddd0d1 --- /dev/null +++ b/android/src/main/java/com/facebook/sonar/android/diagnostics/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + + + 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(); + } +}