Search in sources :

Example 6 with Call

use of com.cometchat.pro.core.Call in project android-java-chat-push-notification-app by cometchat-pro.

the class MyConnectionService method onCreateOutgoingConnection.

@Override
public Connection onCreateOutgoingConnection(PhoneAccountHandle connectionManagerPhoneAccount, ConnectionRequest request) {
    Bundle bundle = request.getExtras();
    String sessionID = bundle.getString("SESSIONID");
    String name = bundle.getString("NAME");
    String receiverType = bundle.getString("RECEIVERTYPE");
    String callType = bundle.getString("CALLTYPE");
    String receiverID = bundle.getString("RECEIVERID");
    Log.e("onCreateOutgoingConn", bundle.toString() + " \n " + sessionID + " " + name);
    if (receiverID != null) {
        Call call = new Call(receiverID, receiverType, callType);
        call.setSessionId(sessionID);
        conn = new CallConnection(this, call);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
            conn.setConnectionProperties(Connection.PROPERTY_SELF_MANAGED);
        }
        conn.setCallerDisplayName(name, TelecomManager.PRESENTATION_ALLOWED);
        conn.setAddress(request.getAddress(), TelecomManager.PRESENTATION_ALLOWED);
        conn.setInitializing();
        conn.setActive();
        return conn;
    } else {
        String phoneNumber = bundle.getString("OriginalNumber");
        Toast.makeText(getBaseContext(), "You tried to call " + phoneNumber, Toast.LENGTH_LONG);
        return super.onCreateOutgoingConnection(connectionManagerPhoneAccount, request);
    }
}
Also used : Call(com.cometchat.pro.core.Call) Bundle(android.os.Bundle)

Example 7 with Call

use of com.cometchat.pro.core.Call in project android-java-chat-push-notification-app by cometchat-pro.

the class CometChatCalls method setItemClickListener.

/**
 *  This method helps to get Click events of CometChatCallList
 *
 * @param onItemClickListener object of the OnItemClickListener
 */
public void setItemClickListener(OnItemClickListener<Call> onItemClickListener) {
    this.addOnItemTouchListener(new RecyclerTouchListener(context, this, new ClickListener() {

        @Override
        public void onClick(View var1, int var2) {
            Call call = (Call) var1.getTag(R.string.call);
            var1.findViewById(R.id.user_detail_vw).setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    if (onItemClickListener != null)
                        onItemClickListener.OnItemClick(call, var2);
                    else
                        throw new NullPointerException("OnItemClickListener<Call> is null");
                }
            });
        }

        @Override
        public void onLongClick(View var1, int var2) {
            Call call = (Call) var1.getTag(R.string.call);
            if (onItemClickListener != null)
                onItemClickListener.OnItemLongClick(call, var2);
            else
                throw new NullPointerException("OnItemClickListener<Call> is null");
        }
    }));
}
Also used : RecyclerTouchListener(com.cometchat.pro.uikit.ui_resources.utils.recycler_touch.RecyclerTouchListener) Call(com.cometchat.pro.core.Call) View(android.view.View) RecyclerView(androidx.recyclerview.widget.RecyclerView) OnItemClickListener(com.cometchat.pro.uikit.ui_resources.utils.item_clickListener.OnItemClickListener) ClickListener(com.cometchat.pro.uikit.ui_resources.utils.recycler_touch.ClickListener)

Example 8 with Call

use of com.cometchat.pro.core.Call in project android-java-chat-push-notification-app by cometchat-pro.

the class MyConnectionService method onCreateIncomingConnection.

