Example usage for android.view.accessibility AccessibilityEvent getText

List of usage examples for android.view.accessibility AccessibilityEvent getText

Introduction

In this page you can find the example usage for android.view.accessibility AccessibilityEvent getText.

Prototype

public List<CharSequence> getText() 

Source Link

Document

Gets the text of the event.

Usage

From source file:com.android.incallui.CallCardFragment.java

public void dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
    if (event.getEventType() == AccessibilityEvent.TYPE_ANNOUNCEMENT) {
        // Indicate this call is in active if no label is provided. The label is empty when
        // the call is in active, not in other status such as onhold or dialing etc.
        if (!mCallStateLabel.isShown() || TextUtils.isEmpty(mCallStateLabel.getText())) {
            event.getText().add(TextUtils.expandTemplate(
                    getResources().getText(R.string.accessibility_call_is_active), mPrimaryName.getText()));
        } else {/*from  ww  w  .  j a v  a  2  s.c o  m*/
            dispatchPopulateAccessibilityEvent(event, mCallStateLabel);
            dispatchPopulateAccessibilityEvent(event, mPrimaryName);
            dispatchPopulateAccessibilityEvent(event, mCallTypeLabel);
            dispatchPopulateAccessibilityEvent(event, mPhoneNumber);
        }
        return;
    }
    dispatchPopulateAccessibilityEvent(event, mCallStateLabel);
    dispatchPopulateAccessibilityEvent(event, mPrimaryName);
    dispatchPopulateAccessibilityEvent(event, mPhoneNumber);
    dispatchPopulateAccessibilityEvent(event, mCallTypeLabel);
    dispatchPopulateAccessibilityEvent(event, mSecondaryCallName);
    dispatchPopulateAccessibilityEvent(event, mSecondaryCallProviderLabel);

    return;
}

From source file:com.klinker.deskclock.widget.multiwaveview.GlowPadView.java

private void handleMove(MotionEvent event) {
    int activeTarget = -1;
    final int historySize = event.getHistorySize();
    ArrayList<TargetDrawable> targets = mTargetDrawables;
    int ntargets = targets.size();
    float x = 0.0f;
    float y = 0.0f;
    int actionIndex = event.findPointerIndex(mPointerId);

    if (actionIndex == -1) {
        return; // no data for this pointer
    }//from w  w  w .  j a  v  a 2s . c  o  m

    for (int k = 0; k < historySize + 1; k++) {
        float eventX = k < historySize ? event.getHistoricalX(actionIndex, k) : event.getX(actionIndex);
        float eventY = k < historySize ? event.getHistoricalY(actionIndex, k) : event.getY(actionIndex);
        // tx and ty are relative to wave center
        float tx = eventX - mWaveCenterX;
        float ty = eventY - mWaveCenterY;
        float touchRadius = (float) Math.sqrt(dist2(tx, ty));
        final float scale = touchRadius > mOuterRadius ? mOuterRadius / touchRadius : 1.0f;
        float limitX = tx * scale;
        float limitY = ty * scale;
        double angleRad = Math.atan2(-ty, tx);

        if (!mDragging) {
            trySwitchToFirstTouchState(eventX, eventY);
        }

        if (mDragging) {
            // For multiple targets, snap to the one that matches
            final float snapRadius = mOuterRadius - mSnapMargin;
            final float snapDistance2 = snapRadius * snapRadius;
            // Find first target in range
            for (int i = 0; i < ntargets; i++) {
                TargetDrawable target = targets.get(i);

                double targetMinRad = (i - 0.5) * 2 * Math.PI / ntargets;
                double targetMaxRad = (i + 0.5) * 2 * Math.PI / ntargets;
                if (target.isEnabled()) {
                    boolean angleMatches = (angleRad > targetMinRad && angleRad <= targetMaxRad)
                            || (angleRad + 2 * Math.PI > targetMinRad
                                    && angleRad + 2 * Math.PI <= targetMaxRad);
                    if (angleMatches && (dist2(tx, ty) > snapDistance2)) {
                        activeTarget = i;
                    }
                }
            }
        }
        x = limitX;
        y = limitY;
    }

    if (!mDragging) {
        return;
    }

    if (activeTarget != -1) {
        switchToState(STATE_SNAP, x, y);
        updateGlowPosition(x, y);
    } else {
        switchToState(STATE_TRACKING, x, y);
        updateGlowPosition(x, y);
    }

    if (mActiveTarget != activeTarget) {
        // Defocus the old target
        if (mActiveTarget != -1) {
            TargetDrawable target = targets.get(mActiveTarget);
            target.setState(TargetDrawable.STATE_INACTIVE);
        }
        // Focus the new target
        if (activeTarget != -1) {
            TargetDrawable target = targets.get(activeTarget);
            target.setState(TargetDrawable.STATE_FOCUSED);
            final AccessibilityManager accessibilityManager = (AccessibilityManager) getContext()
                    .getSystemService(Context.ACCESSIBILITY_SERVICE);
            if (accessibilityManager.isEnabled()) {
                String targetContentDescription = getTargetDescription(activeTarget);
                if (Build.VERSION.SDK_INT >= 16) {
                    announceForAccessibility(targetContentDescription);
                } else {
                    AccessibilityEvent acc_event = AccessibilityEvent
                            .obtain(AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED);
                    AccessibilityRecordCompat arc = new AccessibilityRecordCompat(acc_event);
                    arc.setSource(this);
                    acc_event.setClassName(this.getClass().getName());
                    acc_event.setPackageName(this.getContext().getPackageName());
                    acc_event.setEnabled(this.isEnabled());
                    acc_event.getText().add(targetContentDescription);
                    accessibilityManager.sendAccessibilityEvent(acc_event);
                }
            }
        }
    }
    mActiveTarget = activeTarget;
}

