Search in sources :

Example 26 with RealmRegisteredInfo

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();
    }
}
Also used : LinearLayout(android.widget.LinearLayout) Bundle(android.os.Bundle) AppUtils(net.iGap.module.AppUtils) OnGroupAvatarDelete(net.iGap.observers.interfaces.OnGroupAvatarDelete) RequestGroupAvatarGetList(net.iGap.request.RequestGroupAvatarGetList) ProtoFileDownload(net.iGap.proto.ProtoFileDownload) MessageProgress(net.iGap.messageprogress.MessageProgress) OnUserAvatarDelete(net.iGap.observers.interfaces.OnUserAvatarDelete) G(net.iGap.G) GroupChatRole(net.iGap.module.enums.GroupChatRole) DialogAnimation(net.iGap.module.DialogAnimation) R.string.array_Delete_photo(net.iGap.R.string.array_Delete_photo) View(android.view.View) Log(android.util.Log) HelperImageBackColor(net.iGap.helper.HelperImageBackColor) RequestUserAvatarGetList(net.iGap.request.RequestUserAvatarGetList) HelperCalander(net.iGap.helper.HelperCalander) Status(net.iGap.module.downloader.Status) OnComplete(net.iGap.observers.interfaces.OnComplete) RealmRoom(net.iGap.realm.RealmRoom) BitmapDrawable(android.graphics.drawable.BitmapDrawable) Downloader(net.iGap.module.downloader.Downloader) RealmStory(net.iGap.realm.RealmStory) ViewGroup(android.view.ViewGroup) HelperLog(net.iGap.helper.HelperLog) List(java.util.List) TextView(android.widget.TextView) Nullable(androidx.annotation.Nullable) RealmRegisteredInfo(net.iGap.realm.RealmRegisteredInfo) Sort(io.realm.Sort) MaterialDialog(com.afollestad.materialdialogs.MaterialDialog) NotNull(org.jetbrains.annotations.NotNull) DownloadObject(net.iGap.module.downloader.DownloadObject) RealmChangeListener(io.realm.RealmChangeListener) Context(android.content.Context) AttachmentObject(net.iGap.structs.AttachmentObject) RippleView(net.iGap.libs.rippleeffect.RippleView) AndroidUtils(net.iGap.module.AndroidUtils) PagerAdapter(androidx.viewpager.widget.PagerAdapter) AccountManager(net.iGap.module.accountManager.AccountManager) ViewPager(androidx.viewpager.widget.ViewPager) ArrayList(java.util.ArrayList) Toast(android.widget.Toast) LayoutCreator(net.iGap.helper.LayoutCreator) AvatarHandler(net.iGap.helper.avatar.AvatarHandler) RequestChannelAvatarGetList(net.iGap.request.RequestChannelAvatarGetList) RequestChannelAvatarDelete(net.iGap.request.RequestChannelAvatarDelete) HelperDownloadFile(net.iGap.helper.HelperDownloadFile) LayoutInflater(android.view.LayoutInflater) PhotoView(com.github.chrisbanes.photoview.PhotoView) RealmResults(io.realm.RealmResults) RequestUserAvatarDelete(net.iGap.request.RequestUserAvatarDelete) TopSheetDialog(net.iGap.module.dialog.topsheet.TopSheetDialog) RequestGroupAvatarDelete(net.iGap.request.RequestGroupAvatarDelete) File(java.io.File) OnChannelAvatarDelete(net.iGap.observers.interfaces.OnChannelAvatarDelete) Color(android.graphics.Color) RealmAvatar(net.iGap.realm.RealmAvatar) Glide(com.bumptech.glide.Glide) HelperSaveFile(net.iGap.helper.HelperSaveFile) ProtoGlobal(net.iGap.proto.ProtoGlobal) R(net.iGap.R) ChannelChatRole(net.iGap.module.enums.ChannelChatRole) DbManager(net.iGap.module.accountManager.DbManager) RealmAttachment(net.iGap.realm.RealmAttachment) RequestUserAvatarGetList(net.iGap.request.RequestUserAvatarGetList) RealmRoom(net.iGap.realm.RealmRoom) RequestGroupAvatarGetList(net.iGap.request.RequestGroupAvatarGetList) RequestChannelAvatarGetList(net.iGap.request.RequestChannelAvatarGetList) RealmRegisteredInfo(net.iGap.realm.RealmRegisteredInfo)

