-
-
Notifications
You must be signed in to change notification settings - Fork 408
Extension API
Learn how to build an extension for SeriesGuide.
If added by the user in SeriesGuide, an extension can provide an action button shown below an episode or movie.
The button might link to external content (app deep-link, web page, ...) or trigger an action in another app (play, record, ...). Or it can just display some status information (e.g. "downloaded"). Have a look at the available extensions on Google Play.
- Add the API dependency to your Android project:
implementation 'com.uwetrottmann.seriesguide:seriesguide-api:2.0.0'
The artifact is published on Maven Central. - Create a new class that extends
SeriesGuideExtensionand implements at least one of theonRequestmethods. - Create a new class that extends
SeriesGuideExtensionReceiver. - Add the required tags to your
AndroidManifest.xmlfile. Read the class documentation ofSeriesGuideExtensionfor details.
Install your extension side-by-side with SeriesGuide. You should be able to add it from the extension customization screen. The activity of this screen, com.battlelancer.seriesguide.extensions.ExtensionsConfigurationActivity, is also exported so you can directly start it if you want to direct users to it.
An example extension Android project for Android Studio is available.
Take a look at the API reference documentation for additional details, for example to add a configuration screen.
- Extensions now publish actions via
sendBroadcast(Intent)instead ofstartService(Intent). This is to handle an edge case where SeriesGuide was idle and the extension would crash when publishing an action on Android O. - Until your extension is updated its actions will not be displayed in SeriesGuide. It will stay enabled though.
-
Extensions must now be registered through a
<receiver>component instead of a<service>. This is required to work around background restrictions introduced for apps targeting SDK 26. You can subclass the newSeriesGuideExtensionReceiverand copy the properties of your existing<service>component in your manifest to the new<receiver>tag. -
SeriesGuideExtensionnow implementsJobIntentServiceinstead ofIntentService. This requires your subclass to be exported and given theBIND_JOB_SERVICEpermission in your manifest. In addition, on SDK 25 and lower the library will add theWAKE_LOCKpermission required byJobIntentServiceto your manifest. - Existing extensions will be disabled when updating to SeriesGuide 40. They can be enabled again by the user (assuming they have been updated as stated above).
- See the example project for guidance on how to keep your existing
SeriesGuideExtensionsubclass and manifest tags for compatibility with old versions of SeriesGuide.
- Converted the library to an Android library (AAR).
- Add show release date to
Episode. Formatted as an ISO string, for example:2016-09-22T02:00:00.000Z. - Support for movies. Added
Movieand an additonalonRequestmethod specific for movie actions. Extensions can choose if to implement episode or movie actions, or both.
- Add absolute number to
Episode.
- Updated
Intentshelper class to create intents that do not create new tasks.
- Create
Intentsclass to create intents for viewing shows or episodes with SeriesGuide.
- Initial release. Extensions can provide actions for episodes.