package com.duckduckgo.mobile.android.fragment;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.ListView;
import com.duckduckgo.mobile.android.DDGApplication;
import com.duckduckgo.mobile.android.R;
import com.duckduckgo.mobile.android.actionbar.DDGActionBarManager;
import com.duckduckgo.mobile.android.adapters.FavoriteResultCursorAdapter;
import com.duckduckgo.mobile.android.bus.BusProvider;
import com.duckduckgo.mobile.android.events.SyncAdaptersEvent;
import com.duckduckgo.mobile.android.views.FavoriteSearchListView;
import com.squareup.otto.Subscribe;
public class FavoriteResultTabFragment extends ListFragment {
public static final String TAG = "saved_result_tab_fragment";
private FavoriteSearchListView savedSearchView;
private FavoriteResultCursorAdapter savedSearchAdapter;
private int lastFirstVisibleItem;
private View fragmentView = null;
/** (non-Javadoc)
* @see android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
*/
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
fragmentView = inflater.inflate(R.layout.fragment_tab_favoriteresult, container, false);
//setRetainInstance(true);
BusProvider.getInstance().register(this);
return fragmentView;
}
@Override
public void onDestroyView() {
super.onDestroyView();
BusProvider.getInstance().unregister(this);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
savedSearchView = (FavoriteSearchListView) getListView();
savedSearchAdapter = new FavoriteResultCursorAdapter(getActivity(), DDGApplication.getDB().getCursorSavedSearch());
savedSearchView.setAdapter(savedSearchAdapter);
savedSearchView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
final int currentFirstVisibleItem = savedSearchView.getFirstVisiblePosition();;
if (currentFirstVisibleItem > lastFirstVisibleItem) {
DDGActionBarManager.getInstance().tryToHideTab();
} else if (currentFirstVisibleItem < lastFirstVisibleItem) {
DDGActionBarManager.getInstance().tryToShowTab();
}
lastFirstVisibleItem = currentFirstVisibleItem;
}
});
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
DDGActionBarManager.getInstance().tryToShowTab();
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
savedSearchView.onItemClick(l, v, position, id);
}
@Subscribe
public void onSyncAdapters(SyncAdaptersEvent event) {
if(savedSearchAdapter!=null) {
savedSearchAdapter.changeCursor(DDGApplication.getDB().getCursorSavedSearch());
savedSearchAdapter.notifyDataSetChanged();
}
}
}