package com.byagowi.persiancalendar.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.byagowi.persiancalendar.R;
import com.byagowi.persiancalendar.entity.CityEntity;
import com.byagowi.persiancalendar.util.Utils;
import com.byagowi.persiancalendar.view.preferences.LocationPreferenceDialog;
import java.util.List;
public class LocationAdapter extends RecyclerView.Adapter<LocationAdapter.ViewHolder> {
private String locale;
private List<CityEntity> cities;
private Utils utils;
LocationPreferenceDialog locationPreferenceDialog;
LayoutInflater layoutInflater;
public LocationAdapter(LocationPreferenceDialog locationPreferenceDialog) {
Context context = locationPreferenceDialog.getContext();
utils = Utils.getInstance(locationPreferenceDialog.getContext());
this.layoutInflater = LayoutInflater.from(context);
this.locationPreferenceDialog = locationPreferenceDialog;
this.cities = utils.getAllCities(true);
this.locale = utils.getAppLanguage();
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TextView country;
private TextView city;
public ViewHolder(View itemView) {
super(itemView);
itemView.setOnClickListener(this);
city = (TextView) itemView.findViewById(R.id.text1);
country = (TextView) itemView.findViewById(R.id.text2);
}
@Override
public void onClick(View view) {
locationPreferenceDialog.selectItem(cities.get(getAdapterPosition()).getKey());
}
}
@Override
public LocationAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(layoutInflater.inflate(R.layout.list_item_city_name, parent, false));
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
utils.setFont(holder.city);
holder.city.setText(locale.equals("en")
? cities.get(position).getEn()
: utils.shape(cities.get(position).getFa()));
utils.setFont(holder.country);
holder.country.setText(locale.equals("en")
? cities.get(position).getCountryEn()
: utils.shape(cities.get(position).getCountryFa()));
}
@Override
public int getItemCount() {
return cities.size();
}
}