@Override
public Connection onCreateIncomingConnection(PhoneAccountHandle connectionManagerPhoneAccount, ConnectionRequest request) {
    Bundle bundle = request.getExtras();
    String sessionID = bundle.getString(UIKitConstants.IntentStrings.SESSION_ID);
    String name = bundle.getString(UIKitConstants.IntentStrings.NAME);
    String type = bundle.getString(UIKitConstants.IntentStrings.TYPE);
    String callType = bundle.getString(UIKitConstants.IntentStrings.CALL_TYPE);
    String receiverUID = bundle.getString(UIKitConstants.IntentStrings.ID);
    Call call = new Call(receiverUID, type, callType);
    call.setSessionId(sessionID);
    Log.i("CallConnectionService", "onCreateIncomingConnectionCall:" + call.toString());
    conn = new CallConnection(this, call);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
        conn.setConnectionProperties(Connection.PROPERTY_SELF_MANAGED);
    }
    conn.setCallerDisplayName(name, TelecomManager.PRESENTATION_ALLOWED);
    conn.setAddress(request.getAddress(), PRESENTATION_ALLOWED);
    conn.setInitializing();
    conn.setVideoProvider(new Connection.VideoProvider() {

        @Override
        public void onSetCamera(String cameraId) {
        }

        @Override
        public void onSetPreviewSurface(Surface surface) {
        }

        @Override
        public void onSetDisplaySurface(Surface surface) {
        }

        @Override
        public void onSetDeviceOrientation(int rotation) {
        }

        @Override
        public void onSetZoom(float value) {
        }

        @Override
        public void onSendSessionModifyRequest(VideoProfile fromProfile, VideoProfile toProfile) {
        }

        @Override
        public void onSendSessionModifyResponse(VideoProfile responseProfile) {
        }

        @Override
        public void onRequestCameraCapabilities() {
        }

        @Override
        public void onRequestConnectionDataUsage() {
        }

        @Override
        public void onSetPauseImage(Uri uri) {
        }
    });
    conn.setActive();
    return conn;
// return super.onCreateIncomingConnection(connectionManagerPhoneAccount, request);
}
Also used : Call(com.cometchat.pro.core.Call) Bundle(android.os.Bundle) Connection(android.telecom.Connection) VideoProfile(android.telecom.VideoProfile) Uri(android.net.Uri) Surface(android.view.Surface)

Example 9 with Call

use of com.cometchat.pro.core.Call in project android-java-chat-push-notification-app by cometchat-pro.

the class MessageAdapter method setActionData.

/**
 * This method is called whenever viewType of item is Action. It is used to bind
 * ActionMessageViewHolder contents with Action at a given position. It shows action message
 * or call status based on message category
 *
 * @param viewHolder is a object of ActionMessageViewHolder.
 * @param i is a position of item in recyclerView.
 * @see Action
 * @see Call
 * @see BaseMessage
 */
