use of net.iGap.realm.RealmRegisteredInfo in project iGap-Android by KianIranian-STDG.
the class FragmentShowAvatars method fillListAvatar.
private void fillListAvatar(From from) {
boolean isRoomExist = false;
switch(from) {
case chat:
case setting:
RealmRegisteredInfo user = DbManager.getInstance().doRealmTask(realm -> {
return RealmRegisteredInfo.getRegistrationInfo(realm, mPeerId);
});
if (user != null) {
new RequestUserAvatarGetList().userAvatarGetList(mPeerId);
isRoomExist = true;
}
break;
case group:
RealmRoom roomGroup = DbManager.getInstance().doRealmTask(realm -> {
return realm.where(RealmRoom.class).equalTo("id", mPeerId).findFirst();
});
if (roomGroup != null) {
new RequestGroupAvatarGetList().groupAvatarGetList(mPeerId);
isRoomExist = true;
roleGroup = roomGroup.getGroupRoom().getRole();
}
break;
case channel:
RealmRoom roomChannel = DbManager.getInstance().doRealmTask(realm -> {
return realm.where(RealmRoom.class).equalTo("id", mPeerId).findFirst();
});
if (roomChannel != null) {
new RequestChannelAvatarGetList().channelAvatarGetList(mPeerId);
isRoomExist = true;
roleChannel = roomChannel.getChannelRoom().getRole();
}
break;
}
if (isRoomExist) {
avatarList = DbManager.getInstance().doRealmTask(realm -> {
return realm.where(RealmAvatar.class).equalTo("ownerId", mPeerId).findAll().sort("id", Sort.DESCENDING);
});
avatarListSize = avatarList.size();
}
}
use of net.iGap.realm.RealmRegisteredInfo in project iGap-Android by KianIranian-STDG.
the class AbstractMessage method addSenderNameToGroupIfNeed.
private void addSenderNameToGroupIfNeed(final NewChatItemHolder holder) {
if (G.showSenderNameInGroup) {
View messageSenderName = holder.getContentBloke().findViewById(R.id.messageSenderName);
if (messageSenderName != null) {
holder.getContentBloke().removeView(messageSenderName);
}
RealmRegisteredInfo realmRegisteredInfo = DbManager.getInstance().doRealmTask(realm -> {
return RealmRegisteredInfo.getRegistrationInfo(realm, messageObject.userId);
});
if (realmRegisteredInfo != null) {
final AppCompatTextView _tv = ViewMaker.makeHeaderTextView(holder.getContext(), realmRegisteredInfo.getDisplayName());
// must call measure!
_tv.measure(0, 0);
int maxWith = 0;
maxWith = _tv.getMeasuredWidth() + i_Dp(R.dimen.dp40);
if (minWith < maxWith) {
minWith = maxWith;
}
holder.getContentBloke().setMinimumWidth(Math.min(minWith, G.maxChatBox));
holder.getContentBloke().addView(_tv, 0, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
}
}
}
use of net.iGap.realm.RealmRegisteredInfo in project iGap-Android by KianIranian-STDG.
the class AbstractMessage method replyMessageIfNeeded.
@CallSuper
protected void replyMessageIfNeeded(VH holder) {
NewChatItemHolder mHolder;
if (holder instanceof NewChatItemHolder)
mHolder = (NewChatItemHolder) holder;
else
return;
mHolder.getContentBloke().setMinimumWidth(0);
mHolder.getContentBloke().setMinimumHeight(0);
/**
* set replay container visible if message was replayed, otherwise, gone it
*/
View cslr_replay_layout = ((NewChatItemHolder) holder).getContentBloke().findViewById(R.id.cslr_replay_layout);
if (cslr_replay_layout != null) {
mHolder.getContentBloke().removeView(cslr_replay_layout);
}
if ((messageObject.replayToMessage != null && !messageObject.replayToMessage.deleted) || messageObject.storyObject != null) {
final View replayView = ViewMaker.getViewReplay(((NewChatItemHolder) holder).getContext());
final TextView replyFrom = replayView.findViewById(R.id.chslr_txt_replay_from);
final AppCompatTextView replayMessage = replayView.findViewById(R.id.chslr_txt_replay_message);
replayView.setOnClickListener(v -> {
if (FragmentChat.isInSelectionMode) {
holder.itemView.performLongClick();
return;
}
messageClickListener.onReplyClick(messageObject);
});
replayView.setOnLongClickListener(getLongClickPerform(holder));
try {
// TODO: 12/29/20 MESSAGE_REFACTOR
if (messageObject.replayToMessage != null) {
AppUtils.rightFileThumbnailIcon(replayView.findViewById(R.id.chslr_imv_replay_pic), messageObject.replayToMessage.forwardedMessage == null ? messageObject.replayToMessage.messageType : messageObject.replayToMessage.forwardedMessage.messageType, messageObject.replayToMessage.forwardedMessage == null ? messageObject.replayToMessage : messageObject.replayToMessage.forwardedMessage);
} else if (messageObject.storyObject != null) {
// TODO: 8/15/21 must write a new method for this part
AttachmentObject storyAttachment = messageObject.storyObject.attachmentObject;
ImageView view = replayView.findViewById(R.id.chslr_imv_replay_pic);
if (storyAttachment != null) {
if (storyAttachment.isFileExistsOnLocal(messageObject)) {
G.imageLoader.displayImage(AndroidUtils.suitablePath(storyAttachment.filePath), view);
} else if (storyAttachment.isThumbnailExistsOnLocal(messageObject)) {
G.imageLoader.displayImage(AndroidUtils.suitablePath(storyAttachment.thumbnailPath), view);
} else {
view.setVisibility(View.GONE);
}
} else {
view.setVisibility(View.GONE);
}
}
} catch (IllegalStateException e) {
e.printStackTrace();
}
if (type == ProtoGlobal.Room.Type.CHANNEL) {
if (mAdapter.getRealmRoom() != null) {
replyFrom.setText(EmojiManager.getInstance().replaceEmoji(mAdapter.getRealmRoom().getTitle(), replyFrom.getPaint().getFontMetricsInt()));
}
} else {
RealmRegisteredInfo replayToInfo = DbManager.getInstance().doRealmTask(realm -> {
return RealmRegisteredInfo.getRegistrationInfo(realm, (messageObject.replayToMessage != null ? messageObject.replayToMessage.userId : (messageObject.storyObject != null ? messageObject.storyObject.userId : 0)));
});
if (replayToInfo != null) {
if (messageObject.storyObject != null) {
if (messageObject.storyStatus == ProtoGlobal.RoomMessageStory.Status.ACTIVE_VALUE) {
replyFrom.setText(EmojiManager.getInstance().replaceEmoji(replayToInfo.getDisplayName(), replyFrom.getPaint().getFontMetricsInt()) + " \u25CF " + context.getString(R.string.moments_string));
}
} else {
replyFrom.setText(EmojiManager.getInstance().replaceEmoji(replayToInfo.getDisplayName(), replyFrom.getPaint().getFontMetricsInt()));
}
} else if (messageObject.storyObject != null && messageObject.storyStatus != ProtoGlobal.RoomMessageStory.Status.ACTIVE_VALUE) {
replyFrom.setText(R.string.unavailable_moment);
}
}
// TODO: 12/29/20 MESSAGE_REFACTOR
String replayText = null;
if (messageObject.replayToMessage != null) {
replayText = AppUtils.replyTextMessage(messageObject.replayToMessage, holder.itemView.getResources());
} else if (messageObject.storyObject != null) {
if (messageObject.storyStatus == ProtoGlobal.RoomMessageStory.Status.ACTIVE_VALUE) {
replayText = messageObject.storyObject.caption;
ArrayList<Tuple<Integer, Integer>> places = AbstractMessage.getBoldPlaces(replayText);
replayText = AbstractMessage.removeBoldMark(replayText, places);
} else {
replayText = context.getString(R.string.mement_is_no_longer_available);
}
}
replayMessage.setText(EmojiManager.getInstance().replaceEmoji(replayText, replayMessage.getPaint().getFontMetricsInt()));
if (messageObject.isSenderMe() && type != ProtoGlobal.Room.Type.CHANNEL) {
replayView.setBackgroundResource(theme.getSendReplay(replayView.getContext()));
} else {
replayView.setBackgroundResource(theme.getReceivedReplay(replayView.getContext()));
}
replyFrom.setTextColor(theme.getSendReplayUserColor(replyFrom.getContext()));
replayMessage.setTextColor(theme.getSendMessageTextColor(replayMessage.getContext()));
// must call measure!
replyFrom.measure(0, 0);
replayMessage.measure(0, 0);
int maxWith, withMessage, withTitle;
withTitle = replyFrom.getMeasuredWidth();
withMessage = replayMessage.getMeasuredWidth();
maxWith = Math.max(withTitle, withMessage);
maxWith += i_Dp(R.dimen.dp44);
if (replayView.findViewById(R.id.chslr_imv_replay_pic).getVisibility() == View.VISIBLE) {
maxWith += i_Dp(R.dimen.dp52);
}
minWith = maxWith;
mHolder.getContentBloke().setMinimumWidth(Math.min(minWith, G.maxChatBox));
mHolder.getContentBloke().addView(replayView, 0, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
replayMessage.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
replyFrom.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
}
}
use of net.iGap.realm.RealmRegisteredInfo in project iGap-Android by KianIranian-STDG.
the class HelperGetOwnerInfo method checkUserExist.
private static void checkUserExist(long userId, final Listener listener) {
DbManager.getInstance().doRealmTask(realm -> {
RealmRegisteredInfo registeredInfo = RealmRegisteredInfo.getRegistrationInfo(realm, userId);
if (registeredInfo == null) {
G.onUserInfoResponse = new OnUserInfoResponse() {
@Override
public void onUserInfo(ProtoGlobal.RegisteredUser user, String identity) {
if (listener != null) {
listener.OnResponse();
}
}
@Override
public void onUserInfoTimeOut() {
}
@Override
public void onUserInfoError(int majorCode, int minorCode) {
}
};
new RequestUserInfo().userInfo(userId);
} else {
if (listener != null) {
listener.OnResponse();
}
}
});
}
use of net.iGap.realm.RealmRegisteredInfo in project iGap-Android by KianIranian-STDG.
the class HelperLogMessage method getTargetName.
private static String getTargetName(StructMyLog log, Realm realm) throws InvalidProtocolBufferException {
String result = "";
if (ProtoGlobal.RoomMessageLog.parseFrom(log.messageLog).hasTargetUser()) {
long userId = ProtoGlobal.RoomMessageLog.parseFrom(log.messageLog).getTargetUser().getId();
RealmRegisteredInfo realmRegisteredInfo = RealmRegisteredInfo.getRegistrationInfo(realm, userId);
if (realmRegisteredInfo != null) {
result = " " + realmRegisteredInfo.getDisplayName() + " ";
} else {
logMessageUpdateList.put(ProtoGlobal.RoomMessageLog.parseFrom(log.messageLog).getTargetUser().getId(), log);
new RequestUserInfo().userInfo(userId);
}
}
return result;
}
Aggregations