package org.openintents.filemanager.bookmarks;
import org.openintents.filemanager.R;
import org.openintents.filemanager.compatibility.BookmarkListActionHandler;
import org.openintents.filemanager.compatibility.BookmarkMultiChoiceModeHelper;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AbsListView;
import android.widget.ListView;
import android.widget.AbsListView.OnScrollListener;
/**
* @author George Venios
*/
public class BookmarkListFragment extends ListFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new BookmarkListAdapter(getActivity()));
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// Set list properties
getListView().setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
((BookmarkListAdapter) getListAdapter()).setScrolling(false);
} else
((BookmarkListAdapter) getListAdapter()).setScrolling(true);
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
}
});
getListView().requestFocus();
getListView().requestFocusFromTouch();
setEmptyText(getString(R.string.bookmark_empty));
// Handle item selection.
if(android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB){
registerForContextMenu(getListView());
} else {
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
BookmarkMultiChoiceModeHelper.listView_setMultiChoiceModeListener(getListView(), getActivity());
}
}
@Override
public boolean onContextItemSelected(MenuItem item) {
BookmarkListActionHandler.handleItemSelection(item, getListView());
return super.onContextItemSelected(item);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
MenuInflater inf = new MenuInflater(getActivity());
inf.inflate(R.menu.bookmarks, menu);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
String path = ((BookmarkListAdapter.Bookmark) getListAdapter().getItem(position)).path;
((BookmarkListActivity) getActivity()).onListItemClick(path);
}
}