package com.darkrockstudios.apps.tminus.experiences.rocket.detail;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
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.DatabaseActivity;
import com.darkrockstudios.apps.tminus.experiences.agency.detail.AgencyDetailActivity;
import com.darkrockstudios.apps.tminus.experiences.rocket.detail.fragments.AgencyListDialog;
import com.darkrockstudios.apps.tminus.experiences.rocket.detail.fragments.RocketDetailFragment;
import com.darkrockstudios.apps.tminus.launchlibrary.Agency;
import com.darkrockstudios.apps.tminus.misc.CommonMenuHandler;
import com.darkrockstudios.apps.tminus.misc.TminusUri;
import com.darkrockstudios.apps.tminus.misc.UpNavUtil;
/**
* Created by Adam on 7/14/13.
* Dark Rock Studios
* darkrockstudios.com
*/
public class RocketDetailActivity extends DatabaseActivity implements AgencyListDialog.AgencyListDialogClickListener
{
private static final String FRAGMENT_TAG = "RocketDetailFragment";
public static final String ARG_ITEM_ID = "item_id";
private int m_rocketId;
public void onCreate( final Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
requestWindowFeature( Window.FEATURE_INDETERMINATE_PROGRESS );
setContentView( R.layout.activity_rocket_detail );
m_rocketId = getRocketId();
if( m_rocketId >= 0 )
{
if( savedInstanceState == null )
{
// Create the detail fragment and add it to the activity
// using a fragment transaction.
RocketDetailFragment rocketDetailFragment = RocketDetailFragment.newInstance( m_rocketId, false );
getFragmentManager().beginTransaction()
.add( R.id.rocket_detail_container, rocketDetailFragment, FRAGMENT_TAG )
.commit();
}
}
}
private int getRocketId()
{
int rocketId = -1;
final Intent intent = getIntent();
if( intent != null )
{
rocketId = intent.getIntExtra( RocketDetailActivity.ARG_ITEM_ID, -1 );
}
return rocketId;
}
@Override
public boolean onCreateOptionsMenu( final Menu menu )
{
getMenuInflater().inflate( R.menu.refresh, menu );
getMenuInflater().inflate( R.menu.settings, menu );
return true;
}
@Override
public boolean onOptionsItemSelected( final MenuItem item )
{
final boolean handled;
if( !CommonMenuHandler.onOptionsItemSelected( item, this ) )
{
switch( item.getItemId() )
{
case android.R.id.home:
UpNavUtil.standardUp( this );
handled = true;
break;
case R.id.action_refresh:
refresh();
handled = true;
break;
default:
handled = super.onOptionsItemSelected( item );
break;
}
}
else
{
handled = true;
}
return handled;
}
private void refresh()
{
RocketDetailFragment fragment =
(RocketDetailFragment) getFragmentManager()
.findFragmentByTag( FRAGMENT_TAG );
if( fragment != null )
{
fragment.refresh();
}
}
public void rocketImageClicked( final View v )
{
RocketDetailFragment fragment =
(RocketDetailFragment) getFragmentManager()
.findFragmentByTag( FRAGMENT_TAG );
if( fragment != null )
{
fragment.zoomRocketImage();
}
}
@Override
public void onAgencyListDialogClick( final Agency agency )
{
Intent intent = new Intent( this, AgencyDetailActivity.class );
intent.setData( TminusUri.buildAgencyUri( agency.id ) );
startActivity( intent );
}
}