Example usage for android.support.v4.view ViewCompat setAccessibilityDelegate

List of usage examples for android.support.v4.view ViewCompat setAccessibilityDelegate

Introduction

In this page you can find the example usage for android.support.v4.view ViewCompat setAccessibilityDelegate.

Prototype

public static void setAccessibilityDelegate(View v, AccessibilityDelegateCompat delegate) 

Source Link

Document

Sets a delegate for implementing accessibility support via compositon as opposed to inheritance.

Usage

From source file:com.android.datetimepicker.AccessibleTextView.java

private void installAccessibilityDelegate() {
    ViewCompat.setAccessibilityDelegate(this, new AccessibilityDelegateCompat() {
        @Override/*from   www  . j  av  a  2s.c  om*/
        public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
            super.onInitializeAccessibilityEvent(host, event);
            event.setClassName(Button.class.getName());
        }

        @Override
        public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
            super.onInitializeAccessibilityNodeInfo(host, info);
            info.setClassName(Button.class.getName());
        }
    });
}

From source file:com.facebook.react.uimanager.AccessibilityDelegateUtil.java

public static void setDelegate(final View view) {
    // if a view already has an accessibility delegate, replacing it could cause problems,
    // so leave it alone.
    if (!ViewCompat.hasAccessibilityDelegate(view)) {
        ViewCompat.setAccessibilityDelegate(view, new AccessibilityDelegateCompat() {
            @Override// w w  w.j  a  v  a  2s.com
            public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
                super.onInitializeAccessibilityNodeInfo(host, info);
                String accessibilityHint = (String) view.getTag(R.id.accessibility_hint);
                AccessibilityRole accessibilityRole = (AccessibilityRole) view.getTag(R.id.accessibility_role);
                if (accessibilityRole == null) {
                    accessibilityRole = AccessibilityRole.NONE;
                }
                setRole(info, accessibilityRole, view.getContext());
                if (!(accessibilityHint == null)) {
                    String contentDescription = (String) info.getContentDescription();
                    if (contentDescription != null) {
                        contentDescription = contentDescription + ", " + accessibilityHint;
                        info.setContentDescription(contentDescription);
                    } else {
                        info.setContentDescription(accessibilityHint);
                    }
                }
            }
        });
    }
}

From source file:com.facebook.react.uimanager.AccessibilityRoleUtil.java

public static void setRole(final View view, final AccessibilityRole role) {
    // if a view already has an accessibility delegate, replacing it could cause problems,
    // so leave it alone.
    if (!ViewCompat.hasAccessibilityDelegate(view)) {
        ViewCompat.setAccessibilityDelegate(view, new AccessibilityDelegateCompat() {
            @Override//from ww  w  .  j ava2 s . com
            public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
                super.onInitializeAccessibilityNodeInfo(host, info);
                setRole(info, role, view.getContext());
            }
        });
    }
}

From source file:com.example.android.supportv4.accessibility.AccessibilityRoleDescriptionSupportActivity.java

/**
 * {@inheritDoc}//www . j  a  va  2 s. c  o  m
 */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.accessibility_roledescription);

    TextView firstTextView = (TextView) findViewById(R.id.text_view_1);
    String roleDescriptionTextView = getString(R.string.accessibility_roledescription_role);
    ViewCompat.setAccessibilityDelegate(firstTextView,
            new RoleDescriptionAccessibilityDelegate(roleDescriptionTextView));

    TextView heading1 = (TextView) findViewById(R.id.text_heading_1);
    String roleDescriptionHeading1 = getString(R.string.accessibility_roledescription_h1_role);
    ViewCompat.setAccessibilityDelegate(heading1,
            new RoleDescriptionAccessibilityDelegate(roleDescriptionHeading1));

    TextView heading2 = (TextView) findViewById(R.id.text_heading_2);
    String roleDescriptionHeading2 = getString(R.string.accessibility_roledescription_h2_role);
    ViewCompat.setAccessibilityDelegate(heading2,
            new RoleDescriptionAccessibilityDelegate(roleDescriptionHeading2));

    TextView heading3 = (TextView) findViewById(R.id.text_heading_3);
    String roleDescriptionHeading3 = getString(R.string.accessibility_roledescription_h3_role);
    ViewCompat.setAccessibilityDelegate(heading3,
            new RoleDescriptionAccessibilityDelegate(roleDescriptionHeading3));

    // This is an example of an <strong>incorrect</strong> use of the role description.
    // You should not set the role description for standard widgets in your own code.
    Button button = (Button) findViewById(R.id.button);
    String roleDescriptionButton = getString(R.string.accessibility_roledescription_button_role);
    ViewCompat.setAccessibilityDelegate(button,
            new RoleDescriptionAccessibilityDelegate(roleDescriptionButton));
}

From source file:android.support.design.widget.CheckableImageButton.java

public CheckableImageButton(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);

    ViewCompat.setAccessibilityDelegate(this, new AccessibilityDelegateCompat() {
        @Override//  w w  w. jav  a 2  s  .c  o  m
        public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
            super.onInitializeAccessibilityEvent(host, event);
            event.setChecked(isChecked());
        }

        @Override
        public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
            super.onInitializeAccessibilityNodeInfo(host, info);
            info.setCheckable(true);
            info.setChecked(isChecked());
        }
    });
}

