aboutsummaryrefslogtreecommitdiffstats
path: root/iget_android/app/src/main/java/com/iget/ccnx/DrawerFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'iget_android/app/src/main/java/com/iget/ccnx/DrawerFragment.java')
-rw-r--r--iget_android/app/src/main/java/com/iget/ccnx/DrawerFragment.java505
1 files changed, 0 insertions, 505 deletions
diff --git a/iget_android/app/src/main/java/com/iget/ccnx/DrawerFragment.java b/iget_android/app/src/main/java/com/iget/ccnx/DrawerFragment.java
deleted file mode 100644
index 72960fc5..00000000
--- a/iget_android/app/src/main/java/com/iget/ccnx/DrawerFragment.java
+++ /dev/null
@@ -1,505 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.iget.ccnx;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.os.Bundle;
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.preference.PreferenceManager;
-import android.support.annotation.Nullable;
-import android.support.v4.app.Fragment;
-import android.support.v4.widget.DrawerLayout;
-import android.support.v4.widget.ViewDragHelper;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.ActionBarActivity;
-import android.support.v7.app.ActionBarDrawerToggle;
-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.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.ImageView;
-import android.widget.ListView;
-import android.widget.TextView;
-
-import java.util.ArrayList;
-
-/**
- * DrawerFragment that provides navigation for MainActivity.
- */
-public class DrawerFragment extends Fragment {
-
- public static DrawerFragment
- newInstance(ArrayList<DrawerFragment.DrawerItem> items) {
- Bundle drawerParams = new Bundle();
- drawerParams.putParcelableArrayList(DrawerFragment.BUNDLE_PARAMETERS, items);
-
- DrawerFragment fragment = new DrawerFragment();
- fragment.setArguments(drawerParams);
- return fragment;
- }
-
- @Override
- public void onAttach(Activity activity) {
- super.onAttach(activity);
- try {
- // Register callback
- m_callbacks = (DrawerCallbacks)activity;
- } catch (ClassCastException e) {
- throw new ClassCastException("Host activity must implement DrawerFragment.DrawerCallbacks.");
- }
- }
-
- @Override
- public void onDetach() {
- super.onDetach();
- m_callbacks = null;
- }
-
- @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_DRAWER_SHOWN_TO_USER_FOR_THE_FIRST_TIME for details.
- SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity());
- m_hasUserSeenDrawer = sp.getBoolean(PREF_DRAWER_SHOWN_TO_USER_FOR_THE_FIRST_TIME, false);
-
- if (savedInstanceState != null) {
- m_drawerSelectedPosition = savedInstanceState.getInt(DRAWER_SELECTED_POSITION_BUNDLE_KEY);
- m_restoredFromSavedInstanceState = true;
- }
-
- m_drawerItems = getArguments().getParcelableArrayList(BUNDLE_PARAMETERS);
- }
-
- @Override
- public View onCreateView(LayoutInflater inflater,
- ViewGroup container,
- Bundle savedInstanceState)
- {
- m_drawerListView = (ListView)inflater.inflate(
- R.layout.activity_main_drawer_listview, container, false);
-
- m_drawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- // Update UI
- updateSelection(position);
- }
- });
-
- m_drawerListView.setAdapter(new DrawerListAdapter(getActionBar().getThemedContext(), m_drawerItems));
- m_drawerListView.setItemChecked(m_drawerSelectedPosition, true);
-
- return m_drawerListView;
- }
-
- @Override
- public void onActivityCreated(@Nullable Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- // Fragment influences action bar
- setHasOptionsMenu(true);
-
- // Initialize and set up the navigation drawer UI
- initializeDrawerFragment(getActivity().findViewById(R.id.navigation_drawer),
- (DrawerLayout)getActivity().findViewById(R.id.drawer_layout));
-
- if (savedInstanceState == null) {
- // when restoring (e.g., after rotation), rely on system to restore previous state of
- // fragments
- updateSelection(m_drawerSelectedPosition);
- }
- }
-
- /**
- * Initialize drawer fragment after being attached to the host activity.
- *
- * @param drawerFragmentViewContainer View container that holds the navigation drawer
- * @param drawerLayout DrawerLayout of the drawer in the host Activity
- */
- private void initializeDrawerFragment(View drawerFragmentViewContainer,
- DrawerLayout drawerLayout)
- {
- m_drawerFragmentViewContainer = drawerFragmentViewContainer;
- m_drawerLayout = drawerLayout;
-
- // Setup drawer and action bar
- ActionBar actionBar = getActionBar();
- actionBar.setDisplayHomeAsUpEnabled(true);
- actionBar.setHomeButtonEnabled(true);
-
- m_drawerToggle = new ActionBarDrawerToggle(
- getActivity(),
- m_drawerLayout,
- R.string.accessibility_open_drawer,
- R.string.accessibility_close_drawer)
- {
- @Override
- public void onDrawerClosed(View drawerView) {
- super.onDrawerClosed(drawerView);
-
- // Allow update calls to onCreateOptionsMenu() and
- // onPrepareOptionsMenu() to update Menu UI.
- m_shouldHideOptionsMenu = false;
- getActivity().supportInvalidateOptionsMenu();
- }
-
- @Override
- public void onDrawerOpened(View drawerView) {
- super.onDrawerOpened(drawerView);
-
- // Flag that user has seen drawer for the first time
- if (!m_hasUserSeenDrawer) {
- m_hasUserSeenDrawer = true;
- SharedPreferences sp = PreferenceManager
- .getDefaultSharedPreferences(getActivity());
-
- sp.edit()
- .putBoolean(PREF_DRAWER_SHOWN_TO_USER_FOR_THE_FIRST_TIME, true)
- .apply();
- }
-
- // Allow update calls to onCreateOptionsMenu() and
- // onPrepareOptionsMenu() to update Menu UI
- m_shouldHideOptionsMenu = true;
- getActivity().supportInvalidateOptionsMenu();
- }
-
- @Override
- public void onDrawerStateChanged(int newState) {
- super.onDrawerStateChanged(newState);
- if (newState != ViewDragHelper.STATE_IDLE) {
- // opened/closed is handled by onDrawerOpened and onDrawerClosed callbacks
- m_shouldHideOptionsMenu = true;
- getActivity().supportInvalidateOptionsMenu();
- } else if (newState == ViewDragHelper.STATE_IDLE && !isDrawerOpen()) {
- // This condition takes care of the case of displaying the option menu
- // items when the drawer is retracted prematurely.
- m_shouldHideOptionsMenu = false;
- getActivity().supportInvalidateOptionsMenu();
- }
- }
- };
-
- // Open drawer for the first time
- if (!m_hasUserSeenDrawer && !m_restoredFromSavedInstanceState) {
- m_shouldHideOptionsMenu = true;
- m_drawerLayout.openDrawer(m_drawerFragmentViewContainer);
- }
-
- // Post to drawer's handler to update UI State
- m_drawerLayout.post(new Runnable() {
- @Override
- public void run() {
- m_drawerToggle.syncState();
- }
- });
-
- m_drawerLayout.setDrawerListener(m_drawerToggle);
- }
-
- @Override
- public void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putInt(DRAWER_SELECTED_POSITION_BUNDLE_KEY, m_drawerSelectedPosition);
- }
-
- @Override
- public void onConfigurationChanged(Configuration newConfig) {
- super.onConfigurationChanged(newConfig);
- // Forward the new configuration the drawer toggle component.
- m_drawerToggle.onConfigurationChanged(newConfig);
- }
-
- @Override
- public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- super.onCreateOptionsMenu(menu, inflater);
- // Update menu UI when the drawer is open. This gives the user a better
- // contextual perception of the application.
- if (isDrawerOpen()) {
- // Inflate drawer specific menu here (if any)
- showGlobalContextActionBar();
- }
-
- }
-
- @Override
- public void onPrepareOptionsMenu(Menu menu) {
- super.onPrepareOptionsMenu(menu);
- // Remove option menu items when drawer is sliding out
- if (m_shouldHideOptionsMenu) {
- for (int i = 0; i < menu.size(); i++) {
- menu.getItem(i).setVisible(false);
- }
- }
-
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle drawer selection events
- if (m_drawerToggle.onOptionsItemSelected(item)) {
- return true;
- }
-
- // Handle other menu items
- switch (item.getItemId()) {
- // Handle activity menu item here (if any)
- default:
- return super.onOptionsItemSelected(item);
- }
- }
-
- public boolean
- shouldHideOptionsMenu() {
- return m_shouldHideOptionsMenu;
- }
-
- /**
- * Convenience method that updates the UI and callbacks the host activity.
- *
- * @param position Position of the selected item within the Drawer's ListView.
- */
- private void updateSelection(int position) {
- // Update Position
- m_drawerSelectedPosition = position;
-
- // Update UI of selected position
- if (m_drawerListView != null) {
- m_drawerListView.setItemChecked(position, true);
- }
-
- // Close drawer
- if (m_drawerLayout != null) {
- m_drawerLayout.closeDrawer(m_drawerFragmentViewContainer);
- }
-
- // Invoke host activity callback
- if (m_callbacks != null) {
- DrawerItem item = m_drawerItems.get(position);
- m_callbacks.onDrawerItemSelected(item.getItemCode(), item.getItemName());
- }
- }
-
- /**
- * Safe convenience method to determine if drawer is open.
- *
- * @return True if drawer is present and in an open state; false otherwise
- */
- private boolean
- isDrawerOpen() {
- return m_drawerLayout != null && m_drawerLayout.isDrawerOpen(m_drawerFragmentViewContainer);
- }
-
- /**
- * Convenience method to update host activity action bar so that the user is informed of
- * the app's "current context" of the fragment.
- */
- private void showGlobalContextActionBar() {
- ActionBar actionBar = getActionBar();
- actionBar.setDisplayShowTitleEnabled(true);
- actionBar.setTitle(R.string.app_name);
- }
-
- /**
- * Convenience method to get host activity's ActionBar. This makes for easy updates
- * in a single location when upgrading to use >= HONEYCOMB (API 11) ActionBar.
- *
- * @return Host activity's ActionBar.
- */
- private ActionBar getActionBar() {
- return ((ActionBarActivity)getActivity()).getSupportActionBar();
- }
-
- //////////////////////////////////////////////////////////////////////////////
-
- /**
- * DrawerItem represents a single selection option in the Drawer, complete
- * with the ability to set a Drawable resource icon for display along
- * with the drawer item name.
- */
- public static class DrawerItem implements Parcelable {
- @Override
- public int describeContents()
- {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel parcel, int i)
- {
- parcel.writeInt(m_itemNameId);
- parcel.writeInt(m_iconResId);
- parcel.writeInt(m_itemCode);
- }
-
- public static final Parcelable.Creator<DrawerItem> CREATOR = new Parcelable.Creator<DrawerItem>() {
- public DrawerItem
- createFromParcel(Parcel in) {
- return new DrawerItem(in.readInt(), in.readInt(), in.readInt());
- }
-
- public DrawerItem[] newArray(int size) {
- return new DrawerItem[size];
- }
- };
-
- public
- DrawerItem(int itemNameId, int resIconId, int itemCode) {
- m_itemNameId = itemNameId;
- m_iconResId = resIconId;
- m_itemCode = itemCode;
- }
-
- public int
- getItemName() {
- return m_itemNameId;
- }
-
- public int
- getIconResId() {
- return m_iconResId;
- }
-
- public int
- getItemCode() {
- return m_itemCode;
- }
-
- ///////////////////////////////////////////////////////////////////////////
-
- /** Drawer item name */
- private final int m_itemNameId;
-
- /** Resource ID of a drawable to be shown as the item's icon */
- private final int m_iconResId;
-
- /** Item code for feedback to the host activity's implemented callback. */
- private final int m_itemCode;
-
- }
-
- /**
- * Customized DrawerListAdapter to furnishes the Drawer with DrawerItem
- * information.
- */
- private static class DrawerListAdapter extends ArrayAdapter<DrawerItem> {
-
- public DrawerListAdapter(Context context, ArrayList<DrawerItem> drawerItems) {
- super(context, 0, drawerItems);
- m_layoutInflater =
- (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- m_resources = context.getResources();
- }
-
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- DrawerItemHolder holder;
-
- if (convertView == null) {
- holder = new DrawerItemHolder();
-
- convertView = m_layoutInflater.inflate(R.layout.list_item_drawer_item, null);
- convertView.setTag(holder);
-
- holder.m_icon = (ImageView) convertView.findViewById(R.id.drawer_item_icon);
- holder.m_text = (TextView) convertView.findViewById(R.id.drawer_item_text);
- } else {
- holder = (DrawerItemHolder)convertView.getTag();
- }
-
- // Update items in holder
- DrawerItem item = getItem(position);
- if (item.getIconResId() != 0) {
- holder.m_icon.setImageDrawable(m_resources.getDrawable(item.getIconResId()));
- }
- holder.m_text.setText(item.getItemName());
-
- return convertView;
- }
-
- private static class DrawerItemHolder {
- private ImageView m_icon;
- private TextView m_text;
- }
-
- /** Layout inflater for use */
- private final LayoutInflater m_layoutInflater;
-
- /** Reference to get context's resources */
- private final Resources m_resources;
- }
-
- //////////////////////////////////////////////////////////////////////////////
-
- /** Callback that host activity must implement */
- public static interface DrawerCallbacks {
- /** Callback to host activity when a drawer item is selected */
- void onDrawerItemSelected(int itemCode, int itemNameId);
- }
-
- //////////////////////////////////////////////////////////////////////////////
-
- /** SharedPreference: Display drawer when drawer loads for the very first time */
- private static final String PREF_DRAWER_SHOWN_TO_USER_FOR_THE_FIRST_TIME
- = "DRAWER_PRESENTED_TO_USER_ON_FIRST_LOAD";
-
- /** Bundle key used to (re)store position of selected drawer item */
- private static final String DRAWER_SELECTED_POSITION_BUNDLE_KEY
- = "DRAWER_SELECTED_POSITION";
-
- /** Bundle argument key for bundle parameters */
- private static final String BUNDLE_PARAMETERS = "net.named_data.nfd.drawer_fragment_parameters";
-
- /** Callback to parent activity */
- private DrawerCallbacks m_callbacks;
-
- /** DrawerToggle for interacting with drawer and action bar app icon */
- private ActionBarDrawerToggle m_drawerToggle;
-
- /** Reference to DrawerLayout fragment in host activity */
- private DrawerLayout m_drawerLayout;
-
- /** Reference to drawer's ListView */
- private ListView m_drawerListView;
-
- /** Drawer's fragment container in the host activity */
- private View m_drawerFragmentViewContainer;
-
- /** Current position of the Drawer's selection */
- private int m_drawerSelectedPosition = 0;
-
- /** Flag that denotes if the fragment is restored from an instance state */
- private boolean m_restoredFromSavedInstanceState;
-
- /** Flag that denotes if the user has seen the Drawer when the app loads for the first time */
- private boolean m_hasUserSeenDrawer;
-
- /** ArrayList of DrawerItems to be displayed in the Drawer */
- private ArrayList<DrawerItem> m_drawerItems;
-
- /** Flag that marks if drawer is sliding outwards and being displayed */
- private boolean m_shouldHideOptionsMenu = false;
-}