package co.smartreceipts.android.adapters;
import android.net.Uri;
import android.support.v4.app.FragmentActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.squareup.picasso.Picasso;
import co.smartreceipts.android.activities.NavigationHandler;
import co.smartreceipts.android.model.Receipt;
import co.smartreceipts.android.settings.UserPreferenceManager;
import co.smartreceipts.android.settings.catalog.UserPreference;
import co.smartreceipts.android.sync.BackupProvidersManager;
import co.smartreceipts.android.sync.provider.SyncProvider;
import co.smartreceipts.android.sync.widget.backups.AutomaticBackupsInfoDialogFragment;
public class ReceiptCardAdapter extends CardAdapter<Receipt> {
private final NavigationHandler navigationHandler;
public ReceiptCardAdapter(FragmentActivity activity, NavigationHandler navigationHandler,
UserPreferenceManager preferences, BackupProvidersManager backupProvidersManager) {
super(activity, preferences, backupProvidersManager);
this.navigationHandler = navigationHandler;
}
@Override
protected String getPrice(Receipt data) {
return data.getPrice().getCurrencyFormattedPrice();
}
@Override
protected void setPriceTextView(TextView textView, Receipt data) {
textView.setText(getPrice(data));
}
@Override
protected void setNameTextView(TextView textView, Receipt data) {
if (TextUtils.isEmpty(data.getName())) {
textView.setVisibility(View.GONE);
} else {
textView.setText(data.getName());
textView.setVisibility(View.VISIBLE);
}
}
@Override
protected void setDateTextView(TextView textView, Receipt data) {
if (getPreferences().get(UserPreference.Layout.IncludeReceiptDateInLayout)) {
textView.setVisibility(View.VISIBLE);
textView.setText(data.getFormattedDate(getContext(), getPreferences().get(UserPreference.General.DateSeparator)));
}
else {
textView.setVisibility(View.GONE);
}
}
@Override
protected void setCategory(TextView textView, Receipt data) {
if (getPreferences().get(UserPreference.Layout.IncludeReceiptCategoryInLayout)) {
textView.setVisibility(View.VISIBLE);
textView.setText(data.getCategory().getName());
}
else {
textView.setVisibility(View.GONE);
}
}
@Override
protected void setMarker(TextView textView, Receipt data) {
if (getPreferences().get(UserPreference.Layout.IncludeReceiptFileMarkerInLayout)) {
textView.setVisibility(View.VISIBLE);
textView.setText(data.getMarkerAsString(getContext()));
}
else {
textView.setVisibility(View.GONE);
}
}
@Override
protected void setSyncStateImage(ImageView image, Receipt data) {
if (mBackupProvidersManager.getSyncProvider() == SyncProvider.GoogleDrive) {
image.setClickable(false);
if (data.getSyncState().isSynced(SyncProvider.GoogleDrive)) {
Picasso.with(getContext()).load(Uri.EMPTY).placeholder(mSyncedDrawable).into(image);
} else {
Picasso.with(getContext()).load(Uri.EMPTY).placeholder(mNotSyncedDrawable).into(image);
}
image.setOnClickListener(null);
} else {
image.setClickable(true);
Picasso.with(getContext()).load(Uri.EMPTY).placeholder(mCloudDisabledDrawable).into(image);
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
navigationHandler.showDialog(new AutomaticBackupsInfoDialogFragment());
}
});
}
}
}