/******************************************************************************* * Copyright 2013 Comcast Cable Communications Management, LLC * * 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 com.marshalchen.common.demoofui.artbook.data; import java.util.ArrayList; import com.marshalchen.common.demoofui.R; import com.marshalchen.common.uimodule.freeflow.core.FreeFlowItem; import com.marshalchen.common.uimodule.freeflow.core.Section; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import com.marshalchen.common.demoofui.artbook.models.DribbbleFeed; import com.marshalchen.common.demoofui.artbook.models.Shot; import com.marshalchen.common.uimodule.freeflow.core.SectionedAdapter; import com.squareup.picasso.Picasso; public class DribbbleDataAdapter implements SectionedAdapter { public static final String TAG = "DribbbleDataAdapter"; private Context context; private Section section; private int[] colors = new int[] { 0xcc152431, 0xff264C58, 0xffF5C543, 0xffE0952C, 0xff9A5325, 0xaaE0952C, 0xaa9A5325, 0xaa152431, 0xaa264C58, 0xaaF5C543, 0x44264C58, 0x44F5C543, 0x44152431 }; private boolean hideImages = false; public DribbbleDataAdapter(Context context) { this.context = context; section = new Section(); section.setSectionTitle("Pics"); } public void update(DribbbleFeed feed){ for(Object o : feed.getShots()){ section.getData().add(o); } Log.d(TAG, "Data updated to: "+section.getDataCount()); } @Override public long getItemId(int section, int position) { return section * 1000 + position; } @Override public View getItemView(int sectionIndex, int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = LayoutInflater.from(context).inflate( R.layout.free_flow_artbook_pic_view, parent, false); } ImageView img = (ImageView) convertView.findViewById(R.id.pic); if (hideImages) { int idx = position % colors.length; img.setBackgroundColor(colors[idx]); } else { Shot s = (Shot)(this.section.getData().get(position)); Picasso.with(context) .load(s.getImage_teaser_url()) .into(img); } return convertView; } @Override public View getHeaderViewForSection(int section, View convertView, ViewGroup parent) { return null; } @Override public int getNumberOfSections() { if(section.getData().size() == 0) return 0; return 1; } @Override public Section getSection(int index) { return section; } @Override public Class[] getViewTypes() { return new Class[] { LinearLayout.class }; } @Override public Class getViewType(FreeFlowItem proxy) { return LinearLayout.class; } @Override public boolean shouldDisplaySectionHeaders() { return false; } }