package com.code44.finance.data.backup; import com.code44.finance.utils.EventBus; import com.code44.finance.utils.IOUtils; import com.code44.finance.utils.errors.ImportError; import com.crashlytics.android.Crashlytics; public class DataImporterRunnable implements Runnable { private final EventBus eventBus; private final DataImporter dataImporter; public DataImporterRunnable(EventBus eventBus, DataImporter dataImporter) { this.eventBus = eventBus; this.dataImporter = dataImporter; } @Override public void run() { try { dataImporter.importData(); eventBus.post(dataImporter); } catch (Exception e) { e.printStackTrace(); final ImportError error = new ImportError("Data import has failed. " + e.getMessage(), e); Crashlytics.logException(error); eventBus.post(error); } finally { IOUtils.closeQuietly(dataImporter); } } }