package com.door43.translationstudio.tasks; import android.content.Intent; import android.net.Uri; import android.support.design.widget.Snackbar; import android.support.v4.content.FileProvider; import com.door43.tools.reporting.Logger; import com.door43.translationstudio.AppContext; import com.door43.translationstudio.R; import com.door43.translationstudio.core.Library; import com.door43.translationstudio.core.SourceTranslation; import com.door43.translationstudio.core.TargetTranslation; import com.door43.translationstudio.core.Translator; import com.door43.translationstudio.core.Typography; import com.door43.util.tasks.ManagedTask; import com.door43.widget.ViewUtil; import java.io.File; /** * Created by joel on 1/21/2016. */ public class PrintPDFTask extends ManagedTask { public static final String TASK_ID = "print_pdf_task"; private final TargetTranslation mTargetTranslation; private final File mDestFile; private final boolean includeImages; private final boolean includeIncompleteFrames; private boolean success; public PrintPDFTask(String targetTranslationId, File destFile, boolean includeImages, boolean includeIncompleteFrames) { mDestFile = destFile; this.includeImages = includeImages; this.includeIncompleteFrames = includeIncompleteFrames; mTargetTranslation = AppContext.getTranslator().getTargetTranslation(targetTranslationId); } @Override public void start() { publishProgress(-1, AppContext.context().getString(R.string.printing)); if(mTargetTranslation != null) { Library library = AppContext.getLibrary(); Translator translator = AppContext.getTranslator(); try { SourceTranslation sourceTranslation = AppContext.getLibrary().getDefaultSourceTranslation(mTargetTranslation.getProjectId(), "en"); File imagesDir = library.getImagesDir(); translator.exportPdf(library, mTargetTranslation, sourceTranslation.getFormat(), Typography.getAssetPath(AppContext.context()), imagesDir, includeImages, includeIncompleteFrames, mDestFile); if (mDestFile.exists()) { success = true; } else { success = false; } } catch (Exception e) { Logger.e(this.getClass().getName(), "Failed to export " + mTargetTranslation.getId() + " as pdf", e); success = false; } } publishProgress(1, AppContext.context().getString(R.string.printing)); } public boolean isSuccess() { return success; } }