package com.door43.translationstudio.tasks; import android.content.ContentResolver; import android.net.Uri; import com.door43.tools.reporting.Logger; import com.door43.translationstudio.AppContext; import com.door43.translationstudio.core.ArchiveDetails; import com.door43.translationstudio.core.TargetTranslation; import com.door43.translationstudio.core.Translator; import com.door43.util.tasks.ManagedTask; import org.apache.commons.io.FileUtils; import java.io.File; import java.util.Locale; /** * Created by blm on 5/13/16. */ public class ExamineImportsForCollisionsTask extends ManagedTask { public static final String TASK_ID = "search_imports_for_collisions_task"; public static final String TAG = ExamineImportsForCollisionsTask.class.getSimpleName(); public boolean mSuccess; private ContentResolver resolver; public Uri mContentUri; public File mProjectsFolder; public boolean mAlreadyPresent; public String mProjectsFound; /** * */ public ExamineImportsForCollisionsTask(ContentResolver resolver, Uri mContentUri) { mSuccess = false; mAlreadyPresent = false; this.resolver = resolver; this.mContentUri = mContentUri; } public void cleanup() { if(mProjectsFolder != null) { FileUtils.deleteQuietly(mProjectsFolder); } mProjectsFolder = null; } @Override public void start() { mSuccess = false; try { mProjectsFolder = File.createTempFile("targettranslation", "." + Translator.ARCHIVE_EXTENSION); FileUtils.copyInputStreamToFile(resolver.openInputStream(mContentUri), mProjectsFolder); ArchiveDetails details = ArchiveDetails.newInstance(mProjectsFolder, Locale.getDefault().getLanguage(), AppContext.getLibrary()); mProjectsFound = ""; mAlreadyPresent = false; for (ArchiveDetails.TargetTranslationDetails td : details.targetTranslationDetails) { mProjectsFound += td.projectName + " - " + td.targetLanguageName + ", "; String targetTranslationId = td.targetTranslationSlug; TargetTranslation localTargetTranslation = AppContext.getTranslator().getTargetTranslation(targetTranslationId); if ((localTargetTranslation != null)) { mAlreadyPresent = true; } } mProjectsFound = mProjectsFound.replaceAll(", $", ""); mSuccess = true; } catch (Exception e) { Logger.e(TAG,"Error processing input file: " + mContentUri.toString()); } } }