package com.duckduckgo.mobile.android.views; import android.content.Context; import android.database.Cursor; import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.Adapter; import android.widget.AdapterView; import android.widget.ListAdapter; import android.widget.ListView; import com.duckduckgo.mobile.android.R; import com.duckduckgo.mobile.android.bus.BusProvider; import com.duckduckgo.mobile.android.events.HistoryItemLongClickEvent; import com.duckduckgo.mobile.android.events.HistoryItemSelectedEvent; import com.duckduckgo.mobile.android.objects.history.HistoryObject; import com.duckduckgo.mobile.android.util.PreferencesManager; public class HistoryListView extends ListView implements android.widget.AdapterView.OnItemClickListener, android.widget.AdapterView.OnItemLongClickListener { // notification for "Save Recent Searches" feature awareness private View leftRecentHeaderView = null; public HistoryListView(Context context, AttributeSet attrs) { super(context, attrs); //leftRecentHeaderView = LayoutInflater.from(context).inflate(R.layout.recentsearch_notrecording_layout, null, false); this.setOnItemClickListener(this); this.setOnItemLongClickListener(this); } public void setOnHeaderClickListener(OnClickListener listener) { leftRecentHeaderView.setOnClickListener(listener); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.e("aaa", "history listview onitemclick"); Object adapter = getAdapter(); Cursor c = null; HistoryObject obj = null; Object itemClicked = ((Adapter) adapter).getItem(position); if(itemClicked instanceof Cursor) { c = (Cursor) itemClicked; obj = new HistoryObject(c); } if (obj != null) { Log.e("aaa", "object: "+obj.toString()); BusProvider.getInstance().post(new HistoryItemSelectedEvent(obj)); } } @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { Log.e("aaa", "history listview onitemlongclick"); Object adapter = getAdapter(); Cursor c = null; HistoryObject obj = null; Object itemClicked = ((Adapter) adapter).getItem(position); if(itemClicked instanceof Cursor) { c = (Cursor) itemClicked; obj = new HistoryObject(c); } if (obj != null) { BusProvider.getInstance().post(new HistoryItemLongClickEvent(obj)); } return true; } /** * Displays "not recording" indicator in left-menu if Save Searches option is disabled */ public void displayRecordHistoryDisabled() { if(PreferencesManager.getRecordHistory()) { if(findViewById(leftRecentHeaderView.getId()) != null) { removeHeaderView(leftRecentHeaderView); } } else { if(findViewById(leftRecentHeaderView.getId()) == null) { ListAdapter currentAdapter = getAdapter(); setAdapter(null); addHeaderView(leftRecentHeaderView); setAdapter(currentAdapter); } } } }