package com.firstbuild.androidapp.paragon.navigation; import android.os.Bundle; import android.os.Handler; import android.support.v4.app.Fragment; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import com.firstbuild.androidapp.R; /** * A simple {@link Fragment} subclass. */ public class NavigationDrawerFragment extends Fragment { // Name for SharedPreferences public static final String PREF_FILE_NAME = "geKitchenDrawer"; private static final String TAG = NavigationDrawerFragment.class.getSimpleName(); private static int DELAYTIME_START_NEXT_APPLIANCE = 700; private RecyclerView recyclerView; //Recycle view for menu list. private ActionBarDrawerToggle drawerToggle; // Drawer menu handler. private DrawerLayout drawerLayout; // Drawer UI layout. private boolean isSelectingAppliance = false; // State for now Selecting Appliance or Sub menu. private int selectedApplianceIndex = 0; // Index appliance in Menu. Not index for ApplianceManager. // private NavigationManager.NavigationAppliance nextNavigationAppliance; private Handler handler = new Handler(); // for Delay start for next appliance main menu. private int lastSelectedSubmenu = 1; // index 0 is for Appliance, sub menus is start from 1. public NavigationDrawerFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_navigation_drawer, container, false); return view; } @Override public void onResume() { super.onResume(); } @Override public void onPause() { super.onPause(); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.menu_navigation_drawer, menu); super.onCreateOptionsMenu(menu, inflater); } /** * Setting up drawer menu's behavior such as open / close, dimming header and menus. * * @param fragmentId Resource ID of layout which set in .xml file. * @param drawerLayout Handle of DrawerLayout. * @param toolbar Toolbar for handling hamburger button. */ public void setUp(int fragmentId, final DrawerLayout drawerLayout, final Toolbar toolbar) { this.drawerLayout = drawerLayout; /** * Perform Open/ Close drawer menu. */ drawerToggle = new ActionBarDrawerToggle(getActivity(), drawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) { @Override public boolean onOptionsItemSelected(MenuItem item) { Log.d(TAG, "NavigationDrawerFragment.onOptionsItemSelected" + " item id:" + item + ", android.R.id.home:" + android.R.id.home); // return super.onOptionsItemSelected(item); if (item != null && item.getItemId() == android.R.id.home) { if (drawerLayout.isDrawerOpen(Gravity.RIGHT)) { drawerLayout.closeDrawer(Gravity.RIGHT); } else { drawerLayout.openDrawer(Gravity.RIGHT); } } return false; } @Override public void onDrawerSlide(View drawerView, float slideOffset) { super.onDrawerSlide(drawerView, slideOffset); // Dimming tool bar where the drawer menu openning. // if (slideOffset < 0.6) { // toolbar.setAlpha(1 - slideOffset); // } } @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); //Redraw option menu on toolbar. getActivity().invalidateOptionsMenu(); } @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); //Redraw option menu on toolbar. getActivity().invalidateOptionsMenu(); } }; this.drawerLayout.setDrawerListener(this.drawerToggle); //Sync Open / Close state and set hamburger icon. drawerLayout.post(new Runnable() { @Override public void run() { drawerToggle.syncState(); // toolbar.setNavigationIcon(R.drawable.ic_hamburger_logo); } }); this.drawerToggle.setToolbarNavigationClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG, "NavigationDrawerFragment.onClick" + " clicked Toolbar Naivagrion!!!!!"); getActivity().getFragmentManager().popBackStack(); } }); } public ActionBarDrawerToggle getDrawerToggle() { return drawerToggle; } }