<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA"/>
<!-- Asked for when a run is first watched, not at launch: the app
has nothing to say until then. -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<!-- A TV, for the live CI wall: no touchscreen, and a home screen of
its own (the leanback launcher) to be found on. Neither is
required, so phones and tablets install it as before. -->
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
<uses-feature android:name="android.software.leanback" android:required="false"/>
<application
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher"
android:banner="@drawable/tv_banner"
android:allowBackup="false"
android:dataExtractionRules="@xml/data_extraction_rules"
android:supportsRtl="true"
android:theme="@style/Theme.GitGud"
android:usesCleartextTraffic="true">
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTask"
android:theme="@style/Theme.GitGud"
android:configChanges="orientation|screenSize|screenLayout|smallestScreenSize|keyboard|keyboardHidden|navigation">
<!-- Compose redraws for these itself. Without them, the CI
wall hiding the system bars resizes the window, which on
Android 14 and older rebuilds the activity, which shows the
bars again: a loop that flickers the wall between
"Loading…" and its cards. -->
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<!-- A TV's home screen. Opens straight onto the CI wall. -->
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
</intent-filter>
<!-- gitgud://wall — the "Live CI wall" launcher shortcut. -->
<intent-filter android:autoVerify="false">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="gitgud" android:host="wall"/>
</intent-filter>
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts"/>
<!--
gitgud://pair?base=<server>&token=<api-token> — scanned from
Settings → API tokens after minting a token with the "Mobile
app" scope bundle, or tapped from a note. Resolves to
PairScreen via the runtime intent dispatch in MainActivity.
-->
<intent-filter android:autoVerify="false">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="gitgud" android:host="pair"/>
</intent-filter>
<!-- Where a "run finished" notification lands: straight at
the run it is about. -->
<intent-filter android:autoVerify="false">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="gitgud" android:host="run"/>
</intent-filter>
<!-- A circle on the CI widget: the repository it stands for. -->
<intent-filter android:autoVerify="false">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="gitgud" android:host="repo"/>
</intent-filter>
</activity>
<!-- The home-screen CI widget, after the Plasma one. -->
<receiver
android:name=".widget.CiWidgetProvider"
android:label="@string/widget_ci_name"
android:exported="false">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/ci_widget_info"/>
</receiver>
<!-- Its own task, so choosing what a widget watches doesn't drag
the app's back stack along with it. -->
<activity
android:name=".widget.CiWidgetConfigActivity"
android:exported="true"
android:excludeFromRecents="true"
android:taskAffinity=""
android:theme="@style/Theme.GitGud">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
</activity>
</application>
</manifest>
neiam
/gitgud
Git Gud
public · Issues · Pulls · Labels · Forks · Compare · Actions success · Badges · Packages
⭐
1
Log in to mark this repository.
5.6 KiB · text
History
b868907