消息列表功能修改 网络请求失败闪退修复

dev
李桢 1 year ago
parent ddb2cd3aca
commit fafa953e9e
  1. 2
      app/build.gradle
  2. 9
      app/src/main/java/com/unionmed/unionmedtv/activity/AddressSelectActivity.java
  3. 8
      app/src/main/java/com/unionmed/unionmedtv/activity/DoctorActivity.java
  4. 18
      app/src/main/java/com/unionmed/unionmedtv/activity/DoctorDetailActivity.java
  5. 7
      app/src/main/java/com/unionmed/unionmedtv/activity/HospitalActivity.java
  6. 7
      app/src/main/java/com/unionmed/unionmedtv/activity/HospitalDetailActivity.java
  7. 1
      app/src/main/java/com/unionmed/unionmedtv/activity/MsgActivity.java
  8. 105
      app/src/main/java/com/unionmed/unionmedtv/activity/VideoCallActivity.java
  9. 4
      app/src/main/java/com/unionmed/unionmedtv/adapter/MsgItemAdapter.java
  10. 6
      app/src/main/java/com/unionmed/unionmedtv/adapter/MsgListAdapter.java
  11. 26
      app/src/main/java/com/unionmed/unionmedtv/adapter/RemoteAdapter.java
  12. 11
      app/src/main/java/com/unionmed/unionmedtv/fragment/ContentFragment.java
  13. 62
      app/src/main/java/com/unionmed/unionmedtv/fragment/MsgFragment.java
  14. 7
      app/src/main/java/com/unionmed/unionmedtv/fragment/MyDoctorFragment.java
  15. 4
      app/src/main/java/com/unionmed/unionmedtv/login/activity/LoginActivity.java
  16. 9
      app/src/main/java/com/unionmed/unionmedtv/login/activity/fragment/LoginAccountFragment.java
  17. 22
      app/src/main/java/com/unionmed/unionmedtv/login/activity/fragment/LoginPhoneFragment.java
  18. 44
      app/src/main/java/com/unionmed/unionmedtv/network/RequestHandler.java
  19. 6
      app/src/main/res/layout/activity_video_call.xml
  20. 17
      app/src/main/res/layout/item_remote_layout.xml

@ -68,7 +68,7 @@ dependencies {
// https://github.com/getActivity/EasyHttp // https://github.com/getActivity/EasyHttp
implementation 'com.github.getActivity:EasyHttp:11.2' implementation 'com.github.getActivity:EasyHttp:12.0'
implementation 'com.squareup.okhttp3:okhttp:3.12.13' implementation 'com.squareup.okhttp3:okhttp:3.12.13'
implementation 'com.google.code.gson:gson:2.8.5' implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.github.getActivity:GsonFactory:6.2' implementation 'com.github.getActivity:GsonFactory:6.2'

@ -10,6 +10,7 @@ import androidx.annotation.Nullable;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;
import com.blankj.utilcode.util.AppUtils; import com.blankj.utilcode.util.AppUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.donkingliang.labels.LabelsView; import com.donkingliang.labels.LabelsView;
import com.hjq.http.EasyConfig; import com.hjq.http.EasyConfig;
import com.hjq.http.EasyHttp; import com.hjq.http.EasyHttp;
@ -64,7 +65,7 @@ public class AddressSelectActivity extends BaseActivity {
.api(new GetAppIpNew()) .api(new GetAppIpNew())
.request(new OnHttpListener<HttpData<ApiResponse<GetAppIpNew>>>() { .request(new OnHttpListener<HttpData<ApiResponse<GetAppIpNew>>>() {
@Override @Override
public void onSucceed(HttpData<ApiResponse<GetAppIpNew>> apiResponseHttpData) { public void onHttpSuccess(HttpData<ApiResponse<GetAppIpNew>> apiResponseHttpData) {
if(apiResponseHttpData.isRequestSucceed()){ if(apiResponseHttpData.isRequestSucceed()){
if(apiResponseHttpData.getData().isInnerRequestSucceed()){ if(apiResponseHttpData.getData().isInnerRequestSucceed()){
list.addAll(apiResponseHttpData.getData().getData().getMember()); list.addAll(apiResponseHttpData.getData().getData().getMember());
@ -86,9 +87,11 @@ public class AddressSelectActivity extends BaseActivity {
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
ToastUtils.showLong(e.getMessage());
} }
}); });
} }
} }

@ -17,6 +17,7 @@ import androidx.annotation.Nullable;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.blankj.utilcode.util.ToastUtils;
import com.example.yideng.loaddialoglibrary.LmiotDialog; import com.example.yideng.loaddialoglibrary.LmiotDialog;
import com.hjq.http.EasyHttp; import com.hjq.http.EasyHttp;
import com.hjq.http.listener.OnHttpListener; import com.hjq.http.listener.OnHttpListener;
@ -132,7 +133,7 @@ public class DoctorActivity extends BaseActivity {
CacheUtil.getLongitude().toString(), CacheUtil.getLatitude().toString(), CacheUtil.getPkey(), "2")) CacheUtil.getLongitude().toString(), CacheUtil.getLatitude().toString(), CacheUtil.getPkey(), "2"))
.request(new OnHttpListener<HttpData<ApiResponse<GetNearDoctorApi.DoctorInfo>>>() { .request(new OnHttpListener<HttpData<ApiResponse<GetNearDoctorApi.DoctorInfo>>>() {
@Override @Override
public void onSucceed(HttpData<ApiResponse<GetNearDoctorApi.DoctorInfo>> stringHttpData) { public void onHttpSuccess(HttpData<ApiResponse<GetNearDoctorApi.DoctorInfo>> stringHttpData) {
LogUtils.e("成功:" + stringHttpData); LogUtils.e("成功:" + stringHttpData);
LmiotDialog.hidden(); LmiotDialog.hidden();
if (stringHttpData.isRequestSucceed()) { if (stringHttpData.isRequestSucceed()) {
@ -166,13 +167,12 @@ public class DoctorActivity extends BaseActivity {
}); });
} }
} }
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
LmiotDialog.hidden(); LmiotDialog.hidden();
ToastUtils.showLong(e.getMessage());
LogUtils.e("失败:" + e); LogUtils.e("失败:" + e);
} }
}); });