From source file:com.redinput.datetimepickercompat.AccessibleLinearLayout.java

private void installAccessibilityDelegate() {
    // The accessibility delegate enables customizing accessibility behavior
    // via composition as opposed as inheritance. The main benefit is that
    // one can write a backwards compatible application by setting the delegate
    // only if the API level is high enough i.e. the delegate is part of the APIs.
    // The easiest way to achieve that is by using the support library which
    // takes the burden of checking API version and knowing which API version
    // introduced the delegate off the developer.
    ViewCompat.setAccessibilityDelegate(this, new AccessibilityDelegateCompat() {

        @Override/* ww  w.  j  a v  a2 s.c  o  m*/
        public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
            super.onInitializeAccessibilityEvent(host, event);
            // Note that View.onInitializeAccessibilityNodeInfo was introduced in
            // ICS and we would like to tweak a bit the text that is reported to
            // accessibility services via the AccessibilityNodeInfo.
            event.getText().add(Button.class.getName());
        }

        @Override
        public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
            super.onInitializeAccessibilityNodeInfo(host, info);
            // Note that View.onInitializeAccessibilityNodeInfo was introduced in
            // ICS and we would like to tweak a bit the text that is reported to
            // accessibility services via the AccessibilityNodeInfo.
            info.setText(Button.class.getName());
        }
    });
}

From source file:com.android.talkbacktests.testsession.RoleDescriptionTest.java

@Override
public View getView(final LayoutInflater inflater, ViewGroup container, Context context) {
    View view = inflater.inflate(R.layout.test_role_description, container, false);
    AccessibilityDelegateCompat buttonDelegate = new AccessibilityDelegateCompat() {
        @Override//from ww w.  j  a v a 2s.c o  m
        public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
            super.onInitializeAccessibilityNodeInfo(host, info);
            info.setRoleDescription(getString(R.string.role_entry_point));
        }
    };
    View mailButton = view.findViewById(R.id.test_role_description_mailButton);
    mailButton.setContentDescription(getString(R.string.role_send_email));
    ViewCompat.setAccessibilityDelegate(mailButton, buttonDelegate);

    View playButton = view.findViewById(R.id.test_role_description_playButton);
    playButton.setContentDescription(getString(R.string.role_send_email));
    ViewCompat.setAccessibilityDelegate(playButton, buttonDelegate);

    View lockButton = view.findViewById(R.id.test_role_description_lockButton);
    lockButton.setContentDescription(getString(R.string.role_lock_screen));
    ViewCompat.setAccessibilityDelegate(lockButton, buttonDelegate);

    return view;
}

From source file:com.android.talkbacktests.testsession.DismissibleViewTest.java

@Override
public View getView(final LayoutInflater inflater, ViewGroup container, Context context) {
    View view = inflater.inflate(R.layout.test_dismissible_view, container, false);

    view.findViewById(R.id.test_dismissible_view_dismiss_button).setOnClickListener(this);
    view.findViewById(R.id.test_dismissible_view_reset_button).setOnClickListener(this);

    mContainer = (LinearLayout) view.findViewById(R.id.test_dismissible_view_container);
    mDismissibleView = view.findViewById(R.id.dismissible_view);
    ViewCompat.setAccessibilityDelegate(mDismissibleView, new MyDelegate());

    return view;/*w  w  w. j  a va 2s.  co m*/
}

From source file:com.google.android.apps.forscience.whistlepunk.review.GraphExploringSeekBar.java

private void init() {
    // Use an AccessibilityDelegate to add custom text to Accessibility events.
    ViewCompat.setAccessibilityDelegate(this, new AccessibilityDelegateCompat() {
        @Override/*from  w w  w.  j a v  a  2 s  . c o  m*/
        public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
            super.onPopulateAccessibilityEvent(host, event);
            event.getText().clear();
            event.getText().add(generateEventText());
        }

        @Override
        public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
            super.onInitializeAccessibilityNodeInfo(host, info);
            info.setText(generateEventText());
        }
    });

    Resources res = getContext().getResources();
    mFormat = res.getString(R.string.graph_exploring_seekbar_content_description);

    // Always use LTR layout, since graphs are always LTR.
    setLayoutDirection(LAYOUT_DIRECTION_LTR);
}

From source file:com.finchuk.clock2.alarms.ui.TempCheckableImageButton.java

public TempCheckableImageButton(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);

    ViewCompat.setAccessibilityDelegate(this, new AccessibilityDelegateCompat() {
        @Override//from  www .  j ava2s . c  o  m
        public void onInitializeAccessibilityEvent(View host, AccessibilityEvent event) {
            super.onInitializeAccessibilityEvent(host, event);
            event.setChecked(isChecked());
        }

        @Override
        public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
            super.onInitializeAccessibilityNodeInfo(host, info);
            info.setCheckable(true);
            info.setChecked(isChecked());
        }
    });
}