/*
* Copyright (C) 2014 Steelkiwi Development, Julia Zudikova
*
* 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.skd.sketchview.adapters;
import java.util.ArrayList;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.skd.sketchview.R;
import com.skd.sketchview.settings.SkSize;
/*
* Brush/Eraser size list adapter. Used for Brush/Eraser size picker dialogs.
*/
public class SizeAdapter extends BaseAdapter {
public enum sizeType { BRUSH, ERASER };
private ArrayList<SkSize> sizes;
private SkSize curSize;
private sizeType type;
public SizeAdapter(ArrayList<SkSize> sizes, SkSize curSize, sizeType type) {
super();
this.sizes = sizes;
this.curSize = curSize;
this.type = type;
}
@Override
public int getCount() {
return sizes.size();
}
@Override
public SkSize getItem(int position) {
return sizes.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
SizeViewHolder holder;
if (convertView != null) {
holder = (SizeViewHolder) convertView.getTag();
}
else {
LayoutInflater li = LayoutInflater.from(parent.getContext());
convertView = li.inflate(R.layout.dialog_list_item, parent, false);
holder = new SizeViewHolder(convertView);
convertView.setTag(holder);
}
SkSize size = getItem(position);
if (size.getSizeResourceId() == curSize.getSizeResourceId()) {
convertView.setBackgroundColor(parent.getContext().getResources().getColor(R.color.list_highlight_color));
}
else {
convertView.setBackgroundResource(R.drawable.list_item_bg);
}
holder.mTitle.setText(size.getTitle());
switch (type) {
case BRUSH: {
holder.mPreview.setBackgroundColor(parent.getResources().getColor(android.R.color.transparent));
holder.mPreview.setImageResource(android.R.color.black);
break;
}
case ERASER: {
holder.mPreview.setBackgroundColor(parent.getResources().getColor(android.R.color.black));
holder.mPreview.setImageResource(android.R.color.white);
break;
}
}
int pad = 0;
switch (size.getSizeResourceId()) {
case R.dimen.size_brush_thin: pad = (int) parent.getContext().getResources().getDimension(R.dimen.preview_brush_thin_padding); break;
case R.dimen.size_brush_medium: pad = (int) parent.getContext().getResources().getDimension(R.dimen.preview_brush_medium_padding); break;
case R.dimen.size_brush_thick: pad = (int) parent.getContext().getResources().getDimension(R.dimen.preview_brush_thick_padding); break;
}
holder.mPreview.setPadding(pad, pad, pad, pad);
return convertView;
}
static class SizeViewHolder {
public TextView mTitle;
public ImageView mPreview;
public SizeViewHolder(View view) {
mTitle = (TextView) view.findViewById(R.id.title);
mPreview = (ImageView) view.findViewById(R.id.preview);
}
}
}