public static StorageManager db () { return StorageManager.shared(); }
public ThreadWrapper(String entityId){ this(StorageManager.shared().fetchOrCreateEntityWithEntityID(Thread.class, entityId)); }
protected void getDataFromBundle(Bundle bundle){ if (bundle == null) { return; } animateExit = bundle.getBoolean(ChatActivity.ANIMATE_EXIT, animateExit); String threadEntityID = bundle.getString(InterfaceManager.THREAD_ENTITY_ID); if(threadEntityID != null && threadEntityID.length() > 0) { thread = StorageManager.shared().fetchThreadWithEntityID(threadEntityID); } else { finish(); } }
public void updateReadReceipts (HashMap<String, Object> map) { for(String key : map.keySet()) { User user = StorageManager.shared().fetchOrCreateEntityWithEntityID(User.class, key); Object innerMap = map.get(key); if(innerMap != null && innerMap instanceof HashMap) { Map<String, Object> statusMap = (Map) innerMap; long status = ReadStatus.None; long date = 0; if(statusMap.get(Keys.Status) instanceof Long) { status = (Long) statusMap.get(Keys.Status); } if(statusMap.get(Keys.Date) instanceof Long) { date = (Long) statusMap.get(Keys.Date); } model.setUserReadStatus(user, new ReadStatus((int) status), new DateTime(date)); } } }
public static UserWrapper initWithEntityId(String entityId){ User model = StorageManager.shared().fetchOrCreateEntityWithEntityID(User.class, entityId); return initWithModel(model); }
protected void loadData () { final List<User> list = ChatSDK.contact().contacts(); // Removing the users that is already inside the thread. if (mode == MODE_ADD_TO_CONVERSATION && !threadEntityID.equals("")){ thread = StorageManager.shared().fetchThreadWithEntityID(threadEntityID); List<User> threadUser = thread.getUsers(); list.removeAll(threadUser); } List<UserListItem> items = new ArrayList<>(); for(User u : list) { items.add(u); } adapter.setUsers(items, true); }
private UserWrapper(FirebaseUser authData){ model = StorageManager.shared().fetchOrCreateEntityWithEntityID(User.class, authData.getUid()); updateUserFromAuthData(authData); }
public MessageWrapper(DataSnapshot snapshot){ this.model = StorageManager.shared().fetchOrCreateEntityWithEntityID(Message.class, snapshot.getKey()); deserialize(snapshot); }
public static Message newMessage (int type, Thread thread) { Message message = StorageManager.shared().createEntity(Message.class); message.setSender(ChatSDK.currentUser()); message.setMessageStatus(MessageSendStatus.Sending); message.setDate(new DateTime(System.currentTimeMillis())); message.setEntityID(UUID.randomUUID().toString()); message.setType(type); thread.addMessage(message); return message; }
public List<Thread> getThreads(int type, boolean allowDeleted, boolean showEmpty){ if(ThreadType.isPublic(type)) { return StorageManager.shared().fetchThreadsWithType(ThreadType.PublicGroup); } // We may access this method post authentication if(ChatSDK.currentUser() == null) { return new ArrayList<>(); } List<Thread> threads = StorageManager.shared().fetchThreadsForUserWithID(ChatSDK.currentUser().getId()); List<Thread> filteredThreads = new ArrayList<>(); for(Thread thread : threads) { if(thread.typeIs(type) && (!thread.getDeleted() || allowDeleted)) { if (showEmpty || thread.getMessages().size() > 0) { filteredThreads.add(thread); } } } // Sort the threads list before returning Collections.sort(filteredThreads, new ThreadsSorter()); return filteredThreads; }
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); String userEntityID = getIntent().getStringExtra(InterfaceManager.USER_ENTITY_ID); if (userEntityID != null && !userEntityID.isEmpty()) { user = StorageManager.shared().fetchUserWithEntityID(userEntityID); if (user == null) { ToastHelper.show(this, R.string.user_entity_id_not_set); finish(); return; } } gridPadding = getIntent().getIntExtra(BaseProfilePicturesHandler.KeyGridPadding, gridPadding); pictureMargin = getIntent().getIntExtra(BaseProfilePicturesHandler.KeyPictureMargin, maxPictures); picturesPerRow = getIntent().getIntExtra(BaseProfilePicturesHandler.KeyPicturesPerRow, picturesPerRow); maxPictures = getIntent().getIntExtra(BaseProfilePicturesHandler.KeyMaxPictures, maxPictures); hideButton = getIntent().getBooleanExtra(BaseProfilePicturesHandler.KeyHideButton, hideButton); String warning = getIntent().getStringExtra(BaseProfilePicturesHandler.KeyLimitWarning); if (warning != null) { limitWarning = warning; } }
public UserWrapper(DataSnapshot snapshot){ model = StorageManager.shared().fetchOrCreateEntityWithEntityID(User.class, snapshot.getKey()); deserialize((Map<String, Object>) snapshot.getValue()); }
public void createMessageNotification(final Context context, Intent resultIntent, String userEntityID, String title, String message) { int pushIcon = ChatSDK.config().pushNotificationImageDefaultResourceId; if(pushIcon <= 0) { pushIcon = R.drawable.icn_72_push_mask; } final int smallPushIcon = pushIcon; final Bitmap largePushIcon = BitmapFactory.decodeResource(context.getResources(), smallPushIcon); Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); if (userEntityID != null && !userEntityID.isEmpty()) { User user = StorageManager.shared().fetchUserWithEntityID(userEntityID); if (user != null) { ImageBuilder.bitmapForURL(context, user.getAvatarURL()).subscribe((bitmap, throwable) -> { if (throwable != null) { ChatSDK.logError(throwable); } if (bitmap == null) { bitmap = largePushIcon; } createAlertNotification(context, resultIntent, title, message, bitmap, smallPushIcon, alarmSound, -1); }); } else { createAlertNotification(context, resultIntent, title, message, largePushIcon, smallPushIcon, alarmSound, -1); } } }
@Override protected void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); String userEntityID = getIntent().getStringExtra(InterfaceManager.USER_ENTITY_ID); if (userEntityID == null || userEntityID.isEmpty()) { showToast("User Entity ID not set"); finish(); return; } else { currentUser = StorageManager.shared().fetchUserWithEntityID(userEntityID); // Save a copy of the data to see if it has changed userMeta = new HashMap<>(currentUser.metaMap()); } setContentView(activityLayout()); initViews(); }
public Single<List<Message>> loadMoreMessagesForThread(final Message fromMessage, final Thread thread) { return Single.create((SingleOnSubscribe<List<Message>>) e -> { // Date messageDate = fromMessage != null ? fromMessage.getDate().toDate() : null; // First try to load the messages from the database List<Message> list = StorageManager.shared().fetchMessagesForThreadWithID(thread.getId(), ChatSDK.config().messagesToLoadPerBatch + 1, messageDate); e.onSuccess(list); }).subscribeOn(Schedulers.single()); }
@Override protected void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.chat_sdk_profile_activity); String userEntityID = getIntent().getStringExtra(InterfaceManager.USER_ENTITY_ID); if (userEntityID != null && !userEntityID.isEmpty()) { user = StorageManager.shared().fetchUserWithEntityID(userEntityID); if (user != null) { ProfileFragment fragment = (ProfileFragment) getSupportFragmentManager().findFragmentById(R.id.profile_fragment); fragment.setUser(user); fragment.updateInterface(); return; } } ToastHelper.show(this, R.string.user_entity_id_not_set); finish(); }
protected void setMetaValue(String key, Object value) { MessageMetaValue metaValue = (MessageMetaValue) metaValue(key); if (metaValue == null) { metaValue = StorageManager.shared().createEntity(MessageMetaValue.class); metaValue.setMessageId(this.getId()); getMetaValues().add(metaValue); } metaValue.setValue(MetaValueHelper.toString(value)); metaValue.setKey(key); metaValue.update(); update(); }
@Keep public void setMetaValue (String key, String value) { ThreadMetaValue metaValue = metaValueForKey(key); if (metaValue == null) { metaValue = StorageManager.shared().createEntity(ThreadMetaValue.class); metaValue.setThreadId(this.getId()); getMetaValues().add(metaValue); } metaValue.setValue(value); metaValue.setKey(key); metaValue.update(); update(); }
@Keep public void setMetaValue (String key, String value) { UserMetaValue metaValue = metaValueForKey(key); if (metaValue == null) { metaValue = StorageManager.shared().createEntity(UserMetaValue.class); metaValue.setUserId(this.getId()); getMetaValues().add(metaValue); } metaValue.setValue(value); metaValue.setKey(key); metaValue.update(); update(); }
public void setUserReadStatus (User user, ReadStatus status, DateTime date) { ReadReceiptUserLink link = linkForUser(user); if(link == null) { link = StorageManager.shared().createEntity(ReadReceiptUserLink.class); link.setMessageId(this.getId()); getReadReceiptLinks().add(link); } link.setUser(user); link.setStatus(status.getValue()); link.setDate(date); link.update(); update(); }