package co.smartreceipts.android.workers.reports.pdf.pdfbox; import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.StringRes; import com.google.common.base.Preconditions; import com.tom_roush.pdfbox.pdmodel.common.PDRectangle; import co.smartreceipts.android.settings.UserPreferenceManager; import co.smartreceipts.android.workers.reports.pdf.colors.PdfColorManager; import co.smartreceipts.android.workers.reports.pdf.fonts.PdfFontManager; public class DefaultPdfBoxContext implements PdfBoxContext { private final Context mContext; private final PdfFontManager fontManager; private final PdfColorManager colorManager; private final UserPreferenceManager mPreferences; private PDRectangle mPageSize = PDRectangle.A4; public DefaultPdfBoxContext(@NonNull Context context, @NonNull PdfFontManager fontManager, @NonNull PdfColorManager colorManager, @NonNull UserPreferenceManager preferences) { mContext = context; this.fontManager = Preconditions.checkNotNull(fontManager); this.colorManager = Preconditions.checkNotNull(colorManager); mPreferences = preferences; } @Override public int getLineSpacing() { return 8; } @Override public float getPageMarginHorizontal() { return 32; } @Override public float getPageMarginVertical() { return 32; } @NonNull @Override public String getString(@StringRes int resId, Object... args) { return mContext.getString(resId, args); } @Override public void setPageSize(@NonNull PDRectangle rectangle) { mPageSize = Preconditions.checkNotNull(rectangle); } @NonNull @Override public Context getAndroidContext() { return mContext; } @NonNull @Override public PDRectangle getPageSize() { return mPageSize; } @NonNull @Override public UserPreferenceManager getPreferences() { return mPreferences; } @NonNull @Override public PdfFontManager getFontManager() { return fontManager; } @NonNull @Override public PdfColorManager getColorManager() { return colorManager; } }