Example usage for android.view View announceForAccessibility

List of usage examples for android.view View announceForAccessibility

Introduction

In this page you can find the example usage for android.view View announceForAccessibility.

Prototype

public void announceForAccessibility(CharSequence text) 

Source Link

Document

Convenience method for sending a AccessibilityEvent#TYPE_ANNOUNCEMENT AccessibilityEvent to make an announcement which is related to some sort of a context change for which none of the events representing UI transitions is a good fit.

Usage

From source file:Main.java

/**
 * Try to speak the specified text, for accessibility. Only available on JB or later.
 *
 * @param text Text to announce./*from   w  w  w . jav  a 2 s  .c o m*/
 */
@SuppressLint("NewApi")
public static void tryAccessibilityAnnounce(View view, CharSequence text) {
    if (isJellybeanOrLater() && view != null && text != null) {
        view.announceForAccessibility(text);
    }
}

From source file:com.appeaser.sublimepickerlibrary.utilities.AccessibilityUtils.java

public static void makeAnnouncement(View view, CharSequence announcement) {
    if (view == null)
        return;// w w  w.  j av  a 2s .  co m
    if (SUtils.isApi_16_OrHigher()) {
        view.announceForAccessibility(announcement);
    } else {
        // For API 15 and earlier, we need to construct an accessibility event
        Context ctx = view.getContext();
        AccessibilityManager am = (AccessibilityManager) ctx.getSystemService(Context.ACCESSIBILITY_SERVICE);
        if (!am.isEnabled())
            return;

        AccessibilityEvent event = AccessibilityEvent
                .obtain(AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED);
        AccessibilityRecordCompat arc = AccessibilityEventCompat.asRecord(event);
        arc.setSource(view);
        event.setClassName(view.getClass().getName());
        event.setPackageName(view.getContext().getPackageName());
        event.setEnabled(view.isEnabled());
        event.getText().add(announcement);
        am.sendAccessibilityEvent(event);
    }
}

From source file:com.android.gallery3d.util.AccessibilityUtils.java

public static void makeAnnouncement(View view, CharSequence announcement) {
    if (view == null)
        return;//from  w w  w.  jav  a2s  .com
    if (ApiHelper.HAS_ANNOUNCE_FOR_ACCESSIBILITY) {
        view.announceForAccessibility(announcement);
    } else {
        // For API 15 and earlier, we need to construct an accessibility event
        Context ctx = view.getContext();
        AccessibilityManager am = (AccessibilityManager) ctx.getSystemService(Context.ACCESSIBILITY_SERVICE);
        if (!am.isEnabled())
            return;
        AccessibilityEvent event = AccessibilityEvent
                .obtain(AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED);
        AccessibilityRecordCompat arc = new AccessibilityRecordCompat(event);
        arc.setSource(view);
        event.setClassName(view.getClass().getName());
        event.setPackageName(view.getContext().getPackageName());
        event.setEnabled(view.isEnabled());
        event.getText().add(announcement);
        am.sendAccessibilityEvent(event);
    }
}

From source file:com.android.fastergallery.util.AccessibilityUtils.java

public static void makeAnnouncement(View view, CharSequence announcement) {
    if (view == null)
        return;//from   w  w  w  .  j  av  a 2 s.c  o m
    if (ApiHelper.HAS_ANNOUNCE_FOR_ACCESSIBILITY) {
        view.announceForAccessibility(announcement);
    } else {
        // For API 15 and earlier, we need to construct an accessibility
        // event
        Context ctx = view.getContext();
        AccessibilityManager am = (AccessibilityManager) ctx.getSystemService(Context.ACCESSIBILITY_SERVICE);
        if (!am.isEnabled())
            return;
        AccessibilityEvent event = AccessibilityEvent
                .obtain(AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED);
        AccessibilityRecordCompat arc = new AccessibilityRecordCompat(event);
        arc.setSource(view);
        event.setClassName(view.getClass().getName());
        event.setPackageName(view.getContext().getPackageName());
        event.setEnabled(view.isEnabled());
        event.getText().add(announcement);
        am.sendAccessibilityEvent(event);
    }
}

From source file:com.forrestguice.suntimeswidget.SuntimesUtils.java

/**
 * @param view the View to trigger the accessibility event
 * @param msg text that will be read aloud (if accessibility enabled)
 */// w ww .  j  av  a  2 s . c  o  m
public static void announceForAccessibility(View view, String msg) {
    if (view == null)
        return;

    if (Build.VERSION.SDK_INT >= 16) {
        view.announceForAccessibility(msg);

    } //else {
      // TODO
      //}
}

From source file:com.android.talkback.tutorial.TutorialLessonFragment.java

@Override
public void onStart() {
    super.onStart();

    MenuTransformer menuTransformer = mExercise.getContextMenuTransformer();
    MenuActionInterceptor menuActionInterceptor = mExercise.getContextMenuActionInterceptor();
    TalkBackService service = TalkBackService.getInstance();
    if (service != null) {
        MenuManager menuManager = service.getMenuManager();
        menuManager.setMenuTransformer(menuTransformer);
        menuManager.setMenuActionInterceptor(menuActionInterceptor);
    }/*from w  w  w . ja va  2s. c  om*/

    // We need to post the announcements delayed in order to ensure that the view changed
    // event gets sent beforehand. This makes the TalkBack speech response flow more logical.
    Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            View view = getView();
            if (view == null) {
                // Something terrible has happened, e.g. the fragment is gone.
                return;
            }

            view.announceForAccessibility(getTitle());
            view.announceForAccessibility(mPage.getSubtitle());
            mDescription.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);
        }
    }, DELAY_BEFORE_ANNOUNCE_LESSON);
    mExercise.onInitialized(getActivity());
}

