diff options
Diffstat (limited to 'AndroidManifest.xml')
-rw-r--r-- | AndroidManifest.xml | 320 |
1 files changed, 184 insertions, 136 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 8770301e..3456f16b 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -13,15 +13,19 @@ ~ 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" xmlns:tools="http://schemas.android.com/tools"> + package="com.android.tv" > + + <uses-sdk + android:minSdkVersion="23" + android:targetSdkVersion="26" /> - <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> + <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_HDMI_CEC_ACTIVE_SOURCE" /> - <uses-permission android:name="android.permission.GLOBAL_SEARCH" tools:ignore="ProtectedPermissions"/> + <uses-permission android:name="android.permission.GLOBAL_SEARCH" /> + <uses-permission android:name="android.permission.HDMI_CEC" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.MODIFY_PARENTAL_CONTROLS" /> <uses-permission android:name="android.permission.READ_CONTENT_RATING_SYSTEMS" /> @@ -32,57 +36,94 @@ <uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA" /> <uses-permission android:name="com.android.providers.tv.permission.ACCESS_ALL_EPG_DATA" /> <uses-permission android:name="com.android.providers.tv.permission.ACCESS_WATCHED_PROGRAMS" /> - <!-- Permissions/feature for USB tuner --> <uses-permission android:name="android.permission.DVB_DEVICE" /> - <uses-feature android:name="android.hardware.usb.host" android:required="false" /> - <!-- Limit only for Android TV --> - <uses-feature android:name="android.software.leanback" android:required="true" /> - <uses-feature android:name="android.software.live_tv" android:required="true" /> - <uses-feature android:name="android.hardware.touchscreen" android:required="false"/> + <uses-feature + android:name="android.hardware.usb.host" + android:required="false" /> + <!-- Limit only for Android TV --> + <uses-feature + android:name="android.software.leanback" + android:required="true" /> + <uses-feature + android:name="android.software.live_tv" + android:required="true" /> + <uses-feature + android:name="android.hardware.touchscreen" + android:required="false" /> <!-- Receives input events from the TV app. --> - <permission android:name="com.android.tv.permission.RECEIVE_INPUT_EVENT" - android:protectionLevel="signatureOrSystem" - android:label="@string/permlab_receiveInputEvent" + <permission + android:name="com.android.tv.permission.RECEIVE_INPUT_EVENT" android:description="@string/permdesc_receiveInputEvent" - tools:ignore="SignatureOrSystemPermissions"/> + android:label="@string/permlab_receiveInputEvent" + android:protectionLevel="signatureOrSystem" /> <!-- Customizes Live TV with customization packages. --> - <permission android:name="com.android.tv.permission.CUSTOMIZE_TV_APP" - android:protectionLevel="signatureOrSystem" - android:label="@string/permlab_customizeTvApp" + <permission + android:name="com.android.tv.permission.CUSTOMIZE_TV_APP" android:description="@string/permdesc_customizeTvApp" - tools:ignore="SignatureOrSystemPermissions"/> - - <uses-sdk android:targetSdkVersion="26" android:minSdkVersion="23"/> + android:label="@string/permlab_customizeTvApp" + android:protectionLevel="signatureOrSystem" /> - <application android:label="@string/app_name" - android:name=".TvApplication" + <application + android:name="com.android.tv.app.LiveTvApplication" android:allowBackup="true" - android:icon="@drawable/ic_launcher" android:banner="@drawable/banner" + android:icon="@drawable/ic_live_channels" + android:label="@string/app_name" android:supportsRtl="true" - android:theme="@style/Theme.TV"> - <activity android:name="com.android.tv.TvActivity"> + android:theme="@style/Theme.TV" > + <activity + android:name="com.android.tv.tuner.setup.LiveTvTunerSetupActivity" + android:configChanges="keyboard|keyboardHidden" + android:label="@string/bt_app_name" + android:launchMode="singleInstance" + android:process="com.android.tv.tuner" + android:theme="@style/Theme.Setup.GuidedStep" > + <intent-filter> + <action android:name="android.intent.action.MAIN" /> + </intent-filter> + </activity> + + <!-- providers are listed here to keep them separate from the internal versions --> + <provider + android:name="com.android.tv.search.LocalSearchProvider" + android:authorities="com.android.tv.search" + android:enabled="true" + android:exported="true" > + <meta-data + android:name="SupportedSwitchActionType" + android:value="CHANNEL|TVINPUT" /> + </provider> + <provider + android:name="com.android.tv.common.CommonPreferenceProvider" + android:authorities="com.android.tv.common.preferences" + android:exported="false" + android:process="com.android.tv.common" /> + + <activity android:name="com.android.tv.TvActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> </activity> - - <activity android:name="com.android.tv.MainActivity" + <activity + android:name="com.android.tv.MainActivity" android:configChanges="keyboard|keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation" - android:screenOrientation="landscape" android:launchMode="singleTask" android:resizeableActivity="true" + android:screenOrientation="landscape" android:supportsPictureInPicture="true" - android:theme="@style/Theme.TV.MainActivity"> + android:theme="@style/Theme.TV.MainActivity" > <intent-filter> <action android:name="android.intent.action.VIEW" /> + <category android:name="android.intent.category.DEFAULT" /> + <data android:mimeType="vnd.android.cursor.item/channel" /> <data android:mimeType="vnd.android.cursor.dir/channel" /> <data android:mimeType="vnd.android.cursor.item/program" /> @@ -90,175 +131,146 @@ </intent-filter> <intent-filter> <action android:name="android.media.tv.action.SETUP_INPUTS" /> + <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.SEARCH" /> </intent-filter> - <meta-data android:name="supports_leanback" android:value="true" /> - <meta-data android:name="android.app.searchable" + + <meta-data + android:name="supports_leanback" + android:value="true" /> + <meta-data + android:name="android.app.searchable" android:resource="@xml/searchable" /> </activity> - - <activity android:name=".LauncherActivity" + <activity + android:name="com.android.tv.LauncherActivity" android:configChanges="keyboard|keyboardHidden" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> - - <activity android:name=".SetupPassthroughActivity" + <activity + android:name="com.android.tv.SetupPassthroughActivity" android:configChanges="keyboard|keyboardHidden" - android:theme="@android:style/Theme.Translucent.NoTitleBar"> + android:exported="true" + android:theme="@android:style/Theme.Translucent.NoTitleBar" > <intent-filter> <action android:name="com.android.tv.action.LAUNCH_INPUT_SETUP" /> + <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> - - <activity android:name=".SelectInputActivity" + <activity + android:name="com.android.tv.SelectInputActivity" android:configChanges="keyboard|keyboardHidden" android:launchMode="singleTask" android:theme="@style/Theme.SelectInputActivity" /> - - <activity android:name=".onboarding.OnboardingActivity" + <activity + android:name="com.android.tv.onboarding.OnboardingActivity" android:configChanges="keyboard|keyboardHidden" android:launchMode="singleTop" android:theme="@style/Theme.Setup.GuidedStep" /> - - <activity android:name=".dvr.ui.browse.DvrBrowseActivity" + <activity + android:name="com.android.tv.dvr.ui.browse.DvrBrowseActivity" android:configChanges="keyboard|keyboardHidden" android:launchMode="singleTask" - android:theme="@style/Theme.Leanback.Browse"> + android:theme="@style/Theme.Leanback.Browse" > <intent-filter> <action android:name="android.media.tv.action.VIEW_RECORDING_SCHEDULES" /> + <category android:name="android.intent.category.DEFAULT" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.VIEW" /> + <category android:name="android.intent.category.DEFAULT" /> + <data android:mimeType="vnd.android.cursor.dir/recorded_program" /> </intent-filter> </activity> - - <activity android:name=".dvr.ui.playback.DvrPlaybackActivity" + <activity + android:name="com.android.tv.dvr.ui.playback.DvrPlaybackActivity" android:configChanges="keyboard|keyboardHidden|screenSize|smallestScreenSize|screenLayout|orientation" android:launchMode="singleTask" - android:theme="@style/Theme.Leanback"> + android:theme="@style/Theme.Leanback" > <intent-filter> <action android:name="android.intent.action.VIEW" /> + <category android:name="android.intent.category.DEFAULT" /> + <data android:mimeType="vnd.android.cursor.item/recorded_program" /> </intent-filter> </activity> - - <activity android:name=".dvr.ui.browse.DvrDetailsActivity" + <activity + android:name="com.android.tv.dvr.ui.browse.DvrDetailsActivity" android:configChanges="keyboard|keyboardHidden" android:theme="@style/Theme.TV.Dvr.Browse.Details" /> - - <activity android:name=".dvr.ui.DvrSeriesSettingsActivity" + <activity + android:name="com.android.tv.dvr.ui.DvrSeriesSettingsActivity" android:configChanges="keyboard|keyboardHidden" android:theme="@style/Theme.TV.Dvr.Series.Settings.GuidedStep" /> - - <activity android:name=".dvr.ui.DvrSeriesDeletionActivity" + <activity + android:name="com.android.tv.dvr.ui.DvrSeriesDeletionActivity" android:configChanges="keyboard|keyboardHidden" android:theme="@style/Theme.TV.Dvr.Series.Deletion.GuidedStep" /> - - <activity android:name=".dvr.ui.DvrSeriesScheduledDialogActivity" - android:theme="@style/Theme.TV.dialog.HalfSizedDialog"/> - - <activity android:name=".dvr.ui.list.DvrSchedulesActivity" + <activity + android:name="com.android.tv.dvr.ui.DvrSeriesScheduledDialogActivity" + android:theme="@style/Theme.TV.dialog.HalfSizedDialog" /> + <activity + android:name="com.android.tv.dvr.ui.list.DvrSchedulesActivity" android:configChanges="keyboard|keyboardHidden" android:theme="@style/Theme.Leanback.Details" /> + <activity + android:name="com.android.tv.dvr.ui.list.DvrHistoryActivity" + android:configChanges="keyboard|keyboardHidden" + android:exported="false" + android:theme="@style/Theme.Leanback.Details" /> - <provider android:name="com.android.tv.search.LocalSearchProvider" - android:authorities="com.android.tv.search" - android:exported="true" - android:enabled="true" tools:ignore="ExportedContentProvider"> - <meta-data android:name="SupportedSwitchActionType" android:value="CHANNEL|TVINPUT" /> - </provider> - - <service android:name="com.android.tv.recommendation.NotificationService" - android:exported="false" /> - <service android:name=".recommendation.ChannelPreviewUpdater$ChannelPreviewUpdateService" - android:permission="android.permission.BIND_JOB_SERVICE" /> + <service + android:name="com.android.tv.recommendation.NotificationService" + android:exported="false" /> + <service + android:name="com.android.tv.recommendation.ChannelPreviewUpdater$ChannelPreviewUpdateService" + android:permission="android.permission.BIND_JOB_SERVICE" /> - <receiver android:name="com.android.tv.receiver.BootCompletedReceiver"> + <receiver android:name="com.android.tv.receiver.BootCompletedReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> - <receiver android:name="com.android.tv.receiver.PackageIntentsReceiver"> + <receiver android:name="com.android.tv.receiver.PackageIntentsReceiver" > <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED" /> <!-- PACKAGE_CHANGED for package enabled/disabled notification --> <action android:name="android.intent.action.PACKAGE_CHANGED" /> <action android:name="android.intent.action.PACKAGE_REMOVED" /> - <data android:scheme="package"/> + + <data android:scheme="package" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> - </receiver> - <receiver android:name="com.android.tv.receiver.GlobalKeyReceiver"> - <intent-filter> - <action android:name="android.intent.action.GLOBAL_BUTTON" /> - </intent-filter> - - <!-- Not directly related to GlobalKeyReceiver but needed to be able to provide our - content rating definitions to the system service. --> - <intent-filter> - <action android:name="android.media.tv.action.QUERY_CONTENT_RATING_SYSTEMS" /> - </intent-filter> - <meta-data android:name="android.media.tv.metadata.CONTENT_RATING_SYSTEMS" - android:resource="@xml/tv_content_rating_systems" /> - </receiver> - - <!-- USB tuner components definition --> - <activity android:name="com.android.tv.tuner.setup.TunerSetupActivity" + </receiver> <!-- System initial setup component definition --> + <activity + android:name="com.android.tv.setup.SystemSetupActivity" android:configChanges="keyboard|keyboardHidden" + android:exported="true" android:label="@string/bt_app_name" android:launchMode="singleInstance" - android:process="com.android.tv.tuner" android:theme="@style/Theme.Setup.GuidedStep" > <intent-filter> - <action android:name="android.intent.action.MAIN" /> - </intent-filter> - </activity> - - <service android:name=".tuner.tvinput.TunerTvInputService" - android:enabled="false" - android:process="com.android.tv.tuner" - android:label="@string/bt_app_name" - android:permission="android.permission.BIND_TV_INPUT" > - <intent-filter> - <action android:name="android.media.tv.TvInputService" /> - </intent-filter> - <meta-data android:name="android.media.tv.input" - android:resource="@xml/ut_tvinputservice" /> - </service> - <service android:name=".tuner.exoplayer.ffmpeg.FfmpegDecoderService" - android:isolatedProcess="true" - android:process="com.android.tv.ffmpeg" > - <intent-filter> - <action android:name=".tuner.exoplayer.ffmpeg.IFfmpegDecoder" /> - </intent-filter> - </service> - <provider android:name=".tuner.TunerPreferenceProvider" - android:authorities="com.android.tv.tuner.preferences" - android:process="com.android.tv.tuner" - android:exported="false" /> - <!-- System initial setup component definition --> - <activity android:name=".setup.SystemSetupActivity" - android:configChanges="keyboard|keyboardHidden" - android:label="@string/bt_app_name" - android:launchMode="singleInstance" - android:theme="@style/Theme.Setup.GuidedStep" > - <intent-filter> <action android:name="com.android.tv.action.LAUNCH_SYSTEM_SETUP" /> + <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> - <!-- TunerInputController should be the same process with MainActivity to check status of MainActivity --> - <receiver android:name=".tuner.TunerInputController$IntentReceiver" - android:exported="false"> + <!-- + TunerInputController should be the same process with MainActivity to check status + of MainActivity + --> + <receiver + android:name="com.android.tv.tuner.TunerInputController$IntentReceiver" + android:exported="false" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> @@ -267,20 +279,56 @@ <action android:name="com.android.tv.action.NETWORK_TUNER_ATTACHED" /> <action android:name="com.android.tv.action.NETWORK_TUNER_DETACHED" /> </intent-filter> - </receiver> + </receiver> <!-- DVR --> + <service + android:name="com.android.tv.dvr.recorder.DvrRecordingService" + android:label="@string/dvr_service_name" /> - <!-- DVR --> - <service android:name=".dvr.recorder.DvrRecordingService" android:label="@string/dvr_service_name" /> - <receiver android:name=".dvr.recorder.DvrStartRecordingReceiver" /> + <receiver android:name="com.android.tv.dvr.recorder.DvrStartRecordingReceiver" /> - <service android:name=".tuner.tvinput.TunerStorageCleanUpService" + <service + android:name="com.android.tv.tuner.tvinput.TunerStorageCleanUpService" + android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE" - android:process="com.android.tv.tuner" - android:exported="true" /> - - <service android:name=".data.epg.EpgFetcher$EpgFetchService" + android:process="com.android.tv.tuner" /> + <service + android:name="com.android.tv.data.epg.EpgFetchService" android:permission="android.permission.BIND_JOB_SERVICE" /> + <receiver + android:name="com.android.tv.livetv.receiver.GlobalKeyReceiver" + android:exported="true" > + <intent-filter> + <action android:name="android.intent.action.GLOBAL_BUTTON" /> + </intent-filter> + <!-- + Not directly related to GlobalKeyReceiver but needed to be able to provide our + content rating definitions to the system service. + --> + <intent-filter> + <action android:name="android.media.tv.action.QUERY_CONTENT_RATING_SYSTEMS" /> + </intent-filter> + + <meta-data + android:name="android.media.tv.metadata.CONTENT_RATING_SYSTEMS" + android:resource="@xml/tv_content_rating_systems" /> + </receiver> + + <service + android:name="com.android.tv.tuner.livetuner.LiveTvTunerTvInputService" + android:enabled="false" + android:label="@string/bt_app_name" + android:permission="android.permission.BIND_TV_INPUT" + android:process="com.android.tv.tuner" > + <intent-filter> + <action android:name="android.media.tv.TvInputService" /> + </intent-filter> + + <meta-data + android:name="android.media.tv.input" + android:resource="@xml/ut_tvinputservice" /> + </service> </application> -</manifest> + +</manifest>
\ No newline at end of file |