Skip to content

Commit fad628e

Browse files
committed
Release version 7.13.4
1 parent cc0543e commit fad628e

File tree

10 files changed

+162
-64
lines changed

10 files changed

+162
-64
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ dependencies {
202202
implementation project(':sdk:googletranslation')
203203
implementation project(path: ':call')
204204

205-
implementation 'com.mirrorfly.sdk:mirrorflysdk:7.13.2'
205+
implementation 'com.mirrorfly.sdk:mirrorflysdk:7.13.4'
206206

207207
//Socket - versions.gradle
208208
implementation 'com.github.nkzawa:socket.io-client:0.6.0'

app/src/main/java/com/contusfly/activities/ChatActivity.kt

Lines changed: 103 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,13 @@ import android.util.Log
1919
import android.view.*
2020
import androidx.activity.result.contract.ActivityResultContracts
2121
import androidx.appcompat.view.menu.MenuBuilder
22+
import androidx.appcompat.widget.AppCompatButton
2223
import androidx.core.content.ContextCompat
2324
import androidx.localbroadcastmanager.content.LocalBroadcastManager
2425
import androidx.recyclerview.widget.ItemTouchHelper
2526
import androidx.recyclerview.widget.LinearLayoutManager
2627
import androidx.recyclerview.widget.RecyclerView
27-
import com.mirrorflysdk.flycall.webrtc.CallType
28-
import com.mirrorflysdk.flycall.webrtc.api.CallManager
29-
import com.mirrorflysdk.flycall.webrtc.api.CallManager.isOnTelephonyCall
30-
import com.mirrorflysdk.flycall.call.utils.CallConstants
31-
import com.mirrorflysdk.flycommons.models.MessageType
32-
import com.mirrorflysdk.flycommons.*
33-
import com.mirrorflysdk.flycommons.LogMessage
34-
import com.mirrorflysdk.xmpp.chat.utils.LibConstants
3528
import com.contusfly.*
36-
import com.contusfly.R
37-
import com.contusfly.BuildConfig
3829
import com.contusfly.activities.parent.ChatParent
3930
import com.contusfly.adapters.ChatAdapter
4031
import com.contusfly.adapters.GroupTagAdapter
@@ -46,7 +37,6 @@ import com.contusfly.chat.InviteContactUtils
4637
import com.contusfly.chat.RealPathUtil
4738
import com.contusfly.chat.ReplyHashMap
4839
import com.contusfly.chat.reply.MessageSwipeController
49-
import com.contusfly.checkInternetAndExecute
5040
import com.contusfly.constants.MobileApplication
5141
import com.contusfly.databinding.ActivityChatBinding
5242
import com.contusfly.fragments.ScheduleBottomSheetFragment
@@ -60,19 +50,27 @@ import com.contusfly.models.MeetMessageParams
6050
import com.contusfly.models.MessageObject
6151
import com.contusfly.models.PrivateChatAuthenticationModel
6252
import com.contusfly.notification.AppNotificationManager
63-
import com.contusfly.returnEmptyIfNull
6453
import com.contusfly.utils.*
6554
import com.contusfly.utils.Constants
6655
import com.contusfly.utils.SharedPreferenceManager
6756
import com.contusfly.views.*
57+
import com.google.android.material.bottomsheet.BottomSheetDialog
58+
import com.google.firebase.analytics.FirebaseAnalytics
59+
import com.jakewharton.rxbinding3.recyclerview.scrollEvents
6860
import com.mirrorflysdk.api.*
61+
import com.mirrorflysdk.api.contacts.ProfileDetails
6962
import com.mirrorflysdk.api.models.ChatMessage
63+
import com.mirrorflysdk.flycall.call.utils.CallConstants
64+
import com.mirrorflysdk.flycall.webrtc.CallType
65+
import com.mirrorflysdk.flycall.webrtc.api.CallManager
66+
import com.mirrorflysdk.flycall.webrtc.api.CallManager.isOnTelephonyCall
67+
import com.mirrorflysdk.flycommons.*
68+
import com.mirrorflysdk.flycommons.LogMessage
69+
import com.mirrorflysdk.flycommons.models.CallMetaData
70+
import com.mirrorflysdk.flycommons.models.MessageType
7071
import com.mirrorflysdk.utils.ConstantActions
7172
import com.mirrorflysdk.views.CustomToast
72-
import com.google.firebase.analytics.FirebaseAnalytics
73-
import com.jakewharton.rxbinding3.recyclerview.scrollEvents
74-
import com.mirrorflysdk.api.contacts.ProfileDetails
75-
73+
import com.mirrorflysdk.xmpp.chat.utils.LibConstants
7674
import dagger.android.AndroidInjection
7775
import io.github.rockerhieu.emojicon.EmojiconGridFragment
7876
import io.github.rockerhieu.emojicon.EmojiconsFragment
@@ -132,6 +130,8 @@ class ChatActivity : ChatParent(), ActionMode.Callback, View.OnTouchListener, Em
132130
private var mentionFilterKey: String = emptyString()
133131
private lateinit var gestureDetector: GestureDetector
134132

133+
private var callMetaDataList:List<CallMetaData> = emptyList()
134+
135135
private val contactSavePermissionLauncher = registerForActivityResult(
136136
ActivityResultContracts.RequestMultiplePermissions()) { permissions ->
137137
val contactPermissionGranted = permissions[Manifest.permission.READ_CONTACTS] ?: ChatUtils.checkMediaPermission(this, Manifest.permission.READ_CONTACTS)
@@ -164,18 +164,92 @@ class ChatActivity : ChatParent(), ActionMode.Callback, View.OnTouchListener, Em
164164
private fun launchAudioCall(){
165165
if(CallManager.isNotificationPermissionsGranted()){
166166
CallPermissionUtils(
167-
this,
168-
profileDetails.isBlocked,
169-
profileDetails.isAdminBlocked,
170-
arrayListOf(profileDetails.jid),
171-
"",
172-
false
167+
this,
168+
profileDetails.isBlocked,
169+
profileDetails.isAdminBlocked,
170+
arrayListOf(profileDetails.jid),
171+
"",
172+
false,
173+
emptyArray()
173174
).audioCall()
174175
} else {
175176
notificationPermissionChecking(true)
176177
}
177178
}
178179

180+
private fun makeCallWithCallPermissionUtils(isAudioCall: Boolean, callMetaDataArray: Array<CallMetaData>? = emptyArray<CallMetaData>()){
181+
LogMessage.d(TAG,"#callflow makeCallWithCallPermissionUtils isAudioCall:$isAudioCall callMetaDataList:${callMetaDataArray}")
182+
if(isAudioCall){
183+
CallPermissionUtils(
184+
this,
185+
profileDetails.isBlocked,
186+
profileDetails.isAdminBlocked,
187+
arrayListOf(profileDetails.jid),
188+
"",
189+
false,
190+
callMetaDataArray
191+
).audioCall()
192+
}else{
193+
CallPermissionUtils(
194+
this,
195+
profileDetails.isBlocked,
196+
profileDetails.isAdminBlocked,
197+
arrayListOf(profileDetails.jid),
198+
"",
199+
false,
200+
callMetaDataArray
201+
).videoCall()
202+
}
203+
204+
}
205+
206+
@SuppressWarnings("kotlin:1144")
207+
private fun checkAndCreateAnonymousCall(isAudioCall:Boolean){
208+
LogMessage.d(TAG,"#callflow checkAndCreateAnonymousCall")
209+
val callDialog = BottomSheetDialog(this)
210+
// on below line we are inflating a layout file which we have created.
211+
val callDialogView = layoutInflater.inflate(R.layout.layout_anonymous_call, null)
212+
val callOption = callDialogView.findViewById<AppCompatButton>(R.id.call_option)
213+
val callOptionAnonymous = callDialogView.findViewById<AppCompatButton>(R.id.call_option_anonymous)
214+
215+
val callMetaData = CallMetaData("isAnonymous", 1.toString())
216+
val callMetaData1 = CallMetaData("AnonymousUsername","VIP User")
217+
val callMetaDataList:Array<CallMetaData> = arrayOf(callMetaData,callMetaData1)
218+
if(isAudioCall){
219+
callOption.text = getString(R.string.audio_call)
220+
callOptionAnonymous.text = getString(R.string.anonymous_audio_call)
221+
callOption.setOnClickListener {
222+
LogMessage.d(TAG,"#callflow checkAndCreateAnonymousCall audioCall ")
223+
makeCallWithCallPermissionUtils(true)
224+
callDialog.dismiss()
225+
}
226+
callOptionAnonymous.setOnClickListener {
227+
LogMessage.d(TAG,"#callflow checkAndCreateAnonymousCall audioCall callMetaDataList $callMetaDataList")
228+
makeCallWithCallPermissionUtils(true,callMetaDataList)
229+
callDialog.dismiss()
230+
}
231+
}else{
232+
callOption.text = getString(R.string.video_call)
233+
callOptionAnonymous.text = getString(R.string.anonymous_video_call)
234+
235+
callOption.setOnClickListener {
236+
LogMessage.d(TAG,"#callflow checkAndCreateAnonymousCall videoCall ")
237+
makeCallWithCallPermissionUtils(isAudioCall = false)
238+
callDialog.dismiss()
239+
}
240+
callOptionAnonymous.setOnClickListener {
241+
LogMessage.d(TAG,"#callflow checkAndCreateAnonymousCall videoCall callMetaDataList $callMetaDataList")
242+
makeCallWithCallPermissionUtils(isAudioCall = false,callMetaDataList)
243+
callDialog.dismiss()
244+
}
245+
}
246+
247+
callDialog.setCancelable(false)
248+
callDialog.setContentView(callDialogView)
249+
callDialog.show()
250+
251+
}
252+
179253
private fun notificationPermissionChecking(isCall:Boolean){
180254
if(isCall){
181255
MediaPermissions.requestNotificationPermission(
@@ -222,12 +296,13 @@ class ChatActivity : ChatParent(), ActionMode.Callback, View.OnTouchListener, Em
222296
private fun launchVideoCall(){
223297
if(CallManager.isNotificationPermissionsGranted()){
224298
CallPermissionUtils(
225-
this,
226-
profileDetails.isBlocked,
227-
profileDetails.isAdminBlocked,
228-
arrayListOf(profileDetails.jid),
229-
"",
230-
false
299+
this,
300+
profileDetails.isBlocked,
301+
profileDetails.isAdminBlocked,
302+
arrayListOf(profileDetails.jid),
303+
"",
304+
false,
305+
emptyArray()
231306
).videoCall()
232307
} else {
233308
notificationPermissionChecking(true)

app/src/main/java/com/contusfly/call/CallPermissionUtils.kt

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,15 @@ import com.mirrorflysdk.AppUtils
3535
import com.mirrorflysdk.api.ChatManager
3636
import com.mirrorflysdk.api.FlyCore.unblockUser
3737
import com.mirrorflysdk.flycommons.exception.FlyException
38+
import com.mirrorflysdk.flycommons.models.CallMetaData
3839
import com.mirrorflysdk.views.CustomToast
3940
import java.util.*
4041

4142
/**
4243
* This class is used to start the video call audio call activity. Here checking the audio and video
4344
* permissions are checked before make a call.And also check whether the user is blocked or not.
4445
*/
45-
class CallPermissionUtils(activity: Activity, isBlocked: Boolean, isAdminBlocked: Boolean, jidList: ArrayList<String>, groupId: String?, isCloseScreen: Boolean) : CommonDialogClosedListener {
46+
class CallPermissionUtils(activity: Activity, isBlocked: Boolean, isAdminBlocked: Boolean, jidList: ArrayList<String>, groupId: String?, isCloseScreen: Boolean, callMetaDataArray: Array<CallMetaData>? = emptyArray<CallMetaData>()) : CommonDialogClosedListener {
4647
/**
4748
* Instance for the activity
4849
*/
@@ -78,6 +79,12 @@ class CallPermissionUtils(activity: Activity, isBlocked: Boolean, isAdminBlocked
7879
*/
7980
private var doProgressDialog: DoProgressDialog? = null
8081

82+
83+
/**
84+
* list of call meta data value being passed.
85+
*/
86+
private var callMetaDataArray: Array<CallMetaData>? = null
87+
8188
/**
8289
* Check the jid has blocked or not. If JID has blocked then show the alert and call after unblock
8390
* the jid
@@ -212,7 +219,7 @@ class CallPermissionUtils(activity: Activity, isBlocked: Boolean, isAdminBlocked
212219
if (!ChatManager.getAvailableFeatures().isOneToOneCallEnabled) {
213220
CustomAlertDialog().showFeatureRestrictionAlert(activity)
214221
} else {
215-
makeVoiceCall(jidList[0], object : CallActionListener {
222+
makeVoiceCall(jidList[0], callMetaDataArray, object : CallActionListener {
216223
override fun onResponse(isSuccess: Boolean, flyException: FlyException?) {
217224
LogMessage.i(TAG, "$CALL_UI makeVoiceCall: ${flyException?.message}")
218225
}
@@ -227,7 +234,7 @@ class CallPermissionUtils(activity: Activity, isBlocked: Boolean, isAdminBlocked
227234
if (!ChatManager.getAvailableFeatures().isGroupCallEnabled) {
228235
CustomAlertDialog().showFeatureRestrictionAlert(activity)
229236
} else {
230-
CallManager.makeGroupVoiceCall(jidList, groupId, object : CallActionListener {
237+
CallManager.makeGroupVoiceCall(jidList, groupId,callMetaDataArray, object : CallActionListener {
231238
override fun onResponse(isSuccess: Boolean, flyException: FlyException?) {
232239
LogMessage.i(TAG, "$CALL_UI makeVoiceCall: ${flyException?.message}")
233240
}
@@ -266,7 +273,7 @@ class CallPermissionUtils(activity: Activity, isBlocked: Boolean, isAdminBlocked
266273
if (!ChatManager.getAvailableFeatures().isOneToOneCallEnabled) {
267274
CustomAlertDialog().showFeatureRestrictionAlert(activity)
268275
} else {
269-
makeVideoCall(jidList[0], object : CallActionListener {
276+
makeVideoCall(jidList[0], callMetaDataArray, object : CallActionListener {
270277
override fun onResponse(isSuccess: Boolean, flyException: FlyException?) {
271278
LogMessage.i(TAG, "$CALL_UI makeVideoCall: ${flyException?.message}")
272279
}
@@ -279,7 +286,7 @@ class CallPermissionUtils(activity: Activity, isBlocked: Boolean, isAdminBlocked
279286
if (!ChatManager.getAvailableFeatures().isGroupCallEnabled) {
280287
CustomAlertDialog().showFeatureRestrictionAlert(activity)
281288
} else {
282-
CallManager.makeGroupVideoCall(jidList, groupId, object : CallActionListener {
289+
CallManager.makeGroupVideoCall(jidList, groupId,callMetaDataArray, object : CallActionListener {
283290
override fun onResponse(isSuccess: Boolean, flyException: FlyException?) {
284291
LogMessage.i(TAG, "$CALL_UI makeVideoCall: ${flyException?.message}")
285292
}
@@ -371,5 +378,6 @@ class CallPermissionUtils(activity: Activity, isBlocked: Boolean, isAdminBlocked
371378
this.jidList = jidList
372379
this.groupId = groupId
373380
this.isCloseScreen = isCloseScreen
381+
this.callMetaDataArray = callMetaDataArray
374382
}
375383
}

app/src/main/java/com/contusfly/call/MissedCallNotificationUtils.kt

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import com.mirrorflysdk.flycall.webrtc.CallType
2929
import com.mirrorflysdk.flycall.webrtc.api.CallLogManager
3030
import com.mirrorflysdk.flycommons.LogMessage
3131
import com.mirrorflysdk.flycommons.PendingIntentHelper
32+
import com.mirrorflysdk.flycommons.models.CallMetaData
3233
import java.security.SecureRandom
3334

3435
object MissedCallNotificationUtils {
@@ -152,33 +153,33 @@ object MissedCallNotificationUtils {
152153
unReadCallCount = 0
153154
}
154155

155-
fun createMissCallNotification( isOneToOneCall: Boolean, userJid: String, groupId: String?, callType: String,
156-
userList: ArrayList<String>){
156+
fun createMissCallNotification(isOneToOneCall: Boolean, userJid: String, groupId: String?, callType: String,
157+
userList: ArrayList<String>, callMeta: Array<CallMetaData>?) {
157158
try {
158159
LogMessage.d(TAG, "onMissedCall")
159160
missedCallNotificationCount += 1
160-
addMissedCallNotificationUsers(isOneToOneCall, userJid, groupId,callType)
161-
val notificationContent = getMissedCallNotificationContent(isOneToOneCall, userJid, groupId, callType, userList)
161+
addMissedCallNotificationUsers(isOneToOneCall, userJid, groupId, callType)
162+
val notificationContent = getMissedCallNotificationContent(isOneToOneCall, userJid, groupId, callType, userList,callMeta)
162163
if (missedCallNotificationCount > 1) {
163164
createNotification(
164-
MobileApplication.getContext(),
165-
" $missedCallNotificationCount $missedCallNotificationCallType", //Title Missed call Notification
166-
missedCallNotificationUserNames //Message Content Missed call from whom
165+
MobileApplication.getContext(),
166+
" $missedCallNotificationCount $missedCallNotificationCallType", //Title Missed call Notification
167+
missedCallNotificationUserNames //Message Content Missed call from whom
167168
)
168169
} else {
169170
createNotification(
170-
MobileApplication.getContext(),
171-
notificationContent.first, //Title Missed call Notification
172-
notificationContent.second //Message Content Missed call from whom
171+
MobileApplication.getContext(),
172+
notificationContent.first, //Title Missed call Notification
173+
notificationContent.second //Message Content Missed call from whom
173174
)
174175
}
175-
} catch(e: Exception){
176-
LogMessage.e(TAG,e.toString())
176+
} catch (e: Exception) {
177+
LogMessage.e(TAG, e.toString())
177178
}
178179
}
179180

180181
private fun getMissedCallNotificationContent(isOneToOneCall: Boolean, userJid: String, groupId: String?, callType: String,
181-
userList: ArrayList<String>): Pair<String, String> {
182+
userList: ArrayList<String>,callMeta: Array<CallMetaData>?): Pair<String, String> {
182183
var messageContent : String
183184
val missedCallMessage = StringBuilder()
184185
missedCallMessage.append(ChatManager.applicationContext.resources.getString(R.string.you_missed_call))

app/src/main/java/com/contusfly/call/calllog/CallHistoryFragment.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -704,7 +704,10 @@ class CallHistoryFragment : Fragment(), CoroutineScope,
704704
|| callLog.callState == CallState.MISSED_CALL
705705
)
706706
callLog.fromUser else callLog.toUser
707-
707+
val callMetaData = callLog.callMetaData
708+
val roomId = callLog.roomId
709+
LogMessage.d(TAG,"#callflow roomId :$roomId")
710+
LogMessage.d(TAG,"#callflow callMetaData :$callMetaData")
708711
if (!callLog.groupId.isNullOrEmpty() || (!callLog.userList.isNullOrEmpty() && callLog.userList!!.filter { it != CallManager.getCurrentUserId() }.size > 1)) {
709712
openGroupChatView(callLog, view)
710713
} else {

app/src/main/java/com/contusfly/call/groupcall/helpers/CallConnectedViewHelper.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import android.view.MenuInflater
66
import android.view.MenuItem
77
import android.view.MotionEvent
88
import android.view.View
9+
import android.widget.Toast
910
import androidx.appcompat.app.AppCompatActivity
1011
import androidx.appcompat.view.menu.MenuBuilder
1112
import androidx.appcompat.view.menu.MenuPopupHelper
@@ -52,6 +53,7 @@ import com.contusfly.utils.SharedPreferenceManager
5253
import com.contusfly.views.SetDrawable
5354
import com.mirrorflysdk.api.ChatManager
5455
import com.mirrorflysdk.flycall.call.utils.GroupCallUtils
56+
import com.mirrorflysdk.flycall.webrtc.CallDirection
5557
import com.mirrorflysdk.flycall.webrtc.CallStatus
5658
import com.mirrorflysdk.flycall.webrtc.api.CallManager
5759
import com.mirrorflysdk.flycall.webrtc.api.ConnectionQuality
@@ -111,7 +113,9 @@ class CallConnectedViewHelper(
111113

112114
override fun onClick(view: View) {
113115
when (view.id) {
114-
R.id.image_add_users -> activityOnClickListener.addUsersInCall()
116+
R.id.image_add_users -> {
117+
activityOnClickListener.addUsersInCall()
118+
}
115119
R.id.view_video_local -> if (!GroupCallUtils.isSingleUserInCall() && CallManager.isCallConnected()) setSwappedFeeds(
116120
!isSwappedFeeds
117121
)

0 commit comments

Comments
 (0)