| Index: samples/github/android/GithubSample/app/src/main/java/com/google/fletch/githubsample/NavigationDrawerFragment.java
|
| diff --git a/samples/github/android/GithubSample/app/src/main/java/com/google/fletch/githubsample/NavigationDrawerFragment.java b/samples/github/android/GithubSample/app/src/main/java/com/google/fletch/githubsample/NavigationDrawerFragment.java
|
| deleted file mode 100644
|
| index c235923cd041432d35ad68e2ef6c67667501f09e..0000000000000000000000000000000000000000
|
| --- a/samples/github/android/GithubSample/app/src/main/java/com/google/fletch/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.fletch.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.fletch.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.fletch.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;
|
| -}
|
|
|