/* * 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); } }