package com.code44.finance.adapters;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.code44.finance.R;
import java.util.ArrayList;
import java.util.List;
public class NavigationAdapter extends BaseAdapter {
private final Context context;
private final List<NavigationItem> items;
private final int selectedTextColor;
private final int normalTextColor;
private NavigationScreen selectedNavigationScreen;
public NavigationAdapter(Context context) {
this.context = context;
items = new ArrayList<>();
// TODO items.add(new NavigationItem(NAV_ID_USER, context.getString(R.string.user)));
items.add(new NavigationItem(NavigationScreen.Overview, context.getString(R.string.overview)));
items.add(new NavigationItem(NavigationScreen.Accounts, context.getString(R.string.accounts_other)));
items.add(new NavigationItem(NavigationScreen.Transactions, context.getString(R.string.transactions_other)));
items.add(new NavigationItem(NavigationScreen.Reports, context.getString(R.string.reports)));
selectedTextColor = context.getResources().getColor(R.color.text_brand);
normalTextColor = context.getResources().getColor(R.color.text_primary);
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int position) {
return items.get(position).getId();
}
@Override
public View getView(int position, View view, ViewGroup parent) {
final ViewHolder holder;
if (view == null) {
view = LayoutInflater.from(context).inflate(R.layout.li_navigation, parent, false);
holder = ViewHolder.setAsTag(view);
} else {
holder = (ViewHolder) view.getTag();
}
final NavigationItem item = items.get(position);
holder.title_TV.setText(item.getTitle());
holder.title_TV.setTextColor(item.getNavigationScreen() == selectedNavigationScreen ? selectedTextColor : normalTextColor);
return view;
}
public void setSelectedNavigationScreen(NavigationScreen navigationScreen) {
this.selectedNavigationScreen = navigationScreen;
notifyDataSetChanged();
}
public static enum NavigationScreen {
User(1), Overview(2), Accounts(3), Transactions(4), Reports(5);
private final int id;
NavigationScreen(int id) {
this.id = id;
}
public int getId() {
return id;
}
}
public static class NavigationItem {
private final NavigationScreen navigationScreen;
private final String title;
public NavigationItem(NavigationScreen navigationScreen, String title) {
this.navigationScreen = navigationScreen;
this.title = title;
}
public NavigationScreen getNavigationScreen() {
return navigationScreen;
}
public int getId() {
return navigationScreen.getId();
}
public String getTitle() {
return title;
}
}
private static class ViewHolder {
public TextView title_TV;
public static ViewHolder setAsTag(View view) {
final ViewHolder holder = new ViewHolder();
holder.title_TV = (TextView) view.findViewById(R.id.titleTextView);
view.setTag(holder);
return holder;
}
}
}