package org.openlmis.core.training; import android.content.res.AssetManager; import android.os.Environment; import org.openlmis.core.LMISApp; import org.openlmis.core.exceptions.LMISException; import org.openlmis.core.manager.SharedPreferenceMgr; import org.openlmis.core.utils.FileUtil; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.sql.SQLException; public class TrainingEnvironmentHelper { private static TrainingEnvironmentHelper helper; public static TrainingEnvironmentHelper getInstance() { if (helper == null) { helper = new TrainingEnvironmentHelper(); } return helper; } public void setUpData() { setUpDataForTrainingEnvironment(); setSyncedForTrainingEnvironment(); } private void setSyncedForTrainingEnvironment() { SharedPreferenceMgr.getInstance().setLastSyncProductTime(String.valueOf(LMISApp.getInstance().getCurrentTimeMillis())); SharedPreferenceMgr.getInstance().setLastMonthStockCardDataSynced(true); SharedPreferenceMgr.getInstance().setRequisitionDataSynced(true); SharedPreferenceMgr.getInstance().setRapidTestsDataSynced(true); SharedPreferenceMgr.getInstance().setRnrLastSyncTime(); SharedPreferenceMgr.getInstance().setShouldSyncLastYearStockCardData(false); } private void setUpDataForTrainingEnvironment() { File currentDB = new File(Environment.getDataDirectory(), "//data//" + LMISApp.getContext().getApplicationContext().getPackageName() + "//databases//lmis_db"); try { AssetManager assetManager = LMISApp.getContext().getAssets(); InputStream inputStream = assetManager.open("lmis_training.db"); FileUtil.copyInputStreamToFile(inputStream, currentDB); TrainingSqliteOpenHelper.getInstance(LMISApp.getContext()).updateTimeInDB(); } catch (IOException | SQLException e) { new LMISException(e).reportToFabric(); } } }