aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/ViewServerDevice.java4
-rw-r--r--hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/WindowUpdater.java3
-rw-r--r--hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/ui/DeviceSelector.java4
3 files changed, 8 insertions, 3 deletions
diff --git a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/ViewServerDevice.java b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/ViewServerDevice.java
index 4bd5d6b..0febcef 100644
--- a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/ViewServerDevice.java
+++ b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/ViewServerDevice.java
@@ -135,14 +135,14 @@ public class ViewServerDevice extends AbstractHvDevice {
@Override
public void addWindowChangeListener(IWindowChangeListener l) {
- if (mViewServerInfo.protocolVersion >= 3) {
+ if (mViewServerInfo != null && mViewServerInfo.protocolVersion >= 3) {
WindowUpdater.startListenForWindowChanges(l, mDevice);
}
}
@Override
public void removeWindowChangeListener(IWindowChangeListener l) {
- if (mViewServerInfo.protocolVersion >= 3) {
+ if (mViewServerInfo != null && mViewServerInfo.protocolVersion >= 3) {
WindowUpdater.stopListenForWindowChanges(l, mDevice);
}
}
diff --git a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/WindowUpdater.java b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/WindowUpdater.java
index 9dbb989..a67d400 100644
--- a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/WindowUpdater.java
+++ b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/device/WindowUpdater.java
@@ -72,6 +72,9 @@ public class WindowUpdater {
public static void stopListenForWindowChanges(IWindowChangeListener listener, IDevice device) {
synchronized (sWindowChangeListeners) {
ArrayList<IWindowChangeListener> listeners = sWindowChangeListeners.get(device);
+ if (listeners == null) {
+ return;
+ }
listeners.remove(listener);
// There are more listeners, so don't stop the listening thread.
if (listeners.size() != 0) {
diff --git a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/ui/DeviceSelector.java b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/ui/DeviceSelector.java
index c3154c8..ae8ad26 100644
--- a/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/ui/DeviceSelector.java
+++ b/hierarchyviewer2/libs/hierarchyviewerlib/src/com/android/hierarchyviewerlib/ui/DeviceSelector.java
@@ -330,7 +330,9 @@ public class DeviceSelector extends Composite implements IWindowChangeListener,
@Override
public void widgetSelected(SelectionEvent e) {
- Object selection = ((TreeItem) e.item).getData();
+ TreeItem item = (TreeItem) e.item;
+ if (item == null) return;
+ Object selection = item.getData();
if (selection instanceof IHvDevice) {
mModel.setSelection((IHvDevice) selection, null);
} else if (selection instanceof Window) {