package com.ronakmanglani.watchlist.ui.activity;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.ronakmanglani.watchlist.R;
import com.ronakmanglani.watchlist.WatchlistApp;
import com.ronakmanglani.watchlist.ui.fragment.MovieDetailFragment;
public class MovieDetailActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_movie_detail);
if (savedInstanceState == null) {
String movieId;
Intent intent = getIntent();
Uri data = intent.getData();
if (data == null) {
// Not loading from deep link
movieId = getIntent().getStringExtra(WatchlistApp.MOVIE_ID);
loadMovieDetailsOf(movieId);
} else {
// Loading from deep link
String[] parts = data.toString().split("/");
movieId = parts[parts.length - 1];
switch (movieId) {
// Load Movie Lists
case "movie":
loadMoviesOfType(0);
break;
case "top-rated":
loadMoviesOfType(1);
break;
case "upcoming":
loadMoviesOfType(2);
break;
case "now-playing":
loadMoviesOfType(3);
break;
// Load details of a particular movie
default:
int dashPosition = movieId.indexOf("-");
if (dashPosition != -1) {
movieId = movieId.substring(0, dashPosition);
}
loadMovieDetailsOf(movieId);
break;
}
}
}
}
private void loadMovieDetailsOf(String movieId) {
MovieDetailFragment fragment = new MovieDetailFragment();
Bundle args = new Bundle();
args.putString(WatchlistApp.MOVIE_ID, movieId);
fragment.setArguments(args);
getSupportFragmentManager().beginTransaction().replace(R.id.movie_detail_container, fragment).commit();
}
@SuppressLint("CommitPrefEdits")
private void loadMoviesOfType(int viewType) {
SharedPreferences.Editor editor = getSharedPreferences(WatchlistApp.TABLE_USER, MODE_PRIVATE).edit();
editor.putInt(WatchlistApp.LAST_SELECTED, viewType);
editor.commit();
startActivity(new Intent(this, MovieActivity.class));
finish();
}
}