private void setActionData(ActionMessageViewHolder viewHolder, int i) {
    BaseMessage baseMessage = messageList.get(i);
    if (Utils.isDarkMode(context))
        viewHolder.textView.setTextColor(context.getResources().getColor(R.color.textColorWhite));
    else
        viewHolder.textView.setTextColor(context.getResources().getColor(R.color.primaryTextColor));
    viewHolder.textView.setTypeface(fontUtils.getTypeFace(FontUtils.robotoMedium));
    if (baseMessage instanceof Action) {
        String actionMessage = "";
        if (((Action) baseMessage).getAction().equals(CometChatConstants.ActionKeys.ACTION_JOINED))
            actionMessage = ((User) ((Action) baseMessage).getActioBy()).getName() + " " + context.getString(R.string.joined);
        else if (((Action) baseMessage).getAction().equals(CometChatConstants.ActionKeys.ACTION_MEMBER_ADDED))
            actionMessage = ((User) ((Action) baseMessage).getActioBy()).getName() + " " + context.getString(R.string.added) + " " + ((User) ((Action) baseMessage).getActionOn()).getName();
        else if (((Action) baseMessage).getAction().equals(CometChatConstants.ActionKeys.ACTION_KICKED))
            actionMessage = ((User) ((Action) baseMessage).getActioBy()).getName() + " " + context.getString(R.string.kicked_by) + " " + ((User) ((Action) baseMessage).getActionOn()).getName();
        else if (((Action) baseMessage).getAction().equals(CometChatConstants.ActionKeys.ACTION_BANNED))
            actionMessage = ((User) ((Action) baseMessage).getActioBy()).getName() + " " + context.getString(R.string.ban) + " " + ((User) ((Action) baseMessage).getActionOn()).getName();
        else if (((Action) baseMessage).getAction().equals(CometChatConstants.ActionKeys.ACTION_UNBANNED))
            actionMessage = ((User) ((Action) baseMessage).getActioBy()).getName() + " " + context.getString(R.string.unban) + " " + ((User) ((Action) baseMessage).getActionOn()).getName();
        else if (((Action) baseMessage).getAction().equals(CometChatConstants.ActionKeys.ACTION_LEFT))
            actionMessage = ((User) ((Action) baseMessage).getActioBy()).getName() + " " + context.getString(R.string.left);
        else if (((Action) baseMessage).getAction().equals(CometChatConstants.ActionKeys.ACTION_SCOPE_CHANGED))
            if (((Action) baseMessage).getNewScope().equals(CometChatConstants.SCOPE_MODERATOR)) {
                actionMessage = ((User) ((Action) baseMessage).getActioBy()).getName() + " " + context.getString(R.string.made) + " " + ((User) ((Action) baseMessage).getActionOn()).getName() + " " + context.getString(R.string.moderator);
            } else if (((Action) baseMessage).getNewScope().equals(CometChatConstants.SCOPE_ADMIN)) {
                actionMessage = ((User) ((Action) baseMessage).getActioBy()).getName() + " " + context.getString(R.string.made) + " " + ((User) ((Action) baseMessage).getActionOn()).getName() + " " + context.getString(R.string.admin);
            } else if (((Action) baseMessage).getNewScope().equals(CometChatConstants.SCOPE_PARTICIPANT)) {
                actionMessage = ((User) ((Action) baseMessage).getActioBy()).getName() + " " + context.getString(R.string.made) + " " + ((User) ((Action) baseMessage).getActionOn()).getName() + " " + context.getString(R.string.participant);
            } else
                actionMessage = ((Action) baseMessage).getMessage();
        viewHolder.textView.setText(actionMessage);
    } else if (baseMessage instanceof Call) {
        Call call = ((Call) baseMessage);
        String callMessageText = "";
        boolean isMissed = false, isIncoming = false, isVideo = false;
        if (call.getCallStatus().equals(CometChatConstants.CALL_STATUS_INITIATED)) {
            callMessageText = call.getSender().getName() + " " + context.getString(R.string.initiated);
        } else if (call.getCallStatus().equals(CometChatConstants.CALL_STATUS_UNANSWERED) || call.getCallStatus().equals(CometChatConstants.CALL_STATUS_CANCELLED)) {
            callMessageText = context.getResources().getString(R.string.missed_call);
            isMissed = true;
        } else if (call.getCallStatus().equals(CometChatConstants.CALL_STATUS_REJECTED)) {
            callMessageText = context.getResources().getString(R.string.rejected_call);
        } else if (call.getCallStatus().equals(CometChatConstants.CALL_STATUS_ONGOING)) {
            callMessageText = context.getString(R.string.ongoing);
        } else if (call.getCallStatus().equals(CometChatConstants.CALL_STATUS_ENDED)) {
            callMessageText = context.getString(R.string.ended);
        } else {
            callMessageText = call.getCallStatus();
        }
        if (((User) call.getCallInitiator()).getUid().equals(loggedInUser)) {
            isIncoming = false;
        } else {
            isIncoming = true;
        }
        if (call.getType().equals(CometChatConstants.CALL_TYPE_VIDEO)) {
            callMessageText = callMessageText + " " + context.getResources().getString(R.string.video_call);
            isVideo = true;
        } else {
            callMessageText = callMessageText + " " + context.getResources().getString(R.string.audio_call);
            isVideo = false;
        }
        viewHolder.textView.setText(callMessageText);
    }
}
Also used : Call(com.cometchat.pro.core.Call) Action(com.cometchat.pro.models.Action) User(com.cometchat.pro.models.User) BaseMessage(com.cometchat.pro.models.BaseMessage)

