package com.ideabag.playtunes.fragment; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v7.app.ActionBar; import android.view.KeyEvent; import android.view.Menu; import com.ideabag.playtunes.PlaylistManager; import com.ideabag.playtunes.R; import com.ideabag.playtunes.activity.MainActivity; import com.ideabag.playtunes.fragment.search.SearchFragment; public class BaseNavigationFragment extends Fragment { public CharSequence mActionbarTitle, mActionbarSubtitle; protected MainActivity mActivity; protected FragmentManager mFragmentManager; protected PlaylistManager mPlaylistManager; protected MusicBrowserFragment MusicBrowserFragment; // Have we warned the user that pressing Back will close the app? protected boolean mCloseWarningOn = false; @Override public void onAttach( Activity activity ) { super.onAttach( activity ); mActivity = ( MainActivity ) activity; mPlaylistManager = new PlaylistManager( getActivity() ); mFragmentManager = mActivity.getSupportFragmentManager(); } @Override public void onActivityCreated( Bundle savedInstanceState ) { super.onActivityCreated(savedInstanceState); MusicBrowserFragment = ( MusicBrowserFragment ) getActivity().getSupportFragmentManager().findFragmentById( R.id.MusicBrowserFragment ); } public void showNowPlaying() { MusicBrowserFragment.showNowPlaying(); } public void showSearch() { Fragment mSearchFragment = new SearchFragment(); transactFragment( mSearchFragment ); } public void transactFragment( Fragment mFragment ) { MusicBrowserFragment.transactFragment( mFragment ); mCloseWarningOn = false; } public boolean onKeyDown( int keycode, KeyEvent e ) { switch ( keycode ) { case KeyEvent.KEYCODE_SEARCH: showSearch(); return true; case KeyEvent.KEYCODE_BACK: if ( mFragmentManager.getBackStackEntryCount() == 0 ) { if ( !mCloseWarningOn ) { android.widget.Toast.makeText( mActivity, getString( R.string.back_warning ), android.widget.Toast.LENGTH_LONG ).show(); mCloseWarningOn = true; return true; } } else { mCloseWarningOn = false; } break; } return false; } public void setActionbarTitle( String titleString ) { mActionbarTitle = ( CharSequence ) titleString; //mActionBar.setTitle( mActionbarTitle ); } public void setActionbarSubtitle( String subtitleString ) { mActionbarSubtitle = ( CharSequence ) subtitleString; //mActionBar.setSubtitle( mActionbarSubtitle ); } public boolean onCreateOptionsMenu( Menu menu ) { return false; } }