blob: e552aa3f03e3723787ff3ccb1bd4f24fdafa4beb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package com.android.dialer.list;
import android.view.View;
import android.view.View.AccessibilityDelegate;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent;
/**
* AccessibilityDelegate that will filter out TYPE_WINDOW_CONTENT_CHANGED
* Used to suppress "Showing items x of y" from firing of ListView whenever it's content changes.
* AccessibilityEvent can only be rejected at a view's parent once it is generated,
* use addToParent() to add this delegate to the parent.
*/
public class ContentChangedFilter extends AccessibilityDelegate {
//the view we don't want TYPE_WINDOW_CONTENT_CHANGED to fire.
private View mView;
/**
* Add this delegate to the parent of @param view to filter out TYPE_WINDOW_CONTENT_CHANGED
*/
public static void addToParent(View view){
View parent = (View) view.getParent();
parent.setAccessibilityDelegate(new ContentChangedFilter(view));
}
private ContentChangedFilter(View view){
super();
mView = view;
}
@Override
public boolean onRequestSendAccessibilityEvent (ViewGroup host, View child, AccessibilityEvent event){
if(child == mView){
if(event.getEventType() == AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED){
return false;
}
}
return super.onRequestSendAccessibilityEvent(host,child,event);
}
}
|