Example 10 with Call

use of com.cometchat.pro.core.Call in project android-java-chat-push-notification-app by cometchat-pro.

the class CometChatCalls method setItemCallClickListener.

/**
 *  This method helps to get Click events of CometChatCallList
 *
 * @param onItemClickListener object of the OnItemClickListener
 */
public void setItemCallClickListener(OnItemClickListener<Call> onItemClickListener) {
    this.addOnItemTouchListener(new RecyclerTouchListener(context, this, new ClickListener() {

        @Override
        public void onClick(View var1, int var2) {
            String uid;
            String type;
            Call call = (Call) var1.getTag(R.string.call);
            if (call.getReceiverType().equals(CometChatConstants.RECEIVER_TYPE_USER)) {
                if (((User) call.getCallInitiator()).getUid().equals(CometChat.getLoggedInUser().getUid())) {
                    uid = ((User) call.getCallReceiver()).getUid();
                } else {
                    uid = ((User) call.getCallInitiator()).getUid();
                }
                type = CometChatConstants.RECEIVER_TYPE_USER;
            } else {
                uid = ((Group) call.getCallReceiver()).getGuid();
                type = CometChatConstants.RECEIVER_TYPE_GROUP;
            }
            var1.findViewById(R.id.call_iv).setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    Call callObj = new Call(uid, type, CometChatConstants.CALL_TYPE_AUDIO);
                    if (onItemClickListener != null)
                        onItemClickListener.OnItemClick(callObj, var2);
                    else
                        throw new NullPointerException("OnItemClickListener<Call> is null");
                }
            });
        }

        @Override
        public void onLongClick(View var1, int var2) {
        }
    }));
}
Also used : RecyclerTouchListener(com.cometchat.pro.uikit.ui_resources.utils.recycler_touch.RecyclerTouchListener) Call(com.cometchat.pro.core.Call) View(android.view.View) RecyclerView(androidx.recyclerview.widget.RecyclerView) OnItemClickListener(com.cometchat.pro.uikit.ui_resources.utils.item_clickListener.OnItemClickListener) ClickListener(com.cometchat.pro.uikit.ui_resources.utils.recycler_touch.ClickListener)

Aggregations

Call (com.cometchat.pro.core.Call)19 CometChatException (com.cometchat.pro.exceptions.CometChatException)6 User (com.cometchat.pro.models.User)6 Intent (android.content.Intent)5 View (android.view.View)5 CometChat (com.cometchat.pro.core.CometChat)5 RecyclerView (androidx.recyclerview.widget.RecyclerView)4 BaseMessage (com.cometchat.pro.models.BaseMessage)4 ViewGroup (android.view.ViewGroup)3 Group (com.cometchat.pro.models.Group)3 JSONObject (org.json.JSONObject)3 Bundle (android.os.Bundle)2 NotificationManagerCompat (androidx.core.app.NotificationManagerCompat)2 LinearLayoutManager (androidx.recyclerview.widget.LinearLayoutManager)2 CustomMessage (com.cometchat.pro.models.CustomMessage)2 CometChatStartCallActivity (com.cometchat.pro.uikit.ui_components.calls.call_manager.CometChatStartCallActivity)2 CometChatGroupDetailActivity (com.cometchat.pro.uikit.ui_components.groups.group_details.CometChatGroupDetailActivity)2 CometChatUserDetailScreenActivity (com.cometchat.pro.uikit.ui_components.users.user_details.CometChatUserDetailScreenActivity)2 OnItemClickListener (com.cometchat.pro.uikit.ui_resources.utils.item_clickListener.OnItemClickListener)2 ClickListener (com.cometchat.pro.uikit.ui_resources.utils.recycler_touch.ClickListener)2