package it.angelic.soulissclient.model.db; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.util.Log; import java.util.ArrayList; import java.util.Calendar; import it.angelic.soulissclient.Constants; import it.angelic.soulissclient.util.FontAwesomeUtil; /** * Classe helper per l'esecuzione di interrogazioni al DB, Inserimenti eccetera * * @author Ale */ public class SoulissDBLowHelper extends SoulissDBHelper { public SoulissDBLowHelper(Context context) { super(context); } // Database fields public static synchronized SQLiteDatabase getDatabase() { return database; } /** * aggiorna l'health dei nodi, pensato per la risposta UDP * della health request. L'array di byte contiene la salute dei nodi * * @return */ public int refreshNodeHealths(ArrayList<Short> healths, int startOffset) { int ret = 0; for (int i = 0; i < healths.size(); i++) { ContentValues values = new ContentValues(); values.put(SoulissDB.COLUMN_NODE_LASTMOD, Calendar.getInstance().getTime().getTime()); values.put(SoulissDB.COLUMN_NODE_HEALTH, healths.get(i)); long upd = database.update(SoulissDB.TABLE_NODES, values, SoulissDB.COLUMN_NODE_ID + " = " + String.valueOf(i + startOffset), null); ret += upd; } return ret; } /** * In seguito alla DB structure, viene aggiornata * la struttura dei nodi, senza cancellarla * @param numnodes nodi da creare * */ public int createOrUpdateStructure(int numnodes) { int ret = 0; for (int i = 0; i < numnodes; i++) { ContentValues values = new ContentValues(); // wrap values from object values.put(SoulissDB.COLUMN_NODE_LASTMOD, Calendar.getInstance().getTime().getTime()); values.put(SoulissDB.COLUMN_NODE_ID, i); values.put(SoulissDB.COLUMN_NODE_HEALTH, 0); //values.put(SoulissDB.COLUMN_NODE_ICON, nodeIN.getIconResourceId()); int upd = database.update(SoulissDB.TABLE_NODES, values, SoulissDB.COLUMN_NODE_ID + " = " + i, null); if (upd == 0) { values.put(SoulissDB.COLUMN_NODE_ICON, FontAwesomeUtil.getCodeIndexByFontName(context, "fa-cube")); long insertId = database.insert(SoulissDB.TABLE_NODES, null, values); Log.d(Constants.TAG, "Node " + i + " insert returned: " + insertId); ret++; } else ret += upd; } return ret; } }