package com.darkrockstudios.apps.tminus.experiences.rocket.browse;
import android.app.FragmentManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import com.darkrockstudios.apps.tminus.R;
import com.darkrockstudios.apps.tminus.base.activities.NavigationDatabaseActivity;
import com.darkrockstudios.apps.tminus.experiences.rocket.browse.fragments.RocketBrowserFragment;
import com.darkrockstudios.apps.tminus.experiences.rocket.detail.RocketDetailActivity;
import com.darkrockstudios.apps.tminus.experiences.rocket.detail.fragments.RocketDetailFragment;
import com.darkrockstudios.apps.tminus.launchlibrary.Rocket;
import com.darkrockstudios.apps.tminus.misc.CommonMenuHandler;
/**
* Created by Adam on 10/13/13.
*/
public class RocketBrowserActivity extends NavigationDatabaseActivity implements RocketBrowserFragment.Callbacks
{
private static final String TAG_ROCKET_LIST = "RocketList";
private boolean m_twoPane;
@Override
protected void onCreate( final Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
requestWindowFeature( Window.FEATURE_INDETERMINATE_PROGRESS );
setContentView( R.layout.activity_common_list );
FragmentManager fragmentManager = getFragmentManager();
RocketBrowserFragment rocketBrowserFragment = RocketBrowserFragment.newInstance();
fragmentManager.beginTransaction()
.replace( R.id.COMMON_list_fragment_container, rocketBrowserFragment, TAG_ROCKET_LIST )
.commit();
initNavDrawer();
}
@Override
public void onResume()
{
super.onResume();
if( findViewById( R.id.COMMON_detail_fragment_container ) != null )
{
// The detail container view will be present only in the
// large-screen layouts (res/values-large and
// res/values-sw600dp). If this view is present, then the
// activity should be in two-pane mode.
m_twoPane = true;
// In two-pane mode, list items should be given the
// 'activated' state when touched.
RocketBrowserFragment rocketBrowserFragment =
(RocketBrowserFragment) getFragmentManager().findFragmentByTag( TAG_ROCKET_LIST );
rocketBrowserFragment.setActivateOnItemClick( true );
}
}
@Override
public boolean onCreateOptionsMenu( final Menu menu )
{
final MenuInflater inflater = getMenuInflater();
inflater.inflate( R.menu.settings, menu );
inflater.inflate( R.menu.refresh, menu );
return true;
}
@Override
public boolean onOptionsItemSelected( final MenuItem item )
{
final boolean handled;
if( !CommonMenuHandler.onOptionsItemSelected( item, this ) )
{
switch( item.getItemId() )
{
case R.id.action_refresh:
refreshRocketList();
handled = true;
break;
default:
handled = super.onOptionsItemSelected( item );
break;
}
}
else
{
handled = true;
}
return handled;
}
private void refreshRocketList()
{
RocketBrowserFragment fragment = (RocketBrowserFragment) getFragmentManager()
.findFragmentById( R.id.COMMON_list_fragment_container );
fragment.refresh();
}
public void rocketImageClicked( final View v )
{
RocketDetailFragment fragment = (RocketDetailFragment) getFragmentManager()
.findFragmentById( R.id.COMMON_detail_fragment_container );
if( fragment != null )
{
fragment.zoomRocketImage();
}
}
@Override
public void onItemSelected( final Rocket rocket )
{
if( m_twoPane )
{
// In two-pane mode, show the detail view in this activity by
// adding or replacing the detail fragment using a
// fragment transaction.
RocketDetailFragment fragment = RocketDetailFragment.newInstance( rocket.id, false );
getFragmentManager().beginTransaction()
.replace( R.id.COMMON_detail_fragment_container, fragment )
.commit();
}
else
{
// In single-pane mode, simply start the detail activity
// for the selected item ID.
Intent detailIntent = new Intent( this, RocketDetailActivity.class );
detailIntent.putExtra( RocketDetailActivity.ARG_ITEM_ID, rocket.id );
startActivity( detailIntent );
}
}
}