X-Git-Url: https://git.mdrn.pl/mobilnebezpieczenstwo.git/blobdiff_plain/4b08fd3d054a0b4872d60adc7627bfdef069c39b..be45943134f44b96728f516e91a66149e51443c0:/app/src/main/java/com/samsung/srpol/ui/drawer/MenuFragment.java diff --git a/app/src/main/java/com/samsung/srpol/ui/drawer/MenuFragment.java b/app/src/main/java/com/samsung/srpol/ui/drawer/MenuFragment.java new file mode 100644 index 0000000..42d7c6e --- /dev/null +++ b/app/src/main/java/com/samsung/srpol/ui/drawer/MenuFragment.java @@ -0,0 +1,128 @@ +/* + Copyright (C) 2014 Samsung Electronics Polska Sp. z o.o. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU AFFERO General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + You may obtain a copy of the License at + + http://www.gnu.org/licenses/agpl-3.0.txt + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +package com.samsung.srpol.ui.drawer; + +import com.samsung.srpol.R; +import com.samsung.srpol.loader.AppListLoader; + +import android.support.v4.app.Fragment; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ListView; + + +public class MenuFragment extends Fragment { + + private static final String SAVED_POSITION = "saved_position"; + + private NavigationDrawerItemListener mDrawerItemListener; + + private ListView mMenuListView; + private CategoryArrayAdapter mAdapter; + + private int mSelectedPosition = 0; + + public MenuFragment() { + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + if (savedInstanceState != null) { + mSelectedPosition = savedInstanceState + .getInt(SAVED_POSITION); + selectItem(mSelectedPosition); + } + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + setHasOptionsMenu(true); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View mRootView = (View) inflater.inflate( + R.layout.fragment_navigation_drawer, container, false); + mMenuListView = (ListView) mRootView + .findViewById(R.id.fragment_listView); + mMenuListView + .setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, + int position, long id) { + selectItem(position); + } + }); + mAdapter = new CategoryArrayAdapter(getActivity().getApplicationContext()); + mMenuListView.setAdapter(mAdapter); + + mMenuListView.setItemChecked(mSelectedPosition, true); + return mRootView; + } + + public void refresh() { + if (mAdapter != null) { + mAdapter.clear(); + mAdapter.addAll(AppListLoader.getCategories()); + mAdapter.notifyDataSetChanged(); + } + } + + + private void selectItem(int position) { + mSelectedPosition = position; + if (mMenuListView != null) { + mMenuListView.setItemChecked(position, true); + } + + if (mDrawerItemListener != null) { + mDrawerItemListener.onNavigationDrawerItemSelected(position); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mDrawerItemListener = null; + } + + public void setDrawerItemListener(NavigationDrawerItemListener drawerItemListener) { + mDrawerItemListener = drawerItemListener; + } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putInt(SAVED_POSITION, mSelectedPosition); + } + + public void notifyDataSetChanged(){ + if(mAdapter != null){ + mAdapter.notifyDataSetChanged(); + } + } +}