package com.openfarmanager.android.adapters;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.openfarmanager.android.App;
import com.openfarmanager.android.R;
import com.openfarmanager.android.core.network.NetworkApi;
import com.openfarmanager.android.model.NetworkAccount;
import java.util.List;
/**
* @author Vlad Namashko
*/
public class NetworkAccountChooserAdapter extends BaseAdapter {
private NetworkApi mApi;
private List<NetworkAccount> mAccounts;
private OnDeleteItemListener mListener;
public NetworkAccountChooserAdapter(NetworkApi api, OnDeleteItemListener listener) {
mApi = api;
mListener = listener;
mAccounts = mApi.getAuthorizedAccounts();
}
public void dataSetChanged() {
mAccounts = mApi.getAuthorizedAccounts();
notifyDataSetChanged();
}
@Override
public int getCount() {
return mAccounts.size() + 1;
}
@Override
public Object getItem(int i) {
if (i == 0) {
return mApi.newAccount();
}
return mAccounts.get(i - 1);
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View convertView, ViewGroup viewGroup) {
if (convertView == null) {
convertView = View.inflate(App.sInstance.getApplicationContext(), R.layout.network_account_item, null);
}
final NetworkAccount account = (NetworkAccount) getItem(i);
convertView.setTag(account);
((TextView) convertView.findViewById(R.id.text)).setText(account.getUserName());
convertView.findViewById(R.id.delete).setVisibility(i == 0 ? View.GONE : View.VISIBLE);
convertView.findViewById(R.id.delete).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mListener.onAccountDelete(account);
}
});
return convertView;
}
public static interface OnDeleteItemListener {
void onAccountDelete(NetworkAccount account);
}
}