@ -90,8 +90,9 @@ public class DoctorDetailActivity extends BaseActivity implements View.OnClickLi
EasyHttp.post(this) EasyHttp.post(this)
.api(new GetDoctorInfoApi(userAccount, CacheUtil.getPkey(), CacheUtil.getUserToken())) .api(new GetDoctorInfoApi(userAccount, CacheUtil.getPkey(), CacheUtil.getUserToken()))
.request(new OnHttpListener<HttpData<ApiResponse<GetDoctorInfoApi>>>() { .request(new OnHttpListener<HttpData<ApiResponse<GetDoctorInfoApi>>>() {
@Override @Override
public void onSucceed(HttpData<ApiResponse<GetDoctorInfoApi>> response) { public void onHttpSuccess(HttpData<ApiResponse<GetDoctorInfoApi>> response) {
if (response.isRequestSucceed()) { if (response.isRequestSucceed()) {
if (response.getData().isInnerRequestSucceed()) { if (response.getData().isInnerRequestSucceed()) {
GetDoctorInfoApi infoBean = response.getData().getData(); GetDoctorInfoApi infoBean = response.getData().getData();
@ -149,8 +150,8 @@ public class DoctorDetailActivity extends BaseActivity implements View.OnClickLi
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
ToastUtils.showLong(e.getMessage());
} }
}); });
} }
@ -185,13 +186,19 @@ public class DoctorDetailActivity extends BaseActivity implements View.OnClickLi
} }
if (checkCamera(DoctorDetailActivity.this)) { if (checkCamera(DoctorDetailActivity.this)) {
if (HomeActivity.connectIsSuccess(DoctorDetailActivity.this)) { if (HomeActivity.connectIsSuccess(DoctorDetailActivity.this)) {
RongCallSession callSession = RongCallClient.getInstance().getCallSession();
if (callSession != null && callSession.getStartTime() > 0) {
// 当前正在进行通话
ToastUtils.showLong("当前正在进行通话");
return;
}
List<String> pKeys = new ArrayList<>(); List<String> pKeys = new ArrayList<>();
pKeys.add(targetId); pKeys.add(targetId);
EasyHttp.post(DoctorDetailActivity.this) EasyHttp.post(DoctorDetailActivity.this)
.api(new ApplyVideoApi(pKeys, "10001")) .api(new ApplyVideoApi(pKeys, "10001"))
.request(new OnHttpListener<ApiResponse<ApiResponse<ApplyVideoApi.ApplyVideoModel>>>() { .request(new OnHttpListener<ApiResponse<ApiResponse<ApplyVideoApi.ApplyVideoModel>>>() {
@Override @Override
public void onSucceed(ApiResponse<ApiResponse<ApplyVideoApi.ApplyVideoModel>> result) { public void onHttpSuccess(ApiResponse<ApiResponse<ApplyVideoApi.ApplyVideoModel>> result) {
if (null != result.getData() && result.getData().isInnerRequestSucceed() && if (null != result.getData() && result.getData().isInnerRequestSucceed() &&
null != result.getData().getData()) { null != result.getData().getData()) {
@ -204,11 +211,12 @@ public class DoctorDetailActivity extends BaseActivity implements View.OnClickLi
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
ToastUtils.showLong("发起视频失败"); ToastUtils.showLong("发起视频失败");
LogUtils.e("applyVideo失败", "失败:" + e); LogUtils.e("applyVideo失败", "失败:" + e);
} }
}); });
} }
} }

@ -16,6 +16,7 @@ import androidx.annotation.Nullable;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.blankj.utilcode.util.ToastUtils;
import com.example.yideng.loaddialoglibrary.LmiotDialog; import com.example.yideng.loaddialoglibrary.LmiotDialog;
import com.hjq.http.EasyHttp; import com.hjq.http.EasyHttp;
import com.hjq.http.listener.OnHttpListener; import com.hjq.http.listener.OnHttpListener;
@ -127,7 +128,7 @@ public class HospitalActivity extends BaseActivity {
.api(new GetHospitalApi(et_search.getText().toString(), startNum, CacheUtil.getPkey(), endNum)) .api(new GetHospitalApi(et_search.getText().toString(), startNum, CacheUtil.getPkey(), endNum))
.request(new OnHttpListener<HttpData<ApiResponse<GetHospitalApi>>>() { .request(new OnHttpListener<HttpData<ApiResponse<GetHospitalApi>>>() {
@Override @Override
public void onSucceed(HttpData<ApiResponse<GetHospitalApi>> stringHttpData) { public void onHttpSuccess(HttpData<ApiResponse<GetHospitalApi>> stringHttpData) {
LmiotDialog.hidden(); LmiotDialog.hidden();
if (stringHttpData.getData().getCode() == 200) { if (stringHttpData.getData().getCode() == 200) {
if (stringHttpData.getData().getData() == null) { if (stringHttpData.getData().getData() == null) {
@ -162,12 +163,12 @@ public class HospitalActivity extends BaseActivity {
}); });
} }
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
LmiotDialog.hidden(); LmiotDialog.hidden();
ToastUtils.showLong(e.getMessage());
LogUtils.e("失败:" + e); LogUtils.e("失败:" + e);
} }
}); });

@ -110,7 +110,7 @@ public class HospitalDetailActivity extends BaseActivity {
.api(new GetHospitalDetailApi(chosCode, CacheUtil.getPkey())) .api(new GetHospitalDetailApi(chosCode, CacheUtil.getPkey()))
.request(new OnHttpListener<HttpData<ApiResponse<GetHospitalDetailApi>>>() { .request(new OnHttpListener<HttpData<ApiResponse<GetHospitalDetailApi>>>() {
@Override @Override
public void onSucceed(HttpData<ApiResponse<GetHospitalDetailApi>> stringHttpData) { public void onHttpSuccess(HttpData<ApiResponse<GetHospitalDetailApi>> stringHttpData) {
LogUtils.e("成功:" + stringHttpData); LogUtils.e("成功:" + stringHttpData);
if (stringHttpData.isRequestSucceed()) { if (stringHttpData.isRequestSucceed()) {
if (stringHttpData.getData().isInnerRequestSucceed()) { if (stringHttpData.getData().isInnerRequestSucceed()) {
@ -136,13 +136,14 @@ public class HospitalDetailActivity extends BaseActivity {
doctorAdapter.notifyDataSetChanged(); doctorAdapter.notifyDataSetChanged();
} }
} }
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
LogUtils.e("失败:" + e); LogUtils.e("失败:" + e);
ToastUtils.showLong(e.getMessage());
} }
}); });
} }
} }

