19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2011 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.support.v4.view.accessibility; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1958945975b256739fdfe78435d7846d1e2fd29da1Chris Craikimport android.accessibilityservice.AccessibilityServiceInfo; 20b3c56086d802ae28888dd97ba1f49bd6cee0b673Alan Viveretteimport android.os.Build; 21c2974809373697147cbe5754835cc871fb93aef1Dianne Hackbornimport android.support.v4.view.accessibility.AccessibilityManagerCompatIcs.AccessibilityStateChangeListenerBridge; 2252b999f0721b53e9c6e18a4bd664e89aeb65b2d5Alan Viveretteimport android.view.accessibility.AccessibilityManager; 23dad7d84c04c5954b63ea8bb58c52b2291f44b4dfJohn Reck 2478aaa97b77d56e35e994611406deb398eb9005dbGilles Debunneimport java.util.Collections; 2578aaa97b77d56e35e994611406deb398eb9005dbGilles Debunneimport java.util.List; 26bbd51f1e360b22eece1d74bd65c7e6a0b59dee59Philip Milne 2758945975b256739fdfe78435d7846d1e2fd29da1Chris Craik/** 2878aaa97b77d56e35e994611406deb398eb9005dbGilles Debunne * Helper for accessing features in {@link AccessibilityManager} 2978aaa97b77d56e35e994611406deb398eb9005dbGilles Debunne * introduced after API level 4 in a backwards compatible fashion. 30b3c56086d802ae28888dd97ba1f49bd6cee0b673Alan Viverette */ 31079e23575024e103358c982152afb7a720ae1a8aDianne Hackbornpublic class AccessibilityManagerCompat { 32600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio 33f390f770ee570f1f4def41b165cb9492e381be40Alan Viverette interface AccessibilityManagerVersionImpl { 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Object newAccessiblityStateChangeListener( 35dad7d84c04c5954b63ea8bb58c52b2291f44b4dfJohn Reck AccessibilityStateChangeListenerCompat listener); 36dad7d84c04c5954b63ea8bb58c52b2291f44b4dfJohn Reck public boolean addAccessibilityStateChangeListener(AccessibilityManager manager, 3778aaa97b77d56e35e994611406deb398eb9005dbGilles Debunne AccessibilityStateChangeListenerCompat listener); 3878aaa97b77d56e35e994611406deb398eb9005dbGilles Debunne public boolean removeAccessibilityStateChangeListener(AccessibilityManager manager, 3978aaa97b77d56e35e994611406deb398eb9005dbGilles Debunne AccessibilityStateChangeListenerCompat listener); 4078aaa97b77d56e35e994611406deb398eb9005dbGilles Debunne public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList( 4178aaa97b77d56e35e994611406deb398eb9005dbGilles Debunne AccessibilityManager manager,int feedbackTypeFlags); 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList( 43079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn AccessibilityManager manager); 44079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn public boolean isTouchExplorationEnabled(AccessibilityManager manager); 45211db4a2874f1a2d0e7a8cb8d33e81fa08801763Mike Reed } 46211db4a2874f1a2d0e7a8cb8d33e81fa08801763Mike Reed 47211db4a2874f1a2d0e7a8cb8d33e81fa08801763Mike Reed static class AccessibilityManagerStubImpl implements AccessibilityManagerVersionImpl { 48211db4a2874f1a2d0e7a8cb8d33e81fa08801763Mike Reed public Object newAccessiblityStateChangeListener( 49211db4a2874f1a2d0e7a8cb8d33e81fa08801763Mike Reed AccessibilityStateChangeListenerCompat listener) { 50211db4a2874f1a2d0e7a8cb8d33e81fa08801763Mike Reed return null; 51211db4a2874f1a2d0e7a8cb8d33e81fa08801763Mike Reed } 52211db4a2874f1a2d0e7a8cb8d33e81fa08801763Mike Reed 53211db4a2874f1a2d0e7a8cb8d33e81fa08801763Mike Reed public boolean addAccessibilityStateChangeListener(AccessibilityManager manager, 54211db4a2874f1a2d0e7a8cb8d33e81fa08801763Mike Reed AccessibilityStateChangeListenerCompat listener) { 55211db4a2874f1a2d0e7a8cb8d33e81fa08801763Mike Reed return false; 56211db4a2874f1a2d0e7a8cb8d33e81fa08801763Mike Reed } 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 587068c39526459c18a020e29c1ebfa6aed54e2d0fAlan Viverette public boolean removeAccessibilityStateChangeListener(AccessibilityManager manager, 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AccessibilityStateChangeListenerCompat listener) { 60ebc9f2e773c3ebb4d4af3025fc6770844cc8fdefAlan Viverette return false; 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 63729427d451bc4d4d268335b8dc1ff6404bc1c91eAlan Viverette public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList( 64729427d451bc4d4d268335b8dc1ff6404bc1c91eAlan Viverette AccessibilityManager manager, int feedbackTypeFlags) { 65729427d451bc4d4d268335b8dc1ff6404bc1c91eAlan Viverette return Collections.emptyList(); 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 67ebc9f2e773c3ebb4d4af3025fc6770844cc8fdefAlan Viverette 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList( 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AccessibilityManager manager) { 70079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn return Collections.emptyList(); 71079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn } 72079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn 73079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn public boolean isTouchExplorationEnabled(AccessibilityManager manager) { 74079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn return false; 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static class AccessibilityManagerIcsImpl extends AccessibilityManagerStubImpl { 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public Object newAccessiblityStateChangeListener( 82079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn final AccessibilityStateChangeListenerCompat listener) { 83079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn return AccessibilityManagerCompatIcs.newAccessibilityStateChangeListener( 84079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn new AccessibilityStateChangeListenerBridge() { 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void onAccessibilityStateChanged(boolean enabled) { 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project listener.onAccessibilityStateChanged(enabled); 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }); 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean addAccessibilityStateChangeListener(AccessibilityManager manager, 93f390f770ee570f1f4def41b165cb9492e381be40Alan Viverette AccessibilityStateChangeListenerCompat listener) { 94600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio return AccessibilityManagerCompatIcs.addAccessibilityStateChangeListener(manager, 95600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio listener.mListener); 96600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio } 97600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean removeAccessibilityStateChangeListener(AccessibilityManager manager, 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final AccessibilityStateChangeListenerCompat listener) { 101f7a93ef3847258157d144dfefaa5757128cc807dFabrice Di Meglio return AccessibilityManagerCompatIcs.removeAccessibilityStateChangeListener(manager, 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project listener.mListener); 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 104f7a93ef3847258157d144dfefaa5757128cc807dFabrice Di Meglio 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 106600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList( 107600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio AccessibilityManager manager, int feedbackTypeFlags) { 108600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio return AccessibilityManagerCompatIcs.getEnabledAccessibilityServiceList(manager, 109600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio feedbackTypeFlags); 110600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio } 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 112600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio @Override 113600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio public List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList( 114600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio AccessibilityManager manager) { 115600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio return AccessibilityManagerCompatIcs.getInstalledAccessibilityServiceList(manager); 116600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio } 117600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio 118600d7dd1c6d9d1ff81b71085eff2a6be50d6f36cFabrice Di Meglio @Override 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean isTouchExplorationEnabled(AccessibilityManager manager) { 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return AccessibilityManagerCompatIcs.isTouchExplorationEnabled(manager); 1211557fd7809078e421f751efc7d2539b3efdc54b2Philip Milne } 1221557fd7809078e421f751efc7d2539b3efdc54b2Philip Milne } 1231557fd7809078e421f751efc7d2539b3efdc54b2Philip Milne 1241557fd7809078e421f751efc7d2539b3efdc54b2Philip Milne static { 1257b7578184567f4e4f0740ce935cc192765410ccaPhilip Milne if (Build.VERSION.SDK_INT >= 14) { // ICS 1268de1494557cf1d00c1c3fce439138a28de7fbd61Alan Viverette IMPL = new AccessibilityManagerIcsImpl(); 1278de1494557cf1d00c1c3fce439138a28de7fbd61Alan Viverette } else { 1288de1494557cf1d00c1c3fce439138a28de7fbd61Alan Viverette IMPL = new AccessibilityManagerStubImpl(); 1298de1494557cf1d00c1c3fce439138a28de7fbd61Alan Viverette } 1301557fd7809078e421f751efc7d2539b3efdc54b2Philip Milne } 1311557fd7809078e421f751efc7d2539b3efdc54b2Philip Milne 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final AccessibilityManagerVersionImpl IMPL; 13331ba192dd201df2cad96a8c503f730130ab0d80fChris Craik 13458945975b256739fdfe78435d7846d1e2fd29da1Chris Craik /** 13531ba192dd201df2cad96a8c503f730130ab0d80fChris Craik * Registers an {@link AccessibilityManager.AccessibilityStateChangeListener} for changes in 13658945975b256739fdfe78435d7846d1e2fd29da1Chris Craik * the global accessibility state of the system. 13758945975b256739fdfe78435d7846d1e2fd29da1Chris Craik * 13858945975b256739fdfe78435d7846d1e2fd29da1Chris Craik * @param manager The accessibility manager. 13958945975b256739fdfe78435d7846d1e2fd29da1Chris Craik * @param listener The listener. 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return True if successfully registered. 14134bd56b546bce47422a430d9d7806dc3cb4254bfAlan Viverette */ 14234bd56b546bce47422a430d9d7806dc3cb4254bfAlan Viverette public static boolean addAccessibilityStateChangeListener(AccessibilityManager manager, 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AccessibilityStateChangeListenerCompat listener) { 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return IMPL.addAccessibilityStateChangeListener(manager, listener); 145079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn } 1465f49c3023a512efbef8bc9515d310c7a72be4af2Romain Guy 147079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn /** 148079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn * Unregisters an {@link AccessibilityManager.AccessibilityStateChangeListener}. 149079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn * 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param manager The accessibility manager. 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param listener The listener. 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return True if successfully unregistered. 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static boolean removeAccessibilityStateChangeListener(AccessibilityManager manager, 155b1af7f3d4be6cd6bc6e1e805f22c209e19bf928fChet Haase AccessibilityStateChangeListenerCompat listener) { 156b1af7f3d4be6cd6bc6e1e805f22c209e19bf928fChet Haase return IMPL.removeAccessibilityStateChangeListener(manager, listener); 157b1af7f3d4be6cd6bc6e1e805f22c209e19bf928fChet Haase } 158b1af7f3d4be6cd6bc6e1e805f22c209e19bf928fChet Haase 159b1af7f3d4be6cd6bc6e1e805f22c209e19bf928fChet Haase /** 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Returns the {@link AccessibilityServiceInfo}s of the installed accessibility services. 161a41581ed4033004c73115113f45b9844e9b0210fRomain Guy * 162a41581ed4033004c73115113f45b9844e9b0210fRomain Guy * @param manager The accessibility manager. 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return An unmodifiable list with {@link AccessibilityServiceInfo}s. 1645f49c3023a512efbef8bc9515d310c7a72be4af2Romain Guy */ 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList( 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project AccessibilityManager manager) { 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return IMPL.getInstalledAccessibilityServiceList(manager); 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 171b3c56086d802ae28888dd97ba1f49bd6cee0b673Alan Viverette * Returns the {@link AccessibilityServiceInfo}s of the enabled accessibility services 172729427d451bc4d4d268335b8dc1ff6404bc1c91eAlan Viverette * for a given feedback type. 173d9e788c4f0528e46db4a035cfac043736becb0d1Alan Viverette * 174d9e788c4f0528e46db4a035cfac043736becb0d1Alan Viverette * @param manager The accessibility manager. 175729427d451bc4d4d268335b8dc1ff6404bc1c91eAlan Viverette * @param feedbackTypeFlags The feedback type flags. 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return An unmodifiable list with {@link AccessibilityServiceInfo}s. 1775f49c3023a512efbef8bc9515d310c7a72be4af2Romain Guy * 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see AccessibilityServiceInfo#FEEDBACK_AUDIBLE 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see AccessibilityServiceInfo#FEEDBACK_GENERIC 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see AccessibilityServiceInfo#FEEDBACK_HAPTIC 181f390f770ee570f1f4def41b165cb9492e381be40Alan Viverette * @see AccessibilityServiceInfo#FEEDBACK_SPOKEN 182b3c56086d802ae28888dd97ba1f49bd6cee0b673Alan Viverette * @see AccessibilityServiceInfo#FEEDBACK_VISUAL 183a426445dfdab43886dd894f2ba8a1d55bfcbb278Alan Viverette */ 184bddb843e793a279db99888dd78b4f74a362cbb8bAlan Viverette public static List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList( 185b3c56086d802ae28888dd97ba1f49bd6cee0b673Alan Viverette AccessibilityManager manager, int feedbackTypeFlags) { 186bddb843e793a279db99888dd78b4f74a362cbb8bAlan Viverette return IMPL.getEnabledAccessibilityServiceList(manager, feedbackTypeFlags); 187bddb843e793a279db99888dd78b4f74a362cbb8bAlan Viverette } 188a426445dfdab43886dd894f2ba8a1d55bfcbb278Alan Viverette 189a426445dfdab43886dd894f2ba8a1d55bfcbb278Alan Viverette /** 190a426445dfdab43886dd894f2ba8a1d55bfcbb278Alan Viverette * Returns if the touch exploration in the system is enabled. 191a426445dfdab43886dd894f2ba8a1d55bfcbb278Alan Viverette * 192a426445dfdab43886dd894f2ba8a1d55bfcbb278Alan Viverette * @param manager The accessibility manager. 193a426445dfdab43886dd894f2ba8a1d55bfcbb278Alan Viverette * @return True if touch exploration is enabled, false otherwise. 194a426445dfdab43886dd894f2ba8a1d55bfcbb278Alan Viverette */ 195a426445dfdab43886dd894f2ba8a1d55bfcbb278Alan Viverette public static boolean isTouchExplorationEnabled(AccessibilityManager manager) { 196a426445dfdab43886dd894f2ba8a1d55bfcbb278Alan Viverette return IMPL.isTouchExplorationEnabled(manager); 197bddb843e793a279db99888dd78b4f74a362cbb8bAlan Viverette } 198a426445dfdab43886dd894f2ba8a1d55bfcbb278Alan Viverette 199a426445dfdab43886dd894f2ba8a1d55bfcbb278Alan Viverette /** 200b3c56086d802ae28888dd97ba1f49bd6cee0b673Alan Viverette * Listener for the accessibility state. 201b3c56086d802ae28888dd97ba1f49bd6cee0b673Alan Viverette */ 202b3c56086d802ae28888dd97ba1f49bd6cee0b673Alan Viverette public static abstract class AccessibilityStateChangeListenerCompat { 203a426445dfdab43886dd894f2ba8a1d55bfcbb278Alan Viverette final Object mListener; 204b3c56086d802ae28888dd97ba1f49bd6cee0b673Alan Viverette 205b3c56086d802ae28888dd97ba1f49bd6cee0b673Alan Viverette public AccessibilityStateChangeListenerCompat() { 206b3c56086d802ae28888dd97ba1f49bd6cee0b673Alan Viverette mListener = IMPL.newAccessiblityStateChangeListener(this); 207b3c56086d802ae28888dd97ba1f49bd6cee0b673Alan Viverette } 208079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn 209079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn /** 210079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn * Called back on change in the accessibility state. 211079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn * 212079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn * @param enabled Whether accessibility is enabled. 213079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn */ 214079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn public abstract void onAccessibilityStateChanged(boolean enabled); 215079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn } 216f390f770ee570f1f4def41b165cb9492e381be40Alan Viverette} 217079e23575024e103358c982152afb7a720ae1a8aDianne Hackborn