/** * Retrieve a type instalce for a given database value, or null. * @param id The database value. * @return A corresponding Presence instance, or null. */ public static Presence byPresenceId(int id) { switch(id) { case StatusUpdates.OFFLINE: return OFFLINE; case StatusUpdates.INVISIBLE: return INVISIBLE; case StatusUpdates.AWAY: return AWAY; case StatusUpdates.IDLE: return IDLE; case StatusUpdates.DO_NOT_DISTURB: return DO_NOT_DISTURB; case StatusUpdates.AVAILABLE: return AVAILABLE; } return null; }
/** * Save a single status update. * @param statusUpdate The status update to be stored. */ public void persist(StatusUpdate statusUpdate) { ContentValues values = new ContentValues(); try { put(values, statusUpdate); provider.insert(StatusUpdates.CONTENT_URI, values); } catch (RemoteException e) { e.printStackTrace(); } }
/** * Add all status update values to a given ContentValues instance. * @param values The ContentValues instance. * @param statusUpdate The status update to be copied. */ private void put(ContentValues values, StatusUpdate statusUpdate) { if (statusUpdate.getDataId() >= 0l) { values.put(StatusUpdates.DATA_ID, statusUpdate.getDataId()); } values.put(StatusUpdates.IM_ACCOUNT, statusUpdate.getImAccount()); values.put(StatusUpdates.IM_HANDLE, statusUpdate.getImHandle()); values.put(StatusUpdates.STATUS, statusUpdate.getStatus()); values.put(StatusUpdates.PRESENCE, statusUpdate.getPresence().getValue()); values.put(StatusUpdates.PROTOCOL, statusUpdate.getProtocol().getValue()); }
/** * Create a new status update based on the current cursor. * @param cursor The current DB cursor. * @return A new StatusUpdate instance. */ private StatusUpdate newStatusUpdate(Cursor cursor) { StatusUpdate statusUpdate = new StatusUpdate(); int index = cursor.getColumnIndex(Data._ID); statusUpdate.setDataId(cursor.getLong(index)); index = cursor.getColumnIndex(StatusUpdates.PRESENCE); statusUpdate.setPresence(Presence.byPresenceId(cursor.getInt(index))); index = cursor.getColumnIndex(StatusUpdates.STATUS); statusUpdate.setStatus(cursor.getString(index)); return statusUpdate; }
public int getPresenceIconResourceId(int presence) { return StatusUpdates.getPresenceIconResourceId(presence); }