video fix bugs

merge-requests/745/head
mosazaid 5 years ago
parent 883778d278
commit 890a356d8c

@ -3,6 +3,7 @@ package com.hmg.hmgDr
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.widget.Toast
import androidx.annotation.NonNull
import com.google.gson.GsonBuilder
import com.hmg.hmgDr.Model.GetSessionStatusModel
@ -23,7 +24,7 @@ class MainActivity : FlutterFragmentActivity(), MethodChannel.MethodCallHandler,
private var call: MethodCall? = null
private val LAUNCH_VIDEO: Int = 1
lateinit var dialogFragment: VideoCallFragment
private var dialogFragment: VideoCallFragment? = null
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine)
@ -77,19 +78,23 @@ class MainActivity : FlutterFragmentActivity(), MethodChannel.MethodCallHandler,
// intent.putExtra("sessionStatusModel", sessionStatusModel)
// startActivityForResult(intent, LAUNCH_VIDEO)
val arguments = Bundle()
arguments.putString("apiKey", apiKey)
arguments.putString("sessionId", sessionId)
arguments.putString("token", token)
arguments.putString("appLang", appLang)
arguments.putString("baseUrl", baseUrl)
arguments.putParcelable("sessionStatusModel", sessionStatusModel)
val transaction = supportFragmentManager.beginTransaction()
dialogFragment = VideoCallFragment.newInstance(arguments)
dialogFragment.setCallListener(this)
dialogFragment.isCancelable = true
dialogFragment.show(transaction, "dialog")
if (dialogFragment == null){
val arguments = Bundle()
arguments.putString("apiKey", apiKey)
arguments.putString("sessionId", sessionId)
arguments.putString("token", token)
arguments.putString("appLang", appLang)
arguments.putString("baseUrl", baseUrl)
arguments.putParcelable("sessionStatusModel", sessionStatusModel)
val transaction = supportFragmentManager.beginTransaction()
dialogFragment = VideoCallFragment.newInstance(arguments)
dialogFragment?.let {
it.setCallListener(this)
it.isCancelable = true
it.show(transaction, "dialog")
}
}
}
@ -120,6 +125,8 @@ class MainActivity : FlutterFragmentActivity(), MethodChannel.MethodCallHandler,
}*/
override fun onCallFinished(resultCode: Int, intent: Intent?) {
dialogFragment = null
if (resultCode == Activity.RESULT_OK) {
val result : SessionStatusModel? = intent?.getParcelableExtra("sessionStatusNotRespond")
val callResponse : HashMap<String, String> = HashMap()
@ -132,8 +139,7 @@ class MainActivity : FlutterFragmentActivity(), MethodChannel.MethodCallHandler,
callResponse["sessionStatus"] = jsonRes
this.result?.success(callResponse)
}
if (resultCode == Activity.RESULT_CANCELED) {
} else if (resultCode == Activity.RESULT_CANCELED) {
val callResponse : HashMap<String, String> = HashMap()
callResponse["callResponse"] = "CallEnd"
@ -141,5 +147,9 @@ class MainActivity : FlutterFragmentActivity(), MethodChannel.MethodCallHandler,
}
}
override fun errorHandle(message: String) {
Toast.makeText(this, message, Toast.LENGTH_LONG).show()
}
}

@ -5,4 +5,6 @@ import android.content.Intent
interface VideoCallResponseListener {
fun onCallFinished(resultCode : Int, intent: Intent? = null)
fun errorHandle(message: String)
}

