1
0
mirror of https://github.com/moparisthebest/Yaaic synced 2024-11-26 10:52:16 -05:00

Database: Added setChannels(), getChannelsByServerId() will now return an ArrayList of channel names

This commit is contained in:
Sebastian Kaspari 2010-04-25 11:00:58 +02:00
parent 68079baff8
commit 433b8aaa71

View File

@ -20,6 +20,7 @@ along with Yaaic. If not, see <http://www.gnu.org/licenses/>.
*/ */
package org.yaaic.db; package org.yaaic.db;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import org.yaaic.model.Identity; import org.yaaic.model.Identity;
@ -171,21 +172,42 @@ public class Database extends SQLiteOpenHelper
/** /**
* Add a channel to the database * Add a channel to the database
* *
* @param server Unique id of server * @param serverId Unique id of server
* @param name Name of channel * @param name Name of channel
* @param password Password to join (if needed) * @param password Password to join (if needed)
*/ */
public void addChannel(int server, String name, String password) public void addChannel(int serverId, String name, String password)
{ {
ContentValues values = new ContentValues(); ContentValues values = new ContentValues();
values.put(ChannelConstants.NAME, name); values.put(ChannelConstants.NAME, name);
values.put(ChannelConstants.PASSWORD, password); values.put(ChannelConstants.PASSWORD, password);
values.put(ChannelConstants.SERVER, server); values.put(ChannelConstants.SERVER, serverId);
this.getWritableDatabase().insert(ServerConstants.TABLE_NAME, null, values); this.getWritableDatabase().insert(ServerConstants.TABLE_NAME, null, values);
} }
/**
* Replace list of channels for the given server
*
* @param serverId Unique id of server
* @param channels List of channel names
*/
public void setChannels(int serverId, ArrayList<String> channels)
{
// Remove old channels
this.getWritableDatabase().delete(
ChannelConstants.TABLE_NAME,
ChannelConstants.SERVER + " = " + serverId,
null
);
// Add new channels
for (String channel : channels) {
addChannel(serverId, channel, "");
}
}
/** /**
* Get all servers from database * Get all servers from database
* *
@ -318,13 +340,13 @@ public class Database extends SQLiteOpenHelper
* Get all channels of server * Get all channels of server
* *
* @param server Unique id of server * @param server Unique id of server
* @return * @return list of channel names
*/ */
public Cursor getChannelsByServerId(int serverId) public ArrayList<String> getChannelsByServerId(int serverId)
{ {
// XXX: Should no return a cursor but the populated objects ArrayList<String> channels = new ArrayList<String>();
return this.getReadableDatabase().query( Cursor cursor = this.getReadableDatabase().query(
ChannelConstants.TABLE_NAME, ChannelConstants.TABLE_NAME,
ChannelConstants.ALL, ChannelConstants.ALL,
ChannelConstants.SERVER + "=" + serverId, ChannelConstants.SERVER + "=" + serverId,
@ -332,7 +354,16 @@ public class Database extends SQLiteOpenHelper
null, null,
null, null,
ChannelConstants.NAME + " ASC" ChannelConstants.NAME + " ASC"
); );
while (cursor.moveToNext()) {
String channel = cursor.getString(cursor.getColumnIndex(ChannelConstants.NAME));
channels.add(channel);
}
cursor.close();
return channels;
} }
/** /**