Android Open Source - PlayTunes Navigation Drawer Fragment






From Project

Back to project page PlayTunes.

License

The source code is released under:

Copyright (c) 2014, Impeccable Labs, LLC. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions ar...

If you think the Android project PlayTunes listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.ideabag.playtunes.fragment;
/*w w  w. j ava2 s  . c o  m*/
import com.ideabag.playtunes.R;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.view.KeyEvent;
import android.view.MenuItem;
import android.view.View;

public class NavigationDrawerFragment extends NavigationFragment {
  
  public ActionBarDrawerToggle mDrawerToggle;
  protected DrawerLayout mDrawerLayout;
  
  public void onActivityCreated( Bundle savedInstanceState ) {
    super.onActivityCreated(savedInstanceState);
    
    // 
    // Set up navigation drawer ( if we have one )
    // 
    View mDrawerViewContainer = getActivity().findViewById( R.id.drawer_layout );
    //View mDrawerView = ViewHash.get( Integer.valueOf( R.id.drawer_layout ) ).get();
    /*if ( null !=  ) {
      
      View v = ViewHash.get( Integer.valueOf( R.id.NavigationPlaylistsAll ) ).get();
      if ( null != v ) {
        
        v.setOnClickListener( NavigationClickListener );
        
      }
      //getView().findViewById( R.id.NavigationToolbarFeedback ).setOnClickListener( NavigationClickListener );
      
    }*/
    
    android.util.Log.i( TAG, "is null? " + ( null == mDrawerViewContainer ) );
    
    if ( null != mDrawerViewContainer ) {
            
          mDrawerLayout = ( DrawerLayout ) mDrawerViewContainer;
            
        mDrawerLayout.setDrawerShadow( R.drawable.drawer_shadow, GravityCompat.START );
            
            mDrawerToggle = new ActionBarDrawerToggle(
                mActivity,
                mDrawerLayout,
                    R.drawable.ic_drawer,
                    R.string.drawer_open ) {
              
              float mPreviousOffset = 0f;
              
              
                public void onDrawerClosed( View drawerView ) {
                  super.onDrawerClosed( drawerView );
                  
                  configureActionBarDrawerClosed();
                  
                }
                
                public void onDrawerOpened( View drawerView ) {
                    super.onDrawerOpened( drawerView );
                    
                    configureActionBarDrawerOpen();
                  
               }
                
                public void onDrawerSlide( View drawerView, float slideOffset ) {
                  super.onDrawerSlide( drawerView, slideOffset);
                  
                  if ( slideOffset > mPreviousOffset ) {
                      
                    configureActionBarDrawerOpen();
                      
                   } else if ( mPreviousOffset > slideOffset && slideOffset < 0.5f ) {
                     
                     configureActionBarDrawerClosed();
                     
                   }
                    
                   mPreviousOffset = slideOffset;
                   
                }
                
            };
            
            
            mDrawerLayout.setDrawerListener( mDrawerToggle );
            
          }
    
    SharedPreferences prefs = mActivity.getSharedPreferences( getString( R.string.prefs_file) , Context.MODE_PRIVATE );
        //SharedPreferences.Editor edit = prefs.edit();
      
      int openCount = prefs.getInt( getString( R.string.pref_key_appopen ), 0 );
      
      if ( openCount == 0 ) {
        
        showNavigation();
        
      }
    
  }
  
    
    private void configureActionBarDrawerOpen() {
      
      //mActivity.mShouldHideActionItems = true;
      
    //mActivity.setActionbarTitle( (String) mActionBar.getTitle() );
    //mActivity.setActionbarSubtitle( (String) mActionBar.getSubtitle() );
      
    mActionBar.setTitle( getString( R.string.app_name ) );
      mActionBar.setSubtitle( null );
      
      mActionBar.setDisplayShowCustomEnabled( false );
      mActionBar.setDisplayShowHomeEnabled( true );
      //mActionBar.setDisplayUseLogoEnabled( false );
      //mActionBar.setDisplayShowHomeEnabled( true );
      mActivity.supportInvalidateOptionsMenu();
      
    }
    
    private void configureActionBarDrawerClosed() {
      
      //mActivity.mShouldHideActionItems = false;
      
      if ( mActionbarTitle != null && mActionbarTitle.equals( "*" ) ) {
        
        mActionBar.setDisplayShowHomeEnabled( true );
        mActionBar.setTitle( null );
        
      } else {
        
        //mActionBar.setDisplayShowHomeEnabled( false );
        mActionBar.setTitle( mActionbarTitle );
        
      }
      mActionBar.setSubtitle( mActionbarSubtitle );
      
      mActivity.getSupportActionBar().setDisplayShowCustomEnabled( true );
      //mActionBar.setDisplayUseLogoEnabled( true );
      
      mActivity.supportInvalidateOptionsMenu();
      
    }
  