@ -85,6 +85,7 @@ public class MsgActivity extends BaseActivity {
public void onSuccess(List<Conversation> conversations) { public void onSuccess(List<Conversation> conversations) {
LmiotDialog.hidden(); LmiotDialog.hidden();
if(conversations==null){ if(conversations==null){
lin.setVisibility(View.VISIBLE);
tv_content.setText("暂无数据"); tv_content.setText("暂无数据");
return; return;
} }

@ -14,6 +14,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.lifecycle.Observer; import androidx.lifecycle.Observer;
@ -25,6 +26,8 @@ import com.blankj.utilcode.util.StringUtils;
import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.ToastUtils;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.request.RequestOptions;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.listener.OnItemClickListener;
import com.hjq.http.EasyHttp; import com.hjq.http.EasyHttp;
import com.hjq.http.listener.OnHttpListener; import com.hjq.http.listener.OnHttpListener;
import com.unionmed.unionmedtv.R; import com.unionmed.unionmedtv.R;
@ -38,6 +41,9 @@ import com.unionmed.unionmedtv.livedatas.LiveDataBus;
import com.unionmed.unionmedtv.network.ApiResponse; import com.unionmed.unionmedtv.network.ApiResponse;
import com.unionmed.unionmedtv.utils.CacheUtil; import com.unionmed.unionmedtv.utils.CacheUtil;
import com.unionmed.unionmedtv.utils.Constants; import com.unionmed.unionmedtv.utils.Constants;
import com.unionmed.unionmedtv.utils.OnChildClickListener;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
@ -104,13 +110,17 @@ public class VideoCallActivity extends BaseActivity implements View.OnClickListe
this.usetInfo = usetInfo; this.usetInfo = usetInfo;
} }
//本地视频全屏数据
private String imgPath = ""; private String imgPath = "";
private String name = ""; private String name = "";
private String localId = "";
private SurfaceView surfaceView = null;
private boolean cameraDisabled = false;
/** /**
* idle 通话结束 * idle 通话结束
* Calling 电话拨出 * Calling 电话拨出
* BeCall 接听 * BeCall 等待接听
* OnCall 已接通 * OnCall 已接通
*/ */
public enum CallStatus { public enum CallStatus {
@ -141,7 +151,32 @@ public class VideoCallActivity extends BaseActivity implements View.OnClickListe
tv_time = findViewById(R.id.tv_time); tv_time = findViewById(R.id.tv_time);
recyclerView = findViewById(R.id.recyclerView); recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(VideoCallActivity.this)); recyclerView.setLayoutManager(new LinearLayoutManager(VideoCallActivity.this));
remoteAdapter = new RemoteAdapter(R.layout.item_remote_layout); remoteAdapter = new RemoteAdapter(R.layout.item_remote_layout, new OnChildClickListener() {
@Override
public <T> void onChildClick(View view, int position, T data) {
RemoteBean newRemoteBean = new RemoteBean();
newRemoteBean.setPath(imgPath);
newRemoteBean.setName(name);
((RCRTCVideoView) surfaceView).setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FILL);
newRemoteBean.setSurfaceView(surfaceView);
newRemoteBean.setUserId(localId);
newRemoteBean.setCameraDisabled(cameraDisabled);
((FrameLayout) ((RemoteBean) data).getView()).removeAllViews();
RemoteBean remoteBean = (RemoteBean) data;
imgPath = remoteBean.getPath();
name = remoteBean.getName();
localId = remoteBean.getUserId();
cameraDisabled = remoteBean.isCameraDisabled();
surfaceView = remoteBean.getSurfaceView();
surfaceView.setZOrderOnTop(false);
clearViews();
addLocalView(surfaceView);
remoteAdapter.getData().set(position, newRemoteBean);
remoteAdapter.notifyDataSetChanged();
chageCamera(!cameraDisabled);
}
});
recyclerView.setAdapter(remoteAdapter); recyclerView.setAdapter(remoteAdapter);
lin_put_through = findViewById(R.id.lin_put_through); lin_put_through = findViewById(R.id.lin_put_through);
lin_put_through.setOnClickListener(this); lin_put_through.setOnClickListener(this);
@ -157,6 +192,7 @@ public class VideoCallActivity extends BaseActivity implements View.OnClickListe
initIRongCallListener(); initIRongCallListener();
type = getIntent().getStringExtra("type"); type = getIntent().getStringExtra("type");
targetId = getIntent().getStringExtra("targetId"); targetId = getIntent().getStringExtra("targetId");
localId = targetId;
groupId = getIntent().getStringExtra("groupId"); groupId = getIntent().getStringExtra("groupId");
if (type.equals("1")) { if (type.equals("1")) {
if (!TextUtils.isEmpty(targetId)) { if (!TextUtils.isEmpty(targetId)) {
@ -170,8 +206,10 @@ public class VideoCallActivity extends BaseActivity implements View.OnClickListe
} }
getUserInfoByServer(targetId); getUserInfoByServer(targetId);
} }
private long time = 0; private long time = 0;
Handler handler; Handler handler;
private void reckonByTime() { private void reckonByTime() {
handler = new Handler(); handler = new Handler();
Runnable updateTask = new Runnable() { Runnable updateTask = new Runnable() {
@ -193,10 +231,10 @@ public class VideoCallActivity extends BaseActivity implements View.OnClickListe
// 延迟执行任务 // 延迟执行任务
handler.postDelayed(updateTask, 1000); handler.postDelayed(updateTask, 1000);
} }
public void initIRongCallListener() {
RongCallClient.getInstance().setVoIPCallListener(new IRongCallListener() {
private void addLocalView(SurfaceView view) { private void addLocalView(SurfaceView view) {
local.removeAllViews(); local.removeAllViews();
((RCRTCVideoView) view).setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FILL);
local.addView(view); local.addView(view);
} }
@ -204,6 +242,10 @@ public class VideoCallActivity extends BaseActivity implements View.OnClickListe
local.removeAllViews(); local.removeAllViews();
} }
public void initIRongCallListener() {
RongCallClient.getInstance().setVoIPCallListener(new IRongCallListener() {
/** /**
* 电话已拨出 * 电话已拨出
* 主叫端拨出电话后通过回调 onCallOutgoing 通知当前 call 的详细信息 * 主叫端拨出电话后通过回调 onCallOutgoing 通知当前 call 的详细信息
@ -231,11 +273,13 @@ public class VideoCallActivity extends BaseActivity implements View.OnClickListe
currentStatus = CallStatus.OnCall; currentStatus = CallStatus.OnCall;
changeUi(null); changeUi(null);
RemoteBean remoteBean = new RemoteBean(); RemoteBean remoteBean = new RemoteBean();
remoteBean.setUserId(targetId); remoteBean.setUserId(CacheUtil.getImUserAccount());
((RCRTCVideoView) localVideo).setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FILL);
remoteBean.setSurfaceView(localVideo); remoteBean.setSurfaceView(localVideo);
remoteAdapter.addData(remoteBean);
remoteBean.setPath(CacheUtil.getToken().getHeadImg()); remoteBean.setPath(CacheUtil.getToken().getHeadImg());
remoteBean.setName(CacheUtil.getToken().getName()); remoteBean.setName(CacheUtil.getToken().getName());
remoteAdapter.addData(remoteBean);
} }
/** /**
@ -294,23 +338,28 @@ public class VideoCallActivity extends BaseActivity implements View.OnClickListe
@Override @Override
public void success(ImUserInfoBean imUserInfoBean) { public void success(ImUserInfoBean imUserInfoBean) {
if (userId.equals(targetId)) { if (userId.equals(targetId)) {
surfaceView = remoteVideo;
((RCRTCVideoView) remoteVideo).setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FILL); ((RCRTCVideoView) remoteVideo).setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FILL);
addLocalView(remoteVideo); addLocalView(remoteVideo);
imgPath = imUserInfoBean.getHeadImg(); imgPath = imUserInfoBean.getHeadImg();
name = imUserInfoBean.getName(); name = imUserInfoBean.getName();
localId = targetId;
} else { } else {
RemoteBean remoteBean = new RemoteBean(); RemoteBean remoteBean = new RemoteBean();
remoteBean.setUserId(userId); remoteBean.setUserId(userId);
((RCRTCVideoView) remoteVideo).setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FILL);
remoteBean.setSurfaceView(remoteVideo); remoteBean.setSurfaceView(remoteVideo);
remoteAdapter.addData(remoteBean);
remoteBean.setPath(imUserInfoBean.getHeadImg()); remoteBean.setPath(imUserInfoBean.getHeadImg());
remoteBean.setName(imUserInfoBean.getName()); remoteBean.setName(imUserInfoBean.getName());
remoteAdapter.addData(remoteBean);
} }
} }
@Override @Override
public void fail() { public void fail() {
if (userId.equals(targetId)) { if (userId.equals(targetId)) {
surfaceView = remoteVideo;
addLocalView(remoteVideo); addLocalView(remoteVideo);
} else { } else {
RemoteBean remoteBean = new RemoteBean(); RemoteBean remoteBean = new RemoteBean();
@ -361,7 +410,8 @@ public class VideoCallActivity extends BaseActivity implements View.OnClickListe
@Override @Override
public void onRemoteCameraDisabled(String userId, boolean disabled) { public void onRemoteCameraDisabled(String userId, boolean disabled) {
if (userId.equals(targetId)) { if (userId.equals(localId)) {
cameraDisabled = disabled;
if (disabled) { if (disabled) {
local.setVisibility(View.GONE); local.setVisibility(View.GONE);
iv_icon.setVisibility(View.VISIBLE); iv_icon.setVisibility(View.VISIBLE);
@ -493,9 +543,10 @@ public class VideoCallActivity extends BaseActivity implements View.OnClickListe
.api(new GetImUserInfoApi(CacheUtil.getToken().getToken(), userId)) .api(new GetImUserInfoApi(CacheUtil.getToken().getToken(), userId))
.request(new OnHttpListener<ApiResponse<ApiResponse<ImUserInfoBean>>>() { .request(new OnHttpListener<ApiResponse<ApiResponse<ImUserInfoBean>>>() {
@Override @Override
public void onSucceed(ApiResponse<ApiResponse<ImUserInfoBean>> result) { public void onHttpSuccess(ApiResponse<ApiResponse<ImUserInfoBean>> result) {
if (null != result.getData() && result.getData().isInnerRequestSucceed() if (null != result.getData() && result.getData().isInnerRequestSucceed()
&& null != result.getData().getData()) { && null != result.getData().getData()) {
if (currentStatus != CallStatus.OnCall) { //等待接听状态
Glide.with(VideoCallActivity.this) Glide.with(VideoCallActivity.this)
.load(result.getData().getData().getHeadImg()) .load(result.getData().getData().getHeadImg())
.apply(new RequestOptions() .apply(new RequestOptions()
@ -508,6 +559,7 @@ public class VideoCallActivity extends BaseActivity implements View.OnClickListe
} else { } else {
tv_tip.setText("对方邀请您进行通话"); tv_tip.setText("对方邀请您进行通话");
} }
}
if (usetInfo != null) { if (usetInfo != null) {
usetInfo.success(result.getData().getData()); usetInfo.success(result.getData().getData());
} }
@ -520,9 +572,11 @@ public class VideoCallActivity extends BaseActivity implements View.OnClickListe
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
ToastUtils.showLong(e.getMessage());
LogUtils.e("用户信息失败", "失败:" + e); LogUtils.e("用户信息失败", "失败:" + e);
} }
}); });
} }
@ -561,14 +615,36 @@ public class VideoCallActivity extends BaseActivity implements View.OnClickListe
iv_camera.setImageDrawable(getResources().getDrawable(R.mipmap.icon_camera_on)); iv_camera.setImageDrawable(getResources().getDrawable(R.mipmap.icon_camera_on));
tv_camera.setText("摄像头已开"); tv_camera.setText("摄像头已开");
} }
if (localId.equals(CacheUtil.getImUserAccount())) {//本地大屏用户id==当前账号id
cameraDisabled = !lin_turn_off_camera.isSelected();
chageCamera(!cameraDisabled);
} else {
for (int i = 0; i < remoteAdapter.getData().size(); i++) { for (int i = 0; i < remoteAdapter.getData().size(); i++) {
if (remoteAdapter.getData().get(i).getUserId().equals(targetId)) { if (remoteAdapter.getData().get(i).getUserId().equals(CacheUtil.getImUserAccount())) {
remoteAdapter.getData().get(i).setCameraDisabled(!lin_turn_off_camera.isSelected()); remoteAdapter.getData().get(i).setCameraDisabled(!lin_turn_off_camera.isSelected());
} }
} }
remoteAdapter.notifyDataSetChanged(); remoteAdapter.notifyDataSetChanged();
} }
} }
}
//本地视频图像显示
public void chageCamera(boolean cameraDisabled) {
if (!cameraDisabled) {
local.setVisibility(View.GONE);
iv_icon.setVisibility(View.VISIBLE);
Glide.with(VideoCallActivity.this)
.load(imgPath)
.apply(new RequestOptions()
.placeholder(R.mipmap.rc_default_portrait)
)
.into(iv_icon);
} else {
local.setVisibility(View.VISIBLE);
iv_icon.setVisibility(View.GONE);
}
}
@Override @Override
protected void onDestroy() { protected void onDestroy() {
@ -577,4 +653,11 @@ public class VideoCallActivity extends BaseActivity implements View.OnClickListe
handler.removeCallbacksAndMessages(null); handler.removeCallbacksAndMessages(null);
} }
} }
@Override
public void onBackPressed() {
if (RongCallClient.getInstance() != null && RongCallClient.getInstance().getCallSession() != null) {
RongCallClient.getInstance().hangUpCall(RongCallClient.getInstance().getCallSession().getCallId());
}
}
} }

@ -81,10 +81,10 @@ public class MsgItemAdapter extends BaseDelegateMultiAdapter<Message, BaseViewHo
return 5; return 5;
}else if (message.getContent() instanceof UnknownMessage && }else if (message.getContent() instanceof UnknownMessage &&
message.getMessageDirection() == Message.MessageDirection.RECEIVE) { message.getMessageDirection() == Message.MessageDirection.RECEIVE) {
return 6; return 8;
} else if (message.getContent() instanceof UnknownMessage && } else if (message.getContent() instanceof UnknownMessage &&
message.getMessageDirection() == Message.MessageDirection.SEND) { message.getMessageDirection() == Message.MessageDirection.SEND) {
return 7; return 9;
} else { } else {
return 0; return 0;
} }

@ -11,6 +11,7 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LifecycleOwner;
import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.request.RequestOptions;
import com.chad.library.adapter.base.BaseDelegateMultiAdapter; import com.chad.library.adapter.base.BaseDelegateMultiAdapter;
@ -62,7 +63,7 @@ public class MsgListAdapter extends BaseQuickAdapter<MyConversation, BaseViewHol
.api(new GetImUserInfoApi(CacheUtil.getToken().getToken(), conversation.getConversation().getTargetId())) .api(new GetImUserInfoApi(CacheUtil.getToken().getToken(), conversation.getConversation().getTargetId()))
.request(new OnHttpListener<ApiResponse<ApiResponse<ImUserInfoBean>>>() { .request(new OnHttpListener<ApiResponse<ApiResponse<ImUserInfoBean>>>() {
@Override @Override
public void onSucceed(ApiResponse<ApiResponse<ImUserInfoBean>> result) { public void onHttpSuccess(ApiResponse<ApiResponse<ImUserInfoBean>> result) {
if(postion==0){ if(postion==0){
LiveDataBus.get().with(Constants.MSG_LIST_SELECT_ITEM).postValue(0); LiveDataBus.get().with(Constants.MSG_LIST_SELECT_ITEM).postValue(0);
} }
@ -76,7 +77,8 @@ public class MsgListAdapter extends BaseQuickAdapter<MyConversation, BaseViewHol
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
ToastUtils.showLong(e.getMessage());
LogUtils.e("用户信息失败", "失败:" + e); LogUtils.e("用户信息失败", "失败:" + e);
} }
}); });

@ -1,6 +1,7 @@
package com.unionmed.unionmedtv.adapter; package com.unionmed.unionmedtv.adapter;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
@ -28,8 +29,9 @@ import java.util.List;
public class RemoteAdapter extends BaseQuickAdapter<RemoteBean, BaseViewHolder> { public class RemoteAdapter extends BaseQuickAdapter<RemoteBean, BaseViewHolder> {
private OnChildClickListener onChildClickListener; private OnChildClickListener onChildClickListener;
public RemoteAdapter(int layoutResId) { public RemoteAdapter(int layoutResId,OnChildClickListener onChildClickListener) {
super(layoutResId); super(layoutResId);
this.onChildClickListener=onChildClickListener;
} }
@ -39,21 +41,29 @@ public class RemoteAdapter extends BaseQuickAdapter<RemoteBean, BaseViewHolder>
ImageView iv_avatar = vh.findView(R.id.iv_avatar); ImageView iv_avatar = vh.findView(R.id.iv_avatar);
remoteBean.setView(remote); remoteBean.setView(remote);
remote.removeAllViews(); remote.removeAllViews();
remoteBean.getSurfaceView().setZOrderOnTop(true);
remote.addView(remoteBean.getSurfaceView()); remote.addView(remoteBean.getSurfaceView());
if (remoteBean.isCameraDisabled()) {
iv_avatar.setVisibility(View.VISIBLE);
remote.setVisibility(View.GONE);
} else {
iv_avatar.setVisibility(View.GONE);
remote.setVisibility(View.VISIBLE);
Glide.with(getContext()) Glide.with(getContext())
.load(remoteBean.getPath()) .load(remoteBean.getPath())
.apply(new RequestOptions() .apply(new RequestOptions()
.placeholder(R.mipmap.rc_default_portrait) .placeholder(R.mipmap.rc_default_portrait)
) )
.into(iv_avatar); .into(iv_avatar);
if (remoteBean.isCameraDisabled()) {
iv_avatar.setVisibility(View.VISIBLE);
remoteBean.getSurfaceView().setZOrderOnTop(false);
remote.setVisibility(View.GONE);
} else {
remoteBean.getSurfaceView().setZOrderOnTop(true);
iv_avatar.setVisibility(View.GONE);
remote.setVisibility(View.VISIBLE);
}
vh.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onChildClickListener.onChildClick(view,vh.getLayoutPosition(),remoteBean);
} }
});
} }
} }

@ -358,7 +358,7 @@ public class ContentFragment extends BaseLazyLoadFragment {
"119.218118", "26.043799", "15", "2")) "119.218118", "26.043799", "15", "2"))
.request(new OnHttpListener<HttpData<ApiResponse<GetNearDoctorApi.DoctorInfo>>>() { .request(new OnHttpListener<HttpData<ApiResponse<GetNearDoctorApi.DoctorInfo>>>() {
@Override @Override
public void onSucceed(HttpData<ApiResponse<GetNearDoctorApi.DoctorInfo>> stringHttpData) { public void onHttpSuccess(HttpData<ApiResponse<GetNearDoctorApi.DoctorInfo>> stringHttpData) {
LogUtils.e("成功:" + stringHttpData); LogUtils.e("成功:" + stringHttpData);
if (stringHttpData.getData().getCode() == 200) { if (stringHttpData.getData().getCode() == 200) {
List<GetNearDoctorApi.DoctorInfo.MemberBean> doctorInfo = stringHttpData.getData().getData().getMember(); List<GetNearDoctorApi.DoctorInfo.MemberBean> doctorInfo = stringHttpData.getData().getData().getMember();
@ -376,13 +376,13 @@ public class ContentFragment extends BaseLazyLoadFragment {
mPbLoading.setVisibility(View.GONE); mPbLoading.setVisibility(View.GONE);
mVerticalGridView.setVisibility(View.VISIBLE); mVerticalGridView.setVisibility(View.VISIBLE);
} }
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
LogUtils.e("失败:" + e); LogUtils.e("失败:" + e);
} }
}); });
break; break;
case "7359d189a049468d9d4e280fd1ec15c5": case "7359d189a049468d9d4e280fd1ec15c5":
@ -391,7 +391,7 @@ public class ContentFragment extends BaseLazyLoadFragment {
"119.218118", "26.043799", "15", "2")) "119.218118", "26.043799", "15", "2"))
.request(new OnHttpListener<HttpData<ApiResponse<GetNearDoctorApi.DoctorInfo>>>() { .request(new OnHttpListener<HttpData<ApiResponse<GetNearDoctorApi.DoctorInfo>>>() {
@Override @Override
public void onSucceed(HttpData<ApiResponse<GetNearDoctorApi.DoctorInfo>> stringHttpData) { public void onHttpSuccess(HttpData<ApiResponse<GetNearDoctorApi.DoctorInfo>> stringHttpData) {
LogUtils.e("成功:" + stringHttpData); LogUtils.e("成功:" + stringHttpData);
if (stringHttpData.getData().getCode() == 200) { if (stringHttpData.getData().getCode() == 200) {
List<GetNearDoctorApi.DoctorInfo.MemberBean> doctorInfo = stringHttpData.getData().getData().getMember(); List<GetNearDoctorApi.DoctorInfo.MemberBean> doctorInfo = stringHttpData.getData().getData().getMember();
@ -402,11 +402,10 @@ public class ContentFragment extends BaseLazyLoadFragment {
mPbLoading.setVisibility(View.GONE); mPbLoading.setVisibility(View.GONE);
mVerticalGridView.setVisibility(View.VISIBLE); mVerticalGridView.setVisibility(View.VISIBLE);
} }
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
LogUtils.e("失败:" + e); LogUtils.e("失败:" + e);
} }
}); });

@ -13,6 +13,7 @@ import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer; import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.blankj.utilcode.util.TimeUtils;
import com.blankj.utilcode.util.ToastUtils; import com.blankj.utilcode.util.ToastUtils;
import com.example.yideng.loaddialoglibrary.LmiotDialog; import com.example.yideng.loaddialoglibrary.LmiotDialog;
import com.unionmed.unionmedtv.R; import com.unionmed.unionmedtv.R;
@ -28,8 +29,12 @@ import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import io.rong.imlib.IRongCoreCallback;
import io.rong.imlib.IRongCoreEnum;
import io.rong.imlib.RongCoreClient;
import io.rong.imlib.RongIMClient; import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.Conversation; import io.rong.imlib.model.Conversation;
import io.rong.imlib.model.HistoryMessageOption;
import io.rong.imlib.model.Message; import io.rong.imlib.model.Message;
import io.rong.message.TextMessage; import io.rong.message.TextMessage;
@ -88,13 +93,6 @@ public class MsgFragment extends Fragment implements View.OnClickListener {
msgItemLinearLayoutManager.setRecyclerView(recyclerView); msgItemLinearLayoutManager.setRecyclerView(recyclerView);
recyclerView.setLayoutManager(msgItemLinearLayoutManager); recyclerView.setLayoutManager(msgItemLinearLayoutManager);
recyclerView.addItemDecoration(new LinearSpacingItemDecoration(getActivity(), 14)); recyclerView.addItemDecoration(new LinearSpacingItemDecoration(getActivity(), 14));
// list.clear();
// list.add("1");
// list.add("2");
// list.add("3");
// list.add("4");
// list.add("5");
// list.add("6");
msgItemAdapter = new MsgItemAdapter(list, new OnChildClickListener() { msgItemAdapter = new MsgItemAdapter(list, new OnChildClickListener() {
@Override @Override
@ -158,28 +156,50 @@ public class MsgFragment extends Fragment implements View.OnClickListener {
public void getRemoteHistory() { public void getRemoteHistory() {
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE; Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
long dateTime = 0; long dateTime = System.currentTimeMillis();
int count = 20; int count = 50;
RongIMClient.getInstance().getHistoryMessages(conversationType, targetId, -1, count, new RongIMClient.ResultCallback<List<Message>>() { HistoryMessageOption historyMessageOption = new HistoryMessageOption();
historyMessageOption.setDataTime(dateTime);//2022-09-07 17:25:12:112
historyMessageOption.setOrder(HistoryMessageOption.PullOrder.DESCEND);
historyMessageOption.setCount(count);
RongCoreClient.getInstance().getMessages(conversationType, targetId, historyMessageOption, new IRongCoreCallback.IGetMessageCallback() {
@Override @Override
public void onSuccess(List<Message> messages) { public void onComplete(List<Message> messageList, IRongCoreEnum.CoreErrorCode errorCode) {
for (int i=0;i<messages.size();i++){
Log.i("TAG", "onSuccess: ==============="+messages.get(i).getContent());
}
LmiotDialog.hidden(); LmiotDialog.hidden();
Collections.reverse(messages); if (IRongCoreEnum.CoreErrorCode.SUCCESS.code == errorCode.code) {
list.addAll(messages); for (int i=0;i<messageList.size();i++){
Log.i("TAG", "onComplete: ================"+messageList.get(i).getContent());
}
Collections.reverse(messageList);
list.addAll(messageList);
msgItemAdapter.notifyDataSetChanged(); msgItemAdapter.notifyDataSetChanged();
recyclerView.requestFocus(); recyclerView.requestFocus();
LiveDataBus.get().with(Constants.MSG_SELECT_ITEM).postValue(0); LiveDataBus.get().with(Constants.MSG_SELECT_ITEM).postValue(0);
}else {
ToastUtils.showLong(errorCode.getMessage());
} }
@Override
public void onError(RongIMClient.ErrorCode e) {
LmiotDialog.hidden();
} }
}); });
// RongIMClient.getInstance().getHistoryMessages(conversationType, targetId, -1, count, new RongIMClient.ResultCallback<List<Message>>() {
//
// @Override
// public void onSuccess(List<Message> messages) {
// for (int i=0;i<messages.size();i++){
// Log.i("TAG", "onSuccess: ==============="+messages.get(i).getContent());
// }
// LmiotDialog.hidden();
// Collections.reverse(messages);
// list.addAll(messages);
// msgItemAdapter.notifyDataSetChanged();
// recyclerView.requestFocus();
// LiveDataBus.get().with(Constants.MSG_SELECT_ITEM).postValue(0);
// }
//
// @Override
// public void onError(RongIMClient.ErrorCode e) {
// LmiotDialog.hidden();
// }
// });
} }
@Override @Override

@ -15,6 +15,7 @@ import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.blankj.utilcode.util.ToastUtils;
import com.hjq.http.EasyConfig; import com.hjq.http.EasyConfig;
import com.hjq.http.EasyHttp; import com.hjq.http.EasyHttp;
import com.hjq.http.listener.OnHttpListener; import com.hjq.http.listener.OnHttpListener;
@ -92,7 +93,7 @@ public class MyDoctorFragment extends Fragment implements View.OnClickListener {
.api(new GetContractedDoctorApi(CacheUtil.getPkey(), CacheUtil.getUserToken())) .api(new GetContractedDoctorApi(CacheUtil.getPkey(), CacheUtil.getUserToken()))
.request(new OnHttpListener<HttpData<ApiResponse<GetContractedDoctorApi.DoctorInfo>>>() { .request(new OnHttpListener<HttpData<ApiResponse<GetContractedDoctorApi.DoctorInfo>>>() {
@Override @Override
public void onSucceed(HttpData<ApiResponse<GetContractedDoctorApi.DoctorInfo>> stringHttpData) { public void onHttpSuccess(HttpData<ApiResponse<GetContractedDoctorApi.DoctorInfo>> stringHttpData) {
LogUtils.e("成功:" + stringHttpData); LogUtils.e("成功:" + stringHttpData);
if (stringHttpData.isRequestSucceed()) { if (stringHttpData.isRequestSucceed()) {
if(stringHttpData.getData().isInnerRequestSucceed()){ if(stringHttpData.getData().isInnerRequestSucceed()){
@ -111,11 +112,11 @@ public class MyDoctorFragment extends Fragment implements View.OnClickListener {
contractedDoctorAdapter.notifyDataSetChanged(); contractedDoctorAdapter.notifyDataSetChanged();
} }
} }
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
ToastUtils.showLong(e.getMessage());
LogUtils.e("失败:" + e); LogUtils.e("失败:" + e);
} }
}); });

@ -142,7 +142,7 @@ public class LoginActivity extends FragmentActivity {
new LocationApi("bd09ll") new LocationApi("bd09ll")
).request(new OnHttpListener<HttpData<LocationApi.LocatinBean>>() { ).request(new OnHttpListener<HttpData<LocationApi.LocatinBean>>() {
@Override @Override
public void onSucceed(HttpData<LocationApi.LocatinBean> apiResponseHttpData) { public void onHttpSuccess(HttpData<LocationApi.LocatinBean> apiResponseHttpData) {
if (apiResponseHttpData.isRequestSucceed()) { if (apiResponseHttpData.isRequestSucceed()) {
LocationApi.LocatinBean.ContentBean location = apiResponseHttpData.getData().getContent(); LocationApi.LocatinBean.ContentBean location = apiResponseHttpData.getData().getContent();
CacheUtil.saveLongitude(Double.valueOf(location.getPoint().getX())); CacheUtil.saveLongitude(Double.valueOf(location.getPoint().getX()));
@ -151,7 +151,7 @@ public class LoginActivity extends FragmentActivity {
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
} }
}); });

@ -133,7 +133,7 @@ public class LoginAccountFragment extends Fragment implements View.OnClickListen
.request(new OnHttpListener<HttpData<ApiResponse<TokenBean>>>() { .request(new OnHttpListener<HttpData<ApiResponse<TokenBean>>>() {
@Override @Override
public void onSucceed(HttpData<ApiResponse<TokenBean>> apiResponseHttpData) { public void onHttpSuccess(HttpData<ApiResponse<TokenBean>> apiResponseHttpData) {
LogUtils.e("成功:" + apiResponseHttpData.getCode()); LogUtils.e("成功:" + apiResponseHttpData.getCode());
if (apiResponseHttpData.isRequestSucceed()) { if (apiResponseHttpData.isRequestSucceed()) {
if (apiResponseHttpData.getData().getCode() == 200) { if (apiResponseHttpData.getData().getCode() == 200) {
@ -179,9 +179,8 @@ public class LoginAccountFragment extends Fragment implements View.OnClickListen
} }
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
LmiotDialog.hidden(); LmiotDialog.hidden();
ToastUtils.showLong("登录失败"); ToastUtils.showLong("登录失败");
LogUtils.e("失败:" + e); LogUtils.e("失败:" + e);
@ -195,7 +194,7 @@ public class LoginAccountFragment extends Fragment implements View.OnClickListen
.api(new AreaLoginApi(identity_id, mobile, name, pkey)) .api(new AreaLoginApi(identity_id, mobile, name, pkey))
.request(new OnHttpListener<HttpData<ApiResponse<AreaLoginApi>>>() { .request(new OnHttpListener<HttpData<ApiResponse<AreaLoginApi>>>() {
@Override @Override
public void onSucceed(HttpData<ApiResponse<AreaLoginApi>> personInfoBeanHttpData) { public void onHttpSuccess(HttpData<ApiResponse<AreaLoginApi>> personInfoBeanHttpData) {
LmiotDialog.hidden(); LmiotDialog.hidden();
if (personInfoBeanHttpData.isRequestSucceed()) { if (personInfoBeanHttpData.isRequestSucceed()) {
if (personInfoBeanHttpData.getData().getCode() == 200) { if (personInfoBeanHttpData.getData().getCode() == 200) {
@ -213,7 +212,7 @@ public class LoginAccountFragment extends Fragment implements View.OnClickListen
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
LmiotDialog.hidden(); LmiotDialog.hidden();
ToastUtils.showLong("登录失败"); ToastUtils.showLong("登录失败");
LogUtils.e("失败:" + e); LogUtils.e("失败:" + e);

@ -158,7 +158,7 @@ public class LoginPhoneFragment extends Fragment implements View.OnClickListener
.api(new QRCodeApi("Login", "")) .api(new QRCodeApi("Login", ""))
.request(new OnHttpListener<HttpData<ApiResponse<QRCodeBean>>>() { .request(new OnHttpListener<HttpData<ApiResponse<QRCodeBean>>>() {
@Override @Override
public void onSucceed(HttpData<ApiResponse<QRCodeBean>> apiResponseHttpData) { public void onHttpSuccess(HttpData<ApiResponse<QRCodeBean>> apiResponseHttpData) {
if (apiResponseHttpData.isRequestSucceed()) { if (apiResponseHttpData.isRequestSucceed()) {
if (apiResponseHttpData.getData().isInnerRequestSucceed()) { if (apiResponseHttpData.getData().isInnerRequestSucceed()) {
lin_code.setVisibility(View.GONE); lin_code.setVisibility(View.GONE);
@ -181,7 +181,7 @@ public class LoginPhoneFragment extends Fragment implements View.OnClickListener
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
lin_code.setVisibility(View.VISIBLE); lin_code.setVisibility(View.VISIBLE);
progress.setVisibility(View.GONE); progress.setVisibility(View.GONE);
tv_code_msg.setText("生成二维码失败,点击刷新"); tv_code_msg.setText("生成二维码失败,点击刷新");
@ -205,7 +205,7 @@ public class LoginPhoneFragment extends Fragment implements View.OnClickListener
.request(new OnHttpListener<HttpData<ApiResponse<ScanBean>>>() { .request(new OnHttpListener<HttpData<ApiResponse<ScanBean>>>() {
@Override @Override
public void onSucceed(HttpData<ApiResponse<ScanBean>> apiResponseHttpData) { public void onHttpSuccess(HttpData<ApiResponse<ScanBean>> apiResponseHttpData) {
if (apiResponseHttpData.isRequestSucceed()) { if (apiResponseHttpData.isRequestSucceed()) {
if (apiResponseHttpData.getData().isInnerRequestSucceed()) { if (apiResponseHttpData.getData().isInnerRequestSucceed()) {
TokenBean tokenBean = new Gson() TokenBean tokenBean = new Gson()
@ -265,7 +265,7 @@ public class LoginPhoneFragment extends Fragment implements View.OnClickListener
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
} }
}); });
@ -288,7 +288,7 @@ public class LoginPhoneFragment extends Fragment implements View.OnClickListener
.request(new OnHttpListener<HttpData<ApiResponse<Object>>>() { .request(new OnHttpListener<HttpData<ApiResponse<Object>>>() {
@Override @Override
public void onSucceed(HttpData<ApiResponse<Object>> apiResponseHttpData) { public void onHttpSuccess(HttpData<ApiResponse<Object>> apiResponseHttpData) {
LogUtils.e("成功:" + apiResponseHttpData); LogUtils.e("成功:" + apiResponseHttpData);
ToastUtils.showLong("获取验证码成功"); ToastUtils.showLong("获取验证码成功");
if (apiResponseHttpData.isRequestSucceed()) { if (apiResponseHttpData.isRequestSucceed()) {
@ -311,7 +311,7 @@ public class LoginPhoneFragment extends Fragment implements View.OnClickListener
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
ToastUtils.showLong("获取验证码失败"); ToastUtils.showLong("获取验证码失败");
LogUtils.e("失败:" + e); LogUtils.e("失败:" + e);
} }
@ -326,7 +326,7 @@ public class LoginPhoneFragment extends Fragment implements View.OnClickListener
.request(new OnHttpListener<HttpData<ApiResponse<TokenBean>>>() { .request(new OnHttpListener<HttpData<ApiResponse<TokenBean>>>() {
@Override @Override
public void onSucceed(HttpData<ApiResponse<TokenBean>> apiResponseHttpData) { public void onHttpSuccess(HttpData<ApiResponse<TokenBean>> apiResponseHttpData) {
LogUtils.e("成功:" + apiResponseHttpData); LogUtils.e("成功:" + apiResponseHttpData);
if (apiResponseHttpData.isRequestSucceed()) { if (apiResponseHttpData.isRequestSucceed()) {
if (apiResponseHttpData.getData().isInnerRequestSucceed()) { if (apiResponseHttpData.getData().isInnerRequestSucceed()) {
@ -372,7 +372,7 @@ public class LoginPhoneFragment extends Fragment implements View.OnClickListener
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
LmiotDialog.hidden(); LmiotDialog.hidden();
ToastUtils.showLong("登录失败"); ToastUtils.showLong("登录失败");
LogUtils.e("失败:" + e); LogUtils.e("失败:" + e);
@ -387,7 +387,7 @@ public class LoginPhoneFragment extends Fragment implements View.OnClickListener
.api(new AreaLoginApi(identity_id, mobile, name, pkey)) .api(new AreaLoginApi(identity_id, mobile, name, pkey))
.request(new OnHttpListener<HttpData<ApiResponse<AreaLoginApi>>>() { .request(new OnHttpListener<HttpData<ApiResponse<AreaLoginApi>>>() {
@Override @Override
public void onSucceed(HttpData<ApiResponse<AreaLoginApi>> personInfoBeanHttpData) { public void onHttpSuccess(HttpData<ApiResponse<AreaLoginApi>> personInfoBeanHttpData) {
LmiotDialog.hidden(); LmiotDialog.hidden();
if (personInfoBeanHttpData.isRequestSucceed()) { if (personInfoBeanHttpData.isRequestSucceed()) {
if (personInfoBeanHttpData.getData().isInnerRequestSucceed()) { if (personInfoBeanHttpData.getData().isInnerRequestSucceed()) {
@ -405,8 +405,8 @@ public class LoginPhoneFragment extends Fragment implements View.OnClickListener
} }
@Override @Override
public void onFail(Exception e) { public void onHttpFail(Exception e) {
LmiotDialog.hidden();
} }
}); });
} }

@ -1,12 +1,21 @@
package com.unionmed.unionmedtv.network; package com.unionmed.unionmedtv.network;
import android.app.Application; import android.app.Application;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.BitmapFactory; import android.graphics.BitmapFactory;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.blankj.utilcode.util.ToastUtils;
import com.hjq.http.exception.CancelException;
import com.hjq.http.exception.HttpException;
import com.hjq.http.exception.NetworkException;
import com.hjq.http.exception.ServerException;
import com.hjq.http.exception.TimeoutException;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import com.unionmed.unionmedtv.R; import com.unionmed.unionmedtv.R;
import com.google.gson.JsonSyntaxException; import com.google.gson.JsonSyntaxException;
@ -24,10 +33,14 @@ import com.unionmed.unionmedtv.login.activity.LoginActivity;
import com.unionmed.unionmedtv.utils.CacheUtil; import com.unionmed.unionmedtv.utils.CacheUtil;
import com.unionmed.unionmedtv.utils.Constants; import com.unionmed.unionmedtv.utils.Constants;
import org.jetbrains.annotations.NotNull;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.lang.reflect.GenericArrayType; import java.lang.reflect.GenericArrayType;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import okhttp3.Headers; import okhttp3.Headers;
import okhttp3.Response; import okhttp3.Response;
@ -40,13 +53,10 @@ public class RequestHandler implements IRequestHandler {
public RequestHandler(Application application) { public RequestHandler(Application application) {
mApplication = application; mApplication = application;
} }
@NonNull @NonNull
@NotNull
@Override @Override
public Object requestSucceed(@NonNull HttpRequest<?> httpRequest, public Object requestSuccess(@NonNull @NotNull HttpRequest<?> httpRequest, @NonNull @NotNull Response response, @NonNull @NotNull Type type) throws Exception {
@NonNull Response response, @NonNull Type type) throws Exception {
if (Response.class.equals(type)) { if (Response.class.equals(type)) {
return response; return response;
} }
@ -135,12 +145,32 @@ public class RequestHandler implements IRequestHandler {
// throw new ResultException(model.getMessage(), model); // throw new ResultException(model.getMessage(), model);
} }
return result; return result;
} }
@NonNull @NonNull
@Override @Override
public Exception requestFail(@NonNull HttpRequest<?> httpRequest, @NonNull Exception e) { public Exception requestFail(@NonNull HttpRequest<?> httpRequest, @NonNull Exception e) {
return null; if (e instanceof SocketTimeoutException) {
return new TimeoutException(mApplication.getString(R.string.http_server_out_time), e);
}
if (e instanceof UnknownHostException) {
NetworkInfo info = ((ConnectivityManager) mApplication.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
// 判断网络是否连接
if (info != null && info.isConnected()) {
// 有连接就是服务器的问题
return new ServerException(mApplication.getString(R.string.http_server_error), e);
}
// 没有连接就是网络异常
return new NetworkException(mApplication.getString(R.string.http_network_error), e);
}
if (e instanceof IOException) {
// 出现该异常的两种情况
// 1. 调用 EasyHttp.cancel
// 2. 网络请求被中断
return new CancelException(mApplication.getString(R.string.http_request_cancel), e);
}
return new HttpException(e.getMessage(), e);
} }
} }

@ -11,8 +11,7 @@
android:id="@+id/local" android:id="@+id/local"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
tools:layout_editor_absoluteX="0dp" />
tools:layout_editor_absoluteY="0dp" />
<ImageView <ImageView
android:id="@+id/iv_icon" android:id="@+id/iv_icon"
android:layout_width="120dp" android:layout_width="120dp"
@ -196,6 +195,7 @@
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
android:focusable="false" android:focusable="false"
android:focusableInTouchMode="false" android:focusableInTouchMode="false"
android:layout_width="200dp" android:layout_marginRight="20dp"
android:layout_width="wrap_content"
android:layout_height="match_parent"/> android:layout_height="match_parent"/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

@ -3,23 +3,32 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/constraintlayout" android:id="@+id/constraintlayout"
android:layout_width="wrap_content" android:layout_width="220dp"
android:layout_height="wrap_content" android:layout_height="220dp"
android:layout_margin="10dp"
android:padding="20dp"
style="@style/FocusStyle"
android:background="@drawable/edit_phone_select"
android:descendantFocusability="afterDescendants"
tools:ignore="MissingPrefix" tools:ignore="MissingPrefix"
> >
<ImageView <ImageView
android:id="@+id/iv_avatar" android:id="@+id/iv_avatar"
android:visibility="gone" android:visibility="gone"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
android:layout_width="200dp" android:layout_width="200dp"
android:layout_height="200dp" android:layout_height="200dp"
android:layout_margin="10dp" /> />
<FrameLayout <FrameLayout
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:id="@+id/remote" android:id="@+id/remote"
android:layout_width="200dp" android:layout_width="200dp"
android:layout_height="200dp" android:layout_height="200dp"
android:layout_margin="10dp" /> />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
Loading…
Cancel
Save