package com.ideabag.playtunes.fragment.search;
import com.google.android.gms.analytics.HitBuilders;
import com.google.android.gms.analytics.Tracker;
import com.google.gson.Gson;
import com.ideabag.playtunes.R;
import com.ideabag.playtunes.fragment.SaveScrollListFragment;
import com.ideabag.playtunes.util.SearchHistory;
import com.ideabag.playtunes.util.TrackerSingleton;
import com.ideabag.playtunes.util.GAEvent.Categories;
import com.ideabag.playtunes.util.GAEvent.Playlist;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
public class SearchSuggestionsFragment extends Fragment implements ListView.OnItemClickListener {
public static final String TAG = "Search Suggestions Fragment";
SearchFragment mSearchFragment;
ListView mListView;
private Button mButtonClearHistory;
private Tracker mTracker;
SearchHistory mSearchHistory;
public SearchSuggestionsFragment() {
}
public SearchSuggestionsFragment( SearchFragment parentFragment ) {
mSearchFragment = parentFragment;
mSearchHistory = new SearchHistory( getActivity() );
}
private void loadSearchHistory() {
mListView.setAdapter( mSearchHistory.getAdapter() );
if ( mSearchHistory.getAdapter().getCount() >= 1 ) {
mButtonClearHistory.setVisibility( View.VISIBLE );
} else {
mButtonClearHistory.setVisibility( View.GONE );
}
}
@Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState ) {
return inflater.inflate( R.layout.fragment_search_suggestions, container, false );
}
@Override public void onActivityCreated( Bundle savedInstanceState ) {
super.onActivityCreated( savedInstanceState );
mListView = ( ListView ) getView().findViewById( R.id.SuggestionListView );
mButtonClearHistory = ( Button ) getView().findViewById( R.id.ButtonClearHistory );
mListView.setDivider( getResources().getDrawable( R.drawable.list_divider ) );
mListView.setDividerHeight( 1 );
mListView.setOnItemClickListener( this );
mTracker = TrackerSingleton.getDefaultTracker( getActivity() );
loadSearchHistory();
mButtonClearHistory.setOnClickListener( new OnClickListener() {
@Override public void onClick( View v ) {
clearSearchHistory();
}
});
}
@Override public void onResume() {
super.onResume();
mTracker.setScreenName( TAG );
mTracker.send( new HitBuilders.AppViewBuilder().build() );
mTracker.send( new HitBuilders.EventBuilder()
.setCategory( Categories.PLAYLIST )
.setAction( Playlist.ACTION_SHOWLIST )
.setValue( mSearchHistory.getAdapter().getCount() )
.build());
}
@Override public void onDestroy() {
super.onDestroy();
mSearchHistory.destroy();
}
@Override public void onItemClick(AdapterView<?> list, View v, int position, long id ) {
String mSearchTerm = ( String ) mSearchHistory.getAdapter().getItem( position );
mSearchFragment.mQueryTextView.setText( mSearchTerm );
mSearchFragment.setMediaID( mSearchTerm );
mTracker.send( new HitBuilders.EventBuilder()
.setCategory( Categories.PLAYLIST )
.setAction( Playlist.ACTION_CLICK )
.setValue( position )
.build());
}
private void clearSearchHistory() {
mSearchHistory.clearHistory();
if ( mSearchHistory.getAdapter().getCount() > 0 ) {
mButtonClearHistory.setVisibility( View.VISIBLE );
} else {
mButtonClearHistory.setVisibility( View.GONE );
}
mTracker.send( new HitBuilders.EventBuilder()
.setCategory( Categories.PLAYLIST )
.setAction( Playlist.ACTION_SHOWLIST )
.setValue( mSearchHistory.getAdapter().getCount() )
.build());
}
}