From c741b33bc22fc87eb75dbc448898ebeba88dbe0c Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Wed, 31 May 2017 21:49:40 +0200 Subject: add the 4 most frequently contacted contacts as app shortcuts --- .../pixart/messenger/persistance/DatabaseBackend.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java') diff --git a/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java b/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java index ddf516f93..7b49eb376 100644 --- a/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java +++ b/src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java @@ -48,6 +48,7 @@ import de.pixart.messenger.entities.Message; import de.pixart.messenger.entities.PresenceTemplate; import de.pixart.messenger.entities.Roster; import de.pixart.messenger.entities.ServiceDiscoveryResult; +import de.pixart.messenger.services.ShortcutService; import de.pixart.messenger.xmpp.jid.InvalidJidException; import de.pixart.messenger.xmpp.jid.Jid; import de.pixart.messenger.xmpp.mam.MamReference; @@ -1432,4 +1433,21 @@ public class DatabaseBackend extends SQLiteOpenHelper { db.execSQL("delete from " + START_TIMES_TABLE); } } + + public List getFrequentContacts(int days) { + SQLiteDatabase db = this.getReadableDatabase(); + final String SQL = "select " + Conversation.TABLENAME + "." + Conversation.ACCOUNT + "," + Conversation.TABLENAME + "." + Conversation.CONTACTJID + " from " + Conversation.TABLENAME + " join " + Message.TABLENAME + " on conversations.uuid=messages.conversationUuid where messages.status!=0 and carbon==0 and conversations.mode=0 and messages.timeSent>=? group by conversations.uuid order by count(body) desc limit 4;"; + String[] whereArgs = new String[]{String.valueOf(System.currentTimeMillis() - (Config.MILLISECONDS_IN_DAY * days))}; + Cursor cursor = db.rawQuery(SQL, whereArgs); + ArrayList contacts = new ArrayList<>(); + while (cursor.moveToNext()) { + try { + contacts.add(new ShortcutService.FrequentContact(cursor.getString(0), Jid.fromString(cursor.getString(1)))); + } catch (Exception e) { + Log.d(Config.LOGTAG, e.getMessage()); + } + } + cursor.close(); + return contacts; + } } -- cgit v1.2.3