|
|
|
|
@@ -9,23 +9,42 @@ import android.util.Log;
|
|
|
|
|
|
|
|
|
|
import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Accessory;
|
|
|
|
|
import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Character;
|
|
|
|
|
import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Game;
|
|
|
|
|
import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Kart;
|
|
|
|
|
import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Ruleset;
|
|
|
|
|
import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Track;
|
|
|
|
|
import com.de.aldo_apps.aldo.mariokartcircuitselector.database_models.Wheels;
|
|
|
|
|
import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;
|
|
|
|
|
|
|
|
|
|
import java.io.FileOutputStream;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
import java.io.OutputStream;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.DATABASE_NAME;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.DATABASE_OLD;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.DATABASE_PATH;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_100_CCM;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_150_CCM;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_200_CCM;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_50_CCM;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_ACCESSORY;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_AVAILABLE;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_BIKES;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_COVER_URI;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_FREE_FOR_ALL;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_GAME;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_ID;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_KART_FREE_FOR_ALL;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_MIRROR_CLASS;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_NAME;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_NUMBER;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_PACKAGE;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_WEIGHT;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.KEY_WHEELS;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.PROJECTION_CHARACTER;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.PROJECTION_GAME;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.PROJECTION_KART;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.PROJECTION_RULESET;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.PROJECTION_TRACK;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.TABLE_CHARACTER;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.TABLE_GAME;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.TABLE_KART;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.TABLE_RULESET;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.TABLE_TRACK;
|
|
|
|
|
import static com.de.aldo_apps.aldo.mariokartcircuitselector.Constants.TABLE_WHEELS;
|
|
|
|
|
|
|
|
|
|
@@ -179,9 +198,606 @@ public class DatabaseHandler extends SQLiteAssetHelper {
|
|
|
|
|
new String[]{String.valueOf(wheels.getId())});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -------------------------------------------------------------------------------------------
|
|
|
|
|
// -------------------------- "G E T A L L" F U N C T I O N S ----------------------------
|
|
|
|
|
// -------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Retrieves all Tracks from Database.
|
|
|
|
|
*
|
|
|
|
|
* @return List containing all Track Objects retrieved from Database.
|
|
|
|
|
*/
|
|
|
|
|
public ArrayList<Track> getAllTracks() {
|
|
|
|
|
final SQLiteDatabase database = this.getReadableDatabase();
|
|
|
|
|
|
|
|
|
|
final Cursor cursor = database.query(TABLE_TRACK, PROJECTION_TRACK, null,
|
|
|
|
|
null, null, null, null, null);
|
|
|
|
|
if (cursor != null) {
|
|
|
|
|
Log.d(TAG, "getAllTracks: Moving cursor to first.");
|
|
|
|
|
cursor.moveToFirst();
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllTracks: cursor is null");
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
final ArrayList<Track> allAvailableTrack = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
final int idIdx = cursor.getColumnIndex(KEY_ID);
|
|
|
|
|
final int nameIdx = cursor.getColumnIndex(KEY_NAME);
|
|
|
|
|
final int gameIdx = cursor.getColumnIndex(KEY_GAME);
|
|
|
|
|
final int packageIdx = cursor.getColumnIndex(KEY_PACKAGE);
|
|
|
|
|
final int numberIdx = cursor.getColumnIndex(KEY_NUMBER);
|
|
|
|
|
final int availableIdx = cursor.getColumnIndex(KEY_AVAILABLE);
|
|
|
|
|
|
|
|
|
|
final Track track = new Track();
|
|
|
|
|
boolean isValid = true;
|
|
|
|
|
if (idIdx >= 0) {
|
|
|
|
|
track.setId(cursor.getInt(idIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllTracks: No such column [" + KEY_ID + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nameIdx >= 0) {
|
|
|
|
|
track.setName(cursor.getString(nameIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllTracks: No such column [" + KEY_NAME + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (gameIdx >= 0) {
|
|
|
|
|
track.setGame(cursor.getString(gameIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllTracks: No such column [" + KEY_GAME + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (packageIdx >= 0) {
|
|
|
|
|
track.setPackage(cursor.getString(packageIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllTracks: No such column [" + KEY_PACKAGE + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (numberIdx >= 0) {
|
|
|
|
|
track.setPackage(cursor.getString(numberIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllTracks: No such column [" + KEY_NUMBER + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (availableIdx < 0) {
|
|
|
|
|
track.setAvailable(cursor.getInt(availableIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllTracks: No such column [" + KEY_AVAILABLE + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isValid) {
|
|
|
|
|
allAvailableTrack.add(track);
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllTracks: Do not add Track as one or more arguments are invalid.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} while (cursor.moveToNext());
|
|
|
|
|
|
|
|
|
|
cursor.close();
|
|
|
|
|
database.close();
|
|
|
|
|
|
|
|
|
|
// return contact
|
|
|
|
|
return allAvailableTrack;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Retrieves all Karts from Database.
|
|
|
|
|
*
|
|
|
|
|
* @return List containing all Kart Objects retrieved from Database.
|
|
|
|
|
*/
|
|
|
|
|
public ArrayList<Kart> getAllKarts() {
|
|
|
|
|
final SQLiteDatabase database = this.getReadableDatabase();
|
|
|
|
|
|
|
|
|
|
final Cursor cursor = database.query(TABLE_KART, PROJECTION_KART, null,
|
|
|
|
|
null, null, null, null, null);
|
|
|
|
|
if (cursor != null) {
|
|
|
|
|
Log.d(TAG, "getAllKarts: Moving cursor to first.");
|
|
|
|
|
cursor.moveToFirst();
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllKarts: cursor is null");
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
final ArrayList<Kart> allAvailableKarts = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
final int idIdx = cursor.getColumnIndex(KEY_ID);
|
|
|
|
|
final int nameIdx = cursor.getColumnIndex(KEY_NAME);
|
|
|
|
|
final int gameIdx = cursor.getColumnIndex(KEY_GAME);
|
|
|
|
|
final int weightIdx = cursor.getColumnIndex(KEY_WEIGHT);
|
|
|
|
|
final int accessoryIdx = cursor.getColumnIndex(KEY_ACCESSORY);
|
|
|
|
|
final int wheelsIdx = cursor.getColumnIndex(KEY_WHEELS);
|
|
|
|
|
final int freeForAllIdx = cursor.getColumnIndex(KEY_FREE_FOR_ALL);
|
|
|
|
|
final int availableIdx = cursor.getColumnIndex(KEY_AVAILABLE);
|
|
|
|
|
|
|
|
|
|
final Kart kart = new Kart();
|
|
|
|
|
boolean isValid = true;
|
|
|
|
|
if (idIdx >= 0) {
|
|
|
|
|
kart.setId(cursor.getInt(idIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllKarts: No such column [" + KEY_ID + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nameIdx >= 0) {
|
|
|
|
|
kart.setName(cursor.getString(nameIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllKarts: No such column [" + KEY_NAME + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (gameIdx >= 0) {
|
|
|
|
|
kart.setGame(cursor.getString(gameIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllKarts: No such column [" + KEY_GAME + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (weightIdx >= 0) {
|
|
|
|
|
kart.setWeight(cursor.getString(weightIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllKarts: No such column [" + KEY_WEIGHT + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (accessoryIdx >= 0) {
|
|
|
|
|
kart.setAccessory(cursor.getInt(accessoryIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllKarts: No such column [" + KEY_ACCESSORY + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (wheelsIdx >= 0) {
|
|
|
|
|
kart.setWheels(cursor.getInt(wheelsIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllKarts: No such column [" + KEY_WHEELS + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (freeForAllIdx >= 0) {
|
|
|
|
|
kart.setFreeForAll(cursor.getInt(freeForAllIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllKarts: No such column [" + KEY_FREE_FOR_ALL + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (availableIdx < 0) {
|
|
|
|
|
kart.setAvailable(cursor.getInt(availableIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllKarts: No such column [" + KEY_AVAILABLE + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isValid) {
|
|
|
|
|
allAvailableKarts.add(kart);
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllKarts: Do not add Kart as one or more arguments are invalid.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} while (cursor.moveToNext());
|
|
|
|
|
|
|
|
|
|
cursor.close();
|
|
|
|
|
database.close();
|
|
|
|
|
|
|
|
|
|
// return contact
|
|
|
|
|
return allAvailableKarts;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Retrieves all Characters from Database.
|
|
|
|
|
*
|
|
|
|
|
* @return List containing all Character Objects retrieved from Database.
|
|
|
|
|
*/
|
|
|
|
|
public ArrayList<Character> getAllCharacters() {
|
|
|
|
|
final SQLiteDatabase database = this.getReadableDatabase();
|
|
|
|
|
|
|
|
|
|
final Cursor cursor = database.query(TABLE_CHARACTER, PROJECTION_CHARACTER, null,
|
|
|
|
|
null, null, null, null, null);
|
|
|
|
|
if (cursor != null) {
|
|
|
|
|
Log.d(TAG, "getAllCharacters: Moving cursor to first.");
|
|
|
|
|
cursor.moveToFirst();
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllCharacters: cursor is null");
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
final ArrayList<Character> allAvailableCharacters = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
final int idIdx = cursor.getColumnIndex(KEY_ID);
|
|
|
|
|
final int nameIdx = cursor.getColumnIndex(KEY_NAME);
|
|
|
|
|
final int gameIdx = cursor.getColumnIndex(KEY_GAME);
|
|
|
|
|
final int weightIdx = cursor.getColumnIndex(KEY_WEIGHT);
|
|
|
|
|
final int availableIdx = cursor.getColumnIndex(KEY_AVAILABLE);
|
|
|
|
|
|
|
|
|
|
final Character character = new Character();
|
|
|
|
|
boolean isValid = true;
|
|
|
|
|
|
|
|
|
|
if (idIdx >= 0) {
|
|
|
|
|
character.setId(cursor.getInt(idIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllCharacters: No such column [" + KEY_ID + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nameIdx >= 0) {
|
|
|
|
|
character.setName(cursor.getString(nameIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllCharacters: No such column [" + KEY_NAME + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (gameIdx >= 0) {
|
|
|
|
|
character.setGame(cursor.getString(gameIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllCharacters: No such column [" + KEY_GAME + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (weightIdx >= 0) {
|
|
|
|
|
character.setWeight(cursor.getString(weightIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllCharacters: No such column [" + KEY_WEIGHT + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (availableIdx < 0) {
|
|
|
|
|
character.setAvailable(cursor.getInt(availableIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllCharacters: No such column [" + KEY_AVAILABLE + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isValid) {
|
|
|
|
|
allAvailableCharacters.add(character);
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllCharacters: Do not add Character as one or more arguments " +
|
|
|
|
|
"are invalid.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} while (cursor.moveToNext());
|
|
|
|
|
|
|
|
|
|
cursor.close();
|
|
|
|
|
database.close();
|
|
|
|
|
|
|
|
|
|
// return contact
|
|
|
|
|
return allAvailableCharacters;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Retrieves all Rulesets from Database.
|
|
|
|
|
*
|
|
|
|
|
* @return List containing all Ruleset Objects retrieved from Database.
|
|
|
|
|
*/
|
|
|
|
|
public ArrayList<Ruleset> getAllRulesets() {
|
|
|
|
|
final SQLiteDatabase database = this.getReadableDatabase();
|
|
|
|
|
|
|
|
|
|
final Cursor cursor = database.query(TABLE_RULESET, PROJECTION_RULESET, null,
|
|
|
|
|
null, null, null, null, null);
|
|
|
|
|
if (cursor != null) {
|
|
|
|
|
Log.d(TAG, "getAllRulesets: Moving cursor to first.");
|
|
|
|
|
cursor.moveToFirst();
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllRulesets: cursor is null");
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
final ArrayList<Ruleset> allAvailableRulesets = new ArrayList<>();
|
|
|
|
|
do {
|
|
|
|
|
final int idIdx = cursor.getColumnIndex(KEY_ID);
|
|
|
|
|
final int gameIdx = cursor.getColumnIndex(KEY_GAME);
|
|
|
|
|
final int mirrorIdx = cursor.getColumnIndex(KEY_MIRROR_CLASS);
|
|
|
|
|
final int ccm50Idx = cursor.getColumnIndex(KEY_50_CCM);
|
|
|
|
|
final int ccm100Idx = cursor.getColumnIndex(KEY_100_CCM);
|
|
|
|
|
final int ccm150Idx = cursor.getColumnIndex(KEY_150_CCM);
|
|
|
|
|
final int ccm200Idx = cursor.getColumnIndex(KEY_200_CCM);
|
|
|
|
|
final int freeForAllIdx = cursor.getColumnIndex(KEY_KART_FREE_FOR_ALL);
|
|
|
|
|
final int bikesIdx = cursor.getColumnIndex(KEY_BIKES);
|
|
|
|
|
|
|
|
|
|
final Ruleset ruleset = new Ruleset();
|
|
|
|
|
boolean isValid = true;
|
|
|
|
|
|
|
|
|
|
if (idIdx >= 0) {
|
|
|
|
|
ruleset.setId(cursor.getInt(idIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllRulesets: No such column [" + KEY_ID + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (gameIdx >= 0) {
|
|
|
|
|
ruleset.setGame(cursor.getString(gameIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllRulesets: No such column [" + KEY_GAME + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (mirrorIdx >= 0) {
|
|
|
|
|
ruleset.setGame(cursor.getString(gameIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllRulesets: No such column [" + KEY_GAME + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ccm50Idx >= 0) {
|
|
|
|
|
ruleset.set50CcmAvailable(cursor.getInt(ccm50Idx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllRulesets: No such column [" + KEY_50_CCM + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ccm100Idx >= 0) {
|
|
|
|
|
ruleset.set100CcmAvailable(cursor.getInt(ccm100Idx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllRulesets: No such column [" + KEY_100_CCM + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ccm150Idx >= 0) {
|
|
|
|
|
ruleset.set150CcmAvailable(cursor.getInt(ccm150Idx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllRulesets: No such column [" + KEY_150_CCM + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ccm200Idx >= 0) {
|
|
|
|
|
ruleset.set200CcmAvailable(cursor.getInt(ccm200Idx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllRulesets: No such column [" + KEY_200_CCM + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (freeForAllIdx >= 0) {
|
|
|
|
|
ruleset.setKartsFreeForAll(cursor.getInt(freeForAllIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllRulesets: No such column [" + KEY_KART_FREE_FOR_ALL + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (bikesIdx >= 0) {
|
|
|
|
|
ruleset.setBikesAvailable(cursor.getInt(bikesIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllRulesets: No such column [" + KEY_BIKES + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isValid) {
|
|
|
|
|
allAvailableRulesets.add(ruleset);
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllRulesets: Do not add Ruleset as one or more arguments " +
|
|
|
|
|
"are invalid.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} while (cursor.moveToNext());
|
|
|
|
|
|
|
|
|
|
cursor.close();
|
|
|
|
|
database.close();
|
|
|
|
|
|
|
|
|
|
// return contact
|
|
|
|
|
return allAvailableRulesets;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Retrieves all Accessories from Database.
|
|
|
|
|
*
|
|
|
|
|
* @return List containing all Accessory Objects retrieved from Database.
|
|
|
|
|
*/
|
|
|
|
|
public ArrayList<Accessory> getAllAccessories() {
|
|
|
|
|
final SQLiteDatabase database = this.getReadableDatabase();
|
|
|
|
|
|
|
|
|
|
final Cursor cursor = database.query(TABLE_TRACK, PROJECTION_TRACK, null,
|
|
|
|
|
null, null, null, null, null);
|
|
|
|
|
if (cursor != null) {
|
|
|
|
|
Log.d(TAG, "getAllAccessories: Moving cursor to first.");
|
|
|
|
|
cursor.moveToFirst();
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllAccessories: cursor is null");
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
final ArrayList<Accessory> allAvailableAccessories = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
final int idIdx = cursor.getColumnIndex(KEY_ID);
|
|
|
|
|
final int nameIdx = cursor.getColumnIndex(KEY_NAME);
|
|
|
|
|
final int gameIdx = cursor.getColumnIndex(KEY_GAME);
|
|
|
|
|
final int availableIdx = cursor.getColumnIndex(KEY_AVAILABLE);
|
|
|
|
|
|
|
|
|
|
final Accessory accessory = new Accessory();
|
|
|
|
|
boolean isValid = true;
|
|
|
|
|
if (idIdx >= 0) {
|
|
|
|
|
accessory.setId(cursor.getInt(idIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllAccessories: No such column [" + KEY_ID + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nameIdx >= 0) {
|
|
|
|
|
accessory.setName(cursor.getString(nameIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllAccessories: No such column [" + KEY_NAME + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (gameIdx >= 0) {
|
|
|
|
|
accessory.setGame(cursor.getString(gameIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllAccessories: No such column [" + KEY_GAME + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (availableIdx < 0) {
|
|
|
|
|
accessory.setAvailable(cursor.getInt(availableIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllAccessories: No such column [" + KEY_AVAILABLE + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isValid) {
|
|
|
|
|
allAvailableAccessories.add(accessory);
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllAccessories: Do not add Accessory as one or more arguments " +
|
|
|
|
|
"are invalid.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} while (cursor.moveToNext());
|
|
|
|
|
|
|
|
|
|
cursor.close();
|
|
|
|
|
database.close();
|
|
|
|
|
|
|
|
|
|
// return contact
|
|
|
|
|
return allAvailableAccessories;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Retrieves all Wheels from Database.
|
|
|
|
|
*
|
|
|
|
|
* @return List containing all Wheels Objects retrieved from Database.
|
|
|
|
|
*/
|
|
|
|
|
public ArrayList<Wheels> getAllWheels() {
|
|
|
|
|
final SQLiteDatabase database = this.getReadableDatabase();
|
|
|
|
|
|
|
|
|
|
final Cursor cursor = database.query(TABLE_TRACK, PROJECTION_TRACK, null,
|
|
|
|
|
null, null, null, null, null);
|
|
|
|
|
if (cursor != null) {
|
|
|
|
|
Log.d(TAG, "getAllWheels: Moving cursor to first.");
|
|
|
|
|
cursor.moveToFirst();
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllWheels: cursor is null");
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
final ArrayList<Wheels> allAvailableWheels = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
final int idIdx = cursor.getColumnIndex(KEY_ID);
|
|
|
|
|
final int nameIdx = cursor.getColumnIndex(KEY_NAME);
|
|
|
|
|
final int gameIdx = cursor.getColumnIndex(KEY_GAME);
|
|
|
|
|
final int availableIdx = cursor.getColumnIndex(KEY_AVAILABLE);
|
|
|
|
|
|
|
|
|
|
final Wheels wheels = new Wheels();
|
|
|
|
|
boolean isValid = true;
|
|
|
|
|
if (idIdx >= 0) {
|
|
|
|
|
wheels.setId(cursor.getInt(idIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllWheels: No such column [" + KEY_ID + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nameIdx >= 0) {
|
|
|
|
|
wheels.setName(cursor.getString(nameIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllWheels: No such column [" + KEY_NAME + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (gameIdx >= 0) {
|
|
|
|
|
wheels.setGame(cursor.getString(gameIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllWheels: No such column [" + KEY_GAME + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (availableIdx < 0) {
|
|
|
|
|
wheels.setAvailable(cursor.getInt(availableIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllWheels: No such column [" + KEY_AVAILABLE + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isValid) {
|
|
|
|
|
allAvailableWheels.add(wheels);
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllWheels: Do not add Wheels as one or more arguments are invalid.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} while (cursor.moveToNext());
|
|
|
|
|
|
|
|
|
|
cursor.close();
|
|
|
|
|
database.close();
|
|
|
|
|
|
|
|
|
|
// return contact
|
|
|
|
|
return allAvailableWheels;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Retrieves all Games from Database.
|
|
|
|
|
*
|
|
|
|
|
* @return List containing all Game Objects retrieved from Database.
|
|
|
|
|
*/
|
|
|
|
|
public ArrayList<Game> getAllGames() {
|
|
|
|
|
final SQLiteDatabase database = this.getReadableDatabase();
|
|
|
|
|
|
|
|
|
|
final Cursor cursor = database.query(TABLE_GAME, PROJECTION_GAME, null,
|
|
|
|
|
null, null, null, null, null);
|
|
|
|
|
if (cursor != null) {
|
|
|
|
|
Log.d(TAG, "getAllGames: Moving cursor to first.");
|
|
|
|
|
cursor.moveToFirst();
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllGames: cursor is null");
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
final ArrayList<Game> allAvailableGames = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
do {
|
|
|
|
|
final int idIdx = cursor.getColumnIndex(KEY_ID);
|
|
|
|
|
final int nameIdx = cursor.getColumnIndex(KEY_NAME);
|
|
|
|
|
final int coverUriIdx = cursor.getColumnIndex(KEY_COVER_URI);
|
|
|
|
|
|
|
|
|
|
final Game game = new Game();
|
|
|
|
|
boolean isValid = true;
|
|
|
|
|
if (idIdx >= 0) {
|
|
|
|
|
game.setId(cursor.getInt(idIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllGames: No such column [" + KEY_ID + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nameIdx >= 0) {
|
|
|
|
|
game.setName(cursor.getString(nameIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllGames: No such column [" + KEY_NAME + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (coverUriIdx >= 0) {
|
|
|
|
|
game.setCoverUri(cursor.getString(coverUriIdx));
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllGames: No such column [" + KEY_COVER_URI + "]");
|
|
|
|
|
isValid = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isValid) {
|
|
|
|
|
allAvailableGames.add(game);
|
|
|
|
|
} else {
|
|
|
|
|
Log.d(TAG, "getAllGames: Do not add Game as one or more arguments are invalid.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} while (cursor.moveToNext());
|
|
|
|
|
|
|
|
|
|
cursor.close();
|
|
|
|
|
database.close();
|
|
|
|
|
|
|
|
|
|
// return contact
|
|
|
|
|
return allAvailableGames;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -------------------------------------------------------------------------------------------
|
|
|
|
|
// ------------------------------ T E S T F U N C T I O N S -------------------------------
|
|
|
|
|
// -------------------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
public Track testDBConnection(final int id) {
|
|
|
|
|
Log.d(TAG, "testDBConnection: Opening Readable Database.");
|
|
|
|
|
final SQLiteDatabase database= this.getReadableDatabase();
|
|
|
|
|
final SQLiteDatabase database = this.getReadableDatabase();
|
|
|
|
|
|
|
|
|
|
Log.d(TAG, "testDBConnection: Query a single track for id = [" + id + "]");
|
|
|
|
|
final Cursor cursor = database.query(TABLE_TRACK, new String[]{KEY_ID,
|
|
|
|
|
@@ -227,6 +843,7 @@ public class DatabaseHandler extends SQLiteAssetHelper {
|
|
|
|
|
return track;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
cursor.close();
|
|
|
|
|
database.close();
|
|
|
|
|
|
|
|
|
|
// return contact
|
|
|
|
|
|