package com.ptrprograms.navigationdrawer.views;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import com.ptrprograms.navigationdrawer.R;
import com.ptrprograms.navigationdrawer.adapters.DrawerAdapter;
import com.ptrprograms.navigationdrawer.events.DrawerNavigationItemClickedEvent;
import com.ptrprograms.navigationdrawer.models.DrawerItem;
import com.ptrprograms.navigationdrawer.utils.NavigationBus;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Created by PaulTR on 5/12/14.
*/
public class DrawerListView extends ListView implements ListView.OnItemClickListener {
public DrawerListView(Context context) {
this(context, null);
}
public DrawerListView(Context context, AttributeSet attrs) {
this( context, attrs, 0 );
}
public DrawerListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initAdapter();
setOnItemClickListener( this );
}
private void initAdapter() {
List<String> itemTitles = Arrays.asList( getResources().getStringArray( R.array.drawer_items ) );
List<DrawerItem> items = new ArrayList<DrawerItem>();
items.add( new DrawerItem( itemTitles.get( 0 ), R.drawable.ic_launcher ) );
items.add( new DrawerItem( itemTitles.get( 1 ), R.drawable.drawericon1 ) );
items.add( new DrawerItem( itemTitles.get( 2 ), R.drawable.drawericon2 ) );
DrawerAdapter adapter = new DrawerAdapter( getContext() );
adapter.addAll( items );
setAdapter(adapter);
}
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
String drawerText = ( (DrawerItem) adapterView.getAdapter().getItem( position ) ).getDrawerText();
NavigationBus.getInstance().post( new DrawerNavigationItemClickedEvent( drawerText ) );
}
}