mirror of
https://github.com/M66B/FairEmail.git
synced 2026-01-03 11:28:41 +01:00
Sort on sender email address
This commit is contained in:
@@ -47,7 +47,7 @@ import io.requery.android.database.sqlite.RequerySQLiteOpenHelperFactory;
|
||||
// https://developer.android.com/topic/libraries/architecture/room.html
|
||||
|
||||
@Database(
|
||||
version = 27,
|
||||
version = 28,
|
||||
entities = {
|
||||
EntityIdentity.class,
|
||||
EntityAccount.class,
|
||||
@@ -336,27 +336,34 @@ public abstract class DB extends RoomDatabase {
|
||||
public void migrate(SupportSQLiteDatabase db) {
|
||||
Log.i("DB migration from version " + startVersion + " to " + endVersion);
|
||||
db.execSQL("ALTER TABLE `message` ADD COLUMN `sender` TEXT");
|
||||
db.execSQL("CREATE INDEX `index_message_sender` ON `message` (`sender`)");
|
||||
}
|
||||
})
|
||||
.addMigrations(new Migration(27, 28) {
|
||||
@Override
|
||||
public void migrate(SupportSQLiteDatabase db) {
|
||||
Log.i("DB migration from version " + startVersion + " to " + endVersion);
|
||||
|
||||
Cursor cursor = null;
|
||||
try {
|
||||
cursor = db.query("SELECT `id`, `from` FROM message");
|
||||
while (cursor.moveToNext()) {
|
||||
long id = cursor.getLong(0);
|
||||
String json = cursor.getString(1);
|
||||
Address[] from = Converters.decodeAddresses(json);
|
||||
String sender = MessageHelper.getSortKey(from);
|
||||
if (sender != null)
|
||||
while (cursor.moveToNext())
|
||||
try {
|
||||
long id = cursor.getLong(0);
|
||||
String json = cursor.getString(1);
|
||||
Address[] from = Converters.decodeAddresses(json);
|
||||
String sender = MessageHelper.getSortKey(from);
|
||||
db.execSQL(
|
||||
"UPDATE message SET sender = ? WHERE id = ?",
|
||||
new Object[]{sender, id});
|
||||
}
|
||||
} catch (Throwable ex) {
|
||||
Log.e(ex);
|
||||
}
|
||||
|
||||
} finally {
|
||||
if (cursor != null)
|
||||
cursor.close();
|
||||
}
|
||||
|
||||
db.execSQL("CREATE INDEX `index_message_sender` ON `message` (`sender`)");
|
||||
}
|
||||
})
|
||||
.build();
|
||||
|
||||
@@ -467,11 +467,9 @@ public class MessageHelper {
|
||||
if (addresses == null || addresses.length == 0)
|
||||
return null;
|
||||
InternetAddress address = (InternetAddress) addresses[0];
|
||||
String personal = address.getPersonal();
|
||||
if (TextUtils.isEmpty(personal))
|
||||
return address.getAddress();
|
||||
else
|
||||
return personal;
|
||||
// Sort on name will result in inconsistent results
|
||||
// because the sender name and sender contact name can differ
|
||||
return address.getAddress();
|
||||
}
|
||||
|
||||
String getHtml() throws MessagingException, IOException {
|
||||
|
||||
Reference in New Issue
Block a user