Remove overloaded ErrorReportingRunnable class
Summary: This masks this fact that `mConnection` must be `non-null` for very little convenience in return. Let's keep this explicit. Reviewed By: danielbuechele Differential Revision: D10505205 fbshipit-source-id: d8187cc8e79d4508babe281ff88b3ba75c0baa1f
This commit is contained in:
committed by
Facebook Github Bot
parent
bc0e5b3a11
commit
f75a90bf78
@@ -8,13 +8,14 @@
|
|||||||
|
|
||||||
package com.facebook.flipper.plugins.inspector;
|
package com.facebook.flipper.plugins.inspector;
|
||||||
|
|
||||||
|
import android.support.annotation.Nullable;
|
||||||
|
import com.facebook.flipper.core.ErrorReportingRunnable;
|
||||||
import com.facebook.flipper.core.FlipperArray;
|
import com.facebook.flipper.core.FlipperArray;
|
||||||
import com.facebook.flipper.core.FlipperConnection;
|
import com.facebook.flipper.core.FlipperConnection;
|
||||||
import com.facebook.flipper.core.FlipperDynamic;
|
import com.facebook.flipper.core.FlipperDynamic;
|
||||||
import com.facebook.flipper.core.FlipperObject;
|
import com.facebook.flipper.core.FlipperObject;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.annotation.Nullable;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A NodeDescriptor is an object which known how to expose an Object of type T to the ew Inspector.
|
* A NodeDescriptor is an object which known how to expose an Object of type T to the ew Inspector.
|
||||||
@@ -22,7 +23,7 @@ import javax.annotation.Nullable;
|
|||||||
* data can be exposed to the inspector.
|
* data can be exposed to the inspector.
|
||||||
*/
|
*/
|
||||||
public abstract class NodeDescriptor<T> {
|
public abstract class NodeDescriptor<T> {
|
||||||
protected FlipperConnection mConnection;
|
@Nullable protected FlipperConnection mConnection;
|
||||||
private DescriptorMapping mDescriptorMapping;
|
private DescriptorMapping mDescriptorMapping;
|
||||||
|
|
||||||
void setConnection(FlipperConnection connection) {
|
void setConnection(FlipperConnection connection) {
|
||||||
@@ -50,7 +51,7 @@ public abstract class NodeDescriptor<T> {
|
|||||||
*/
|
*/
|
||||||
protected final void invalidate(final T node) {
|
protected final void invalidate(final T node) {
|
||||||
if (mConnection != null) {
|
if (mConnection != null) {
|
||||||
new ErrorReportingRunnable() {
|
new ErrorReportingRunnable(mConnection) {
|
||||||
@Override
|
@Override
|
||||||
protected void runOrThrow() throws Exception {
|
protected void runOrThrow() throws Exception {
|
||||||
FlipperArray array =
|
FlipperArray array =
|
||||||
@@ -71,7 +72,7 @@ public abstract class NodeDescriptor<T> {
|
|||||||
*/
|
*/
|
||||||
protected final void invalidateAX(final T node) {
|
protected final void invalidateAX(final T node) {
|
||||||
if (mConnection != null) {
|
if (mConnection != null) {
|
||||||
new ErrorReportingRunnable() {
|
new ErrorReportingRunnable(mConnection) {
|
||||||
@Override
|
@Override
|
||||||
protected void runOrThrow() throws Exception {
|
protected void runOrThrow() throws Exception {
|
||||||
FlipperArray array =
|
FlipperArray array =
|
||||||
@@ -89,13 +90,6 @@ public abstract class NodeDescriptor<T> {
|
|||||||
return mConnection != null;
|
return mConnection != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract class ErrorReportingRunnable
|
|
||||||
extends com.facebook.flipper.core.ErrorReportingRunnable {
|
|
||||||
public ErrorReportingRunnable() {
|
|
||||||
super(mConnection);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize a node. This implementation usually consists of setting up listeners to know when to
|
* Initialize a node. This implementation usually consists of setting up listeners to know when to
|
||||||
* call {@link NodeDescriptor#invalidate(Object)}.
|
* call {@link NodeDescriptor#invalidate(Object)}.
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import android.support.v4.view.ViewCompat;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.view.accessibility.AccessibilityEvent;
|
import android.view.accessibility.AccessibilityEvent;
|
||||||
|
import com.facebook.flipper.core.ErrorReportingRunnable;
|
||||||
import com.facebook.flipper.core.FlipperDynamic;
|
import com.facebook.flipper.core.FlipperDynamic;
|
||||||
import com.facebook.flipper.core.FlipperObject;
|
import com.facebook.flipper.core.FlipperObject;
|
||||||
import com.facebook.flipper.plugins.inspector.ApplicationWrapper;
|
import com.facebook.flipper.plugins.inspector.ApplicationWrapper;
|
||||||
@@ -58,7 +59,7 @@ public class ApplicationDescriptor extends NodeDescriptor<ApplicationWrapper> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<ViewGroup> editedDelegates = new ArrayList<>();
|
private static final List<ViewGroup> editedDelegates = new ArrayList<>();
|
||||||
private static boolean searchActive;
|
private static boolean searchActive;
|
||||||
|
|
||||||
public static void setSearchActive(boolean active) {
|
public static void setSearchActive(boolean active) {
|
||||||
@@ -143,22 +144,25 @@ public class ApplicationDescriptor extends NodeDescriptor<ApplicationWrapper> {
|
|||||||
});
|
});
|
||||||
|
|
||||||
final NodeKey key = new NodeKey();
|
final NodeKey key = new NodeKey();
|
||||||
final Runnable maybeInvalidate =
|
|
||||||
new NodeDescriptor.ErrorReportingRunnable() {
|
|
||||||
@Override
|
|
||||||
public void runOrThrow() throws Exception {
|
|
||||||
if (connected()) {
|
|
||||||
if (key.set(node)) {
|
|
||||||
invalidate(node);
|
|
||||||
invalidateAX(node);
|
|
||||||
setDelegates(node);
|
|
||||||
}
|
|
||||||
node.postDelayed(this, 1000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
node.postDelayed(maybeInvalidate, 1000);
|
if (mConnection != null) {
|
||||||
|
final Runnable maybeInvalidate =
|
||||||
|
new ErrorReportingRunnable(mConnection) {
|
||||||
|
@Override
|
||||||
|
public void runOrThrow() {
|
||||||
|
if (connected()) {
|
||||||
|
if (key.set(node)) {
|
||||||
|
invalidate(node);
|
||||||
|
invalidateAX(node);
|
||||||
|
setDelegates(node);
|
||||||
|
}
|
||||||
|
node.postDelayed(this, 1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
node.postDelayed(maybeInvalidate, 1000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -172,7 +176,7 @@ public class ApplicationDescriptor extends NodeDescriptor<ApplicationWrapper> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getAXName(ApplicationWrapper node) throws Exception {
|
public String getAXName(ApplicationWrapper node) {
|
||||||
return "Application";
|
return "Application";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -228,7 +232,7 @@ public class ApplicationDescriptor extends NodeDescriptor<ApplicationWrapper> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void runHitTest(ApplicationWrapper node, Touch touch, boolean ax) throws Exception {
|
private void runHitTest(ApplicationWrapper node, Touch touch, boolean ax) {
|
||||||
final int childCount = getChildCount(node);
|
final int childCount = getChildCount(node);
|
||||||
|
|
||||||
for (int i = childCount - 1; i >= 0; i--) {
|
for (int i = childCount - 1; i >= 0; i--) {
|
||||||
@@ -252,8 +256,9 @@ public class ApplicationDescriptor extends NodeDescriptor<ApplicationWrapper> {
|
|||||||
runHitTest(node, touch, true);
|
runHitTest(node, touch, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public @Nullable String getDecoration(ApplicationWrapper obj) {
|
public String getDecoration(ApplicationWrapper obj) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import android.view.ViewGroup.MarginLayoutParams;
|
|||||||
import android.view.ViewParent;
|
import android.view.ViewParent;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
|
import com.facebook.flipper.core.ErrorReportingRunnable;
|
||||||
import com.facebook.flipper.core.FlipperDynamic;
|
import com.facebook.flipper.core.FlipperDynamic;
|
||||||
import com.facebook.flipper.core.FlipperObject;
|
import com.facebook.flipper.core.FlipperObject;
|
||||||
import com.facebook.flipper.plugins.inspector.HighlightedOverlay;
|
import com.facebook.flipper.plugins.inspector.HighlightedOverlay;
|
||||||
@@ -546,20 +547,22 @@ public class ViewDescriptor extends NodeDescriptor<View> {
|
|||||||
return tags.build();
|
return tags.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
new ErrorReportingRunnable() {
|
if (mConnection != null) {
|
||||||
@Override
|
new ErrorReportingRunnable(mConnection) {
|
||||||
protected void runOrThrow() throws Exception {
|
@Override
|
||||||
final SparseArray keyedTags = (SparseArray) sKeyedTagsField.get(node);
|
protected void runOrThrow() throws Exception {
|
||||||
if (keyedTags != null) {
|
final SparseArray keyedTags = (SparseArray) sKeyedTagsField.get(node);
|
||||||
for (int i = 0, count = keyedTags.size(); i < count; i++) {
|
if (keyedTags != null) {
|
||||||
final String id =
|
for (int i = 0, count = keyedTags.size(); i < count; i++) {
|
||||||
ResourcesUtil.getIdStringQuietly(
|
final String id =
|
||||||
node.getContext(), node.getResources(), keyedTags.keyAt(i));
|
ResourcesUtil.getIdStringQuietly(
|
||||||
tags.put(id, keyedTags.valueAt(i));
|
node.getContext(), node.getResources(), keyedTags.keyAt(i));
|
||||||
|
tags.put(id, keyedTags.valueAt(i));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}.run();
|
||||||
}.run();
|
}
|
||||||
|
|
||||||
return tags.build();
|
return tags.build();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import android.os.Build;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import com.facebook.flipper.R;
|
import com.facebook.flipper.R;
|
||||||
|
import com.facebook.flipper.core.ErrorReportingRunnable;
|
||||||
import com.facebook.flipper.core.FlipperDynamic;
|
import com.facebook.flipper.core.FlipperDynamic;
|
||||||
import com.facebook.flipper.core.FlipperObject;
|
import com.facebook.flipper.core.FlipperObject;
|
||||||
import com.facebook.flipper.plugins.inspector.HiddenNode;
|
import com.facebook.flipper.plugins.inspector.HiddenNode;
|
||||||
@@ -66,26 +67,28 @@ public class ViewGroupDescriptor extends NodeDescriptor<ViewGroup> {
|
|||||||
public void init(final ViewGroup node) {
|
public void init(final ViewGroup node) {
|
||||||
final NodeKey key = new NodeKey();
|
final NodeKey key = new NodeKey();
|
||||||
|
|
||||||
final Runnable maybeInvalidate =
|
if (mConnection != null) {
|
||||||
new ErrorReportingRunnable() {
|
final Runnable maybeInvalidate =
|
||||||
@Override
|
new ErrorReportingRunnable(mConnection) {
|
||||||
public void runOrThrow() throws Exception {
|
@Override
|
||||||
if (connected()) {
|
public void runOrThrow() throws Exception {
|
||||||
if (key.set(node)) {
|
if (connected()) {
|
||||||
invalidate(node);
|
if (key.set(node)) {
|
||||||
invalidateAX(node);
|
invalidate(node);
|
||||||
}
|
invalidateAX(node);
|
||||||
|
}
|
||||||
|
|
||||||
final boolean hasAttachedToWindow =
|
final boolean hasAttachedToWindow =
|
||||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
|
Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
|
||||||
if (!hasAttachedToWindow || node.isAttachedToWindow()) {
|
if (!hasAttachedToWindow || node.isAttachedToWindow()) {
|
||||||
node.postDelayed(this, 1000);
|
node.postDelayed(this, 1000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
};
|
|
||||||
|
|
||||||
node.postDelayed(maybeInvalidate, 1000);
|
node.postDelayed(maybeInvalidate, 1000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user