MCPcopy Index your code
hub / github.com/LUSHDigital/android-player

github.com/LUSHDigital/android-player @v1.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.2 ↗ · + Follow
782 symbols 1,994 edges 107 files 151 documented · 19%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Lush Player (Mobile, Tablet & TV)

Branch Status
develop Build Status
master Build Status

Codebase for the Lush Player app, allowing fans to browse and play Lush TV and radio media from its various channels, and to playback live Lush TV.

Setup

Brightcove

You will need to supply a Brightcove account ID and policy key via a gradle.properties file.

Finding/creating your gradle.properties

This file must exist in at least one of these places:

  1. Your home directory at ~/.gradle/gradle.properties

  2. In the root of the project at /gradle.properties

If the file doesn't exist, create it. I personally recommend the home directory, but that is due to my own personal setup.

Please remember that properties in gradle.properties in the root of the project takes priority over those set in the home directory

gradle.properties contents

Your gradle.properties file should look like this:

# Other settings...

# Brightcove
BRIGHTCOVE_ACCOUNT_ID=123456789
BRIGHTCOVE_POLICY_KEY=hEl1OW0rld!

Please note that the values for account id and policy key are dummy values to give you an idea of how it should be used

Live videos

If you wish to add live videos, you should follow the process outlined in this documentation.

Testing

App linking

When the user requests to view a url that starts with http://player.lush.com/tv/ or http://player.lush.com/radio/ (or its HTTPS variants), the app is registered to handle these links. It will launch the detail page with the relevant video based on the alias in the url.

An example of this would be:

http://player.lush.com/tv/conversation-john-robb-alexander-hacke-and-danielle-de-picciotto

To test this functionality you can use the following adb command:

adb shell am start -W -a android.intent.action.VIEW -d "http://player.lush.com/tv/conversation-john-robb-alexander-hacke-and-danielle-de-picciotto" com.cube.lush.player

Phone Screenshots

Tablet Screenshots

TV Screenshots

Extension points exported contracts — how you extend this code

ResponseHandler (Interface)
Interface for outcomes given in response to a request for a list of items. @param response data model @author Jamie [16 …
content/src/main/java/com/cube/lush/player/content/handler/ResponseHandler.java
EventTabSelection (Interface)
Event Tab Selection @author Jamie Cruwys. [4 implementers]
app/src/main/java/com/cube/lush/player/mobile/events/EventTabSelection.java
LushAPI (Interface)
Defines Lush API interface using Retrofit. @author Jamie Cruwys
api/src/main/java/com/lush/player/api/LushAPI.java
ItemRetrieval (Interface)
(no doc)
content/src/main/java/com/cube/lush/player/content/repository/Repository.java
EqualityTester (Interface)
Predicate indicating whether two items are considered to be the same. @param [3 implementers]
app/src/main/java/com/cube/lush/player/tv/adapter/DiffingAdapter.java
DetailsFlow (Interface)
Defines a flow of events used on the ProgrammeDetailsFragment in order to populate and correctly reveal the deta [2 implementers]
app/src/main/java/com/cube/lush/player/tv/details/DetailsFlow.java
TagClickListener (Interface)
@author Jamie Cruwys [2 implementers]
app/src/main/java/com/cube/lush/player/mobile/view/TagClickListener.java

Core symbols most depended-on inside this repo

getContext
called by 64
app/src/main/java/com/cube/lush/player/MainApplication.java
getId
called by 25
api/src/main/java/com/lush/player/api/model/Programme.java
get
called by 23
app/src/main/java/com/cube/lush/player/tv/adapter/DiffingAdapter.java
getItems
called by 20
app/src/main/java/com/cube/lush/player/tv/adapter/DiffingAdapter.java
getType
called by 16
api/src/main/java/com/lush/player/api/model/Programme.java
getThumbnail
called by 13
api/src/main/java/com/lush/player/api/model/Programme.java
sort
called by 13
content/src/main/java/com/cube/lush/player/content/util/MediaSorter.java
onFailure
called by 13
content/src/main/java/com/cube/lush/player/content/handler/ResponseHandler.java

Shape

Method 670
Class 98
Enum 7
Interface 7

Languages

Java100%

Modules by API surface

api/src/main/java/com/lush/player/api/model/Programme.java30 symbols
app/src/main/java/com/cube/lush/player/mobile/search/SearchFragment.java24 symbols
content/src/main/java/com/cube/lush/player/content/repository/Repository.java22 symbols
app/src/main/java/com/cube/lush/player/mobile/live/LiveFragment.java22 symbols
app/src/main/java/com/cube/lush/player/tv/adapter/DiffingAdapter.java21 symbols
app/src/main/java/com/cube/lush/player/mobile/details/DetailsFragment.java20 symbols
app/src/main/java/com/cube/lush/player/mobile/base/FilterableListingFragment.java20 symbols
app/src/main/java/com/cube/lush/player/mobile/MainActivity.java18 symbols
app/src/main/java/com/cube/lush/player/mobile/events/EventsFragment.java17 symbols
app/src/main/java/com/cube/lush/player/tv/search/SearchFragment.java15 symbols
app/src/main/java/com/cube/lush/player/tv/details/LiveDetailsFragment.java15 symbols
app/src/main/java/com/cube/lush/player/mobile/playback/LushPlaybackActivity.java14 symbols

For agents

$ claude mcp add android-player \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact