| 100 | } |
| 101 | |
| 102 | static void insert(SQLiteDatabase db, EntityMessage message, List<EntityAttachment> attachments, String text) { |
| 103 | Log.i("FTS insert id=" + message.id); |
| 104 | List<Address> address = new ArrayList<>(); |
| 105 | if (message.from != null) |
| 106 | address.addAll(Arrays.asList(message.from)); |
| 107 | if (message.to != null) |
| 108 | address.addAll(Arrays.asList(message.to)); |
| 109 | if (message.cc != null) |
| 110 | address.addAll(Arrays.asList(message.cc)); |
| 111 | if (message.bcc != null) |
| 112 | address.addAll(Arrays.asList(message.bcc)); |
| 113 | |
| 114 | List<String> filenames = new ArrayList<>(); |
| 115 | if (attachments != null) |
| 116 | for (EntityAttachment attachment : attachments) |
| 117 | if (!TextUtils.isEmpty(attachment.name)) |
| 118 | filenames.add(attachment.name); |
| 119 | |
| 120 | delete(db, message.id); |
| 121 | |
| 122 | ContentValues cv = new ContentValues(); |
| 123 | cv.put("rowid", message.id); |
| 124 | cv.put("account", message.account); |
| 125 | cv.put("folder", message.folder); |
| 126 | cv.put("time", message.received); |
| 127 | cv.put("address", processBreakText(MessageHelper.formatAddresses(address.toArray(new Address[0]), true, false))); |
| 128 | cv.put("subject", processBreakText(message.subject)); |
| 129 | cv.put("keyword", TextUtils.join(" ", message.keywords)); |
| 130 | cv.put("text", processBreakText(text)); |
| 131 | cv.put("notes", processBreakText(message.notes)); |
| 132 | cv.put("filenames", processBreakText(TextUtils.join(" ", filenames))); |
| 133 | db.insertWithOnConflict("message", null, cv, SQLiteDatabase.CONFLICT_FAIL); |
| 134 | } |
| 135 | |
| 136 | static void delete(SQLiteDatabase db) { |
| 137 | db.delete("message", null, null); |