Clean up AccessibilityManagerCompat after minSdk 14 bump.
- Collapse classes where possible
- Deprecate methods that are now available to be used directly from the
framework.
Test: ./gradlew assemble
Change-Id: I7b08c0cb850b868d306eede462b1525807e9c227
diff --git a/api/current.txt b/api/current.txt
index 920f110..d658d4f 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -8405,17 +8405,17 @@
}
public final class AccessibilityManagerCompat {
- method public static boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener);
+ method public static deprecated boolean addAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener);
method public static boolean addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener);
- method public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getEnabledAccessibilityServiceList(android.view.accessibility.AccessibilityManager, int);
- method public static java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getInstalledAccessibilityServiceList(android.view.accessibility.AccessibilityManager);
- method public static boolean isTouchExplorationEnabled(android.view.accessibility.AccessibilityManager);
- method public static boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener);
+ method public static deprecated java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getEnabledAccessibilityServiceList(android.view.accessibility.AccessibilityManager, int);
+ method public static deprecated java.util.List<android.accessibilityservice.AccessibilityServiceInfo> getInstalledAccessibilityServiceList(android.view.accessibility.AccessibilityManager);
+ method public static deprecated boolean isTouchExplorationEnabled(android.view.accessibility.AccessibilityManager);
+ method public static deprecated boolean removeAccessibilityStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener);
method public static boolean removeTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener);
}
- public static abstract interface AccessibilityManagerCompat.AccessibilityStateChangeListener {
- method public abstract void onAccessibilityStateChanged(boolean);
+ public static abstract deprecated interface AccessibilityManagerCompat.AccessibilityStateChangeListener {
+ method public abstract deprecated void onAccessibilityStateChanged(boolean);
}
public static abstract deprecated class AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat implements android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener {
diff --git a/compat/ics/android/support/v4/view/accessibility/AccessibilityManagerCompatIcs.java b/compat/ics/android/support/v4/view/accessibility/AccessibilityManagerCompatIcs.java
deleted file mode 100644
index 62cabea..0000000
--- a/compat/ics/android/support/v4/view/accessibility/AccessibilityManagerCompatIcs.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.support.v4.view.accessibility;
-
-import android.accessibilityservice.AccessibilityServiceInfo;
-import android.support.annotation.RequiresApi;
-import android.view.accessibility.AccessibilityManager;
-import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeListener;
-
-import java.util.List;
-
-/**
- * ICS specific AccessibilityManager API implementation.
- */
-
-@RequiresApi(14)
-class AccessibilityManagerCompatIcs {
-
- public static class AccessibilityStateChangeListenerWrapper
- implements AccessibilityStateChangeListener {
- Object mListener;
- AccessibilityStateChangeListenerBridge mListenerBridge;
-
- public AccessibilityStateChangeListenerWrapper(Object listener,
- AccessibilityStateChangeListenerBridge listenerBridge) {
- mListener = listener;
- mListenerBridge = listenerBridge;
- }
-
- @Override
- public int hashCode() {
- return mListener == null ? 0 : mListener.hashCode();
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
- AccessibilityStateChangeListenerWrapper other =
- (AccessibilityStateChangeListenerWrapper) o;
- return mListener == null ? other.mListener == null : mListener.equals(other.mListener);
- }
-
- @Override
- public void onAccessibilityStateChanged(boolean enabled) {
- mListenerBridge.onAccessibilityStateChanged(enabled);
- }
- }
-
- interface AccessibilityStateChangeListenerBridge {
- void onAccessibilityStateChanged(boolean enabled);
- }
-
- public static boolean addAccessibilityStateChangeListener(AccessibilityManager manager,
- AccessibilityStateChangeListenerWrapper listener) {
- return manager.addAccessibilityStateChangeListener(listener);
- }
-
- public static boolean removeAccessibilityStateChangeListener(AccessibilityManager manager,
- AccessibilityStateChangeListenerWrapper listener) {
- return manager.removeAccessibilityStateChangeListener(listener);
- }
-
- public static List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
- AccessibilityManager manager,int feedbackTypeFlags) {
- return manager.getEnabledAccessibilityServiceList(feedbackTypeFlags);
- }
-
- public static List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(
- AccessibilityManager manager) {
- return manager.getInstalledAccessibilityServiceList();
- }
-
- public static boolean isTouchExplorationEnabled(AccessibilityManager manager) {
- return manager.isTouchExplorationEnabled();
- }
-}
diff --git a/compat/java/android/support/v4/view/accessibility/AccessibilityManagerCompat.java b/compat/java/android/support/v4/view/accessibility/AccessibilityManagerCompat.java
index b7581cf..112d809 100644
--- a/compat/java/android/support/v4/view/accessibility/AccessibilityManagerCompat.java
+++ b/compat/java/android/support/v4/view/accessibility/AccessibilityManagerCompat.java
@@ -18,185 +18,16 @@
import android.accessibilityservice.AccessibilityServiceInfo;
import android.os.Build;
+import android.support.annotation.NonNull;
import android.support.annotation.RequiresApi;
-import android.support.v4.view.accessibility.AccessibilityManagerCompatIcs.AccessibilityStateChangeListenerBridge;
-import android.support.v4.view.accessibility.AccessibilityManagerCompatIcs.AccessibilityStateChangeListenerWrapper;
-import android.support.v4.view.accessibility.AccessibilityManagerCompatKitKat.TouchExplorationStateChangeListenerBridge;
-import android.support.v4.view.accessibility.AccessibilityManagerCompatKitKat.TouchExplorationStateChangeListenerWrapper;
import android.view.accessibility.AccessibilityManager;
-import java.util.Collections;
import java.util.List;
/**
- * Helper for accessing features in {@link AccessibilityManager}
- * introduced after API level 4 in a backwards compatible fashion.
+ * Helper for accessing features in {@link AccessibilityManager} in a backwards compatible fashion.
*/
public final class AccessibilityManagerCompat {
-
- interface AccessibilityManagerVersionImpl {
- AccessibilityStateChangeListenerWrapper newAccessibilityStateChangeListener(
- AccessibilityStateChangeListener listener);
- boolean addAccessibilityStateChangeListener(AccessibilityManager manager,
- AccessibilityStateChangeListener listener);
- boolean removeAccessibilityStateChangeListener(AccessibilityManager manager,
- AccessibilityStateChangeListener listener);
- List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
- AccessibilityManager manager,int feedbackTypeFlags);
- List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(
- AccessibilityManager manager);
- boolean isTouchExplorationEnabled(AccessibilityManager manager);
- TouchExplorationStateChangeListenerWrapper newTouchExplorationStateChangeListener(
- TouchExplorationStateChangeListener listener);
- boolean addTouchExplorationStateChangeListener(AccessibilityManager manager,
- TouchExplorationStateChangeListener listener);
- boolean removeTouchExplorationStateChangeListener(AccessibilityManager manager,
- TouchExplorationStateChangeListener listener);
- }
-
- static class AccessibilityManagerStubImpl implements AccessibilityManagerVersionImpl {
- @Override
- public AccessibilityStateChangeListenerWrapper newAccessibilityStateChangeListener(
- AccessibilityStateChangeListener listener) {
- return null;
- }
-
- @Override
- public boolean addAccessibilityStateChangeListener(AccessibilityManager manager,
- AccessibilityStateChangeListener listener) {
- return false;
- }
-
- @Override
- public boolean removeAccessibilityStateChangeListener(AccessibilityManager manager,
- AccessibilityStateChangeListener listener) {
- return false;
- }
-
- @Override
- public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
- AccessibilityManager manager, int feedbackTypeFlags) {
- return Collections.emptyList();
- }
-
- @Override
- public List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(
- AccessibilityManager manager) {
- return Collections.emptyList();
- }
-
- @Override
- public boolean isTouchExplorationEnabled(AccessibilityManager manager) {
- return false;
- }
-
- @Override
- public TouchExplorationStateChangeListenerWrapper newTouchExplorationStateChangeListener(
- TouchExplorationStateChangeListener listener) {
- return null;
- }
-
- @Override
- public boolean addTouchExplorationStateChangeListener(AccessibilityManager manager,
- TouchExplorationStateChangeListener listener) {
- return false;
- }
-
- @Override
- public boolean removeTouchExplorationStateChangeListener(AccessibilityManager manager,
- TouchExplorationStateChangeListener listener) {
- return false;
- }
- }
-
- @RequiresApi(14)
- static class AccessibilityManagerIcsImpl extends AccessibilityManagerStubImpl {
- @Override
- public AccessibilityStateChangeListenerWrapper newAccessibilityStateChangeListener(
- final AccessibilityStateChangeListener listener) {
- return new AccessibilityStateChangeListenerWrapper(listener,
- new AccessibilityStateChangeListenerBridge() {
- @Override
- public void onAccessibilityStateChanged(boolean enabled) {
- listener.onAccessibilityStateChanged(enabled);
- }
- });
- }
-
- @Override
- public boolean addAccessibilityStateChangeListener(AccessibilityManager manager,
- AccessibilityStateChangeListener listener) {
- return AccessibilityManagerCompatIcs.addAccessibilityStateChangeListener(manager,
- newAccessibilityStateChangeListener(listener));
- }
-
- @Override
- public boolean removeAccessibilityStateChangeListener(AccessibilityManager manager,
- AccessibilityStateChangeListener listener) {
- return AccessibilityManagerCompatIcs.removeAccessibilityStateChangeListener(manager,
- newAccessibilityStateChangeListener(listener));
- }
-
- @Override
- public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
- AccessibilityManager manager, int feedbackTypeFlags) {
- return AccessibilityManagerCompatIcs.getEnabledAccessibilityServiceList(manager,
- feedbackTypeFlags);
- }
-
- @Override
- public List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(
- AccessibilityManager manager) {
- return AccessibilityManagerCompatIcs.getInstalledAccessibilityServiceList(manager);
- }
-
- @Override
- public boolean isTouchExplorationEnabled(AccessibilityManager manager) {
- return AccessibilityManagerCompatIcs.isTouchExplorationEnabled(manager);
- }
- }
-
- @RequiresApi(19)
- static class AccessibilityManagerKitKatImpl extends AccessibilityManagerIcsImpl {
- @Override
- public TouchExplorationStateChangeListenerWrapper newTouchExplorationStateChangeListener(
- final TouchExplorationStateChangeListener listener) {
- return new TouchExplorationStateChangeListenerWrapper(listener,
- new TouchExplorationStateChangeListenerBridge() {
- @Override
- public void onTouchExplorationStateChanged(boolean enabled) {
- listener.onTouchExplorationStateChanged(enabled);
- }
- });
- }
-
- @Override
- public boolean addTouchExplorationStateChangeListener(AccessibilityManager manager,
- TouchExplorationStateChangeListener listener) {
- return AccessibilityManagerCompatKitKat.addTouchExplorationStateChangeListener(
- manager, newTouchExplorationStateChangeListener(listener));
- }
-
- @Override
- public boolean removeTouchExplorationStateChangeListener(AccessibilityManager manager,
- TouchExplorationStateChangeListener listener) {
- return AccessibilityManagerCompatKitKat.removeTouchExplorationStateChangeListener(
- manager, newTouchExplorationStateChangeListener(listener));
- }
- }
-
- static {
- if (Build.VERSION.SDK_INT >= 19) { // KitKat
- IMPL = new AccessibilityManagerKitKatImpl();
- } else if (Build.VERSION.SDK_INT >= 14) { // ICS
- IMPL = new AccessibilityManagerIcsImpl();
- } else {
- IMPL = new AccessibilityManagerStubImpl();
- }
- }
-
- private static final AccessibilityManagerVersionImpl IMPL;
-
/**
* Registers an {@link AccessibilityManager.AccessibilityStateChangeListener} for changes in
* the global accessibility state of the system.
@@ -204,10 +35,18 @@
* @param manager The accessibility manager.
* @param listener The listener.
* @return True if successfully registered.
+ *
+ * @deprecated Use {@link AccessibilityManager#addAccessibilityStateChangeListener(
+ * AccessibilityManager.AccessibilityStateChangeListener)} directly.
*/
+ @Deprecated
public static boolean addAccessibilityStateChangeListener(AccessibilityManager manager,
AccessibilityStateChangeListener listener) {
- return IMPL.addAccessibilityStateChangeListener(manager, listener);
+ if (listener == null) {
+ return false;
+ }
+ return manager.addAccessibilityStateChangeListener(
+ new AccessibilityStateChangeListenerWrapper(listener));
}
/**
@@ -216,10 +55,51 @@
* @param manager The accessibility manager.
* @param listener The listener.
* @return True if successfully unregistered.
+ *
+ * @deprecated Use {@link AccessibilityManager#removeAccessibilityStateChangeListener(
+ * AccessibilityManager.AccessibilityStateChangeListener)} directly.
*/
+ @Deprecated
public static boolean removeAccessibilityStateChangeListener(AccessibilityManager manager,
AccessibilityStateChangeListener listener) {
- return IMPL.removeAccessibilityStateChangeListener(manager, listener);
+ if (listener == null) {
+ return false;
+ }
+ return manager.removeAccessibilityStateChangeListener(
+ new AccessibilityStateChangeListenerWrapper(listener));
+ }
+
+ private static class AccessibilityStateChangeListenerWrapper
+ implements AccessibilityManager.AccessibilityStateChangeListener {
+ AccessibilityStateChangeListener mListener;
+
+ AccessibilityStateChangeListenerWrapper(
+ @NonNull AccessibilityStateChangeListener listener) {
+ mListener = listener;
+ }
+
+ @Override
+ public int hashCode() {
+ return mListener.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AccessibilityStateChangeListenerWrapper other =
+ (AccessibilityStateChangeListenerWrapper) o;
+ return mListener.equals(other.mListener);
+ }
+
+ @Override
+ public void onAccessibilityStateChanged(boolean enabled) {
+ mListener.onAccessibilityStateChanged(enabled);
+ }
}
/**
@@ -227,10 +107,13 @@
*
* @param manager The accessibility manager.
* @return An unmodifiable list with {@link AccessibilityServiceInfo}s.
+ *
+ * @deprecated Use {@link AccessibilityManager#getInstalledAccessibilityServiceList()} directly.
*/
+ @Deprecated
public static List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList(
AccessibilityManager manager) {
- return IMPL.getInstalledAccessibilityServiceList(manager);
+ return manager.getInstalledAccessibilityServiceList();
}
/**
@@ -246,10 +129,14 @@
* @see AccessibilityServiceInfo#FEEDBACK_HAPTIC
* @see AccessibilityServiceInfo#FEEDBACK_SPOKEN
* @see AccessibilityServiceInfo#FEEDBACK_VISUAL
+ *
+ * @deprecated Use {@link AccessibilityManager#getEnabledAccessibilityServiceList(int)}
+ * directly.
*/
+ @Deprecated
public static List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
AccessibilityManager manager, int feedbackTypeFlags) {
- return IMPL.getEnabledAccessibilityServiceList(manager, feedbackTypeFlags);
+ return manager.getEnabledAccessibilityServiceList(feedbackTypeFlags);
}
/**
@@ -257,9 +144,12 @@
*
* @param manager The accessibility manager.
* @return True if touch exploration is enabled, false otherwise.
+ *
+ * @deprecated Use {@link AccessibilityManager#isTouchExplorationEnabled()} directly.
*/
+ @Deprecated
public static boolean isTouchExplorationEnabled(AccessibilityManager manager) {
- return IMPL.isTouchExplorationEnabled(manager);
+ return manager.isTouchExplorationEnabled();
}
/**
@@ -271,7 +161,15 @@
*/
public static boolean addTouchExplorationStateChangeListener(AccessibilityManager manager,
TouchExplorationStateChangeListener listener) {
- return IMPL.addTouchExplorationStateChangeListener(manager, listener);
+ if (Build.VERSION.SDK_INT >= 19) {
+ if (listener == null) {
+ return false;
+ }
+ return manager.addTouchExplorationStateChangeListener(
+ new TouchExplorationStateChangeListenerWrapper(listener));
+ } else {
+ return false;
+ }
}
/**
@@ -282,12 +180,56 @@
*/
public static boolean removeTouchExplorationStateChangeListener(AccessibilityManager manager,
TouchExplorationStateChangeListener listener) {
- return IMPL.removeTouchExplorationStateChangeListener(manager, listener);
+ if (Build.VERSION.SDK_INT >= 19) {
+ if (listener == null) {
+ return false;
+ }
+ return manager.removeTouchExplorationStateChangeListener(
+ new TouchExplorationStateChangeListenerWrapper(listener));
+ } else {
+ return false;
+ }
+ }
+
+ @RequiresApi(19)
+ private static class TouchExplorationStateChangeListenerWrapper
+ implements AccessibilityManager.TouchExplorationStateChangeListener {
+ final TouchExplorationStateChangeListener mListener;
+
+ TouchExplorationStateChangeListenerWrapper(
+ @NonNull TouchExplorationStateChangeListener listener) {
+ mListener = listener;
+ }
+
+ @Override
+ public int hashCode() {
+ return mListener.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ TouchExplorationStateChangeListenerWrapper other =
+ (TouchExplorationStateChangeListenerWrapper) o;
+ return mListener.equals(other.mListener);
+ }
+
+ @Override
+ public void onTouchExplorationStateChanged(boolean enabled) {
+ mListener.onTouchExplorationStateChanged(enabled);
+ }
}
/**
* Listener for the accessibility state.
- * @deprecated Use {@link AccessibilityStateChangeListener} instead.
+ *
+ * @deprecated Use {@link AccessibilityManager.AccessibilityStateChangeListener} directly
+ * instead of this listener.
*/
@Deprecated
public static abstract class AccessibilityStateChangeListenerCompat
@@ -296,13 +238,20 @@
/**
* Listener for the accessibility state.
+ *
+ * @deprecated Use {@link AccessibilityManager.AccessibilityStateChangeListener} directly
+ * instead of this listener.
*/
+ @Deprecated
public interface AccessibilityStateChangeListener {
/**
* Called back on change in the accessibility state.
*
* @param enabled Whether accessibility is enabled.
+ *
+ * @deprecated Use {@link AccessibilityManager.AccessibilityStateChangeListener} directly.
*/
+ @Deprecated
void onAccessibilityStateChanged(boolean enabled);
}
diff --git a/compat/kitkat/android/support/v4/view/accessibility/AccessibilityManagerCompatKitKat.java b/compat/kitkat/android/support/v4/view/accessibility/AccessibilityManagerCompatKitKat.java
deleted file mode 100644
index b8d742c..0000000
--- a/compat/kitkat/android/support/v4/view/accessibility/AccessibilityManagerCompatKitKat.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.support.v4.view.accessibility;
-
-import android.support.annotation.RequiresApi;
-import android.view.accessibility.AccessibilityManager;
-import android.view.accessibility.AccessibilityManager.TouchExplorationStateChangeListener;
-
-/**
- * KitKat-specific AccessibilityManager API implementation.
- */
-
-@RequiresApi(19)
-class AccessibilityManagerCompatKitKat {
-
- public static class TouchExplorationStateChangeListenerWrapper
- implements TouchExplorationStateChangeListener {
- final Object mListener;
- final TouchExplorationStateChangeListenerBridge mListenerBridge;
-
- public TouchExplorationStateChangeListenerWrapper(Object listener,
- TouchExplorationStateChangeListenerBridge listenerBridge) {
- mListener = listener;
- mListenerBridge = listenerBridge;
- }
-
- @Override
- public int hashCode() {
- return mListener == null ? 0 : mListener.hashCode();
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
- TouchExplorationStateChangeListenerWrapper other =
- (TouchExplorationStateChangeListenerWrapper) o;
- return mListener == null ? other.mListener == null : mListener.equals(other.mListener);
- }
-
- @Override
- public void onTouchExplorationStateChanged(boolean enabled) {
- mListenerBridge.onTouchExplorationStateChanged(enabled);
- }
- }
-
- interface TouchExplorationStateChangeListenerBridge {
- void onTouchExplorationStateChanged(boolean enabled);
- }
-
- public static Object newTouchExplorationStateChangeListener(
- final TouchExplorationStateChangeListenerBridge bridge) {
- return new TouchExplorationStateChangeListener() {
- @Override
- public void onTouchExplorationStateChanged(boolean enabled) {
- bridge.onTouchExplorationStateChanged(enabled);
- }
- };
- }
-
- public static boolean addTouchExplorationStateChangeListener(AccessibilityManager manager,
- Object listener) {
- return manager.addTouchExplorationStateChangeListener(
- (TouchExplorationStateChangeListener) listener);
- }
-
- public static boolean removeTouchExplorationStateChangeListener(AccessibilityManager manager,
- Object listener) {
- return manager.removeTouchExplorationStateChangeListener(
- (TouchExplorationStateChangeListener) listener);
- }
-}