Android Open Source - mint Navigation Fragment






From Project

Back to project page mint.

License

The source code is released under:

GNU General Public License

If you think the Android project mint listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.gmail.altakey.mint.fragment;
/*  www.  j a va2  s  .com*/
import android.app.ListFragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.database.CursorWrapper;
import android.widget.ListAdapter;
import android.widget.CursorAdapter;
import android.widget.SimpleCursorAdapter;
import android.content.Loader;
import android.app.LoaderManager;
import android.content.CursorLoader;
import android.content.Context;
import android.widget.TextView;
import android.widget.ListView;

import com.slidingmenu.lib.SlidingMenu;
import com.slidingmenu.lib.app.SlidingActivity;

import com.gmail.altakey.mint.R;
import com.gmail.altakey.mint.provider.TaskCountProvider;
import com.gmail.altakey.mint.util.FilterType;
import com.gmail.altakey.mint.util.LoaderUtil;

public class NavigationFragment extends ListFragment {
    private CursorAdapter mAdapter;
    private ContentLoaderManipulator mContentLoaderManip = new ContentLoaderManipulator();

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        mAdapter = new NavigationAdapter(getActivity(), null);
        setListAdapter(mAdapter);
        LoaderUtil.initLoader(1, null, mContentLoaderManip, getLoaderManager());
    }

    @Override
    public void onResume() {
        super.onResume();
        LoaderUtil.initLoader(1, null, mContentLoaderManip, getLoaderManager());
    }

    @Override
    public void onListItemClick(ListView lv, View v, int position, long id) {
        super.onListItemClick(lv, v, position, id);

        final CursorWrapper cw = (CursorWrapper)lv.getItemAtPosition(position);

        final int type = cw.getInt(TaskCountProvider.COL_TYPE);
        if (type != TaskCountProvider.TYPE_SECTION) {
            final String title = cw.getString(TaskCountProvider.COL_COOKIE);
            final int id_ = cw.getInt(TaskCountProvider.COL_ID);

            final FilterType filter = new FilterType();
            switch (type) {
            case TaskCountProvider.TYPE_STATUS:
                if (id_ == -1) {
                    filter.makeHot();
                } else {
                    filter.setTitle(title);
                    filter.setSimpleSelection(FilterType.TYPE_STATUS, id_);
                }
                break;
            case TaskCountProvider.TYPE_FOLDER:
                filter.setTitle(title);
                filter.setSimpleSelection(FilterType.TYPE_FOLDER, id_);
                break;
            case TaskCountProvider.TYPE_CONTEXT:
                filter.setTitle(title);
                filter.setSimpleSelection(FilterType.TYPE_CONTEXT, id_);
                break;
            }

            try {
                final SlidingMenu menu = ((SlidingActivity)getActivity()).getSlidingMenu();
                menu.toggle();
            } catch (ClassCastException e) {
            }

            getFragmentManager()
                .beginTransaction()
                .replace(R.id.frag, TaskListFragment.newInstance(filter), TaskListFragment.TAG)
                .commit();
        }
    }

    private static class NavigationAdapter extends CursorAdapter {
        public NavigationAdapter(Context context, Cursor c) {
            super(context, c);
        }

        public NavigationAdapter(Context context, Cursor c, boolean autoRequery) {
            super(context, c, autoRequery);
        }

        public NavigationAdapter(Context context, Cursor c, int flags) {
            super(context, c, flags);
        }

        @Override
        public View newView(Context context, Cursor cursor, ViewGroup parent) {
            final LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            final View v = inflater.inflate(R.layout.nav_item, parent, false);
            bindView(v, context, cursor);
            return v;
        }

        @Override
        public void bindView(View view, Context context, Cursor cursor) {
            final TextView title = (TextView)view.findViewById(R.id.title);
            final TextView section_header = (TextView)view.findViewById(R.id.section_header);

            final String itemTitle = cursor.getString(TaskCountProvider.COL_COOKIE);
            final int itemType = cursor.getInt(TaskCountProvider.COL_TYPE);

            if (itemType == TaskCountProvider.TYPE_SECTION) {
                section_header.setText(itemTitle);
                section_header.setVisibility(View.VISIBLE);
                title.setVisibility(View.GONE);
            } else {
                title.setText(itemTitle);
                title.setVisibility(View.VISIBLE);
                section_header.setVisibility(View.GONE);
            }
        }
    }

    private class ContentLoaderManipulator implements LoaderManager.LoaderCallbacks<Cursor> {
        @Override
        public Loader<Cursor> onCreateLoader(int id, Bundle args) {
            setListShown(false);
            return new CursorLoader(
                getActivity(),
                TaskCountProvider.CONTENT_URI_TOP,
                TaskCountProvider.PROJECTION,
                null,
                null,
                null
            );
        }

        @Override
        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
            getActivity().setProgressBarIndeterminateVisibility(false);
            mAdapter.changeCursor(data);
            setListShown(true);
        }

        @Override
        public void onLoaderReset(Loader<Cursor> loader) {
            mAdapter.changeCursor(null);
        }
    }
}




