Skip to content

Instantly share code, notes, and snippets.

View fnk0's full-sized avatar

Marcus Gabilheri fnk0

  • Snap
  • Los Angeles, CA
View GitHub Profile
@fnk0
fnk0 / AndroidManifest.xml
Created October 12, 2016 16:31
Add this to the manifest
<!-- Add this INSIDE the application tag -->
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
</intent-filter>
@fnk0
fnk0 / MovieDetailsFragment.java
Last active October 16, 2016 07:58
MovieDetailsFragment setup
public class MovieDetailsFragment extends DetailsFragment {
public static String TRANSITION_NAME = "poster_transition";
// Injects the API using Dagger
@Inject
TheMovieDbAPI mDbAPI;
private Movie movie;
private MovieDetails movieDetails;
@fnk0
fnk0 / Config.java
Last active October 12, 2016 16:35
Config
public class Config {
public static final String API_KEY_URL = "YOUR API KEY HERE!!";
}
@fnk0
fnk0 / MovieDetailsActivity.java
Last active October 12, 2016 03:47
MovieDetailsActivity
public class MovieDetailsActivity extends BaseTvActivity {
GlideBackgroundManager mBackgroundManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Retrieve the movie through the intent
Movie movie = getIntent().getExtras().getParcelable(Movie.class.getSimpleName());
@fnk0
fnk0 / MainFragment.java
Last active October 12, 2016 00:09
Adding the OnItemViewSelectedListener
public class MainFragment extends BrowseFragment implements OnItemViewSelectedListener {
private void createRows() {
...
setOnItemViewSelectedListener(this);
}
@Override
public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item, RowPresenter.ViewHolder rowViewHolder, Row row) {
// Check if the item is a movie
@fnk0
fnk0 / AndroidManifest.xml
Created October 11, 2016 23:38
Manifest TV TMDB app
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gabilheri.moviestmdb">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false"/>
@fnk0
fnk0 / MainFragment.java
Created October 11, 2016 23:28
Main Fragment
package com.gabilheri.moviestmdb.ui.main;
import android.os.Bundle;
import android.support.v17.leanback.app.BrowseFragment;
import android.support.v17.leanback.widget.ArrayObjectAdapter;
import android.support.v17.leanback.widget.HeaderItem;
import android.support.v17.leanback.widget.ListRow;
import android.support.v17.leanback.widget.ListRowPresenter;
import android.support.v4.content.ContextCompat;
import android.util.SparseArray;
@fnk0
fnk0 / MainFragment.java
Created October 11, 2016 23:26
Create Rows
/**
* Creates the rows and sets up the adapter of the fragment
*/
private void createRows() {
// Creates the RowsAdapter for the Fragment
// The ListRowPresenter tells to render ListRow objects
ArrayObjectAdapter rowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
for (int i = 0; i < mRows.size(); i++) {
MovieRow row = mRows.get(i);
// Adds a new ListRow to the adapter. Each row will contain a collection of Movies
@fnk0
fnk0 / MoviePresenter.java
Last active October 11, 2016 23:04
MoviePresenter
import android.support.v17.leanback.widget.Presenter;
import android.view.ViewGroup;
public class MoviePresenter extends Presenter {
public MoviePresenter() {
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent) {
@fnk0
fnk0 / MovieCardView.java
Last active October 11, 2016 23:00
MovieCardView
public class MovieCardView extends BindableCardView<Movie> {
@BindView(R.id.poster_iv)
ImageView mPosterIV;
@BindView(R.id.vote_average_tv)
TextView mVoteAverageTV;
public MovieCardView(Context context) {
super(context);