1 /* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file 5 * except in compliance with the License. You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software distributed under the 10 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 11 * KIND, either express or implied. See the License for the specific language governing 12 * permissions and limitations under the License. 13 */ 14 15 package com.android.systemui.statusbar.policy; 16 17 import android.accessibilityservice.AccessibilityServiceInfo; 18 import android.content.Context; 19 import android.view.accessibility.AccessibilityEvent; 20 import android.view.accessibility.AccessibilityManager; 21 import android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener; 22 23 import java.util.List; 24 25 /** 26 * For mocking because AccessibilityManager is final for some reason... 27 */ 28 public class AccessibilityManagerWrapper implements 29 CallbackController<AccessibilityServicesStateChangeListener> { 30 31 private final AccessibilityManager mAccessibilityManager; 32 33 public AccessibilityManagerWrapper(Context context) { 34 mAccessibilityManager = context.getSystemService(AccessibilityManager.class); 35 } 36 37 @Override 38 public void addCallback(AccessibilityServicesStateChangeListener listener) { 39 mAccessibilityManager.addAccessibilityServicesStateChangeListener(listener, null); 40 } 41 42 @Override 43 public void removeCallback(AccessibilityServicesStateChangeListener listener) { 44 mAccessibilityManager.removeAccessibilityServicesStateChangeListener(listener); 45 } 46 47 public void addAccessibilityStateChangeListener( 48 AccessibilityManager.AccessibilityStateChangeListener listener) { 49 mAccessibilityManager.addAccessibilityStateChangeListener(listener); 50 } 51 52 public void removeAccessibilityStateChangeListener( 53 AccessibilityManager.AccessibilityStateChangeListener listener) { 54 mAccessibilityManager.removeAccessibilityStateChangeListener(listener); 55 } 56 57 public boolean isEnabled() { 58 return mAccessibilityManager.isEnabled(); 59 } 60 61 public void sendAccessibilityEvent(AccessibilityEvent event) { 62 mAccessibilityManager.sendAccessibilityEvent(event); 63 } 64 65 public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList( 66 int feedbackTypeFlags) { 67 return mAccessibilityManager.getEnabledAccessibilityServiceList(feedbackTypeFlags); 68 } 69 } 70