/*
* Copyright 2015 Rudson Lima
*
* 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 br.liveo.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.List;
import br.liveo.navigationliveo.R;
public class NavigationLiveoAdapter extends BaseAdapter {
private int mColorIcon = 0;
private int mColorName = 0;
private int mColorSeparator = 0;
private int mNewSelector = 0;
private int mColorDefault = 0;
private final Context mcontext;
private boolean mRemoveAlpha = false;
private final List<NavigationLiveoItemAdapter> mList;
public NavigationLiveoAdapter(Context context, List<NavigationLiveoItemAdapter> list, boolean removeAlpha, List<Integer> extra) {
this.mList = list;
this.mcontext = context;
this.mNewSelector = extra.get(0);
this.mColorDefault = extra.get(1);
this.mColorIcon = extra.get(2);
this.mColorName = extra.get(3);
this.mColorSeparator = extra.get(4);
this.mRemoveAlpha = removeAlpha;
}
@Override
public int getCount() {
return mList.size();
}
@Override
public NavigationLiveoItemAdapter getItem(int position) {
return mList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
return getItem(position).isHeader ? 0 : 1;
}
@Override
public boolean isEnabled(int position) {
return !getItem(position).isHeader;
}
public void setChecked(int pos, boolean checked) {
if (pos-1 >= 0) {
mList.get(pos-1).checked = checked;
notifyDataSetChanged();
}
}
public void resetarCheck() {
for (int i = 0; i < mList.size(); i++) {
mList.get(i).checked = false;
}
this.notifyDataSetChanged();
}
public void setNewName(int position, String name){
mList.get(position).title = name;
notifyDataSetChanged();
}
public void setNewIcon(int position, int icon){
mList.get(position).icon = icon;
notifyDataSetChanged();
}
public void setNewCounterValue(int position, int value){
mList.get(position).counter = value;
notifyDataSetChanged();
}
public void setNewInformationItem(int position, String name, int icon, int counter){
mList.get(position).title = name;
mList.get(position).icon = icon;
mList.get(position).counter = counter;
notifyDataSetChanged();
}
public void setIncreasingCounterValue(int position, int value){
mList.get(position).counter = ( mList.get(position).counter + value);
notifyDataSetChanged();
}
public void setDecreaseCountervalue(int position, int value){
mList.get(position).counter = ( mList.get(position).counter - value);
notifyDataSetChanged();
}
class ViewHolder {
public TextView title;
public ImageView icon;
public View separator;
public RelativeLayout layoutDados;
public LinearLayout layoutSeparator;
public ViewHolder(){
}
}
private void setAlpha(View v, float alpha) {
if (!mRemoveAlpha) {
v.setAlpha(alpha);
}else{
v.setAlpha(1f);
}
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
NavigationLiveoItemAdapter item = mList.get(position);
if (convertView == null) {
holder = new ViewHolder();
int layout = R.layout.navigation_list_item;
LayoutInflater inflater = (LayoutInflater) mcontext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(layout, parent, false);
holder.title = (TextView) convertView.findViewById(R.id.title);
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
holder.separator = convertView.findViewById(R.id.separator);
holder.layoutDados = (RelativeLayout) convertView.findViewById(R.id.layoutData);
holder.layoutSeparator = (LinearLayout) convertView.findViewById(R.id.layoutSeparator);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
if (holder.title != null){
holder.title.setText(item.title);
if (!item.isHeader) {
holder.layoutSeparator.setVisibility(View.GONE);
holder.layoutDados.setVisibility(View.VISIBLE);
}else{
holder.layoutSeparator.setVisibility(View.VISIBLE);
if (mColorSeparator > 0){
holder.separator.setBackgroundResource(mColorSeparator);
}
if (item.title.equals("")){
holder.title.setVisibility(View.GONE);
holder.layoutDados.setVisibility(View.GONE);
}else{
holder.layoutDados.setVisibility(View.VISIBLE);
}
}
}
if (holder.icon != null) {
if (item.icon != 0) {
holder.icon.setVisibility(View.VISIBLE);
holder.icon.setImageResource(item.icon);
} else {
holder.icon.setVisibility(View.GONE);
}
}
if (!item.isHeader) {
if (item.checked) {
convertView.setBackgroundResource((!item.removeSelector ? ( mNewSelector == 0 ? R.drawable.selector_check_item_navigation : mNewSelector) : R.drawable.selector_no_check_item_navigation));
} else {
convertView.setBackgroundResource(R.drawable.selector_no_check_item_navigation);
}
}else{
convertView.setBackgroundResource(R.drawable.selector_no_check_item_navigation);
}
return convertView;
}
}