• Stars
    star
    725
  • Rank 60,477 (Top 2 %)
  • Language
    Java
  • License
    Other
  • Created over 8 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Vine client for Android TV

Vineyard

==========

Loading Card

Vineyard is an unofficial Vine client for Android TV. The project currently consists of:

  • Android TV Application
  • Unit Tests
  • User Interface Tests

Release 1.0 of the application allows you to:

  • Browse feeds from a range of Video Categories
  • Watch Vine video posts
  • Search for Vine Users and Hashtags
  • View video grids for Users and Hashtags
  • Toggle the Auto-Loop option via Settings

#Screens

##Browse Fragment

The browse fragment is what is used to display the browseable categories, post and options card. The Icon Header Item Presenter is used to setup and display the categories in the headers dock, the Post Adapter and Card Presenter is used to display the Post cards and the Icon Item Presenter sets and displays the option and error message cards.

Main

Preview Post

##Playback Activity

The Playback Activity is used to play the video from a Vine post. Which used the PlaybackOverlayFragment to display the playback controls over the top of the PlaybackActivity.

Video

Video Related

##Search Fragment

The Search Fragment allows users to search for Vine Posts by either tags or usernames. The Tag Presenter is used to display the tag/username query results, the posts are then displayed beneath whenever a tag/username result becomes focused.

Search

Search No Results

##Post Grid Fragment

The Post Grid Fragment is used to show a grid of videos from either a Hashtag or User feed. This screen is launched when a hashtag/username result is clicked in the Search Fragment.

Post Grid

##AutoLoop Step Fragment

The AutoLoop Step Fragment is used to toggle the AutoLoop setting for post videos. When enabled, videos will automatically loop until the video is either stopped or skipped. If this is not enabled then videos will automatically play until the final one in the playlist is reached.

Settings

#Custom Components

Many of the screens used some of these custom components created especially for the needs of this app:

##Video Card View

Video Card View

This view extends the BaseCardView class so that we can make our own custom CardView. The functionality of this view is display a video preview of the vine post card that is currently in focus. It's made up of the following components:

##Pagination Adapter

Here I created a custom adapter by extending the standard ArrayObjectAdapter to allow the application to handle pagination requests. When the final item in a row of Posts becomes focused, the paginated request is triggered and the Loading Card View is displayed until the results are returned.

##Loading Card View

The Loading Card View again extends the BaseCardView class and is a simple cardview that displays a loading indicator to the user. This is used when Pagination is in use (using the PaginationAdapter) to notify the user that Posts are being loaded.

Loading Card

##Tag Card View

The Tag Card View again extends the BaseCardView class and is a simple cardview that displays either a hashtag or username. This is used to display the search results in the SearchFragment.

Tag Card

##Icon Card View

The Icon Card View again extends the BaseCardView class and is an interactable cardview that can be used to display an icon with both a title and description. Currently I use this for several different situations:

  • Displaying options

Options Card

  • Displaying a 'Try Again' card when there is an error fetching results

Try Again Card

  • Displaying a 'Check Again' card when an empty result list is returned

Check Again Card

#Building

To build, install and run a debug version, run this from the root of the project:

````./gradlew assembleDebug```

#Unit Tests

To run the unit tests for the application:

````./gradlew testDebugUnitTest```

#User Interface Tests

To run the user interface tests for the application:

````./gradlew connectedDebugAndroidTest```

More Repositories

1

animate

An application demoing meaningful motion on Android
Java
3,117
star
2

Android-Boilerplate

Android Boilerplate project using RxJava, Dagger 2, Espresso, Mockito + more!
Java
1,871
star
3

Bourbon

An MVP Dribbble client for Android Mobile, Tablet, Wear and TV.
Java
1,119
star
4

MVVM_Hacker_News

Android MVVM experiment project using the official Data Binding library
Java
881
star
5

ComposeAcademy-Playground

Playground project for the Jetpack Compose APIs
Kotlin
868
star
6

minimise

Minimise app built using kotlin multiplatform
Kotlin
427
star
7

Tabby

A demo application for the new Android Custom Tabs support library
Java
414
star
8

Constraints

Sample application for the new Android ConstraintLayout
Java
326
star
9

LeanbackCards

Extended set of content cards for Android TV applications.
Java
294
star
10

Notifi

A demo app for the new Android N notification features
Java
199
star
11

AndroidTvBoilerplate

Android TV Boilerplate Project
Java
185
star
12

ComposeAcademy

Website providing snippets and examples for Jetpack Compose on the Android platform
SCSS
181
star
13

GithubTrending

An Android project for the Caster.io course on clean architecture
Kotlin
175
star
14

FlutterOAuth

A Flutter OAuth package for performing user authentication for your apps.
Dart
173
star
15

WatchTower

A sample application created to test, explore and demonstrate the Proximity Beacon API
Java
144
star
16

Mondroid

A simple Mondo client for Android
Java
134
star
17

BottomNavigationViewSample

A sample app for the new Bottom Navigation View from the Design Support library
Java
134
star
18

HackerNewsReader

Modern Hacker News reader with a Material Design look!
Java
113
star
19

Aware

A playground for the new Google Awareness API
Java
99
star
20

PublicSpeaking

A collection of my abstracts and other stuff related to public speaking
86
star
21

Pickr

A sample application demoing the Google Play Services Place Picker and Autocomplete
Java
85
star
22

Voice

A simple Flutter project demonstrating tailored native experiences
Dart
69
star
23

Android-Q-Playground

A playground for new Android Q features
Kotlin
54
star
24

MvpBoilerplate

An MVP Boilerplate to save me having to create the same project over from scratch every time! :)
Java
46
star
25

Tide

Unsplash client built using Flutter
Dart
36
star
26

KoinDemo

A demo app for the Koin Caster.io course
Kotlin
35
star
27

BrailleBox

A BrailleNews reader built with AndroidThings
Java
26
star
28

PictureInPicturePlayground

A playground for the new Android N Picture-in-Picture mode
Java
25
star
29

adoptr

Jetpack Compose Android Dev Challenge
Kotlin
21
star
30

ChordAssist

Kotlin
20
star
31

FootballFace

Android Wear watch faces for your favourite American Football team
Java
17
star
32

Compose-Navigation-Sample

Quick sample based on Compose + Navigation component
Kotlin
16
star
33

Hilt_Course

Code for the Hilt Course on Caster.io
Kotlin
13
star
34

Fret

A guitar chord tutor for google actions
JavaScript
13
star
35

HashTrack-Public

A flutter application to track hashtags for Twitter and Instagram
Dart
11
star
36

Attendee-Android

A conference app for Android built using Firebase
Kotlin
8
star
37

ComposeTv

Kotlin
7
star
38

Resources-for-Allyship

A personal list of article, books etc that I have read / watched which have helped me learn more around diversity and inclusion
6
star
39

flutter-bitrise

Dart
6
star
40

firebase_auth_multiplatform

Kotlin
5
star
41

sqlbrite_demo

A simple demo application for the SqlLite library by Square
Java
5
star
42

Fireside

Sample project for Firebase Remote Config Caster.IO lesson
Java
5
star
43

Androidx_webview_sample

Kotlin
3
star
44

Reactemon

A React-Native Pokedex for Android/iOS
JavaScript
3
star
45

Bastion

Kotlin
2
star
46

Hashtrack-ios

Hashtag tracker for iOS
Swift
1
star