// Path: app/src/main/java/com/xurxodev/moviesandroidkata/domain/entity/Movie.java
// public class Movie {
//     private String image;
//     private String title;
//     private String overview;
// 
//     public Movie(String image, String title, String overview) {
//         this.image = image;
//         this.title = title;
//         this.overview = overview;
//     }
// 
//     public String getImage() {
//         return image;
//     }
// 
//     public String getTitle() {
//         return title;
//     }
// 
//     public String getOverview() {
//         return overview;
//     }
// }
// 
// Path: app/src/main/java/com/xurxodev/moviesandroidkata/presentation/presenter/boundary/Navigator.java
// public interface Navigator {
//     void openMovieDetail(Movie movie);
// }
// 
// Path: app/src/main/java/com/xurxodev/moviesandroidkata/presentation/view/activity/MovieDetailActivity.java
// public class MovieDetailActivity extends AppCompatActivity {
// 
//     public static final String MOVIE_TITLE = "MovieTitle";
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         setContentView(R.layout.activity_movie_detail);
// 
//         initializeToolBar();
//         showUpButtonInActionBar();
// 
//         if (savedInstanceState == null) {
//             showDetailFragment();
//         }
//     }
// 
//     private void showDetailFragment() {
//         String movieTitle = (String) getIntent().getStringExtra(MovieDetailActivity.MOVIE_TITLE);
// 
//         Bundle arguments = new Bundle();
//         arguments.putSerializable(MovieDetailActivity.MOVIE_TITLE, movieTitle);
// 
//         MovieDetailFragment fragment = new MovieDetailFragment();
// 
//         fragment.setArguments(arguments);
// 
//         getSupportFragmentManager().beginTransaction()
//                 .add(R.id.movie_detail_container, fragment)
//                 .commit();
//     }
// 
//     private void initializeToolBar() {
//         Toolbar toolbar = (Toolbar) findViewById(R.id.detail_toolbar);
//         setSupportActionBar(toolbar);
//     }
// 
//     private void showUpButtonInActionBar() {
//         ActionBar actionBar = getSupportActionBar();
//         if (actionBar != null) {
//             actionBar.setDisplayHomeAsUpEnabled(true);
//         }
//     }
// 
//     public static Intent createIntent(Context context, String movieTitle) {
//         Intent intent = new Intent(context, MovieDetailActivity.class);
// 
//         intent.putExtra(MOVIE_TITLE, movieTitle);
// 
//         return intent;
//     }
// 
//     @Override
//     public boolean onOptionsItemSelected(MenuItem item) {
//         int id = item.getItemId();
// 
//         if (id == android.R.id.home) {
//             supportFinishAfterTransition();
// 
//             return true;
//         }
//         return super.onOptionsItemSelected(item);
// 
//     }
// }
// 
// Path: app/src/main/java/com/xurxodev/moviesandroidkata/presentation/view/adapter/MoviesAdapter.java
// public class MoviesAdapter
//         extends RecyclerView.Adapter<MoviesAdapter.ViewHolder> {
// 
//     public interface OnMovieClickListener {
//         void onItemClick(View view, Movie movie);
//     }
// 
//     private OnMovieClickListener onMovieClickListener;
// 
//     public List<Movie> movies = new ArrayList<>();
// 
//     public void setMovies(List<Movie> movies) {
//         this.movies = movies;
//         notifyDataSetChanged();
//     }
// 
//     public void clearMovies() {
//         movies = new ArrayList<>();
//         notifyDataSetChanged();
//     }
// 
//     public void setOnMovieClickListener(OnMovieClickListener listener) {
//         onMovieClickListener = listener;
//     }
// 
//     @Override
//     public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//         View view = LayoutInflater.from(parent.getContext())
//                 .inflate(R.layout.item_movies, parent, false);
// 
//         return new ViewHolder(view);
//     }
// 
//     @Override
//     public void onBindViewHolder(final ViewHolder holder, final int position) {
//         holder.movieItem = movies.get(position);
// 
//         Picasso.with(holder.movieImageView.getContext())
//                 .load(holder.movieItem.getImage())
//                 .into(holder.movieImageView);
// 
//         holder.titleTextView.setText(holder.movieItem .getTitle());
// 
//         holder.itemView.setOnClickListener(new View.OnClickListener() {
//             @Override
//             public void onClick(View view) {
//                 Movie clickedItem = movies.get(position);
// 
//                 onMovieClickListener.onItemClick(view, clickedItem);
//             }
//         });
//     }
// 
//     @Override
//     public int getItemCount() {
//         return movies.size();
//     }
// 
//     public class ViewHolder extends RecyclerView.ViewHolder {
//         public final ImageView movieImageView;
//         public final TextView titleTextView;
// 
//         public Movie movieItem;
// 
//         public ViewHolder(View view) {
//             super(view);
// 
//             movieImageView = (ImageView) view.findViewById(R.id.item_movie_poster);
//             titleTextView = (TextView) view.findViewById(R.id.item_movie_title);
//         }
//     }
// }


