package com.battlelancer.seriesguide.ui; import android.os.Bundle; import android.support.v7.app.ActionBar; import android.view.ViewGroup; import com.battlelancer.seriesguide.R; import com.battlelancer.seriesguide.util.ThemeUtils; import com.readystatesoftware.systembartint.SystemBarTintManager; import com.uwetrottmann.androidutils.AndroidUtils; /** * Hosts a {@link MovieDetailsFragment} displaying details about the movie defined by the given TMDb * id intent extra. */ public class MovieDetailsActivity extends BaseNavDrawerActivity { // loader ids for this activity (mostly used by fragments) public static int LOADER_ID_MOVIE = 100; public static int LOADER_ID_MOVIE_TRAILERS = 101; public static int LOADER_ID_MOVIE_CREDITS = 102; public static int LOADER_ID_MOVIE_ACTIONS = 103; private SystemBarTintManager mSystemBarTintManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_movie); setupActionBar(); setupNavDrawer(); if (getIntent().getExtras() == null) { finish(); return; } int tmdbId = getIntent().getExtras().getInt(MovieDetailsFragment.InitBundle.TMDB_ID); if (tmdbId == 0) { finish(); return; } setupViews(); if (savedInstanceState == null) { MovieDetailsFragment f = MovieDetailsFragment.newInstance(tmdbId); getSupportFragmentManager().beginTransaction().add(R.id.content_frame, f).commit(); } } private void setupViews() { if (AndroidUtils.isKitKatOrHigher()) { // fix padding with translucent status bar // warning: status bar not always translucent (e.g. Nexus 10) // (using fitsSystemWindows would not work correctly with multiple views) mSystemBarTintManager = new SystemBarTintManager(this); int insetTop = mSystemBarTintManager.getConfig().getPixelInsetTop(false); ViewGroup actionBarToolbar = (ViewGroup) findViewById(R.id.sgToolbar); ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) actionBarToolbar.getLayoutParams(); layoutParams.setMargins(layoutParams.leftMargin, layoutParams.topMargin + insetTop, layoutParams.rightMargin, layoutParams.bottomMargin); } } @Override protected void setCustomTheme() { // use a special immersive theme ThemeUtils.setImmersiveTheme(this); } @Override protected void setupActionBar() { super.setupActionBar(); ActionBar actionBar = getSupportActionBar(); if (actionBar != null) { actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setDisplayShowTitleEnabled(false); } } public SystemBarTintManager getSystemBarTintManager() { return mSystemBarTintManager; } }