Home | History | Annotate | Download | only in policy
      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