package co.smartreceipts.android.workers.reports.formatting; import android.content.Context; import android.support.annotation.NonNull; import com.google.common.base.Preconditions; import co.smartreceipts.android.model.Trip; import co.smartreceipts.android.settings.UserPreferenceManager; import co.smartreceipts.android.settings.catalog.UserPreference; public class SmartReceiptsFormattableString { private static final String REPORT_NAME = "%REPORT_NAME%"; private static final String USER_ID = "%USER_ID%"; private static final String REPORT_START = "%REPORT_START%"; private static final String REPORT_END = "%REPORT_END%"; private final String mString; private final Context mContext; private final Trip mTrip; private final UserPreferenceManager mPreferences; public SmartReceiptsFormattableString(@NonNull String string, @NonNull Context context, @NonNull Trip trip, @NonNull UserPreferenceManager preferences) { mString = Preconditions.checkNotNull(string); mContext = Preconditions.checkNotNull(context); mTrip = Preconditions.checkNotNull(trip); mPreferences = Preconditions.checkNotNull(preferences); } @Override public String toString() { return mString.replace(REPORT_NAME, mTrip.getName()).replace(USER_ID, mPreferences.get(UserPreference.ReportOutput.UserId)).replace(REPORT_START, mTrip.getFormattedStartDate(mContext, mPreferences.get(UserPreference.General.DateSeparator))).replace(REPORT_END, mTrip.getFormattedEndDate(mContext, mPreferences.get(UserPreference.General.DateSeparator))); } }