Example 27 with RealmRegisteredInfo

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));
        }
    }
}
Also used : AppCompatTextView(androidx.appcompat.widget.AppCompatTextView) ImageView(android.widget.ImageView) ReserveSpaceRoundedImageView(net.iGap.module.ReserveSpaceRoundedImageView) ReserveSpaceGifImageView(net.iGap.module.ReserveSpaceGifImageView) View(android.view.View) RecyclerView(androidx.recyclerview.widget.RecyclerView) TextView(android.widget.TextView) AppCompatTextView(androidx.appcompat.widget.AppCompatTextView) RealmRegisteredInfo(net.iGap.realm.RealmRegisteredInfo) LinearLayout(android.widget.LinearLayout)

Example 28 with RealmRegisteredInfo

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));
    }
}
Also used : AppCompatTextView(androidx.appcompat.widget.AppCompatTextView) ArrayList(java.util.ArrayList) SpannableString(android.text.SpannableString) ImageView(android.widget.ImageView) ReserveSpaceRoundedImageView(net.iGap.module.ReserveSpaceRoundedImageView) ReserveSpaceGifImageView(net.iGap.module.ReserveSpaceGifImageView) View(android.view.View) RecyclerView(androidx.recyclerview.widget.RecyclerView) TextView(android.widget.TextView) AppCompatTextView(androidx.appcompat.widget.AppCompatTextView) RealmRegisteredInfo(net.iGap.realm.RealmRegisteredInfo) AttachmentObject(net.iGap.structs.AttachmentObject) TextView(android.widget.TextView) AppCompatTextView(androidx.appcompat.widget.AppCompatTextView) ImageView(android.widget.ImageView) ReserveSpaceRoundedImageView(net.iGap.module.ReserveSpaceRoundedImageView) ReserveSpaceGifImageView(net.iGap.module.ReserveSpaceGifImageView) LinearLayout(android.widget.LinearLayout) CallSuper(androidx.annotation.CallSuper)

Example 29 with RealmRegisteredInfo

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();
            }
        }
    });
}
Also used : OnUserInfoResponse(net.iGap.observers.interfaces.OnUserInfoResponse) RequestUserInfo(net.iGap.request.RequestUserInfo) ProtoGlobal(net.iGap.proto.ProtoGlobal) RealmRegisteredInfo(net.iGap.realm.RealmRegisteredInfo)

Example 30 with RealmRegisteredInfo

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;
}
Also used : RequestUserInfo(net.iGap.request.RequestUserInfo) RealmRegisteredInfo(net.iGap.realm.RealmRegisteredInfo)

Aggregations

RealmRegisteredInfo (net.iGap.realm.RealmRegisteredInfo)37 ArrayList (java.util.ArrayList)15 View (android.view.View)13 RealmRoom (net.iGap.realm.RealmRoom)12 List (java.util.List)11 TextView (android.widget.TextView)10 RecyclerView (androidx.recyclerview.widget.RecyclerView)10 G (net.iGap.G)10 R (net.iGap.R)10 DbManager (net.iGap.module.accountManager.DbManager)10 ProtoGlobal (net.iGap.proto.ProtoGlobal)10 ViewGroup (android.view.ViewGroup)9 AvatarHandler (net.iGap.helper.avatar.AvatarHandler)9 Bundle (android.os.Bundle)8 AppCompatTextView (androidx.appcompat.widget.AppCompatTextView)8 File (java.io.File)8 Log (android.util.Log)7 LayoutInflater (android.view.LayoutInflater)7 Nullable (androidx.annotation.Nullable)7 RequestUserInfo (net.iGap.request.RequestUserInfo)7