import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.ActivityOptionsCompat;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.xurxodev.moviesandroidkata.R;
import com.xurxodev.moviesandroidkata.domain.entity.Movie;
import com.xurxodev.moviesandroidkata.presentation.presenter.boundary.Navigator;
import com.xurxodev.moviesandroidkata.presentation.view.activity.MovieDetailActivity;
import com.xurxodev.moviesandroidkata.presentation.view.adapter.MoviesAdapter;
package com.xurxodev.moviesandroidkata.presentation.navigator;



public class TransitionAnimationNavigator implements Navigator {

    private final Context activityContext;

    public TransitionAnimationNavigator(Context activityContext) {
        this.activityContext = activityContext;
    }

// Path: app/src/main/java/com/xurxodev/moviesandroidkata/domain/entity/Movie.java
// public class Movie {
//     private String image;
//     private String title;
//     private String overview;
// 
//     public Movie(String image, String title, String overview) {
//         this.image = image;
//         this.title = title;
//         this.overview = overview;
//     }
// 
//     public String getImage() {
//         return image;
//     }
// 
//     public String getTitle() {
//         return title;
//     }
// 
//     public String getOverview() {
//         return overview;
//     }
// }
// 
// Path: app/src/main/java/com/xurxodev/moviesandroidkata/presentation/presenter/boundary/Navigator.java
// public interface Navigator {
//     void openMovieDetail(Movie movie);
// }
// 
// Path: app/src/main/java/com/xurxodev/moviesandroidkata/presentation/view/activity/MovieDetailActivity.java
// public class MovieDetailActivity extends AppCompatActivity {
// 
//     public static final String MOVIE_TITLE = "MovieTitle";
// 
//     @Override
//     protected void onCreate(Bundle savedInstanceState) {
//         super.onCreate(savedInstanceState);
//         setContentView(R.layout.activity_movie_detail);
// 
//         initializeToolBar();
//         showUpButtonInActionBar();
// 
//         if (savedInstanceState == null) {
//             showDetailFragment();
//         }
//     }
// 
//     private void showDetailFragment() {
//         String movieTitle = (String) getIntent().getStringExtra(MovieDetailActivity.MOVIE_TITLE);
// 
//         Bundle arguments = new Bundle();
//         arguments.putSerializable(MovieDetailActivity.MOVIE_TITLE, movieTitle);
// 
//         MovieDetailFragment fragment = new MovieDetailFragment();
// 
//         fragment.setArguments(arguments);
// 
//         getSupportFragmentManager().beginTransaction()
//                 .add(R.id.movie_detail_container, fragment)
//                 .commit();
//     }
// 
//     private void initializeToolBar() {
//         Toolbar toolbar = (Toolbar) findViewById(R.id.detail_toolbar);
//         setSupportActionBar(toolbar);
//     }
// 
//     private void showUpButtonInActionBar() {
//         ActionBar actionBar = getSupportActionBar();
//         if (actionBar != null) {
//             actionBar.setDisplayHomeAsUpEnabled(true);
//         }
//     }
// 
//     public static Intent createIntent(Context context, String movieTitle) {
//         Intent intent = new Intent(context, MovieDetailActivity.class);
// 
//         intent.putExtra(MOVIE_TITLE, movieTitle);
// 
//         return intent;
//     }
// 
//     @Override
//     public boolean onOptionsItemSelected(MenuItem item) {
//         int id = item.getItemId();
// 
//         if (id == android.R.id.home) {
//             supportFinishAfterTransition();
// 
//             return true;
//         }
//         return super.onOptionsItemSelected(item);
// 
//     }
// }
// 
// Path: app/src/main/java/com/xurxodev/moviesandroidkata/presentation/view/adapter/MoviesAdapter.java
// public class MoviesAdapter
//         extends RecyclerView.Adapter<MoviesAdapter.ViewHolder> {
// 
//     public interface OnMovieClickListener {
//         void onItemClick(View view, Movie movie);
//     }
// 
//     private OnMovieClickListener onMovieClickListener;
// 
//     public List<Movie> movies = new ArrayList<>();
// 
//     public void setMovies(List<Movie> movies) {
//         this.movies = movies;
//         notifyDataSetChanged();
//     }
// 
//     public void clearMovies() {
//         movies = new ArrayList<>();
//         notifyDataSetChanged();
//     }
// 
//     public void setOnMovieClickListener(OnMovieClickListener listener) {
//         onMovieClickListener = listener;
//     }
// 
//     @Override
//     public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//         View view = LayoutInflater.from(parent.getContext())
//                 .inflate(R.layout.item_movies, parent, false);
// 
//         return new ViewHolder(view);
//     }
// 
//     @Override
//     public void onBindViewHolder(final ViewHolder holder, final int position) {
//         holder.movieItem = movies.get(position);
// 
//         Picasso.with(holder.movieImageView.getContext())
//                 .load(holder.movieItem.getImage())
//                 .into(holder.movieImageView);
// 
//         holder.titleTextView.setText(holder.movieItem .getTitle());
// 
//         holder.itemView.setOnClickListener(new View.OnClickListener() {
//             @Override
//             public void onClick(View view) {
//                 Movie clickedItem = movies.get(position);
// 
//                 onMovieClickListener.onItemClick(view, clickedItem);
//             }
//         });
//     }
// 
//     @Override
//     public int getItemCount() {
//         return movies.size();
//     }
// 
//     public class ViewHolder extends RecyclerView.ViewHolder {
//         public final ImageView movieImageView;
//         public final TextView titleTextView;
// 
//         public Movie movieItem;
// 
//         public ViewHolder(View view) {
//             super(view);
// 
//             movieImageView = (ImageView) view.findViewById(R.id.item_movie_poster);
//             titleTextView = (TextView) view.findViewById(R.id.item_movie_title);
//         }
//     }
// }


// Path: app/src/main/java/com/xurxodev/moviesandroidkata/presentation/navigator/TransitionAnimationNavigator.java
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.ActivityOptionsCompat;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.xurxodev.moviesandroidkata.R;
import com.xurxodev.moviesandroidkata.domain.entity.Movie;
import com.xurxodev.moviesandroidkata.presentation.presenter.boundary.Navigator;
import com.xurxodev.moviesandroidkata.presentation.view.activity.MovieDetailActivity;
import com.xurxodev.moviesandroidkata.presentation.view.adapter.MoviesAdapter;

package com.xurxodev.moviesandroidkata.presentation.navigator;



public class TransitionAnimationNavigator implements Navigator {

    private final Context activityContext;

    public TransitionAnimationNavigator(Context activityContext) {
        this.activityContext = activityContext;
    }

    public void openMovieDetail(Movie movie) {