Diverse Änderungen am ChatServer
This commit is contained in:
@@ -24,6 +24,8 @@ import soapConnection.SoapConnectionManager;
|
||||
*/
|
||||
public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
|
||||
private static final String LOGTAG = "DATABASE_HANDLER";
|
||||
|
||||
//DataBase version
|
||||
private static final int DATABASE_VERSION = 1;
|
||||
|
||||
@@ -62,8 +64,6 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
|
||||
private static DatabaseHandler mInstance = null;
|
||||
|
||||
private Context mContext;
|
||||
|
||||
public static DatabaseHandler getInstance(Context context) {
|
||||
if(mInstance == null) {
|
||||
mInstance = new DatabaseHandler(context.getApplicationContext());
|
||||
@@ -74,7 +74,6 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
|
||||
private DatabaseHandler(Context context){
|
||||
super(context,DATABASE_NAME, null, DATABASE_VERSION);
|
||||
this.mContext = context;
|
||||
}
|
||||
|
||||
public void clearDatabase() {
|
||||
@@ -88,8 +87,6 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
|
||||
deleteQuery = "DELETE FROM " + TABLE_CONTACTS;
|
||||
db.execSQL(deleteQuery);
|
||||
|
||||
db.close();
|
||||
}
|
||||
|
||||
public void onCreate(SQLiteDatabase db) {
|
||||
@@ -127,21 +124,20 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
public void insertOwnerOid(int ownerOid) {
|
||||
SQLiteDatabase db = this.getWritableDatabase();
|
||||
SQLiteDatabase writableDatabase = this.getWritableDatabase();
|
||||
|
||||
ContentValues values = new ContentValues();
|
||||
values.put(KEY_ID_OWNER, ownerOid);
|
||||
|
||||
db.insert(TABLE_DATABASEOWNER, null, values);
|
||||
db.close();
|
||||
writableDatabase.insertOrThrow(TABLE_DATABASEOWNER, null, values);
|
||||
}
|
||||
|
||||
public int getOwnerOid() {
|
||||
SQLiteDatabase db = this.getReadableDatabase();
|
||||
SQLiteDatabase readableDatabase = this.getReadableDatabase();
|
||||
|
||||
String selectQuery = "SELECT * FROM " + TABLE_DATABASEOWNER;
|
||||
|
||||
Cursor cursor = db.rawQuery(selectQuery, null);
|
||||
Cursor cursor = readableDatabase.rawQuery(selectQuery, null);
|
||||
|
||||
int ownerOid = 0;
|
||||
|
||||
@@ -150,7 +146,6 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
cursor.close();
|
||||
db.close();
|
||||
|
||||
return ownerOid;
|
||||
}
|
||||
@@ -182,18 +177,13 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
if(db.inTransaction()) {
|
||||
db.endTransaction();
|
||||
}
|
||||
|
||||
db.close();
|
||||
}
|
||||
}
|
||||
|
||||
public long addChatMessage(ChatMessage message) {
|
||||
SQLiteDatabase db = this.getWritableDatabase();
|
||||
SQLiteDatabase writableDatabase = this.getWritableDatabase();
|
||||
|
||||
long rowId = db.insert(TABLE_CHATMESSAGE, null, fillValuesForChatMessage(message));
|
||||
db.close();
|
||||
|
||||
return rowId;
|
||||
return writableDatabase.insertOrThrow(TABLE_CHATMESSAGE, null, fillValuesForChatMessage(message));
|
||||
}
|
||||
|
||||
private ContentValues fillValuesForChatMessage(ChatMessage message) {
|
||||
@@ -211,7 +201,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
public int updateChatMessage(ChatMessage message) {
|
||||
SQLiteDatabase db = this.getWritableDatabase();
|
||||
SQLiteDatabase writableDatabase = this.getWritableDatabase();
|
||||
ContentValues values = new ContentValues();
|
||||
|
||||
values.put(KEY_SENDER_PERSON_OID_CHATMESSAGE, message.SenderPersonOid);
|
||||
@@ -222,10 +212,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
values.put(KEY_SERVERSEITIGE_OID_CHATMESSAGE, message.ServerseitigeOid);
|
||||
values.put(KEY_IS_TEAM_CHATMESSAGE, message.IsTeam ? 1 : 0);
|
||||
|
||||
int result = db.update(TABLE_CHATMESSAGE, values, KEY_ID_CHATMESSAGE + " = ?", new String[] { String.valueOf(message.Id)});
|
||||
db.close();
|
||||
|
||||
return result;
|
||||
return writableDatabase.update(TABLE_CHATMESSAGE, values, KEY_ID_CHATMESSAGE + " = ?", new String[] { String.valueOf(message.Id)});
|
||||
}
|
||||
|
||||
public ArrayList<Integer> getExistingChatMessageIds() {
|
||||
@@ -244,7 +231,6 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
cursor.close();
|
||||
db.close();
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -265,7 +251,6 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
cursor.close();
|
||||
db.close();
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -289,7 +274,6 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
|
||||
|
||||
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
|
||||
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CHATMESSAGE);
|
||||
db.execSQL("DROP TABLE IF EXISTS " + TABLE_DATABASEOWNER);
|
||||
@@ -298,7 +282,7 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
public void addContact(ContactListItem contact) {
|
||||
SQLiteDatabase db = this.getWritableDatabase();
|
||||
SQLiteDatabase writableDatabase = this.getWritableDatabase();
|
||||
ContentValues values = new ContentValues();
|
||||
|
||||
values.put(KEY_KONTAKT_NAME, contact.getChatName());
|
||||
@@ -308,22 +292,20 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
values.put(KEY_TEAM_MEMBER_NAMES, contact.teamMemberNames);
|
||||
values.put(KEY_TEAM_MEMBER_OIDS, contact.teamMemberOids);
|
||||
|
||||
db.insert(TABLE_CONTACTS, null, values);
|
||||
db.close();
|
||||
writableDatabase.insertOrThrow(TABLE_CONTACTS, null, values);
|
||||
}
|
||||
|
||||
public ChatMessage getChatMessageById(int id) {
|
||||
SQLiteDatabase db = this.getReadableDatabase();
|
||||
SQLiteDatabase readableDatabase = this.getReadableDatabase();
|
||||
|
||||
Cursor cursor = db.query(
|
||||
Cursor cursor = readableDatabase.query(
|
||||
TABLE_CHATMESSAGE,
|
||||
new String[] {KEY_ID_CHATMESSAGE, KEY_SENDER_PERSON_OID_CHATMESSAGE, KEY_RECIPIENT_PERSON_OID_CHATMESSAGE, KEY_INSTS_CHATMESSAGE, KEY_CHAT_TEXT_CHATMESSAGE, KEY_IS_DELIVERED_CHATMESSAGE, KEY_SERVERSEITIGE_OID_CHATMESSAGE, KEY_IS_TEAM_CHATMESSAGE},
|
||||
KEY_ID_CHATMESSAGE + "=?",
|
||||
new String[]{String.valueOf(id)},
|
||||
null, null, null, null);
|
||||
|
||||
if(cursor != null) {
|
||||
cursor.moveToFirst();
|
||||
if(cursor != null && cursor.moveToFirst()){
|
||||
|
||||
int messageId = cursor.getInt(0);
|
||||
int senderPersonOid = cursor.getInt(1);
|
||||
@@ -335,22 +317,19 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
boolean isTeam = cursor.getInt(7) == 1;
|
||||
|
||||
cursor.close();
|
||||
db.close();
|
||||
|
||||
return new ChatMessage(messageId, senderPersonOid, recipientPersonOid, insTs, chatText, isDelivered, serverseitigeOid, isTeam);
|
||||
}
|
||||
|
||||
db.close();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ArrayList<ChatMessage> getMessagesForRecipient(int recipientOid) {
|
||||
ArrayList<ChatMessage> messages = new ArrayList<>();
|
||||
|
||||
SQLiteDatabase db = this.getReadableDatabase();
|
||||
SQLiteDatabase readableDatabase = this.getReadableDatabase();
|
||||
|
||||
Cursor cursor = db.query(
|
||||
Cursor cursor = readableDatabase.query(
|
||||
TABLE_CHATMESSAGE,
|
||||
new String[] {KEY_ID_CHATMESSAGE, KEY_SENDER_PERSON_OID_CHATMESSAGE, KEY_RECIPIENT_PERSON_OID_CHATMESSAGE, KEY_INSTS_CHATMESSAGE, KEY_CHAT_TEXT_CHATMESSAGE, KEY_IS_DELIVERED_CHATMESSAGE, KEY_SERVERSEITIGE_OID_CHATMESSAGE, KEY_IS_TEAM_CHATMESSAGE},
|
||||
KEY_SENDER_PERSON_OID_CHATMESSAGE + "=? AND " + KEY_RECIPIENT_PERSON_OID_CHATMESSAGE + "=? OR " + KEY_RECIPIENT_PERSON_OID_CHATMESSAGE + "=? AND " + KEY_SENDER_PERSON_OID_CHATMESSAGE + "=?",
|
||||
@@ -375,7 +354,6 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
cursor.close();
|
||||
db.close();
|
||||
|
||||
return messages;
|
||||
}
|
||||
@@ -383,9 +361,9 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
public ArrayList<ChatMessage> getMessagesForTeam(int teamOid) {
|
||||
ArrayList<ChatMessage> messages = new ArrayList<>();
|
||||
|
||||
SQLiteDatabase db = this.getReadableDatabase();
|
||||
SQLiteDatabase readableDatabase = this.getReadableDatabase();
|
||||
|
||||
Cursor cursor = db.query(
|
||||
Cursor cursor = readableDatabase.query(
|
||||
TABLE_CHATMESSAGE,
|
||||
new String[] {KEY_ID_CHATMESSAGE, KEY_SENDER_PERSON_OID_CHATMESSAGE, KEY_RECIPIENT_PERSON_OID_CHATMESSAGE, KEY_INSTS_CHATMESSAGE, KEY_CHAT_TEXT_CHATMESSAGE, KEY_IS_DELIVERED_CHATMESSAGE, KEY_SERVERSEITIGE_OID_CHATMESSAGE, KEY_IS_TEAM_CHATMESSAGE},
|
||||
KEY_RECIPIENT_PERSON_OID_CHATMESSAGE + "=? AND " + KEY_IS_TEAM_CHATMESSAGE + "= 1",
|
||||
@@ -411,16 +389,13 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
|
||||
cursor.close();
|
||||
|
||||
db.close();
|
||||
|
||||
return messages;
|
||||
}
|
||||
|
||||
public ContactListItem getContact(int id) {
|
||||
SQLiteDatabase readableDatabase = this.getReadableDatabase();
|
||||
|
||||
SQLiteDatabase db = this.getReadableDatabase();
|
||||
|
||||
Cursor cursor = db.query(TABLE_CONTACTS,
|
||||
Cursor cursor = readableDatabase.query(TABLE_CONTACTS,
|
||||
new String[]{
|
||||
KEY_ID,
|
||||
KEY_KONTAKT_NAME,
|
||||
@@ -447,13 +422,10 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
ContactListItem contact = new ContactListItem(contactId, contactName, contactPersonOid, contactPicture, contactIsTeam, teamMemberOids, teamMemberNames);
|
||||
|
||||
cursor.close();
|
||||
db.close();
|
||||
|
||||
return contact;
|
||||
}
|
||||
|
||||
db.close();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -462,8 +434,8 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
|
||||
String selectQuery = "SELECT * FROM " + TABLE_CONTACTS;
|
||||
|
||||
SQLiteDatabase db = this.getWritableDatabase();
|
||||
Cursor cursor = db.rawQuery(selectQuery, null);
|
||||
SQLiteDatabase writableDatabase = this.getWritableDatabase();
|
||||
Cursor cursor = writableDatabase.rawQuery(selectQuery, null);
|
||||
|
||||
if (cursor.moveToFirst()) {
|
||||
do {
|
||||
@@ -481,13 +453,44 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
cursor.close();
|
||||
db.close();
|
||||
|
||||
return contactList;
|
||||
}
|
||||
|
||||
public ArrayList<ChatMessage> getAllChatMessages() {
|
||||
ArrayList<ChatMessage> result = new ArrayList<>();
|
||||
|
||||
String selectQuery = "SELECT * FROM " + TABLE_CHATMESSAGE;
|
||||
|
||||
SQLiteDatabase readableDatabase = this.getReadableDatabase();
|
||||
|
||||
Cursor cursor = readableDatabase.rawQuery(selectQuery, null);
|
||||
|
||||
if(cursor.moveToFirst()) {
|
||||
do {
|
||||
ChatMessage message = new ChatMessage(
|
||||
cursor.getInt(0),
|
||||
cursor.getInt(1),
|
||||
cursor.getInt(2),
|
||||
getDateFromString(cursor.getString(3)),
|
||||
cursor.getString(4),
|
||||
cursor.getInt(5) == 1,
|
||||
cursor.getInt(6),
|
||||
cursor.getInt(7) == 1
|
||||
);
|
||||
|
||||
result.add(message);
|
||||
|
||||
} while(cursor.moveToNext());
|
||||
|
||||
cursor.close();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public int updateContact(ContactListItem contact) {
|
||||
SQLiteDatabase db = this.getWritableDatabase();
|
||||
SQLiteDatabase writableDatabase = this.getWritableDatabase();
|
||||
|
||||
ContentValues values = new ContentValues();
|
||||
values.put(KEY_KONTAKT_NAME, contact.getChatName());
|
||||
@@ -497,23 +500,18 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
values.put(KEY_TEAM_MEMBER_NAMES, contact.teamMemberNames);
|
||||
values.put(KEY_TEAM_MEMBER_OIDS, contact.teamMemberOids);
|
||||
|
||||
int result = db.update(TABLE_CONTACTS, values, KEY_ID + " = ?", new String[] { String.valueOf(contact.getId()) });
|
||||
|
||||
db.close();
|
||||
|
||||
return result;
|
||||
return writableDatabase.update(TABLE_CONTACTS, values, KEY_ID + " = ?", new String[] { String.valueOf(contact.getId()) });
|
||||
}
|
||||
|
||||
public void deleteContacts(ContactListItem contact){
|
||||
SQLiteDatabase db = this.getWritableDatabase();
|
||||
db.delete(TABLE_CONTACTS, KEY_ID + " = ?", new String[] { String.valueOf(contact.getId()) });
|
||||
db.close();
|
||||
SQLiteDatabase writableDatabase = this.getWritableDatabase();
|
||||
writableDatabase.delete(TABLE_CONTACTS, KEY_ID + " = ?", new String[] { String.valueOf(contact.getId()) });
|
||||
}
|
||||
|
||||
public int getContactsCount(){
|
||||
String countQuery = "SELECT COUNT(*) FROM " + TABLE_CONTACTS;
|
||||
SQLiteDatabase db = this.getReadableDatabase();
|
||||
Cursor cursor = db.rawQuery(countQuery, null);
|
||||
SQLiteDatabase readableDatabase = this.getReadableDatabase();
|
||||
Cursor cursor = readableDatabase.rawQuery(countQuery, null);
|
||||
|
||||
int result = 0;
|
||||
|
||||
@@ -522,32 +520,30 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
}
|
||||
|
||||
cursor.close();
|
||||
db.close();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public byte[] getUserImage(Integer personOid) {
|
||||
SQLiteDatabase db = this.getReadableDatabase();
|
||||
SQLiteDatabase readableDatabase = this.getReadableDatabase();
|
||||
|
||||
Cursor cursor = db.query(TABLE_CONTACTS, new String[] {KEY_PICTURE_BLOB}, KEY_PERSONOID + " = " + personOid, null, null, null, null);
|
||||
Cursor cursor = readableDatabase.query(TABLE_CONTACTS, new String[] {KEY_PICTURE_BLOB}, KEY_PERSONOID + " = " + personOid, null, null, null, null);
|
||||
|
||||
byte[] picture = null;
|
||||
|
||||
if(cursor != null && cursor.moveToFirst()) {
|
||||
cursor.getBlob(0);
|
||||
}
|
||||
picture = cursor.getBlob(0);
|
||||
|
||||
cursor.close();
|
||||
db.close();
|
||||
cursor.close();
|
||||
}
|
||||
|
||||
return picture;
|
||||
}
|
||||
|
||||
public ContactListItem getContactByPersonOid(int personOid, boolean isTeam) {
|
||||
SQLiteDatabase db = this.getReadableDatabase();
|
||||
SQLiteDatabase readableDatabase = this.getReadableDatabase();
|
||||
|
||||
Cursor cursor = db.query(TABLE_CONTACTS,
|
||||
Cursor cursor = readableDatabase.query(TABLE_CONTACTS,
|
||||
new String[]{
|
||||
KEY_ID,
|
||||
KEY_KONTAKT_NAME,
|
||||
@@ -573,15 +569,53 @@ public class DatabaseHandler extends SQLiteOpenHelper {
|
||||
ContactListItem contact = new ContactListItem(contactId, contactName, contactPersonOid, contactPicture, contactIsTeam, teamMemberOids, teamMemberNames);
|
||||
|
||||
cursor.close();
|
||||
db.close();
|
||||
|
||||
return contact;
|
||||
} else {
|
||||
Log.i("DATABASE_HANDLER", "Keinen Kontakt mit PersonOid " + personOid + " gefunden.");
|
||||
Log.i(LOGTAG, "Keinen Kontakt mit PersonOid " + personOid + " gefunden.");
|
||||
}
|
||||
|
||||
db.close();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ArrayList<ChatMessage> getUnsentChatMessages() {
|
||||
ArrayList<ChatMessage> messages = new ArrayList<>();
|
||||
|
||||
SQLiteDatabase readableDatabase = this.getReadableDatabase();
|
||||
|
||||
Cursor cursor = readableDatabase.query(TABLE_CHATMESSAGE,
|
||||
new String[] {
|
||||
KEY_ID_CHATMESSAGE,
|
||||
KEY_SENDER_PERSON_OID_CHATMESSAGE,
|
||||
KEY_RECIPIENT_PERSON_OID_CHATMESSAGE,
|
||||
KEY_INSTS_CHATMESSAGE,
|
||||
KEY_CHAT_TEXT_CHATMESSAGE,
|
||||
KEY_IS_DELIVERED_CHATMESSAGE,
|
||||
KEY_SERVERSEITIGE_OID_CHATMESSAGE,
|
||||
KEY_IS_TEAM_CHATMESSAGE
|
||||
},
|
||||
KEY_IS_DELIVERED_CHATMESSAGE + " =? AND " + KEY_SENDER_PERSON_OID_CHATMESSAGE + " =?",
|
||||
new String[] {String.valueOf(0), String.valueOf(SoapConnectionManager.User.getPersonOid())}, null, null, null, null);
|
||||
|
||||
if(cursor.moveToFirst()) {
|
||||
do{
|
||||
ChatMessage message = new ChatMessage(
|
||||
cursor.getInt(0),
|
||||
cursor.getInt(1),
|
||||
cursor.getInt(2),
|
||||
getDateFromString(cursor.getString(3)),
|
||||
cursor.getString(4),
|
||||
cursor.getInt(5) == 1,
|
||||
cursor.getInt(6),
|
||||
cursor.getInt(7) == 1
|
||||
);
|
||||
|
||||
messages.add(message);
|
||||
} while(cursor.moveToNext());
|
||||
}
|
||||
|
||||
cursor.close();
|
||||
|
||||
return messages;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user