  @Override public void onResume() {
    super.onResume();
    
    if ( mDrawerLayout != null ) {
      
      if ( mDrawerLayout.isDrawerOpen( GravityCompat.START ) ) {
          
        configureActionBarDrawerClosed();
        
      } else {
        
        configureActionBarDrawerOpen();
        
      }
      
    }
    
  }
  
  
  public void showNavigation() {
    
    if ( mDrawerLayout != null && !mDrawerLayout.isDrawerOpen( GravityCompat.START ) ) {
      
      configureActionBarDrawerOpen();
      
      mDrawerLayout.openDrawer( GravityCompat.START );
      //customActionBarToggle.showOpen();
      //mActionbarTitle = mActivity.getSupportActionBar().getTitle();
      //mActivity.getSupportActionBar().setTitle( getString( R.string.app_name ) );
      //getSupportActionBar().setDisplayUseLogoEnabled( false );
      //getSupportActionBar().setIcon( getResources().getDrawable( R.drawable.ic_launcher ) );
      
    }
    
  }
  
  public void hideNavigation() {
    
    if ( mDrawerLayout != null && mDrawerLayout.isDrawerOpen( GravityCompat.START ) ) {
        
      configureActionBarDrawerClosed();
      
        mDrawerLayout.closeDrawer( GravityCompat.START );
        
      }
    
  }
  
  public void toggleNavigation() {
    
      if ( mDrawerLayout != null ) {
        
        if ( mDrawerLayout.isDrawerOpen( GravityCompat.START ) ) {
          
          hideNavigation();
          
        } else {
          
          showNavigation();
          
        }
        
      }
    
  }
  
  public void setActionbarTitle( String titleString ) {
    
    mActionbarTitle = ( CharSequence ) titleString;
    
    // Set the ActionBar title if the drawer is closed, otherwise just hold onto it for later
    if ( null != mDrawerLayout && !mDrawerLayout.isDrawerOpen( GravityCompat.START ) ) {
      
      if ( null != titleString && !titleString.equals( "*" ) ) {
        
        mActionBar.setTitle( mActionbarTitle );
        
      }
      
    }
    
  }
  
  public void setActionbarSubtitle( String subtitleString ) {
    
    mActionbarSubtitle = ( CharSequence ) subtitleString;
    
    // Set the ActionBar title if the drawer is closed, otherwise just hold onto it for later
    if ( null != mDrawerLayout && !mDrawerLayout.isDrawerOpen( GravityCompat.START ) ) {
      
      mActionBar.setSubtitle( mActionbarSubtitle );
      
    }
    
  }
  
  @Override public boolean onKeyDown( int keycode, KeyEvent e ) {
    
    switch ( keycode ) {
        
        case KeyEvent.KEYCODE_MENU:
          
          toggleNavigation();
            return true;
            
        case KeyEvent.KEYCODE_SEARCH:
          
          showSearch();
          return true;
        
        case KeyEvent.KEYCODE_BACK:
          
          if ( mDrawerLayout != null && mDrawerLayout.isDrawerOpen( GravityCompat.START ) ) {
            
            hideNavigation();
            
            return true;
            
          }
          
          break;
    }
      
    
    return super.onKeyDown( keycode, e );
    
  }
  
    @Override public boolean onOptionsItemSelected( MenuItem item ) {
    
        // Pass the event to ActionBarDrawerToggle, if it returns
        // true, then it has handled the app icon touch event
      if ( null != mDrawerToggle && mDrawerToggle.onOptionsItemSelected( item ) ) {
        
        return true;
        
      }
      /*
      // Search button!
        if ( item.getItemId() == R.id.MenuSearch ) {
          
          SearchFragment mSearchFragment = new SearchFragment();
          
          transactFragment( mSearchFragment );
          
        hideNavigation();
        
        return true;
          
        }
      */
      return false;
      
    }
  
  @Override protected void load( int id ) {
    super.load( id );
    
    hideNavigation();
    
  }
  
}




Java Source Code List

