|
@@ -4,13 +4,19 @@ import android.os.Bundle;
|
|
import android.os.Handler;
|
|
import android.os.Handler;
|
|
import android.support.annotation.Nullable;
|
|
import android.support.annotation.Nullable;
|
|
import android.support.v4.widget.SwipeRefreshLayout;
|
|
import android.support.v4.widget.SwipeRefreshLayout;
|
|
|
|
+import android.support.v7.app.AlertDialog;
|
|
import android.support.v7.widget.GridLayoutManager;
|
|
import android.support.v7.widget.GridLayoutManager;
|
|
import android.support.v7.widget.LinearLayoutManager;
|
|
import android.support.v7.widget.LinearLayoutManager;
|
|
import android.support.v7.widget.RecyclerView;
|
|
import android.support.v7.widget.RecyclerView;
|
|
|
|
+import android.util.Log;
|
|
|
|
+import android.view.Gravity;
|
|
import android.view.LayoutInflater;
|
|
import android.view.LayoutInflater;
|
|
import android.view.MotionEvent;
|
|
import android.view.MotionEvent;
|
|
import android.view.View;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.view.ViewGroup;
|
|
|
|
+import android.view.Window;
|
|
|
|
+import android.view.WindowManager;
|
|
|
|
+import android.widget.Button;
|
|
import android.widget.ImageView;
|
|
import android.widget.ImageView;
|
|
import android.widget.RelativeLayout;
|
|
import android.widget.RelativeLayout;
|
|
import android.widget.TextView;
|
|
import android.widget.TextView;
|
|
@@ -42,6 +48,7 @@ import com.wdkl.callingmainnursemanager.util.UdpSendUtil;
|
|
import com.zhy.http.okhttp.OkHttpUtils;
|
|
import com.zhy.http.okhttp.OkHttpUtils;
|
|
import com.zhy.http.okhttp.callback.StringCallback;
|
|
import com.zhy.http.okhttp.callback.StringCallback;
|
|
|
|
|
|
|
|
+import org.greenrobot.eventbus.EventBus;
|
|
import org.greenrobot.eventbus.Subscribe;
|
|
import org.greenrobot.eventbus.Subscribe;
|
|
import org.greenrobot.eventbus.ThreadMode;
|
|
import org.greenrobot.eventbus.ThreadMode;
|
|
import org.json.JSONArray;
|
|
import org.json.JSONArray;
|
|
@@ -65,7 +72,7 @@ import static com.wdkl.callingmainnursemanager.util.ToastUtil.showToast;
|
|
*/
|
|
*/
|
|
|
|
|
|
public class CallingHostFragment extends BaseFragment implements DoctorHostAdapter.DoctorHostItemOnclickListener,
|
|
public class CallingHostFragment extends BaseFragment implements DoctorHostAdapter.DoctorHostItemOnclickListener,
|
|
- NurseHostAdapter.NurseHostItemOnclickListener, View.OnClickListener,
|
|
|
|
|
|
+ NurseHostAdapter.NurseHostItemOnclickListener, NurseHostAdapter.NurseHostCallOnClickListener, View.OnClickListener,
|
|
MedicalHostsCallingQueuingInfoAdapter.CallingQueuingBarItemOnClickListener, RecyclerView.OnItemTouchListener, SwipeRefreshLayout.OnRefreshListener {
|
|
MedicalHostsCallingQueuingInfoAdapter.CallingQueuingBarItemOnClickListener, RecyclerView.OnItemTouchListener, SwipeRefreshLayout.OnRefreshListener {
|
|
|
|
|
|
private View mView;
|
|
private View mView;
|
|
@@ -232,6 +239,7 @@ public class CallingHostFragment extends BaseFragment implements DoctorHostAdapt
|
|
nurseHostAdapter = new NurseHostAdapter(getActivity(), MyApplication.partInfoList);
|
|
nurseHostAdapter = new NurseHostAdapter(getActivity(), MyApplication.partInfoList);
|
|
rvNurse.setAdapter(nurseHostAdapter);
|
|
rvNurse.setAdapter(nurseHostAdapter);
|
|
nurseHostAdapter.setNurseHostItemOnclickListener(this);
|
|
nurseHostAdapter.setNurseHostItemOnclickListener(this);
|
|
|
|
+ nurseHostAdapter.setNurseHostCallOnClickListener(this);
|
|
|
|
|
|
//责任医生列表
|
|
//责任医生列表
|
|
GridLayoutManager layoutManager = new GridLayoutManager(getActivity(), 3);
|
|
GridLayoutManager layoutManager = new GridLayoutManager(getActivity(), 3);
|
|
@@ -543,6 +551,7 @@ public class CallingHostFragment extends BaseFragment implements DoctorHostAdapt
|
|
@Override
|
|
@Override
|
|
public void onError(Call call, Exception e, int id) {
|
|
public void onError(Call call, Exception e, int id) {
|
|
LogUtil.d("getNurseHostInfo", "===error===");
|
|
LogUtil.d("getNurseHostInfo", "===error===");
|
|
|
|
+ ToastUtil.showToast("网络错误!");
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -551,6 +560,7 @@ public class CallingHostFragment extends BaseFragment implements DoctorHostAdapt
|
|
JSONObject jsonObj = new JSONObject(response);
|
|
JSONObject jsonObj = new JSONObject(response);
|
|
if (jsonObj.getString("Code").equals("ERROR!")) {
|
|
if (jsonObj.getString("Code").equals("ERROR!")) {
|
|
LogUtil.d("getNurseHostInfo", "网络错误");
|
|
LogUtil.d("getNurseHostInfo", "网络错误");
|
|
|
|
+ ToastUtil.showToast("网络错误!");
|
|
} else {
|
|
} else {
|
|
if (jsonObj.getString("Code").equals("OK!")) {
|
|
if (jsonObj.getString("Code").equals("OK!")) {
|
|
String data = jsonObj.getString("hostList");
|
|
String data = jsonObj.getString("hostList");
|
|
@@ -565,22 +575,11 @@ public class CallingHostFragment extends BaseFragment implements DoctorHostAdapt
|
|
if (nurseHostList.size() > 0 && nurseHostList.get(0) != null) {
|
|
if (nurseHostList.size() > 0 && nurseHostList.get(0) != null) {
|
|
NurseHostListInfo hostInfo = nurseHostList.get(0);
|
|
NurseHostListInfo hostInfo = nurseHostList.get(0);
|
|
final String hostId = hostInfo.getDeviceHostingID();
|
|
final String hostId = hostInfo.getDeviceHostingID();
|
|
- //final String sip = hostInfo.getDeviceSipIp();
|
|
|
|
- //final String name = hostInfo.getDeviceName();
|
|
|
|
- ivEndCalling.setOnClickListener(new View.OnClickListener() {
|
|
|
|
- @Override
|
|
|
|
- public void onClick(View v) {
|
|
|
|
- getActivity().runOnUiThread(new Runnable() {
|
|
|
|
- @Override
|
|
|
|
- public void run() {
|
|
|
|
- callClick(hostId);
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
|
|
+ EventBus.getDefault().post(new MessageEvent(hostId, Constants.EVENT_CALL));
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
LogUtil.d("Code", "网络错误");
|
|
LogUtil.d("Code", "网络错误");
|
|
|
|
+ ToastUtil.showToast("网络错误!");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} catch (JSONException e) {
|
|
} catch (JSONException e) {
|
|
@@ -593,25 +592,22 @@ public class CallingHostFragment extends BaseFragment implements DoctorHostAdapt
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private void callClick(String hostId) {
|
|
|
|
|
|
+ private void sendCall(String hostId) {
|
|
if (Constants.CALL_STATE.equals(Constants.STANDBY)) {
|
|
if (Constants.CALL_STATE.equals(Constants.STANDBY)) {
|
|
- //呼叫中
|
|
|
|
- ivEndCalling.setBackgroundResource(R.mipmap.ic_calling_sickbed_right_hang_up);
|
|
|
|
- nurse_CallStaus.setText("正在呼叫...");
|
|
|
|
UdpSendUtil.sendNurseHostCall(hostId);
|
|
UdpSendUtil.sendNurseHostCall(hostId);
|
|
Constants.CALL_STATE = Constants.IN_CALL;
|
|
Constants.CALL_STATE = Constants.IN_CALL;
|
|
Constants.CALLING_HOST_ID = hostId;
|
|
Constants.CALLING_HOST_ID = hostId;
|
|
Constants.CallType = Constants.MANAGER_CALL;
|
|
Constants.CallType = Constants.MANAGER_CALL;
|
|
- } else {
|
|
|
|
- //主动挂断
|
|
|
|
- if (Constants.CallType.equals(Constants.MANAGER_CALL)) {
|
|
|
|
- ((MainFragmentActivity) getActivity()).endCalled();
|
|
|
|
- ivEndCalling.setBackgroundResource(R.mipmap.ic_calling_sickbed_right_calling);
|
|
|
|
- nurse_CallStaus.setText("");
|
|
|
|
- UdpSendUtil.sendNurseHostHangUp(hostId);
|
|
|
|
- Constants.CALL_STATE = Constants.STANDBY;
|
|
|
|
- Constants.CALLING_HOST_ID = "";
|
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void endCall(String hostId) {
|
|
|
|
+ if (!Constants.CALL_STATE.equals(Constants.STANDBY) && Constants.CallType.equals(Constants.MANAGER_CALL)) {
|
|
|
|
+ ((MainFragmentActivity) getActivity()).endCalled();
|
|
|
|
+ callDialogDismiss();
|
|
|
|
+ UdpSendUtil.sendNurseHostHangUp(hostId);
|
|
|
|
+ Constants.CALL_STATE = Constants.STANDBY;
|
|
|
|
+ Constants.CALLING_HOST_ID = "";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -661,7 +657,16 @@ public class CallingHostFragment extends BaseFragment implements DoctorHostAdapt
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public void nurseHostItemOnclick(View view, int position) {
|
|
public void nurseHostItemOnclick(View view, int position) {
|
|
- if (!Constants.CALL_STATE.equals(Constants.STANDBY) && Constants.CallType.equals(Constants.MANAGER_CALL)) {
|
|
|
|
|
|
+ if (MyApplication.partInfoList.size() > 0 && position < MyApplication.partInfoList.size()) {
|
|
|
|
+ Constants.SelectedPartId = MyApplication.partInfoList.get(position).getID();
|
|
|
|
+ Constants.SelectedPartName = MyApplication.partInfoList.get(position).getPART_NAME();
|
|
|
|
+ } else {
|
|
|
|
+ ToastUtil.showToast("数据异常,请下拉刷新后重试!");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ EventBus.getDefault().post(new MessageEvent(1, Constants.EVENT_FRAGMENT));
|
|
|
|
+
|
|
|
|
+ /*if (!Constants.CALL_STATE.equals(Constants.STANDBY) && Constants.CallType.equals(Constants.MANAGER_CALL)) {
|
|
ToastUtil.showToast("请先取消当前呼叫");
|
|
ToastUtil.showToast("请先取消当前呼叫");
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -687,9 +692,61 @@ public class CallingHostFragment extends BaseFragment implements DoctorHostAdapt
|
|
|
|
|
|
getPartData(info.getID());
|
|
getPartData(info.getID());
|
|
getNurseHostInfo(info.getID());
|
|
getNurseHostInfo(info.getID());
|
|
|
|
+ }*/
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void nurseHostCallOnClick(View view, int position) {
|
|
|
|
+ String partId;
|
|
|
|
+ if (MyApplication.partInfoList.size() > 0 && position < MyApplication.partInfoList.size()) {
|
|
|
|
+ partName = MyApplication.partInfoList.get(position).getPART_NAME();
|
|
|
|
+ partId = MyApplication.partInfoList.get(position).getID();
|
|
|
|
+ } else {
|
|
|
|
+ ToastUtil.showToast("数据异常,请下拉刷新后重试!");
|
|
|
|
+ return;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ getNurseHostInfo(partId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private String partName;
|
|
|
|
+ private AlertDialog callDialog;
|
|
|
|
+ private AlertDialog createCallDialog(String partName, final String hostId) {
|
|
|
|
+ AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.CallingDialog);
|
|
|
|
+ final AlertDialog dialog = builder.create();
|
|
|
|
+ dialog.setCanceledOnTouchOutside(false);
|
|
|
|
+ View dialogView = View.inflate(getActivity(), R.layout.dialog_host_call_layout, null);
|
|
|
|
+ TextView tvCallStatus = dialogView.findViewById(R.id.tv_call_status);
|
|
|
|
+ tvCallStatus.setText("正在呼叫...");
|
|
|
|
+ TextView tvPartName = dialogView.findViewById(R.id.tv_call_part_name);
|
|
|
|
+ tvPartName.setText(partName);
|
|
|
|
+ Button button = dialogView.findViewById(R.id.btn_call);
|
|
|
|
+ button.setOnClickListener(new View.OnClickListener() {
|
|
|
|
+ @Override
|
|
|
|
+ public void onClick(View v) {
|
|
|
|
+ endCall(hostId);
|
|
|
|
+ dialog.dismiss();
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ dialog.setView(dialogView);
|
|
|
|
+
|
|
|
|
+ return dialog;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private void updateCallDialogStatus(String status) {
|
|
|
|
+ if (callDialog != null && callDialog.isShowing()) {
|
|
|
|
+ TextView textView = (TextView) callDialog.findViewById(R.id.tv_call_status);
|
|
|
|
+ textView.setText(status);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void callDialogDismiss() {
|
|
|
|
+ if (callDialog != null && callDialog.isShowing()) {
|
|
|
|
+ callDialog.dismiss();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 呼叫排队信息栏适配器条目点击事件
|
|
* 呼叫排队信息栏适配器条目点击事件
|
|
*
|
|
*
|
|
@@ -708,7 +765,7 @@ public class CallingHostFragment extends BaseFragment implements DoctorHostAdapt
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
|
|
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
|
|
- UIUtils.rvSideslipShowPopu(getActivity(), e);
|
|
|
|
|
|
+ //UIUtils.rvSideslipShowPopu(getActivity(), e);
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -730,26 +787,42 @@ public class CallingHostFragment extends BaseFragment implements DoctorHostAdapt
|
|
String nurseHostID = udpEntity.getNurseHostID();
|
|
String nurseHostID = udpEntity.getNurseHostID();
|
|
if (Constants.CALLING_HOST_ID.equals(nurseHostID)) {
|
|
if (Constants.CALLING_HOST_ID.equals(nurseHostID)) {
|
|
//对方挂断
|
|
//对方挂断
|
|
- ivEndCalling.setBackgroundResource(R.mipmap.ic_calling_sickbed_right_calling);
|
|
|
|
- nurse_CallStaus.setText("");
|
|
|
|
|
|
+ //ivEndCalling.setBackgroundResource(R.mipmap.ic_calling_sickbed_right_calling);
|
|
|
|
+ //nurse_CallStaus.setText("");
|
|
Constants.CALL_STATE = Constants.STANDBY;
|
|
Constants.CALL_STATE = Constants.STANDBY;
|
|
Constants.CALLING_HOST_ID = "";
|
|
Constants.CALLING_HOST_ID = "";
|
|
|
|
+ callDialogDismiss();
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case Constants.EVENT_SIP:
|
|
case Constants.EVENT_SIP:
|
|
- LogUtil.d("CallingHost", "Constants.CallType == " + Constants.CallType);
|
|
|
|
|
|
+ //LogUtil.d("CallingHost", "Constants.CallType == " + Constants.CallType);
|
|
if (Constants.CallType.equals(Constants.MANAGER_CALL)) {
|
|
if (Constants.CallType.equals(Constants.MANAGER_CALL)) {
|
|
if (Constants.CALL_STATE.equals(Constants.IN_CALL)) {
|
|
if (Constants.CALL_STATE.equals(Constants.IN_CALL)) {
|
|
((MainFragmentActivity) getActivity()).autoCall();
|
|
((MainFragmentActivity) getActivity()).autoCall();
|
|
} else if (Constants.CALL_STATE.equals(Constants.IN_CALLING)) {
|
|
} else if (Constants.CALL_STATE.equals(Constants.IN_CALLING)) {
|
|
- nurse_CallStaus.setText("正在通话中...");
|
|
|
|
|
|
+ //nurse_CallStaus.setText("正在通话中...");
|
|
|
|
+ updateCallDialogStatus("正在通话中...");
|
|
} else if (Constants.CALL_STATE.equals(Constants.STANDBY)) {
|
|
} else if (Constants.CALL_STATE.equals(Constants.STANDBY)) {
|
|
- ivEndCalling.setBackgroundResource(R.mipmap.ic_calling_sickbed_right_calling);
|
|
|
|
- nurse_CallStaus.setText("");
|
|
|
|
|
|
+ //ivEndCalling.setBackgroundResource(R.mipmap.ic_calling_sickbed_right_calling);
|
|
|
|
+ //nurse_CallStaus.setText("");
|
|
Constants.CALLING_HOST_ID = "";
|
|
Constants.CALLING_HOST_ID = "";
|
|
|
|
+ callDialogDismiss();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
+ case Constants.EVENT_CALL:
|
|
|
|
+ String hostId = (String) messageEvent.getMessage();
|
|
|
|
+ callDialog = createCallDialog(partName, hostId);
|
|
|
|
+ Window window = callDialog.getWindow();
|
|
|
|
+ callDialog.show();
|
|
|
|
+ if (window != null) {
|
|
|
|
+ WindowManager.LayoutParams lp = window.getAttributes();
|
|
|
|
+ lp.width = WindowManager.LayoutParams.MATCH_PARENT;
|
|
|
|
+ lp.height = WindowManager.LayoutParams.MATCH_PARENT;
|
|
|
|
+ window.setAttributes(lp);
|
|
|
|
+ }
|
|
|
|
+ sendCall(hostId);
|
|
|
|
+ break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|