blob: 543c7ff4d6ed6dda6a94e7c885defad68dc6e7ba [file] [log] [blame]
Angus Kongb50b5cb2013-08-09 14:55:20 -07001package com.android.camera.util;
Sascha Haeberling8e963a52013-08-06 11:43:02 -07002
3import android.content.Context;
4import android.support.v4.view.accessibility.AccessibilityRecordCompat;
5import android.view.View;
6import android.view.accessibility.AccessibilityEvent;
7import android.view.accessibility.AccessibilityManager;
8
Sascha Haeberling8e963a52013-08-06 11:43:02 -07009/**
10 * AccessibilityUtils provides functions needed in accessibility mode. All the functions
11 * in this class are made compatible with gingerbread and later API's
12*/
13public class AccessibilityUtils {
14 public static void makeAnnouncement(View view, CharSequence announcement) {
15 if (view == null)
16 return;
17 if (ApiHelper.HAS_ANNOUNCE_FOR_ACCESSIBILITY) {
18 view.announceForAccessibility(announcement);
19 } else {
20 // For API 15 and earlier, we need to construct an accessibility event
21 Context ctx = view.getContext();
22 AccessibilityManager am = (AccessibilityManager) ctx.getSystemService(
23 Context.ACCESSIBILITY_SERVICE);
24 if (!am.isEnabled()) return;
25 AccessibilityEvent event = AccessibilityEvent.obtain(
26 AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED);
27 AccessibilityRecordCompat arc = new AccessibilityRecordCompat(event);
28 arc.setSource(view);
29 event.setClassName(view.getClass().getName());
30 event.setPackageName(view.getContext().getPackageName());
31 event.setEnabled(view.isEnabled());
32 event.getText().add(announcement);
33 am.sendAccessibilityEvent(event);
34 }
35 }
36}