/**
* Copyright (c) 2015 unfoldingWord
* http://creativecommons.org/licenses/MIT/
* See LICENSE file for details.
* Contributors:
* PJ Fechner <pj@actsmedia.com>
*/
package runnables;
import android.util.Log;
import org.json.JSONArray;
import org.json.JSONException;
import java.util.ArrayList;
import java.util.List;
import model.DaoDBHelper;
import model.daoModels.LanguageLocale;
import services.UWUpdaterService;
/**
* Created by PJ Fechner on 6/17/15.
* Runnable for updating a LanguageLocale
*/
public class UpdateLanguageLocaleRunnable implements Runnable{
private static final String TAG = "UpdateLangLocaleRunble";
private JSONArray jsonModels;
private UWUpdaterService updater;
public UpdateLanguageLocaleRunnable(JSONArray jsonModels, UWUpdaterService updater) {
this.jsonModels = jsonModels;
this.updater = updater;
DaoDBHelper.getDaoSession(updater.getApplicationContext()).getLanguageLocaleDao().deleteAll();
}
@Override
public void run() {
parseModels(jsonModels);
}
private void parseModels(JSONArray models){
List<LanguageLocale> locales = new ArrayList<LanguageLocale>();
Log.i(TAG, "Started Locales");
for(int i = 0; i < models.length(); i++){
try {
locales.add((LanguageLocale) new LanguageLocale().setupModelFromJson(models.getJSONObject(i)));
}
catch (JSONException e){
e.printStackTrace();
}
}
addAllLocales(locales);
}
private void addAllLocales(List<LanguageLocale> locales){
Log.d(TAG, "Will add all locales to DB");
DaoDBHelper.getDaoSession(updater.getApplicationContext()).getLanguageLocaleDao().insertOrReplaceInTx(locales);
Log.d(TAG, "Added all locales to DB");
updater.runnableFinished();
}
}