<?xml version="1.0" encoding="utf-8"?>

<!--
 * Copyright (C) 2014 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.
 -->

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="android.app.uiautomation.cts"
        android:targetSandboxVersion="2">

  <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
  <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

  <application android:theme="@android:style/Theme.Holo.NoActionBar" >

      <uses-library android:name="android.test.runner"/>

      <activity
          android:name="android.app.uiautomation.cts.UiAutomationTestFirstActivity"
          android:exported="true">
      </activity>

      <activity
          android:name="android.app.uiautomation.cts.UiAutomationTestSecondActivity"
          android:exported="true">
      </activity>

      <service
              android:name="android.app.uiautomation.cts.UiAutomationTestA11yService"
              android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" >
          <intent-filter>
              <action android:name="android.accessibilityservice.AccessibilityService" />

              <category android:name="android.accessibilityservice.category.FEEDBACK_GENERIC" />
          </intent-filter>

          <meta-data
                  android:name="android.accessibilityservice"
                  android:resource="@xml/ui_automation_test_a11y_service" />
      </service>

  </application>

  <instrumentation android:name="android.support.test.runner.AndroidJUnitRunner"
                   android:targetPackage="android.app.uiautomation.cts">
        <meta-data android:name="listener"
            android:value="com.android.cts.runner.CtsTestRunListener" />
    </instrumentation>

</manifest>
