/*
* Copyright (C) 2015 University of South Florida (sjbarbeau@gmail.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onebusaway.android.report.ui.adapter;
import org.onebusaway.android.R;
import android.content.Context;
import android.database.DataSetObserver;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SpinnerAdapter;
import android.widget.TextView;
import java.util.ArrayList;
public class EntrySpinnerAdapter implements SpinnerAdapter{
private ArrayList<SpinnerItem> mSpinnerItems;
private LayoutInflater vi;
public EntrySpinnerAdapter(Context ctx, ArrayList<SpinnerItem> spinnerItems) {
this.mSpinnerItems = spinnerItems;
vi = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public void registerDataSetObserver(DataSetObserver dataSetObserver) {
}
@Override
public void unregisterDataSetObserver(DataSetObserver dataSetObserver) {
}
@Override
public int getCount() {
return mSpinnerItems.size();
}
@Override
public SpinnerItem getItem(int pos) {
return mSpinnerItems.get(pos);
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
final SpinnerItem i = mSpinnerItems.get(position);
if (i != null) {
if(i.isSection()){
// Section Header
SectionItem si = (SectionItem)i;
v = vi.inflate(R.layout.list_item_section, null);
v.setOnClickListener(null);
v.setOnLongClickListener(null);
v.setLongClickable(false);
final TextView sectionView = (TextView) v.findViewById(R.id.list_item_section_text);
sectionView.setText(si.getTitle());
}else{
ServiceSpinnerItem ei = (ServiceSpinnerItem)i;
v = vi.inflate(R.layout.list_item_entry, null);
final TextView title = (TextView)v.findViewById(R.id.list_item_entry_title);
if (title != null)
title.setText(ei.getService().getService_name());
}
}
return v;
}
@Override
public int getItemViewType(int i) {
return i;
}
@Override
public int getViewTypeCount() {
return 1;
}
@Override
public boolean isEmpty() {
return false;
}
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
return this.getView(position, convertView, parent);
}
}