<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2015 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="com.android.tv.testinput">

    <uses-sdk android:targetSdkVersion="26" android:minSdkVersion="23"/>

     <!-- Required to update or read existing channel and program information in TvProvider. -->
    <uses-permission android:name="com.android.providers.tv.permission.READ_EPG_DATA" />
    <!-- Required to update channel and program information in TvProvider. -->
    <uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA" />

    <application android:label="@string/sample_tv_input"
            android:icon="@drawable/android_48dp"
            android:theme="@android:style/Theme.Holo.Light.NoActionBar" >
        <!-- Launched by the TV app before it uses TestTvInputService to set up channels for this
        input. -->
        <activity android:name=".TestTvInputSetupActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
        </activity>
        <service android:name=".TestTvInputService"
            android:permission="android.permission.BIND_TV_INPUT"
            android:label="@string/simple_input_label">
            <!-- Required filter used by the system to launch our account service. -->
            <intent-filter>
                <action android:name="android.media.tv.TvInputService" />
            </intent-filter>
            <!-- An XML file which describes this input. This provides a pointer to the
            TestTvInputSetupActivity to the system/TV app. -->
            <meta-data android:name="android.media.tv.input"
                android:resource="@xml/testtvinputservice" />
        </service>
        <service android:name=".TestInputControlService" android:exported="true"/>

    </application>

    <instrumentation
            android:name=".instrument.TestSetupInstrumentation"
            android:label="Test Setup Instrument"
            android:targetPackage="com.android.tv.testinput" />

    <uses-feature
        android:name="android.hardware.touchscreen"
        android:required="false" />
    <uses-feature
        android:name="android.software.leanback"
        android:required="true" />
    <!-- Required to expose this app in the store only when the device has TV input framework
    with the TV app. -->
    <uses-feature
        android:name="android.software.live_tv"
        android:required="true" />
</manifest>