From source file:com.android.deskclock.timer.TimerFragment.java

@Override
public void onLeftButtonClick(View view) {
    final Timer timer = getTimer();
    if (timer == null) {
        return;/*from  w  w w .  j a  v a 2  s . c  om*/
    }

    if (mAdapter.getCount() > 1) {
        animateTimerRemove(timer);
    } else {
        animateToView(mCreateTimerView, timer);
    }

    view.announceForAccessibility(getActivity().getString(R.string.timer_deleted));
}

From source file:com.onyx.deskclock.deskclock.timer.TimerFragment.java

@Override
public void onLeftButtonClick(View view) {
    final Timer timer = getTimer();
    if (timer == null) {
        return;//from   w  ww .  j  a v  a  2  s.com
    }

    if (mAdapter.getCount() > 1) {
        animateTimerRemove(timer);
    } else {
        animateToView(mCreateTimerView, timer);
    }

    if (Build.VERSION.SDK_INT >= 16) {
        view.announceForAccessibility(getActivity().getString(R.string.timer_deleted));
    }
}

From source file:com.stasbar.knowyourself.timer.TimerFragment.java

public void onStopActivity(View left) {
    if (mCurrentView == mTimersView) {
        final Timer timer = getTimer();
        if (timer == null) {
            return;
        }//from w w  w .  j a va  2  s  .  c  o m

        if (mAdapter.getCount() > 1) {
            animateTimerRemove(timer);
        } else {
            animateToView(mCreateTimerView, timer);
        }

        left.announceForAccessibility(getActivity().getString(R.string.timer_deleted));

    } else if (mCurrentView == mCreateTimerView) {
        // Clicking the X icon on the timer creation page returns to the timers list.
        mCreateTimerView.reset();

        animateToView(mTimersView, null);

        left.announceForAccessibility(getActivity().getString(R.string.timer_canceled));
    }
}

From source file:com.android.deskclock.alarms.dataadapter.ExpandedAlarmViewHolder.java

public ExpandedAlarmViewHolder(View itemView, boolean hasVibrator) {
    super(itemView);

    final Context context = itemView.getContext();
    mHasVibrator = hasVibrator;//from  www .  j  a v  a 2  s . co  m
    mDayOrder = DayOrderUtils.getDayOrder(context);
    final Resources.Theme theme = context.getTheme();
    int[] attrs = new int[] { android.R.attr.selectableItemBackground };

    final TypedArray typedArray = theme.obtainStyledAttributes(attrs);
    final LayerDrawable background = new LayerDrawable(
            new Drawable[] { ContextCompat.getDrawable(context, R.drawable.alarm_background_expanded),
                    typedArray.getDrawable(0) });
    itemView.setBackground(background);
    typedArray.recycle();

    final int firstDay = Utils.getZeroIndexedFirstDayOfWeek(context);

    delete = (ImageButton) itemView.findViewById(R.id.delete);

    repeat = (CheckBox) itemView.findViewById(R.id.repeat_onoff);
    vibrate = (CheckBox) itemView.findViewById(R.id.vibrate_onoff);
    ringtone = (TextView) itemView.findViewById(R.id.choose_ringtone);
    editLabel = (TextView) itemView.findViewById(R.id.edit_label);
    repeatDays = (LinearLayout) itemView.findViewById(R.id.repeat_days);

    // Build button for each day.
    LayoutInflater mInflater = LayoutInflater.from(context);
    for (int i = 0; i < DaysOfWeek.DAYS_IN_A_WEEK; i++) {
        final CompoundButton dayButton = (CompoundButton) mInflater.inflate(R.layout.day_button, repeatDays,
                false /* attachToRoot */);
        dayButton.setText(Utils.getShortWeekday(i, firstDay));
        dayButton.setContentDescription(Utils.getLongWeekday(i, firstDay));
        repeatDays.addView(dayButton);
        dayButtons[i] = dayButton;
    }

    // Collapse handler
    itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getItemHolder().collapse();
        }
    });
    arrow.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getItemHolder().collapse();
        }
    });
    // Edit time handler
    clock.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getAlarmTimeClickHandler().onClockClicked(getItemHolder().item);
        }
    });
    // Edit label handler
    editLabel.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getAlarmTimeClickHandler().onEditLabelClicked(getItemHolder().item);
        }
    });
    // Vibrator checkbox handler
    vibrate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getAlarmTimeClickHandler().setAlarmVibrationEnabled(getItemHolder().item,
                    ((CheckBox) v).isChecked());
        }
    });
    // Ringtone editor handler
    ringtone.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            getAlarmTimeClickHandler().onRingtoneClicked(getItemHolder().item);
        }
    });
    // Delete alarm handler
    delete.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            getAlarmTimeClickHandler().onDeleteClicked(getItemHolder().item);
            v.announceForAccessibility(context.getString(R.string.alarm_deleted));
        }
    });
    // Repeat checkbox handler
    repeat.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            final boolean checked = ((CheckBox) view).isChecked();
            getAlarmTimeClickHandler().setAlarmRepeatEnabled(getItemHolder().item, checked);
        }
    });
    // Day buttons handler
    for (int i = 0; i < DaysOfWeek.DAYS_IN_A_WEEK; i++) {
        final int buttonIndex = i;
        dayButtons[i].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final boolean isChecked = ((CompoundButton) view).isChecked();
                getAlarmTimeClickHandler().setDayOfWeekEnabled(getItemHolder().item, isChecked, buttonIndex);
            }
        });
    }
}