<?xml version="1.0" encoding="UTF-8"?>
<!--
 Copyright 2013 The Android Open Source Project

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<sample>
    <name>CheckableLayout</name>
    <group>Accessibility</group>
    <package>com.example.android.checkablelayout</package>
    <minSdk>16</minSdk>
    <strings>
        <intro>
            <![CDATA[
            Sample showing how to make an accessible custom view that extends
            a layout.
            ]]>
        </intro>
    </strings>

    <template src="base-build" />

    <metadata>
        <status>PUBLISHED</status>
        <categories>Accessibility</categories>
        <technologies>Android</technologies>
        <languages>Java</languages>
        <solutions>Mobile</solutions>
        <level>BEGINNER</level>
        <icon>screenshots/icon-web.png</icon>
        <screenshots>
            <img>screenshots/discover.png</img>
            <img>screenshots/checked.png</img>
        </screenshots>
        <api_refs>
            <android>android.view.accessibility.AccessibilityNodeInfo</android>
            <android>android.view.accessibility.AccessibilityEvent</android>
        </api_refs>
        <description>
            Sample demonstrating how to make a simple custom view accessible.
            Creates a simple `CheckableFrameLayout` that has the accessibility
            profile of builtin that implements the `Checkable` interface (e.g.
            `Checkbox`).
        </description>
        <intro>
          This sample implements a single custom view, a
          `CheckableFrameLayout`, which implements the `Checkable` interface
          and maintains a checked state.

          This sample uses the custom view as a container for two overlayed
          `<![CDATA[<ImageView>]]>`s. The first `<![CDATA[<ImageView>]]>` is
          always displayed, while the second `<![CDATA[<ImageView>]]>`'s
          display status toggles with the checked state of it's parent (the
          `CheckableLayout`). This second `<![CDATA[<ImageView>]]>` uses
          `android:duplicateParentState` (see `activity_main.xml`) and a
          drawable that is tied to `android:state_checked` (see
          `drawable/ic_checkable_item.xml`). This drawable is displayed only
          when the parent is in a checked state.

          This sample provides a basic introduction to Android accessibility
          by showing how to make a custom view behave similar to a builtin
          widget like a `Checkbox`.
          Developers should focus on two methods that are overridden from the
          parent class:
          `onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info)` and
          `onInitializeAccessibilityEvent(AccessibilityEvent event)`.

          The `onInitializeAccessibilityNodeInfo()` method provides
          accessibility services with information about the state of this
          view. We override this method to tell an accessibility service that
          this view is checkable, and we set the intitial checked state of the
          view.

          The `onInitializeAccessibilityEvent()` method is use by the
          system to obtain additional information about the state of the view
          as its state changes.

          With this information, an accessibility service has what it needs to
          allow a user to meaningfully discover the view and know its state.
        </intro>
    </metadata>
</sample>
