Skip to content

Commit 6a7a8cf

Browse files
committed
feat: remove gmail prefix in folder structure
1 parent 67b0c56 commit 6a7a8cf

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

legacy/storage/src/main/java/com/fsck/k9/storage/messages/CreateFolderOperations.kt

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,16 @@ import com.fsck.k9.mailstore.LockableDatabase
66
import com.fsck.k9.mailstore.toDatabaseFolderType
77

88
internal class CreateFolderOperations(private val lockableDatabase: LockableDatabase) {
9+
init {
10+
removeGmailPrefixFromFolders()
11+
}
12+
913
fun createFolders(folders: List<CreateFolderInfo>) {
1014
lockableDatabase.execute(true) { db ->
1115
for (folder in folders) {
1216
val folderSettings = folder.settings
1317
val values = ContentValues().apply {
14-
put("name", folder.name)
18+
put("name", folder.name.replace("\\[(Gmail|Google Mail)]/".toRegex(), ""))
1519
put("visible_limit", folderSettings.visibleLimit)
1620
put("integrate", folderSettings.integrate)
1721
put("top_group", folderSettings.inTopGroup)
@@ -28,4 +32,34 @@ internal class CreateFolderOperations(private val lockableDatabase: LockableData
2832
}
2933
}
3034
}
35+
36+
private fun removeGmailPrefixFromFolders() {
37+
lockableDatabase.execute(false) { db ->
38+
val cursor = db.query(
39+
"folders",
40+
arrayOf("id", "name"),
41+
"name LIKE ? OR name LIKE ?",
42+
arrayOf("%[Gmail]/%", "%[Google Mail]/%"),
43+
null,
44+
null,
45+
null,
46+
)
47+
48+
while (cursor.moveToNext()) {
49+
val id = cursor.getLong(cursor.getColumnIndexOrThrow("id"))
50+
val name = cursor.getString(cursor.getColumnIndexOrThrow("name"))
51+
val updatedName = name
52+
.replace("[Gmail]/", "")
53+
.replace("[Google Mail]/", "")
54+
55+
val values = ContentValues().apply {
56+
put("name", updatedName)
57+
}
58+
59+
db.update("folders", values, "id = ?", arrayOf(id.toString()))
60+
}
61+
62+
cursor.close()
63+
}
64+
}
3165
}

legacy/storage/src/main/java/com/fsck/k9/storage/messages/K9MessageStore.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class K9MessageStore(
2121
storageFilesProvider: StorageFilesProvider,
2222
basicPartInfoExtractor: BasicPartInfoExtractor,
2323
) : MessageStore {
24+
2425
private val attachmentFileManager = AttachmentFileManager(storageFilesProvider)
2526
private val threadMessageOperations = ThreadMessageOperations()
2627
private val saveMessageOperations = SaveMessageOperations(

0 commit comments

Comments
 (0)