コード例 #1
0
 private HSBaseMessage getMessage(String msgID, SQLiteDatabase database) {
   Cursor c =
       database.rawQuery(
           "select * from " + getMessageTableName() + " where msg_c_id = ?", new String[] {msgID});
   HSBaseMessage msg = null;
   if (c != null && c.moveToNext()) {
     msg = MessageFactory.messageWithCusor(c);
   }
   if (c != null) c.close();
   return msg;
 }
コード例 #2
0
 public List<HSBaseMessage> queryMessages(String conditions, String[] selectionArgs) {
   SQLiteDatabase db = getReadableDatabase();
   List<HSBaseMessage> messages = new ArrayList<HSBaseMessage>();
   Cursor cursor =
       db.rawQuery("select * from " + getMessageTableName() + " " + conditions, selectionArgs);
   while (cursor != null && cursor.moveToNext()) {
     HSBaseMessage msg = MessageFactory.messageWithCusor(cursor);
     messages.add(msg);
   }
   if (null != cursor) {
     cursor.close();
   }
   return messages;
 }
コード例 #3
0
 MessageDBOperationResult markRead(String mid) {
   List<HSBaseMessage> messagesMarked = new ArrayList<HSBaseMessage>();
   ArrayList<UnreadCountChange> unreadCountChanges = new ArrayList<UnreadCountChange>();
   unreadCountChanges.add(new UnreadCountChange(mid, 0));
   String table = getMessageTableName();
   Cursor c =
       getReadableDatabase()
           .rawQuery("select * from " + table + " where from_mid = ?", new String[] {mid});
   SQLiteDatabase db = getWritableDatabase();
   db.beginTransaction();
   while (c != null && c.moveToNext()) {
     HSBaseMessage m = MessageFactory.messageWithCusor(c);
     messagesMarked.add(m);
     m.setStatus(HSMessageStatus.READ);
     ContentValues cv = new ContentValues();
     cv.put(COLUMN_STATUS, HSMessageStatus.READ.getValue());
     db.update(table, cv, "msg_c_id = ?", new String[] {m.getMsgID()});
   }
   db.setTransactionSuccessful();
   db.endTransaction();
   return new MessageDBOperationResult(messagesMarked, unreadCountChanges);
 }
コード例 #4
0
 MessageDBOperationResult deleteMessages(String to) {
   ArrayList<UnreadCountChange> unreadCountChanges = new ArrayList<UnreadCountChange>();
   unreadCountChanges.add(new UnreadCountChange(to, 0));
   String table = getMessageTableName();
   List<HSBaseMessage> messagesToDelete = new ArrayList<HSBaseMessage>();
   Cursor c =
       getReadableDatabase()
           .rawQuery(
               "select * from " + table + " where to_mid = ? or from_mid = ?",
               new String[] {to, to});
   while (c != null && c.moveToNext()) {
     HSBaseMessage m = MessageFactory.messageWithCusor(c);
     messagesToDelete.add(m);
     m.deleteAllMediaFiles();
   }
   SQLiteDatabase db = getWritableDatabase();
   db.beginTransaction();
   db.delete(table, " to_mid = ? or from_mid = ?", new String[] {to, to});
   db.setTransactionSuccessful();
   db.endTransaction();
   return new MessageDBOperationResult(messagesToDelete, unreadCountChanges);
 }