Index: samples/github/android/GithubSample/app/src/main/java/com/google/dartino/githubsample/NavigationDrawerFragment.java |
diff --git a/samples/github/android/GithubSample/app/src/main/java/com/google/dartino/githubsample/NavigationDrawerFragment.java b/samples/github/android/GithubSample/app/src/main/java/com/google/dartino/githubsample/NavigationDrawerFragment.java |
deleted file mode 100644 |
index 3b1b702e3af8c217092da2f24abf47912c01f19c..0000000000000000000000000000000000000000 |
--- a/samples/github/android/GithubSample/app/src/main/java/com/google/dartino/githubsample/NavigationDrawerFragment.java |
+++ /dev/null |
@@ -1,219 +0,0 @@ |
-// Copyright (c) 2015, the Dartino project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE.md file. |
- |
-package com.google.dartino.githubsample; |
- |
-import android.app.ActionBar; |
-import android.support.v7.app.ActionBarDrawerToggle; |
-import android.support.v4.view.GravityCompat; |
-import android.support.v4.widget.DrawerLayout; |
-import android.content.SharedPreferences; |
-import android.content.res.Configuration; |
-import android.os.Bundle; |
-import android.preference.PreferenceManager; |
-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 android.widget.ListView; |
- |
-import com.google.dartino.immisamples.Drawer; |
- |
-/** |
- * Fragment used for managing interactions for and presentation of a navigation drawer. |
- * See the <a href="https://developer.android.com/design/patterns/navigation-drawer.html#Interaction"> |
- * design guidelines</a> for a complete explanation of the behaviors implemented here. |
- */ |
-public class NavigationDrawerFragment extends Drawer.PaneFragment { |
- |
- public NavigationDrawerFragment() {} |
- |
- @Override |
- public void onCreate(Bundle savedInstanceState) { |
- super.onCreate(savedInstanceState); |
- // Read in the flag indicating whether or not the user has demonstrated awareness of the |
- // drawer. See PREF_USER_LEARNED_DRAWER for details. |
- SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity()); |
- userLearnedDrawer = sp.getBoolean(PREF_USER_LEARNED_DRAWER, false); |
- if (savedInstanceState != null) { |
- fromSavedInstanceState = true; |
- } |
- } |
- |
- @Override |
- public void onActivityCreated(Bundle savedInstanceState) { |
- super.onActivityCreated(savedInstanceState); |
- // Indicate that this fragment would like to influence the set of actions in the action bar. |
- setHasOptionsMenu(true); |
- } |
- |
- @Override |
- public View onCreateView(LayoutInflater inflater, ViewGroup container, |
- Bundle savedInstanceState) { |
- drawerListView = (ListView) inflater.inflate( |
- R.layout.fragment_navigation_drawer, container, false); |
- return drawerListView; |
- } |
- |
- public boolean isDrawerOpen() { |
- return drawerLayout != null && drawerLayout.isDrawerOpen(getView()); |
- } |
- |
- @Override |
- public void setOpenedState(boolean open) { |
- // TODO(zerny): getView might return null here!? Reintroduce setup of the view in setup(...). |
- View view = getView(); |
- if (view == null) return; |
- if (open) { |
- drawerLayout.openDrawer(view); |
- } else { |
- drawerLayout.closeDrawer(view); |
- } |
- } |
- |
- public void setupMenu(com.google.dartino.immisamples.Menu menu) { |
- menu.setListView(drawerListView); |
- } |
- |
- /** |
- * Users of this fragment must call this method to set up the navigation drawer interactions. |
- * |
- * @param drawerLayout The DrawerLayout containing this fragment's UI. |
- * @param presenter The Drawer.PanePresenter associated with this fragment. |
- */ |
- @Override |
- public void setup(DrawerLayout drawerLayout, Drawer.PanePresenter presenter) { |
- this.drawerLayout = drawerLayout; |
- this.panePresenter = presenter; |
- |
- // set a custom shadow that overlays the main content when the drawer opens |
- this.drawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); |
- // set up the drawer's list view with items and click listener |
- |
- ActionBar actionBar = getActionBar(); |
- actionBar.setDisplayHomeAsUpEnabled(true); |
- actionBar.setHomeButtonEnabled(true); |
- |
- // ActionBarDrawerToggle ties together the the proper interactions |
- // between the navigation drawer and the action bar app icon. |
- drawerToggle = new ActionBarDrawerToggle( |
- getActivity(), /* host Activity */ |
- NavigationDrawerFragment.this.drawerLayout, /* DrawerLayout object */ |
- R.string.navigation_drawer_open, /* "open drawer" description for accessibility */ |
- R.string.navigation_drawer_close /* "close drawer" description for accessibility */ |
- ) { |
- @Override |
- public void onDrawerClosed(View drawerView) { |
- super.onDrawerClosed(drawerView); |
- if (!isAdded()) { |
- return; |
- } |
- NavigationDrawerFragment.this.panePresenter.close(); |
- getActivity().invalidateOptionsMenu(); // calls onPrepareOptionsMenu() |
- } |
- |
- @Override |
- public void onDrawerOpened(View drawerView) { |
- super.onDrawerOpened(drawerView); |
- if (!isAdded()) { |
- return; |
- } |
- NavigationDrawerFragment.this.panePresenter.open(); |
- if (!userLearnedDrawer) { |
- // The user manually opened the drawer; store this flag to prevent auto-showing |
- // the navigation drawer automatically in the future. |
- userLearnedDrawer = true; |
- SharedPreferences sp = PreferenceManager |
- .getDefaultSharedPreferences(getActivity()); |
- sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).apply(); |
- } |
- |
- getActivity().invalidateOptionsMenu(); // calls onPrepareOptionsMenu() |
- } |
- }; |
- |
- // If the user hasn't 'learned' about the drawer, open it to introduce them to the drawer, |
- // per the navigation drawer design guidelines. |
- if (!userLearnedDrawer && !fromSavedInstanceState) { |
- this.drawerLayout.openDrawer(getView()); |
- } |
- |
- // Defer code dependent on restoration of previous instance state. |
- this.drawerLayout.post(new Runnable() { |
- @Override |
- public void run() { |
- drawerToggle.syncState(); |
- } |
- }); |
- |
- this.drawerLayout.setDrawerListener(drawerToggle); |
- } |
- |
- @Override |
- public void onConfigurationChanged(Configuration newConfig) { |
- super.onConfigurationChanged(newConfig); |
- // Forward the new configuration the drawer toggle component. |
- drawerToggle.onConfigurationChanged(newConfig); |
- } |
- |
- @Override |
- public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { |
- // If the drawer is open, show the global app actions in the action bar. See also |
- // showGlobalContextActionBar, which controls the top-left area of the action bar. |
- if (drawerLayout != null && isDrawerOpen()) { |
- inflater.inflate(R.menu.global, menu); |
- showGlobalContextActionBar(); |
- } |
- super.onCreateOptionsMenu(menu, inflater); |
- } |
- |
- @Override |
- public boolean onOptionsItemSelected(MenuItem item) { |
- if (item.getItemId() == android.R.id.home) { |
- // We don't use ActionBarDrawerToggle.onOptionsItemSelected |
- // and instead let the presentation graph control toggles. |
- panePresenter.toggle(); |
- return true; |
- } |
- return super.onOptionsItemSelected(item); |
- } |
- |
- private ActionBar getActionBar() { |
- return getActivity().getActionBar(); |
- } |
- |
- /** |
- * Per the navigation drawer design guidelines, updates the action bar to show the global app |
- * 'context', rather than just what's in the current screen. |
- */ |
- private void showGlobalContextActionBar() { |
- ActionBar actionBar = getActionBar(); |
- actionBar.setDisplayShowTitleEnabled(true); |
- actionBar.setTitle(getActivity().getTitle()); |
- } |
- |
- /** |
- * Remember the position of the selected item. |
- */ |
- private static final String STATE_SELECTED_POSITION = "selected_navigation_drawer_position"; |
- |
- /** |
- * Per the design guidelines, you should show the drawer on launch until the user manually |
- * expands it. This shared preference tracks this. |
- */ |
- private static final String PREF_USER_LEARNED_DRAWER = "navigation_drawer_learned"; |
- |
- private boolean fromSavedInstanceState; |
- private boolean userLearnedDrawer; |
- |
- /** |
- * Helper component that ties the action bar to the navigation drawer. |
- */ |
- private ActionBarDrawerToggle drawerToggle; |
- private DrawerLayout drawerLayout; |
- private ListView drawerListView; |
- private Drawer.PanePresenter panePresenter; |
-} |