diff options
author | Christian Schneppe <christian@pix-art.de> | 2017-05-31 21:49:40 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2017-05-31 21:49:40 +0200 |
commit | c741b33bc22fc87eb75dbc448898ebeba88dbe0c (patch) | |
tree | cb7935fba0e0b7c19550e1ceb93b02ea26442f95 /src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java | |
parent | 21bf06c064554c406a6b769160c36a471da45e07 (diff) |
add the 4 most frequently contacted contacts as app shortcuts
Diffstat (limited to 'src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/persistance/DatabaseBackend.java | 18 |
1 files changed, 18 insertions, 0 deletions
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<ShortcutService.FrequentContact> 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<ShortcutService.FrequentContact> 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; + } } |