mirror of
https://github.com/moparisthebest/Yaaic
synced 2024-11-26 19:02:17 -05:00
Database: Add commands table, migrate old databse, added methods: getCommandsByServerId(), setCommands(), addCommand()
This commit is contained in:
parent
616b21d885
commit
d03ad54e79
@ -41,7 +41,7 @@ import android.database.sqlite.SQLiteOpenHelper;
|
|||||||
public class Database extends SQLiteOpenHelper
|
public class Database extends SQLiteOpenHelper
|
||||||
{
|
{
|
||||||
private static final String DATABASE_NAME = "servers.db";
|
private static final String DATABASE_NAME = "servers.db";
|
||||||
private static final int DATABASE_VERSION = 2;
|
private static final int DATABASE_VERSION = 3;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new helper for database access
|
* Create a new helper for database access
|
||||||
@ -87,6 +87,13 @@ public class Database extends SQLiteOpenHelper
|
|||||||
+ IdentityConstants.REALNAME + " TEXT NOT NULL"
|
+ IdentityConstants.REALNAME + " TEXT NOT NULL"
|
||||||
+ ");"
|
+ ");"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
db.execSQL("CREATE TABLE " + CommandConstants.TABLE_NAME + " ("
|
||||||
|
+ CommandConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
|
||||||
|
+ CommandConstants.COMMAND + " TEXT NOT NULL, "
|
||||||
|
+ ChannelConstants.SERVER + " INTEGER"
|
||||||
|
+ ");"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -106,6 +113,18 @@ public class Database extends SQLiteOpenHelper
|
|||||||
if (oldVersion == 1) {
|
if (oldVersion == 1) {
|
||||||
// Add charset field to server table
|
// Add charset field to server table
|
||||||
db.execSQL("ALTER TABLE " + ServerConstants.TABLE_NAME + " ADD " + ServerConstants.CHARSET + " TEXT AFTER " + ServerConstants.USE_SSL + ";");
|
db.execSQL("ALTER TABLE " + ServerConstants.TABLE_NAME + " ADD " + ServerConstants.CHARSET + " TEXT AFTER " + ServerConstants.USE_SSL + ";");
|
||||||
|
|
||||||
|
oldVersion = 2; // now do the updates for version 2
|
||||||
|
}
|
||||||
|
|
||||||
|
if (oldVersion == 2) {
|
||||||
|
// Add new commands table (copy&paste from onCreate())
|
||||||
|
db.execSQL("CREATE TABLE " + CommandConstants.TABLE_NAME + " ("
|
||||||
|
+ CommandConstants._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
|
||||||
|
+ CommandConstants.COMMAND + " TEXT NOT NULL, "
|
||||||
|
+ ChannelConstants.SERVER + " INTEGER"
|
||||||
|
+ ");"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -208,6 +227,73 @@ public class Database extends SQLiteOpenHelper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all commands to execute on connect
|
||||||
|
*
|
||||||
|
* @param serverId Unique id of server
|
||||||
|
* @return List of commands
|
||||||
|
*/
|
||||||
|
public ArrayList<String> getCommandsByServerId(int serverId)
|
||||||
|
{
|
||||||
|
ArrayList<String> commands = new ArrayList<String>();
|
||||||
|
|
||||||
|
Cursor cursor = this.getReadableDatabase().query(
|
||||||
|
CommandConstants.TABLE_NAME,
|
||||||
|
CommandConstants.ALL,
|
||||||
|
CommandConstants.SERVER + "=" + serverId,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
);
|
||||||
|
|
||||||
|
while (cursor.moveToNext()) {
|
||||||
|
String command = cursor.getString(cursor.getColumnIndex(CommandConstants.COMMAND));
|
||||||
|
commands.add(command);
|
||||||
|
}
|
||||||
|
|
||||||
|
cursor.close();
|
||||||
|
|
||||||
|
return commands;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a command to a server
|
||||||
|
*
|
||||||
|
* @param serverId Unique id of server
|
||||||
|
* @param command The command to execute after connect
|
||||||
|
*/
|
||||||
|
public void addCommand(int serverId, String command)
|
||||||
|
{
|
||||||
|
ContentValues values = new ContentValues();
|
||||||
|
|
||||||
|
values.put(CommandConstants.COMMAND, command);
|
||||||
|
values.put(CommandConstants.SERVER, serverId);
|
||||||
|
|
||||||
|
this.getWritableDatabase().insert(CommandConstants.TABLE_NAME, null, values);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replace list of commands for the given server
|
||||||
|
*
|
||||||
|
* @param serverId Unique id of server
|
||||||
|
* @param commands List of commands to execute after connect
|
||||||
|
*/
|
||||||
|
public void setCommands(int serverId, ArrayList<String> commands)
|
||||||
|
{
|
||||||
|
// Remove old commands
|
||||||
|
this.getWritableDatabase().delete(
|
||||||
|
CommandConstants.TABLE_NAME,
|
||||||
|
CommandConstants.SERVER + " = " + serverId,
|
||||||
|
null
|
||||||
|
);
|
||||||
|
|
||||||
|
// Add new commands
|
||||||
|
for (String command : commands) {
|
||||||
|
addCommand(serverId, command);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all servers from database
|
* Get all servers from database
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user