package co.smartreceipts.android.model.impl.columns.distance; import android.support.annotation.NonNull; import java.util.List; import co.smartreceipts.android.model.Distance; import co.smartreceipts.android.model.PriceCurrency; import co.smartreceipts.android.model.factory.PriceBuilderFactory; import co.smartreceipts.android.model.impl.columns.AbstractColumnImpl; import co.smartreceipts.android.sync.model.SyncState; public final class DistancePriceColumn extends AbstractColumnImpl<Distance> { private final boolean mAllowSpecialCharacters; public DistancePriceColumn(int id, @NonNull String name, @NonNull SyncState syncState, boolean allowSpecialCharacters) { super(id, name, syncState); mAllowSpecialCharacters = allowSpecialCharacters; } @Override public String getValue(@NonNull Distance distance) { if (mAllowSpecialCharacters) { return distance.getPrice().getCurrencyFormattedPrice(); } else { return distance.getPrice().getCurrencyCodeFormattedPrice(); } } @Override @NonNull public String getFooter(@NonNull List<Distance> distances) { final PriceCurrency tripCurrency = !distances.isEmpty() ? distances.get(0).getTrip().getTripCurrency() : null; if (mAllowSpecialCharacters) { return new PriceBuilderFactory().setPriceables(distances, tripCurrency).build().getCurrencyFormattedPrice(); } else { return new PriceBuilderFactory().setPriceables(distances, tripCurrency).build().getCurrencyCodeFormattedPrice(); } } }