package mx.ambmultimedia.brillamexico.fragments; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.widget.Toolbar; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import mx.ambmultimedia.brillamexico.R; public class NavDrawerFrag extends Fragment { public static final String PREF_FILE_NAME = "textprefbs"; public static final String KEY_USER_LEARNED_DRAWER = "user_learned_drawer"; private ActionBarDrawerToggle mDrawerToggle; private DrawerLayout mDrawerLayout; private boolean mUserLearnedDrawer; private boolean mFromSaveInstanceState; private View containView; public NavDrawerFrag() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mUserLearnedDrawer = Boolean.valueOf( readFromPreference(getActivity(), KEY_USER_LEARNED_DRAWER, "false") ); if (savedInstanceState != null) { mFromSaveInstanceState = true; } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_nav_drawer, container, false); } public void setUp (int fragmentID, DrawerLayout drawer_layout, Toolbar toolbar) { containView = getActivity().findViewById(fragmentID); mDrawerLayout = drawer_layout; mDrawerToggle = new ActionBarDrawerToggle(getActivity(), drawer_layout, toolbar, R.string.dwOpen, R.string.dwClose) { @Override public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); if (!mUserLearnedDrawer) { mUserLearnedDrawer = true; saveToPreferences(getActivity(), KEY_USER_LEARNED_DRAWER, mUserLearnedDrawer + ""); } getActivity().invalidateOptionsMenu(); } @Override public void onDrawerClosed(View drawerView) { super.onDrawerClosed(drawerView); if (!mUserLearnedDrawer) { mUserLearnedDrawer = false; saveToPreferences(getActivity(), KEY_USER_LEARNED_DRAWER, mUserLearnedDrawer + ""); } getActivity().invalidateOptionsMenu(); } }; if (!mUserLearnedDrawer && !mFromSaveInstanceState) { mDrawerLayout.openDrawer(containView); } containView.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { mDrawerLayout.closeDrawer(containView); } return true; } }); mDrawerLayout.setDrawerListener(mDrawerToggle); mDrawerLayout.post(new Runnable() { @Override public void run() { mDrawerToggle.syncState(); } }); } public static void saveToPreferences (Context context, String preferenceName, String preferenceValue) { SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(preferenceName, preferenceValue); editor.apply(); } public static String readFromPreference (Context context, String prefenceName, String defaultValue) { SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_FILE_NAME, Context.MODE_PRIVATE); return sharedPreferences.getString(prefenceName, defaultValue); } }