@ -103,8 +103,6 @@ class VideoCallFragment : DialogFragment(), PermissionCallbacks, Session.Session
override fun onCreate(savedInstanceState: Bundle?) {
requireActivity().setTheme(R.style.AppTheme)
super.onCreate(savedInstanceState)
requestPermissions()
}
override fun onStart() {
@ -155,8 +153,18 @@ class VideoCallFragment : DialogFragment(), PermissionCallbacks, Session.Session
parentView = inflater.inflate(R.layout.activity_video_call, container, false)
// Objects.requireNonNull(requireActivity().actionBar)!!.hide()
// Objects.requireNonNull(requireActivity().actionBar)!!.hide()
arguments?.run {
apiKey = getString("apiKey")
sessionId = getString("sessionId")
token = getString("token")
appLang = getString("appLang")
baseUrl = getString("baseUrl")
sessionStatusModel = getParcelable("sessionStatusModel")
}
initUI(parentView)
requestPermissions()
handleDragDialog()
return parentView
@ -196,15 +204,6 @@ class VideoCallFragment : DialogFragment(), PermissionCallbacks, Session.Session
mSubscriberViewIcon = view.findViewById(R.id.remote_video_view_icon)
mSubscriberViewContainer = view.findViewById(R.id.remote_video_view_container)
arguments?.run {
apiKey = getString("apiKey")
sessionId = getString("sessionId")
token = getString("token")
appLang = getString("appLang")
baseUrl = getString("baseUrl")
sessionStatusModel = getParcelable("sessionStatusModel")
}
patientName = view.findViewById<TextView>(R.id.patient_name)
patientName.text = sessionStatusModel!!.patientName
@ -220,8 +219,9 @@ class VideoCallFragment : DialogFragment(), PermissionCallbacks, Session.Session
} else {
minutes = (elapsedTime - cmTimer.base) / 1000 / 60
seconds = (elapsedTime - cmTimer.base) / 1000 % 60
elapsedTime = elapsedTime + 1000
elapsedTime += 1000
}
arg0?.text = "$minutes:$seconds"
Log.d(VideoCallFragment.TAG, "onChronometerTick: $minutes : $seconds")
}
@ -257,12 +257,19 @@ class VideoCallFragment : DialogFragment(), PermissionCallbacks, Session.Session
// progressBar.setVisibility(View.GONE);
hiddenButtons()
checkClientConnected()
mSubscriberViewContainer!!.setOnTouchListener { v: View?, event: MotionEvent? ->
mSubscriberViewContainer.setOnClickListener {
controlPanel!!.visibility = View.VISIBLE
mVolHandler!!.removeCallbacks(mVolRunnable!!)
mVolHandler!!.postDelayed(mVolRunnable!!, (5 * 1000).toLong())
true
}
// mSubscriberViewContainer!!.setOnTouchListener { v: View?, event: MotionEvent? ->
// controlPanel!!.visibility = View.VISIBLE
// mVolHandler!!.removeCallbacks(mVolRunnable!!)
// mVolHandler!!.postDelayed(mVolRunnable!!, (5 * 1000).toLong())
// true
// }
if (appLang == "ar") {
progressBarLayout!!.layoutDirection = View.LAYOUT_DIRECTION_RTL
}
@ -347,8 +354,9 @@ class VideoCallFragment : DialogFragment(), PermissionCallbacks, Session.Session
override fun onError(session: Session, opentokError: OpentokError) {
Log.d(TAG, "onError: Error (" + opentokError.message + ") in session " + session.sessionId)
// Toast.makeText(requireContext(), "Session error. See the logcat please.", Toast.LENGTH_LONG).show()
// requireActivity().finish()
videoCallResponseListener?.errorHandle("onError: Error (" + opentokError.message + ") in session ")
dialog?.dismiss()
}
override fun onStreamReceived(session: Session, stream: Stream) {
@ -385,8 +393,8 @@ class VideoCallFragment : DialogFragment(), PermissionCallbacks, Session.Session
override fun onError(publisherKit: PublisherKit?, opentokError: OpentokError) {
Log.d(VideoCallFragment.TAG, "onError: Error (" + opentokError.message + ") in publisher")
// Toast.makeText(requireContext(), "Session error. See the logcat please.", Toast.LENGTH_LONG).show()
// requireActivity().finish()
videoCallResponseListener?.errorHandle("onError: Error (" + opentokError.message + ") in publisher")
dialog?.dismiss()
}
override fun onVideoDataReceived(subscriberKit: SubscriberKit?) {
@ -408,6 +416,11 @@ class VideoCallFragment : DialogFragment(), PermissionCallbacks, Session.Session
mSession!!.subscribe(mSubscriber)
}
override fun dismiss() {
videoCallResponseListener?.onCallFinished(1000)
super.dismiss()
}
private fun disconnectSession() {
if (mSession == null) {
videoCallResponseListener?.onCallFinished(Activity.RESULT_CANCELED)
@ -478,7 +491,6 @@ class VideoCallFragment : DialogFragment(), PermissionCallbacks, Session.Session
}
private fun setViewsVisibility() {
initUI(parentView)
val iconSize : Int = context!!.resources.getDimension(R.dimen.video_icon_size).toInt()
val iconSizeSmall : Int = context!!.resources.getDimension(R.dimen.video_icon_size_small).toInt()
val btnMinimizeLayoutParam : ConstraintLayout.LayoutParams = btnMinimize.layoutParams as ConstraintLayout.LayoutParams
@ -553,7 +565,6 @@ class VideoCallFragment : DialogFragment(), PermissionCallbacks, Session.Session
btnMinimize.layoutParams = btnMinimizeLayoutParam
mCallBtn.layoutParams = mCallBtnLayoutParam
}
private fun onCameraClicked(view: View?) {

@ -54,30 +54,6 @@
app:layout_constraintTop_toBottomOf="@+id/layout_name"
tools:context=".ui.VideoCallActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:gravity="center_horizontal"
android:keepScreenOn="true">
<LinearLayout
android:id="@+id/subscriberview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:orientation="horizontal" />
<RelativeLayout
android:id="@+id/publisherview"
android:layout_width="150dp"
android:layout_height="200dp"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingBottom="@dimen/activity_vertical_margin" />
</RelativeLayout>
<FrameLayout
android:id="@+id/remote_video_view_container"
@ -148,7 +124,6 @@
android:id="@+id/btn_minimize"
android:layout_width="@dimen/video_icon_size"
android:layout_height="@dimen/video_icon_size"
android:layout_marginEnd="@dimen/padding_space_small"
android:scaleType="centerCrop"
android:src="@drawable/ic_mini"
app:layout_constraintBottom_toBottomOf="parent"
@ -159,37 +134,34 @@
android:id="@+id/btn_camera"
android:layout_width="@dimen/video_icon_size"
android:layout_height="@dimen/video_icon_size"
android:layout_marginEnd="@dimen/padding_space_small"
android:layout_marginStart="@dimen/padding_space_medium"
android:scaleType="centerCrop"
android:src="@drawable/video_enabled"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/btn_minimize"
app:layout_constraintTop_toTopOf="parent"
/>
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/btn_mic"
android:layout_width="@dimen/video_icon_size"
android:layout_height="@dimen/video_icon_size"
android:layout_marginEnd="@dimen/padding_space_small"
android:layout_marginStart="@dimen/padding_space_medium"
android:scaleType="centerCrop"
android:src="@drawable/mic_enabled"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/btn_camera"
app:layout_constraintTop_toTopOf="parent"
/>
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/btn_specker"
android:layout_width="@dimen/video_icon_size"
android:layout_height="@dimen/video_icon_size"
android:layout_marginEnd="@dimen/padding_space_small"
android:layout_marginStart="@dimen/padding_space_medium"
android:scaleType="centerCrop"
android:src="@drawable/audio_enabled"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/btn_mic"
app:layout_constraintTop_toTopOf="parent"
/>
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

Loading…
Cancel
Save