From source file:com.android.calendar.event.EditEventView.java

private void sendAccessibilityEvent() {
    AccessibilityManager am = (AccessibilityManager) mActivity.getSystemService(Service.ACCESSIBILITY_SERVICE);
    if (!am.isEnabled() || mModel == null) {
        return;/*from   w ww . j a v  a2 s  . c  o  m*/
    }
    StringBuilder b = new StringBuilder();
    addFieldsRecursive(b, mView);
    CharSequence msg = b.toString();

    AccessibilityEvent event = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_VIEW_FOCUSED);
    event.setClassName(getClass().getName());
    event.setPackageName(mActivity.getPackageName());
    event.getText().add(msg);
    event.setAddedCount(msg.length());

    am.sendAccessibilityEvent(event);
}

From source file:com.android.launcher2.PagedView.java

protected boolean computeScrollHelper() {
    if (mScroller.computeScrollOffset()) {
        // Don't bother scrolling if the page does not need to be moved
        if (getScrollX() != mScroller.getCurrX() || getScrollY() != mScroller.getCurrY()
                || mOverScrollX != mScroller.getCurrX()) {
            scrollTo(mScroller.getCurrX(), mScroller.getCurrY());
        }// w  w  w .  j  a  v  a  2s. com
        invalidate();
        return true;
    } else if (mNextPage != INVALID_PAGE) {
        mCurrentPage = Math.max(0, Math.min(mNextPage, getPageCount() - 1));
        mNextPage = INVALID_PAGE;
        notifyPageSwitchListener();

        // Load the associated pages if necessary
        if (mDeferLoadAssociatedPagesUntilScrollCompletes) {
            loadAssociatedPages(mCurrentPage);
            mDeferLoadAssociatedPagesUntilScrollCompletes = false;
        }

        // We don't want to trigger a page end moving unless the page has settled
        // and the user has stopped scrolling
        if (mTouchState == TOUCH_STATE_REST) {
            pageEndMoving();
        }

        // Notify the user when the page changes
        AccessibilityManager accessibilityManager = (AccessibilityManager) getContext()
                .getSystemService(Context.ACCESSIBILITY_SERVICE);
        if (accessibilityManager.isEnabled()) {
            AccessibilityEvent ev = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_VIEW_SCROLLED);
            ev.getText().add(getCurrentPageDescription());
            sendAccessibilityEventUnchecked(ev);
        }
        return true;
    }
    return false;
}

From source file:com.appeaser.sublimepickerlibrary.timepicker.SublimeTimePicker.java

@Override
public void onPopulateAccessibilityEvent(AccessibilityEvent event) {
    super.onPopulateAccessibilityEvent(event);
    int flags = DateUtils.FORMAT_SHOW_TIME;

    // The deprecation status does not show up in the documentation and
    // source code does not outline the alternative.
    // Leaving this as is for now.
    if (mIs24HourView) {
        //noinspection deprecation
        flags |= DateUtils.FORMAT_24HOUR;
    } else {/*from w ww  .j  ava2s.com*/
        //noinspection deprecation
        flags |= DateUtils.FORMAT_12HOUR;
    }
    mTempCalendar.set(Calendar.HOUR_OF_DAY, getCurrentHour());
    mTempCalendar.set(Calendar.MINUTE, getCurrentMinute());
    String selectedDate = DateUtils.formatDateTime(mContext, mTempCalendar.getTimeInMillis(), flags);
    event.getText().add(selectedDate);
}

