package com.hitherejoe.androidboilerplate.ui.activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.widget.Toolbar;
import com.hitherejoe.androidboilerplate.R;
import com.hitherejoe.androidboilerplate.data.model.Character;
import com.hitherejoe.androidboilerplate.ui.fragment.DetailFragment;
import java.util.ArrayList;
import butterknife.Bind;
import butterknife.ButterKnife;
public class DetailActivity extends BaseActivity {
@Bind(R.id.sliding_tabs)
TabLayout mTabLayout;
@Bind(R.id.toolbar)
Toolbar mToolbar;
@Bind(R.id.pager_character_detail)
ViewPager mBeaconDetailViewPager;
private static final String EXTRA_CHARACTER =
"com.hitherejoe.androidboilerplate.ui.activity.DetailActivity.EXTRA_CHARACTER";
private Character mCharacter;
public static Intent getStartIntent(Context context, Character character) {
Intent intent = new Intent(context, DetailActivity.class);
intent.putExtra(EXTRA_CHARACTER, character);
return intent;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail);
ButterKnife.bind(this);
mCharacter = getIntent().getParcelableExtra(EXTRA_CHARACTER);
if (mCharacter == null) {
throw new IllegalArgumentException("DetailActivity requires a Character object!");
}
setupToolbar();
setupViewPager();
}
private void setupToolbar() {
setSupportActionBar(mToolbar);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setTitle(mCharacter.name);
}
}
private void setupViewPager() {
mBeaconDetailViewPager.setOffscreenPageLimit(2);
mBeaconDetailViewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
String[] titles = getResources().getStringArray(R.array.detail_fragment_titles);
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return DetailFragment.newInstance((ArrayList<String>) mCharacter.films);
case 1:
return DetailFragment.newInstance((ArrayList<String>) mCharacter.vehicles);
case 2:
return DetailFragment.newInstance((ArrayList<String>) mCharacter.species);
case 3:
return DetailFragment.newInstance((ArrayList<String>) mCharacter.starships);
default:
return DetailFragment.newInstance(new ArrayList<String>());
}
}
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
@Override
public int getCount() {
return titles.length;
}
});
mTabLayout.setupWithViewPager(mBeaconDetailViewPager);
}
}