public ThreadWrapper(String entityId){ this(StorageManager.shared().fetchOrCreateEntityWithEntityID(Thread.class, entityId)); }
public List<Message> fetchMessagesForThreadWithID (long threadID, int limit) { return fetchMessagesForThreadWithID(threadID, limit, null); }
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 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); } } }
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 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()); }
thread = StorageManager.shared().fetchThreadWithID((Long) extraData); thread = StorageManager.shared().fetchThreadWithEntityID((String) extraData);
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; }
public static StorageManager db () { return StorageManager.shared(); }
protected Completable reloadUsers () { return Completable.create(e -> { if (loadingMode != MODE_USE_SOURCE) { sourceUsers.clear(); // If this is not a dialog we will load the contacts of the user. switch (loadingMode) { case MODE_LOAD_CONTACTS: sourceUsers.addAll(ChatSDK.contact().contacts()); Timber.d("Contacts: " + sourceUsers.size()); break; case MODE_LOAD_THREAD_USERS: Thread thread = DaoCore.fetchEntityWithEntityID(Thread.class, extraData); // Remove the current user from the list. List<User> users = thread.getUsers(); users.remove(ChatSDK.currentUser()); sourceUsers.addAll(users); break; case MODE_LOAD_CONTACT_THAT_NOT_IN_THREAD: List<User> users1 = ChatSDK.contact().contacts(); thread = StorageManager.shared().fetchThreadWithID((Long) extraData); List<User> threadUser = thread.getUsers(); users1.removeAll(threadUser); sourceUsers.addAll(users1); break; } } e.onComplete(); }).subscribeOn(Schedulers.single()); }
public Thread fetchThreadWithUsers (List<User> users) { for(Thread t : allThreads()) { if(t.getUsers().equals(users)) { return t; } } return null; }
@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; } }
@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(); }
List<Message> list = StorageManager.shared().fetchMessagesForThreadWithID(model.getId(), numberOfMessages + 1, messageDate);
public static UserWrapper initWithEntityId(String entityId){ User model = StorageManager.shared().fetchOrCreateEntityWithEntityID(User.class, entityId); return initWithModel(model); }
@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(); }
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); }
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(); }
private UserWrapper(FirebaseUser authData){ model = StorageManager.shared().fetchOrCreateEntityWithEntityID(User.class, authData.getUid()); updateUserFromAuthData(authData); }
@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(); }