Java Source Code List

com.gmail.altakey.mint.activity.ConfigActivity.java
com.gmail.altakey.mint.activity.MainActivity.java
com.gmail.altakey.mint.activity.TaskEditActivity.java
com.gmail.altakey.mint.activity.TaskListActivity.java
com.gmail.altakey.mint.activity.WelcomeActivity.java
com.gmail.altakey.mint.fragment.NavigationFragment.java
com.gmail.altakey.mint.fragment.TaskEditFragment.java
com.gmail.altakey.mint.fragment.TaskGroupListFragment.java
com.gmail.altakey.mint.fragment.TaskListFragment.java
com.gmail.altakey.mint.fragment.TaskPostFragment.java
com.gmail.altakey.mint.fragment.TaskStatusListFragment.java
com.gmail.altakey.mint.fragment.WelcomeFragment.java
com.gmail.altakey.mint.konst.ConfigKey.java
com.gmail.altakey.mint.model.Schema.java
com.gmail.altakey.mint.model.TaskContext.java
com.gmail.altakey.mint.model.TaskFolder.java
com.gmail.altakey.mint.model.TaskStatus.java
com.gmail.altakey.mint.model.Task.java
com.gmail.altakey.mint.provider.BaseProvider.java
com.gmail.altakey.mint.provider.ProviderMap.java
com.gmail.altakey.mint.provider.TaskContextProvider.java
com.gmail.altakey.mint.provider.TaskCountProvider.java
com.gmail.altakey.mint.provider.TaskFolderProvider.java
com.gmail.altakey.mint.provider.TaskProvider.java
com.gmail.altakey.mint.service.ToodledoClientService.java
com.gmail.altakey.mint.service.ToodledoClient.java
com.gmail.altakey.mint.util.Authenticator.java
com.gmail.altakey.mint.util.FilterType.java
com.gmail.altakey.mint.util.Joiner.java
com.gmail.altakey.mint.util.LoaderUtil.java
com.gmail.altakey.mint.util.Notifier.java
com.gmail.altakey.mint.util.ProviderUtils.java
com.gmail.altakey.mint.util.SyncPoker.java
com.gmail.altakey.mint.util.VolatileDialog.java
com.slidingmenu.example.AttachExample.java
com.slidingmenu.example.BaseActivity.java
com.slidingmenu.example.ExampleListActivity.java
com.slidingmenu.example.LeftAndRightActivity.java
com.slidingmenu.example.PropertiesActivity.java
com.slidingmenu.example.SampleListFragment.java
com.slidingmenu.example.SlidingContent.java
com.slidingmenu.example.SlidingTitleBar.java
com.slidingmenu.example.Util.java
com.slidingmenu.example.ViewPagerActivity.java
com.slidingmenu.example.anim.CustomAnimation.java
com.slidingmenu.example.anim.CustomScaleAnimation.java
com.slidingmenu.example.anim.CustomSlideAnimation.java
com.slidingmenu.example.anim.CustomZoomAnimation.java
com.slidingmenu.example.fragments.BirdActivity.java
com.slidingmenu.example.fragments.BirdGridFragment.java
com.slidingmenu.example.fragments.BirdMenuFragment.java
com.slidingmenu.example.fragments.ColorFragment.java
com.slidingmenu.example.fragments.ColorMenuFragment.java
com.slidingmenu.example.fragments.FragmentChangeActivity.java
com.slidingmenu.example.fragments.ResponsiveUIActivity.java
com.slidingmenu.lib.CanvasTransformerBuilder.java
com.slidingmenu.lib.CustomViewAbove.java
com.slidingmenu.lib.CustomViewBehind.java
com.slidingmenu.lib.MenuInterface.java
com.slidingmenu.lib.SlidingMenu.java
com.slidingmenu.lib.app.SlidingActivityBase.java
com.slidingmenu.lib.app.SlidingActivityHelper.java
com.slidingmenu.lib.app.SlidingActivity.java
com.slidingmenu.lib.app.SlidingFragmentActivity.java
com.slidingmenu.lib.app.SlidingListActivity.java
com.slidingmenu.lib.app.SlidingMapActivity.java
com.slidingmenu.lib.app.SlidingPreferenceActivity.java