com.ideabag.playtunes.PlaylistManager.java
com.ideabag.playtunes.DragNDrop.DragListener.java
com.ideabag.playtunes.DragNDrop.DragNDropListView.java
com.ideabag.playtunes.DragNDrop.DropListener.java
com.ideabag.playtunes.DragNDrop.RemoveListener.java
com.ideabag.playtunes.activity.MainActivity.java
com.ideabag.playtunes.activity.NowPlayingActivity.java
com.ideabag.playtunes.activity.SettingsActivity.java
com.ideabag.playtunes.adapter.AlbumListAdapter.java
com.ideabag.playtunes.adapter.AlbumsAllAdapter.java
com.ideabag.playtunes.adapter.AlbumsOneAdapter.java
com.ideabag.playtunes.adapter.ArtistAlbumsAdapter.java
com.ideabag.playtunes.adapter.ArtistAllSongsAdapter.java
com.ideabag.playtunes.adapter.ArtistListAdapter.java
com.ideabag.playtunes.adapter.ArtistSinglesAdapter.java
com.ideabag.playtunes.adapter.ArtistsAllAdapter.java
com.ideabag.playtunes.adapter.AsyncQueryAdapter.java
com.ideabag.playtunes.adapter.GenresAllAdapter.java
com.ideabag.playtunes.adapter.GenresOneAdapter.java
com.ideabag.playtunes.adapter.NavigationListAdapter.java
com.ideabag.playtunes.adapter.PlaylistsAllAdapter.java
com.ideabag.playtunes.adapter.PlaylistsOneAdapter.java
com.ideabag.playtunes.adapter.SongListAdapter.java
com.ideabag.playtunes.adapter.SongsAllAdapter.java
com.ideabag.playtunes.adapter.search.SearchAlbumsAdapter.java
com.ideabag.playtunes.adapter.search.SearchArtistsAdapter.java
com.ideabag.playtunes.adapter.search.SearchSongsAdapter.java
com.ideabag.playtunes.database.MediaQuery.java
com.ideabag.playtunes.dialog.AddToPlaylistDialogFragment.java
com.ideabag.playtunes.dialog.CreatePlaylistDialogFragment.java
com.ideabag.playtunes.dialog.FeedbackDialogFragment.java
com.ideabag.playtunes.dialog.PlaylistDeleteDialogFragment.java
com.ideabag.playtunes.dialog.PlaylistMenuDialogFragment.java
com.ideabag.playtunes.dialog.PlaylistRenameDialogFragment.java
com.ideabag.playtunes.dialog.RateAppDialogFragment.java
com.ideabag.playtunes.dialog.SongMenuDialogFragment.java
com.ideabag.playtunes.fragment.AlbumsAllFragment.java
com.ideabag.playtunes.fragment.AlbumsOneFragment.java
com.ideabag.playtunes.fragment.ArtistSinglesFragment.java
com.ideabag.playtunes.fragment.ArtistsAllFragment.java
com.ideabag.playtunes.fragment.ArtistsOneFragment.java
com.ideabag.playtunes.fragment.FooterControlsFragment.java
com.ideabag.playtunes.fragment.GenresAllFragment.java
com.ideabag.playtunes.fragment.GenresOneFragment.java
com.ideabag.playtunes.fragment.MusicBrowserFragment.java
com.ideabag.playtunes.fragment.NavigationDrawerFragment.java
com.ideabag.playtunes.fragment.NavigationFragment.java
com.ideabag.playtunes.fragment.PlaylistsAllFragment.java
com.ideabag.playtunes.fragment.PlaylistsOneFragment.java
com.ideabag.playtunes.fragment.SaveScrollListFragment.java
com.ideabag.playtunes.fragment.SongsFragment.java
com.ideabag.playtunes.fragment.TrackProgressFragment.java
com.ideabag.playtunes.fragment.search.SearchAlbumsFragment.java
com.ideabag.playtunes.fragment.search.SearchAllFragment.java
com.ideabag.playtunes.fragment.search.SearchArtistsFragment.java
com.ideabag.playtunes.fragment.search.SearchFragment.java
com.ideabag.playtunes.fragment.search.SearchSongsFragment.java
com.ideabag.playtunes.fragment.search.SearchSuggestionsFragment.java
com.ideabag.playtunes.media.AudioFocusHelper.java
com.ideabag.playtunes.media.MusicFocusable.java
com.ideabag.playtunes.media.MusicIntentReceiver.java
com.ideabag.playtunes.media.PlaylistMediaPlayer.java
com.ideabag.playtunes.media.RemoteControlClientCompat.java
com.ideabag.playtunes.media.RemoteControlHelper.java
com.ideabag.playtunes.service.LockscreenManager.java
com.ideabag.playtunes.service.MusicPlayerService.java
com.ideabag.playtunes.service.PlaybackNotification.java
com.ideabag.playtunes.util.AdmobUtil.java
com.ideabag.playtunes.util.AlbumSongsCountTask.java
com.ideabag.playtunes.util.AsyncDrawable.java
com.ideabag.playtunes.util.BitmapWorkerTask.java
com.ideabag.playtunes.util.CheckRemoteVersionFileTask.java
com.ideabag.playtunes.util.DrawerLayout.java
com.ideabag.playtunes.util.GAEvent.java
com.ideabag.playtunes.util.IMusicBrowser.java
com.ideabag.playtunes.util.ISearchableAdapter.java
com.ideabag.playtunes.util.LoadAlbumStackTask.java
com.ideabag.playtunes.util.MergeAdapter.java
com.ideabag.playtunes.util.QueryCountTask.java
com.ideabag.playtunes.util.SackOfViewsAdapter.java
com.ideabag.playtunes.util.SearchHistory.java
com.ideabag.playtunes.util.StarToggleTask.java
com.ideabag.playtunes.util.TrackerSingleton.java