From df9dcb1060d44a719e2892446b62cde884a880cf Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 24 Jan 2014 23:58:51 +0100 Subject: basic persistance layer. refactor some parts of the conversation activity --- src/de/gultsch/chat/entities/Account.java | 11 +++ src/de/gultsch/chat/entities/Contact.java | 35 +++++++++ src/de/gultsch/chat/entities/Conversation.java | 99 ++++++++++++++++++++++++++ src/de/gultsch/chat/entities/Message.java | 19 +++++ 4 files changed, 164 insertions(+) create mode 100644 src/de/gultsch/chat/entities/Account.java create mode 100644 src/de/gultsch/chat/entities/Contact.java create mode 100644 src/de/gultsch/chat/entities/Conversation.java create mode 100644 src/de/gultsch/chat/entities/Message.java (limited to 'src/de/gultsch/chat/entities') diff --git a/src/de/gultsch/chat/entities/Account.java b/src/de/gultsch/chat/entities/Account.java new file mode 100644 index 00000000..f1e15f0b --- /dev/null +++ b/src/de/gultsch/chat/entities/Account.java @@ -0,0 +1,11 @@ +package de.gultsch.chat.entities; + +public class Account { + + private String uuid; + + public String getUuid() { + return this.uuid; + } + +} diff --git a/src/de/gultsch/chat/entities/Contact.java b/src/de/gultsch/chat/entities/Contact.java new file mode 100644 index 00000000..30dfc05b --- /dev/null +++ b/src/de/gultsch/chat/entities/Contact.java @@ -0,0 +1,35 @@ +package de.gultsch.chat.entities; + +import java.io.Serializable; + +import android.net.Uri; + +public class Contact implements Serializable { + private static final long serialVersionUID = -4570817093119419962L; + protected String display_name; + protected String jid; + protected String photo; + + public Contact(String display_name, String jid, String photo) { + this.display_name = display_name; + this.jid = jid; + this.photo = photo; + } + + public String getDisplayName() { + return this.display_name; + } + + public Uri getProfilePhoto() { + if (photo == null) return null; + return Uri.parse(photo); + } + + public String getJid() { + return this.jid; + } + + public boolean match(String needle) { + return (jid.toLowerCase().contains(needle.toLowerCase()) || (display_name.toLowerCase().contains(needle.toLowerCase()))); + } +} diff --git a/src/de/gultsch/chat/entities/Conversation.java b/src/de/gultsch/chat/entities/Conversation.java new file mode 100644 index 00000000..92d5bcba --- /dev/null +++ b/src/de/gultsch/chat/entities/Conversation.java @@ -0,0 +1,99 @@ +package de.gultsch.chat.entities; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.UUID; + +import android.content.ContentValues; +import android.database.Cursor; +import android.net.Uri; + +public class Conversation implements Serializable { + + private static final long serialVersionUID = -6727528868973996739L; + public static final int STATUS_AVAILABLE = 0; + public static final int STATUS_ARCHIVED = 1; + public static final int STATUS_DELETED = 2; + private String uuid; + private String name; + private String profilePhotoUri; + private String accountUuid; + private String contactJid; + private int status; + + // legacy. to be removed + private ArrayList msgs = new ArrayList(); + + public Conversation(String name, Uri profilePhoto, Account account, + String contactJid) { + this(UUID.randomUUID().toString(), name, profilePhoto.toString(), + account.getUuid(), contactJid, STATUS_AVAILABLE); + } + + public Conversation(String uuid, String name, String profilePhoto, + String accountUuid, String contactJid, int status) { + this.uuid = uuid; + this.name = name; + this.profilePhotoUri = profilePhoto; + this.accountUuid = accountUuid; + this.contactJid = contactJid; + this.status = status; + } + + public ArrayList getLastMessages(int count, int offset) { + msgs.add(new Message("this is my last message")); + return msgs; + } + + public String getName() { + return this.name; + } + + public String getUuid() { + return this.uuid; + } + + public String getProfilePhotoString() { + return this.profilePhotoUri; + } + + public String getAccountUuid() { + return this.accountUuid; + } + + public String getContactJid() { + return this.contactJid; + } + + public Uri getProfilePhotoUri() { + if (this.profilePhotoUri != null) { + return Uri.parse(profilePhotoUri); + } + return null; + } + + public int getStatus() { + return this.status; + } + + public ContentValues getContentValues() { + ContentValues values = new ContentValues(); + values.put("uuid", this.uuid); + values.put("name", this.name); + values.put("profilePhotoUri", this.profilePhotoUri); + values.put("accountUuid", this.accountUuid); + values.put("contactJid", this.contactJid); + values.put("status", this.status); + return values; + } + + public static Conversation fromCursor(Cursor cursor) { + return new Conversation( + cursor.getString(cursor.getColumnIndex("uuid")), + cursor.getString(cursor.getColumnIndex("name")), + cursor.getString(cursor.getColumnIndex("profilePhotoUri")), + cursor.getString(cursor.getColumnIndex("accountUuid")), + cursor.getString(cursor.getColumnIndex("contactJid")), + cursor.getInt(cursor.getColumnIndex("status"))); + } +} diff --git a/src/de/gultsch/chat/entities/Message.java b/src/de/gultsch/chat/entities/Message.java new file mode 100644 index 00000000..3b4e2115 --- /dev/null +++ b/src/de/gultsch/chat/entities/Message.java @@ -0,0 +1,19 @@ +package de.gultsch.chat.entities; + +public class Message { + + String msg; + + public Message(String msg) { + this.msg = msg; + } + + public String toString() { + return msg; + } + + public String getTimeReadable() { + return "2 min"; + } + +} -- cgit v1.2.3