From source file:com.android.calendar.EventInfoFragment.java

private void sendAccessibilityEvent() {
    AccessibilityManager am = (AccessibilityManager) getActivity()
            .getSystemService(Service.ACCESSIBILITY_SERVICE);
    if (!am.isEnabled()) {
        return;/*  ww w. ja v  a  2s  .co m*/
    }

    AccessibilityEvent event = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_VIEW_FOCUSED);
    event.setClassName(EventInfoFragment.class.getName());
    event.setPackageName(getActivity().getPackageName());
    List<CharSequence> text = event.getText();

    addFieldToAccessibilityEvent(text, mTitle, null);
    addFieldToAccessibilityEvent(text, mWhenDateTime, null);
    addFieldToAccessibilityEvent(text, mWhere, null);
    addFieldToAccessibilityEvent(text, null, mDesc);

    if (mResponseRadioGroup.getVisibility() == View.VISIBLE) {
        int id = mResponseRadioGroup.getCheckedRadioButtonId();
        if (id != View.NO_ID) {
            text.add(((TextView) getView().findViewById(R.id.response_label)).getText());
            text.add((((RadioButton) (mResponseRadioGroup.findViewById(id))).getText() + PERIOD_SPACE));
        }
    }

    am.sendAccessibilityEvent(event);
}

From source file:com.android.systemui.statusbar.phone.NotificationPanelView.java

@Override
public boolean dispatchPopulateAccessibilityEventInternal(AccessibilityEvent event) {
    if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) {
        event.getText().add(getKeyguardOrLockScreenString());
        mLastAnnouncementWasQuickSettings = false;
        return true;
    }//from  w  w w.  ja  v  a  2 s  .co m
    return super.dispatchPopulateAccessibilityEventInternal(event);
}

From source file:com.aliyun.homeshell.Folder.java

public void sendCustomAccessibilityEvent(int type, String text) {
    AccessibilityManager accessibilityManager = (AccessibilityManager) getContext()
            .getSystemService(Context.ACCESSIBILITY_SERVICE);
    if (accessibilityManager.isEnabled()) {
        AccessibilityEvent event = AccessibilityEvent.obtain(type);
        onInitializeAccessibilityEvent(event);
        event.getText().add(text);
        accessibilityManager.sendAccessibilityEvent(event);
    }// ww  w  .  jav  a 2  s.  c  o m
}

From source file:com.android.leanlauncher.LauncherTransitionable.java

@Override
public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
    final boolean result = super.dispatchPopulateAccessibilityEvent(event);
    final List<CharSequence> text = event.getText();
    text.clear();/* ww  w  .j  av a2  s. c  o  m*/
    // Populate event with a fake title based on the current state.
    if (mState == State.APPS_CUSTOMIZE) {
        text.add(mAppsCustomizeTabHost.getContentTag());
    } else {
        text.add(getString(R.string.all_apps_home_button_label));
    }
    return result;
}

From source file:de.vanita5.twittnuker.util.Utils.java

public static void announceForAccessibilityCompat(final Context context, final View view,
        final CharSequence text, final Class<?> cls) {
    final AccessibilityManager accessibilityManager = (AccessibilityManager) context
            .getSystemService(Context.ACCESSIBILITY_SERVICE);
    if (!accessibilityManager.isEnabled())
        return;// ww  w .j  av a 2s .  c o  m
    // Prior to SDK 16, announcements could only be made through FOCUSED
    // events. Jelly Bean (SDK 16) added support for speaking text verbatim
    // using the ANNOUNCEMENT event type.
    final int eventType;
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
        eventType = AccessibilityEvent.TYPE_VIEW_FOCUSED;
    } else {
        eventType = AccessibilityEventCompat.TYPE_ANNOUNCEMENT;
    }

    // Construct an accessibility event with the minimum recommended
    // attributes. An event without a class name or package may be dropped.
    final AccessibilityEvent event = AccessibilityEvent.obtain(eventType);
    event.getText().add(text);
    event.setClassName(cls.getName());
    event.setPackageName(context.getPackageName());
    event.setSource(view);

    // Sends the event directly through the accessibility manager. If your
    // application only targets SDK 14+, you should just call
    // getParent().requestSendAccessibilityEvent(this, event);
    accessibilityManager.sendAccessibilityEvent(event);
}