use of net.iGap.realm.RealmRegisteredInfo in project iGap-Android by KianIranian-STDG.
the class HelperUrl method isInCurrentChat.
private static boolean isInCurrentChat(String userName) {
if (FragmentChat.lastChatRoomId > 0) {
return DbManager.getInstance().doRealmTask(realm -> {
RealmRoom realmRoom = realm.where(RealmRoom.class).equalTo("id", FragmentChat.lastChatRoomId).findFirst();
String currentChatUserName = "";
String currentChatInviteLink = "";
if (realmRoom != null) {
if (realmRoom.getChannelRoom() != null) {
currentChatUserName = realmRoom.getChannelRoom().getUsername();
currentChatInviteLink = realmRoom.getChannelRoom().getInviteLink();
} else if (realmRoom.getGroupRoom() != null) {
currentChatUserName = realmRoom.getGroupRoom().getUsername();
currentChatInviteLink = realmRoom.getGroupRoom().getInvite_link();
} else if (realmRoom.getChatRoom() != null) {
RealmRegisteredInfo registeredInfo = RealmRegisteredInfo.getRegistrationInfo(realm, realmRoom.getChatRoom().getPeerId());
if (registeredInfo != null) {
currentChatUserName = registeredInfo.getUsername();
}
}
}
if (currentChatUserName != null && currentChatUserName.toLowerCase().equals(userName.toLowerCase())) {
return true;
}
if (currentChatInviteLink != null && currentChatInviteLink.length() > 0) {
int index = currentChatInviteLink.lastIndexOf("/");
if (index != -1) {
String st = currentChatInviteLink.toLowerCase().substring(index + 1);
return st.equals(userName.toLowerCase());
}
}
return false;
});
}
return false;
}
use of net.iGap.realm.RealmRegisteredInfo in project iGap-Android by KianIranian-STDG.
the class GoToChatActivity method startActivity.
public void startActivity(FragmentActivity activity) {
String roomName = "";
if (FragmentChat.mForwardMessages != null || HelperGetDataFromOtherApp.hasSharedData || FragmentChat.structIGSticker != null) {
roomName = DbManager.getInstance().doRealmTask(realm -> {
RealmRoom realmRoom = realm.where(RealmRoom.class).equalTo("id", roomid).findFirst();
if (realmRoom != null) {
if (realmRoom.getReadOnly() || hasSendMessagePermission() || (realmRoom.getType() != ProtoGlobal.Room.Type.CHAT && FragmentChat.structIGSticker != null) || (realmRoom.getType() == ProtoGlobal.Room.Type.CHAT && realmRoom.getChatRoom() != null && RealmRoom.isBot(realmRoom.getChatRoom().getPeerId()))) {
if (activity != null && !(activity).isFinishing()) {
new MaterialDialog.Builder(activity).title(R.string.dialog_readonly_chat).positiveText(R.string.ok).show();
}
return null;
}
return realmRoom.getTitle();
} else if (peerID > 0) {
RealmRegisteredInfo _RegisteredInfo = RealmRegisteredInfo.getRegistrationInfo(realm, peerID);
if (_RegisteredInfo != null) {
return _RegisteredInfo.getDisplayName();
}
}
return "";
});
if (roomName == null) {
return;
}
}
if (HelperGetDataFromOtherApp.hasSharedData) {
String message = G.context.getString(R.string.send_message_to) + " " + roomName;
MaterialDialog.Builder mDialog = new MaterialDialog.Builder(activity).title(message).positiveText(R.string.ok).negativeText(R.string.cancel).onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
FragmentChat fragmentChat = new FragmentChat();
fragmentChat.setArguments(getBundle());
fragmentChatBackStack(activity);
new HelperFragment(activity.getSupportFragmentManager(), fragmentChat).setReplace(false).load();
}
}).onNegative((dialog, which) -> {
HelperGetDataFromOtherApp.hasSharedData = false;
// revert main rooms list from share mode
if (activity instanceof ActivityMain) {
((ActivityMain) activity).checkHasSharedData(false);
}
}).neutralText(R.string.another_room).onNeutral((dialog, which) -> dialog.dismiss());
if (!activity.isFinishing()) {
mDialog.show();
}
} else if (FragmentChat.structIGSticker != null) {
String message = G.context.getString(R.string.send_message_to) + " " + roomName;
MaterialDialog.Builder mDialog = new MaterialDialog.Builder(activity).title(message).positiveText(R.string.ok).negativeText(R.string.cancel).onPositive((dialog, which) -> {
FragmentChat fragmentChat = new FragmentChat();
fragmentChat.setArguments(getBundle());
fragmentChatBackStack(activity);
new HelperFragment(activity.getSupportFragmentManager(), fragmentChat).setReplace(false).load();
}).onNegative((dialog, which) -> {
FragmentChat.structIGSticker = null;
if (activity instanceof ActivityMain) {
((ActivityMain) activity).checkHasSharedData(false);
}
}).neutralText(R.string.another_room).onNeutral((dialog, which) -> dialog.dismiss());
if (!activity.isFinishing()) {
mDialog.show();
}
} else if (FragmentChat.mForwardMessages != null) {
String message = G.context.getString(R.string.send_forward_to) + " " + roomName + "?";
MaterialDialog.Builder mDialog = new MaterialDialog.Builder(activity).title(message).positiveText(R.string.ok).negativeText(R.string.cancel).onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
loadChatFragment(activity);
}
}).onNegative((dialog, which) -> {
disableForwardMessage(activity);
FragmentChat.mForwardMessages = null;
}).neutralText(R.string.another_room).onNeutral((dialog, which) -> dialog.dismiss());
if (!(activity).isFinishing()) {
mDialog.show();
}
} else {
loadChatFragment(activity);
}
}
use of net.iGap.realm.RealmRegisteredInfo in project iGap-Android by KianIranian-STDG.
the class HelperGetAction method getMultipleAction.
/**
* search structActions list for this roomId and return correct string for show in toolbar
*
* @param roomId current roomId
* @return text for show in toolbar
*/
private static String getMultipleAction(long roomId) {
ProtoGlobal.ClientAction latestAction = getLatestAction(roomId);
if (latestAction == null) {
return null;
} else {
return DbManager.getInstance().doRealmTask(realm -> {
int count = 0;
StructAction latestStruct = null;
Iterator<StructAction> iterator1 = structActions.iterator();
ArrayList<Long> userIds = new ArrayList<>();
while (iterator1.hasNext()) {
StructAction struct = iterator1.next();
if (struct.roomId == roomId && struct.action == latestAction) {
if (!userIds.contains(struct.userId)) {
userIds.add(struct.userId);
latestStruct = struct;
count++;
}
}
}
if (count == 1) {
RealmRegisteredInfo realmRegisteredInfo = RealmRegisteredInfo.getRegistrationInfo(realm, latestStruct.userId);
if (realmRegisteredInfo != null && realmRegisteredInfo.getDisplayName().length() > 0) {
String action;
if (HelperCalander.isPersianUnicode) {
action = "\u200F" + realmRegisteredInfo.getDisplayName() + " " + convertActionEnum(latestStruct.action);
} else {
action = "\u200E" + realmRegisteredInfo.getDisplayName() + " " + G.fragmentActivity.getResources().getString(R.string.is) + " " + convertActionEnum(latestStruct.action);
}
return action;
} else {
return null;
}
} else if (count < Config.GROUP_SHOW_ACTIONS_COUNT) {
StringBuilder concatenatedNames = new StringBuilder();
Iterator<StructAction> iterator = structActions.iterator();
while (iterator.hasNext()) {
StructAction struct = iterator.next();
if (struct.roomId == roomId && struct.action == latestAction) {
RealmRegisteredInfo realmRegisteredInfo = RealmRegisteredInfo.getRegistrationInfo(realm, struct.userId);
if (realmRegisteredInfo != null) {
concatenatedNames.append(realmRegisteredInfo.getDisplayName()).append(" , ");
}
}
}
if ((concatenatedNames.length() == 0) || concatenatedNames.length() == 0) {
return null;
}
concatenatedNames = new StringBuilder(concatenatedNames.substring(0, concatenatedNames.length() - 1));
if (HelperCalander.isPersianUnicode) {
return "\u200F" + concatenatedNames + " " + HelperConvertEnumToString.convertActionEnum(latestAction);
} else {
return concatenatedNames + " " + G.fragmentActivity.getResources().getString(R.string.are) + " " + convertActionEnum(latestAction);
}
} else {
if (HelperCalander.isPersianUnicode) {
return "\u200F" + count + " " + G.fragmentActivity.getResources().getString(R.string.members_are) + " " + convertActionEnum(latestAction);
} else {
return count + " " + G.fragmentActivity.getResources().getString(R.string.members_are) + " " + convertActionEnum(latestAction);
}
}
});
}
}
use of net.iGap.realm.RealmRegisteredInfo in project iGap-Android by KianIranian-STDG.
the class ActivityPopUpNotification method setImageAndTextAppBar.
// private void setUpEmojiPopup() {
// setEmojiColor(new Theme().getRootColor(this), new Theme().getTitleTextColor(this), new Theme().getTitleTextColor(this));
// }
//
// private void setEmojiColor(int BackgroundColor, int iconColor, int dividerColor) {
// emojiPopup = EmojiPopup.Builder.fromRootView(findViewById(R.id.ac_ll_parent_notification)).setOnEmojiBackspaceClickListener(new OnEmojiBackspaceClickListener() {
// @Override
// public void onEmojiBackspaceClick(View v) {
//
// }
// }).setOnEmojiPopupShownListener(new OnEmojiPopupShownListener() {
// @Override
// public void onEmojiPopupShown() {
// changeEmojiButtonImageResource(R.string.md_black_keyboard_with_white_keys);
// }
// }).setOnSoftKeyboardOpenListener(new OnSoftKeyboardOpenListener() {
// @Override
// public void onKeyboardOpen(final int keyBoardHeight) {
//
// }
// }).setOnEmojiPopupDismissListener(new OnEmojiPopupDismissListener() {
// @Override
// public void onEmojiPopupDismiss() {
// changeEmojiButtonImageResource(R.string.md_emoticon_with_happy_face);
// }
// }).setOnSoftKeyboardCloseListener(new OnSoftKeyboardCloseListener() {
// @Override
// public void onKeyboardClose() {
// emojiPopup.dismiss();
// }
// })
// .setBackgroundColor(BackgroundColor)
// .setIconColor(iconColor)
// .setDividerColor(dividerColor)
// .build(edtChat);
// }
private void setImageAndTextAppBar(int position) {
if (mList.size() == 0)
return;
initialize = mList.get(position).initialize;
color = mList.get(position).color;
txtName.setText(mList.get(position).name);
DbManager.getInstance().doRealmTask(realm -> {
RealmRegisteredInfo realmRegisteredInfo = RealmRegisteredInfo.getRegistrationInfo(realm, mList.get(position).senderId);
if (realmRegisteredInfo != null) {
if (realmRegisteredInfo.getStatus().equals(ProtoGlobal.RegisteredUser.Status.EXACTLY.toString())) {
txtLastSeen.setText(LastSeenTimeUtil.computeTime(txtLastSeen.getContext(), realmRegisteredInfo.getId(), realmRegisteredInfo.getLastSeen(), false));
} else {
txtLastSeen.setText(realmRegisteredInfo.getStatus());
}
} else {
txtLastSeen.setText("");
}
setAvatar(realmRegisteredInfo, realm);
});
}
use of net.iGap.realm.RealmRegisteredInfo in project iGap-Android by KianIranian-STDG.
the class SearchFragment method fillChat.
private void fillChat(String text) {
DbManager.getInstance().doRealmTask(realm -> {
final RealmResults<RealmRegisteredInfo> results;
if (searchTxt.startsWith("@")) {
results = realm.where(RealmRegisteredInfo.class).contains("username", text, Case.INSENSITIVE).equalTo("isBot", false).findAll();
} else {
results = realm.where(RealmRegisteredInfo.class).equalTo("isBot", false).beginGroup().contains("username", text, Case.INSENSITIVE).or().contains("displayName", text, Case.INSENSITIVE).endGroup().findAll();
}
if (results != null && results.size() > 0) {
addHeader(G.fragmentActivity.getResources().getString(R.string.member));
for (RealmRegisteredInfo contact : results) {
StructSearch item = new StructSearch();
item.name = contact.getDisplayName();
item.isVerified = contact.isVerified();
item.time = contact.getLastSeen();
item.userName = contact.getUsername();
item.comment = "";
item.id = contact.getId();
item.idDetectAvatar = contact.getId();
item.type = SearchType.contact;
item.initials = contact.getInitials();
item.color = contact.getColor();
item.avatar = contact.getLastAvatar(realm);
list.add(item);
}
}
});
}
Aggregations