Jelajahi Sumber

修改部分直播问题

Pq 1 tahun lalu
induk
melakukan
25ef5b7fa9

+ 2 - 0
BaseLibrary/src/main/java/com/cooleshow/base/constanst/Constants.java

@@ -12,6 +12,8 @@ public class Constants {
     public static final String COLEXIUAPPA = "COLEXIUAPPA";//H5 js接口注册interfaceName
     public static final int DEFAULT_DATA_SIZE = 10;//加载更多默认一页请求数据
     public static final String WHITE_BOARD_ORIENTATION = "WHITE_BOARD_ORIENTATION";
+    public static final String TARGET_ID_KEY = "targetId";
+    public static final String CONVERSATION_TYPE_KEY = "conversation";
     public static String HEADSET_PLUE_TAG = "";
     public static String COMMON_EXTRA_KEY = "memo";
 

+ 1 - 0
chatModule/src/main/AndroidManifest.xml

@@ -47,6 +47,7 @@
         <activity
             android:name=".ui.SelectContactActivity"
             android:configChanges="orientation|screenSize|keyboardHidden|fontScale|smallestScreenSize|screenLayout"
+            android:windowSoftInputMode="adjustPan"
             android:screenOrientation="portrait" />
 
         <activity

+ 10 - 7
chatModule/src/main/java/com/cooleshow/chatmodule/ui/ContactPersonListFragment.java

@@ -1,6 +1,8 @@
 package com.cooleshow.chatmodule.ui;
 
 
+import android.app.Activity;
+import android.content.Intent;
 import android.graphics.Color;
 import android.os.Bundle;
 import android.view.View;
@@ -8,6 +10,7 @@ import android.widget.PopupWindow;
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.listener.OnItemClickListener;
+import com.cooleshow.base.constanst.Constants;
 import com.cooleshow.base.constanst.LoginStatusConstants;
 import com.cooleshow.base.event.LoginStatusEvent;
 import com.cooleshow.base.ui.fragment.BaseMVPFragment;
@@ -95,13 +98,13 @@ public class ContactPersonListFragment extends BaseMVPFragment<TcFragmentContact
                 if (isSelectContact) {
                     ContactListBean item = (ContactListBean) mListAdapter.getItem(position);
                     //选择联系人模式
-//                    if (getActivity() != null) {
-//                        Intent intent = new Intent();
-//                        intent.putExtra(Constants.TARGET_ID_KEY, item.getImFriendId());
-//                        intent.putExtra(Constants.CONVERSATION_TYPE_KEY, Conversation.ConversationType.PRIVATE.getValue());
-//                        getActivity().setResult(Activity.RESULT_OK, intent);
-//                        getActivity().finish();
-//                    }
+                    if (getActivity() != null) {
+                        Intent intent = new Intent();
+                        intent.putExtra(Constants.TARGET_ID_KEY, item.getImFriendId());
+                        intent.putExtra(Constants.CONVERSATION_TYPE_KEY, 1);
+                        getActivity().setResult(Activity.RESULT_OK, intent);
+                        getActivity().finish();
+                    }
                     return;
                 }
                 ContactListBean item = (ContactListBean) adapter.getItem(position);

+ 8 - 5
chatModule/src/main/java/com/cooleshow/chatmodule/ui/ContactRoomListFragment.java

@@ -1,5 +1,7 @@
 package com.cooleshow.chatmodule.ui;
 
+import android.app.Activity;
+import android.content.Intent;
 import android.graphics.Color;
 import android.util.Log;
 import android.view.View;
@@ -18,6 +20,7 @@ import com.cooleshow.chatmodule.constants.IMConstants;
 import com.cooleshow.chatmodule.contract.ContactRoomListFragmentContract;
 import com.cooleshow.chatmodule.databinding.TcFragmentContactRoomListBinding;
 import com.cooleshow.chatmodule.presenter.ContactRoomListPresenter;
+import com.cooleshow.chatmodule.utils.helper.ChatGroupHelper;
 import com.cooleshow.chatmodule.utils.helper.ChatHelper;
 import com.cooleshow.chatmodule.widget.CustomIndexBarDataHelperImpl;
 import com.mcxtzhang.indexlib.suspension.SuspensionDecoration;
@@ -82,11 +85,11 @@ public class ContactRoomListFragment extends BaseMVPFragment<TcFragmentContactRo
                     ContactRoomListBean item = (ContactRoomListBean) adapter.getItem(position);
                     //选择联系人模式
                     if (getActivity() != null) {
-//                        Intent intent = new Intent();
-//                        intent.putExtra(Constants.TARGET_ID_KEY, item.getId());
-//                        intent.putExtra(Constants.CONVERSATION_TYPE_KEY, Conversation.ConversationType.GROUP.getValue());
-//                        getActivity().setResult(Activity.RESULT_OK, intent);
-//                        getActivity().finish();
+                        Intent intent = new Intent();
+                        intent.putExtra(Constants.TARGET_ID_KEY, item.getId());
+                        intent.putExtra(Constants.CONVERSATION_TYPE_KEY, ChatGroupHelper.GROUP_TYPE_VALUE);
+                        getActivity().setResult(Activity.RESULT_OK, intent);
+                        getActivity().finish();
                     }
                     return;
                 }

+ 2 - 1
chatModule/src/main/java/com/cooleshow/chatmodule/utils/helper/ChatGroupHelper.java

@@ -22,6 +22,7 @@ public class ChatGroupHelper {
     public static final String GROUP_MEMBER_TAG = "member";
     public static final String ROLE_TYPE_STU = "STUDENT";
     public static final String ROLE_TYPE_TEACHER = "TEACHER";
+    public static final int GROUP_TYPE_VALUE = 3;
 
 
     public static int getChatGroupAvatar(String groupType) {
@@ -142,6 +143,6 @@ public class ChatGroupHelper {
     }
 
     public static boolean isGroupConversation(int value) {
-        return value == 3;//h5那边过来的conversation类型值等于3为群组
+        return value == GROUP_TYPE_VALUE;//h5那边过来的conversation类型值等于3为群组
     }
 }

+ 0 - 2
chatModule/src/main/res/layout/tc_chat_share_live.xml

@@ -8,9 +8,7 @@
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginLeft="14dp"
         android:layout_marginTop="12dp"
-        android:layout_marginRight="14dp"
         android:background="@drawable/bg_white_5dp">
 
         <de.hdodenhof.circleimageview.CircleImageView

+ 1 - 0
chatModule/src/main/res/layout/tc_fragment_contact_list_tab.xml

@@ -70,6 +70,7 @@
 
 
     <androidx.viewpager.widget.ViewPager
+        android:layout_marginTop="12dp"
         android:id="@+id/viewpager"
         android:layout_width="match_parent"
         android:layout_height="0dp"

+ 36 - 4
tclive/src/main/java/com/daya/tclive/ui/TCTeacherLiveRoomActivity.java

@@ -2,6 +2,7 @@ package com.daya.tclive.ui;
 
 import android.Manifest;
 import android.content.DialogInterface;
+import android.content.Intent;
 import android.graphics.Canvas;
 import android.os.Bundle;
 import android.os.Handler;
@@ -18,11 +19,13 @@ import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
+import com.alibaba.android.arouter.launcher.ARouter;
 import com.bumptech.glide.Glide;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.base.utils.AppUtils;
 import com.cooleshow.base.utils.GsonUtils;
+import com.cooleshow.base.utils.LOG;
 import com.cooleshow.base.utils.PermissionUtils;
 import com.cooleshow.base.utils.SoftKeyboardUtil;
 import com.cooleshow.base.utils.TimeUtils;
@@ -32,6 +35,8 @@ import com.cooleshow.base.utils.UiUtils;
 import com.cooleshow.base.widgets.InputBar;
 import com.cooleshow.base.widgets.dialog.CommonConfirmDialog;
 import com.cooleshow.base.widgets.dialog.InputBarDialog;
+import com.cooleshow.chatmodule.constants.TCChatRouterPath;
+import com.cooleshow.chatmodule.utils.helper.ChatHelper;
 import com.cooleshow.usercenter.helper.UserHelper;
 import com.daya.tclive.R;
 import com.daya.tclive.adapter.TTLiveRoomMessageAdapter;
@@ -82,6 +87,7 @@ import java.util.List;
 import java.util.Map;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.constraintlayout.widget.ConstraintLayout;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
@@ -125,6 +131,8 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
     public static final int SEND_COUNT_TIME_MSG = 1003;//计时消息
     public static final int SEND_EXIT_COUNT_TIME_MSG = 1004;//退出直播课消息
 
+    public static final int SHARE_LIVE_REQUEST_CODE = 1002;//分享直播
+
 
     public static final String TAG = "liveRoom";
     public static final String ROOMID_KEY = "roomid_key";
@@ -150,7 +158,7 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
 
     private long normalTotalTime = 0;//直播课剩余时间
     private long serviceTimeStamp = -1;//服务器时间节点
-    private int currentCountType = LiveCourseCountTimeHelper.COUNT_TYPE_COURSE;
+    private int currentCountType = -1;
     private long autoCloseNetworkRoomTime = 0;//直播课到时间强制退出时间
     private String subjectId;
     boolean isNeedCountTime = false;
@@ -536,6 +544,7 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
         }
         this.mRoomInfoBean = roomInfoBean;
         this.isLiveCourse = TextUtils.equals(mRoomInfoBean.type, "live");
+        iconFinishLive.setImageResource(isLiveCourse ? R.drawable.icon_live_course_pause : R.drawable.icon_live_room_close_menu);
         syncAddLikeNum();
         if (mMessageAdapter != null) {
             mMessageAdapter.setRoomAuthorId(roomInfoBean.speakerId);
@@ -560,6 +569,7 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
                     presenter.connectIM(mRoomId, mUserId, roomInfoBean.getUserSig());
                 }
             }
+            presenter.getRoomCountTimeInfo(mRoomId);
         }
     }
 
@@ -576,6 +586,7 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
         viewBinding.viewMainLayout.iconFinishLive.setOnClickListener(this);
         viewBinding.viewMainLayout.mainIvReverseCamera.setOnClickListener(this);
         viewBinding.viewMainLayout.ivMicMode.setOnClickListener(this);
+        viewBinding.viewCreateOptions.ivLiveShare.setOnClickListener(this);
 
     }
 
@@ -601,7 +612,6 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
                 //点开启直播之前再次验证一下房间信息
                 currentLiveMode = TTLiveConfig.LIVE_MODE_LIVE_START;
                 presenter.getRoomInfo(mRoomId);
-                presenter.getRoomCountTimeInfo(mRoomId);
             }
         }
 
@@ -632,6 +642,13 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
             updateMicMode();
             return;
         }
+
+        if (id == R.id.iv_live_share) {
+            //分享
+            ARouter.getInstance().build(TCChatRouterPath.CHAT_SELECT_CONTACT)
+                    .navigation(this, SHARE_LIVE_REQUEST_CODE);
+            return;
+        }
     }
 
     @Override
@@ -1515,7 +1532,7 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
         if (data != null && data.getCourseScheduleTimes() != null && data.getCourseScheduleTimes().size() > 0) {
             isNeedCountTime = true;
             subjectId = data.getSubjectId();
-            iconFinishLive.setImageResource(R.drawable.icon_live_course_pause);
+
             LiveCourseCountTimeHelper.getInstance().setTimeInfoList(data.getCourseScheduleTimes());
             long finishLimitTime = data.getAutoCloseNetworkRoomTime() * 60L * 1000;
             LiveCourseCountTimeHelper.getInstance().setAutoCloseNetworkRoomTime(finishLimitTime);
@@ -1523,7 +1540,6 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
             startCountTime();
         } else {
             isNeedCountTime = false;
-            iconFinishLive.setImageResource(R.drawable.icon_live_room_close_menu);
             llCountTimeTip.setVisibility(View.GONE);
         }
     }
@@ -1673,6 +1689,22 @@ public class TCTeacherLiveRoomActivity extends BaseMVPActivity<ActivityTcTeacher
     }
 
     @Override
+    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (resultCode == RESULT_OK) {
+            if (requestCode == SHARE_LIVE_REQUEST_CODE && data != null) {
+                String targetId = data.getStringExtra("targetId");
+                int conversationValue = data.getIntExtra("conversation", -1);
+                if (mRoomInfoBean != null && !TextUtils.isEmpty(targetId) && conversationValue != -1) {
+                    ChatHelper.getInstance().sendShareLiveMessage(targetId, conversationValue, mRoomInfoBean.roomUid
+                            , mRoomInfoBean.speakerPic,
+                            mRoomInfoBean.speakerName, mRoomInfoBean.liveRemark);
+                }
+            }
+        }
+    }
+
+    @Override
     public void onDestroy() {
         if (presenter != null) {
             presenter.notifyLeaveRoomAction();

+ 1 - 1
tclive/src/main/java/com/daya/tclive/widget/TTLiveRoomMicIconView.java

@@ -53,7 +53,7 @@ public class TTLiveRoomMicIconView extends LinearLayout {
         setOrientation(HORIZONTAL);
         setGravity(Gravity.CENTER_VERTICAL);
         mMicUserInfos = new ArrayList<>();
-        mCurrentUserId = UserHelper.getUserId();
+        mCurrentUserId = UserHelper.getImUserId();
         mCurrentUserName = UserHelper.getUserName();
         mCurrentUserAvatar = UserHelper.getUserAvatar();
     }

+ 10 - 5
tclive/src/main/res/layout/view_start_tc_live_layout.xml

@@ -44,12 +44,14 @@
         android:layout_height="wrap_content"/>
 
     <androidx.constraintlayout.widget.ConstraintLayout
-        android:visibility="gone"
+        android:visibility="visible"
         android:layout_width="76dp"
         android:layout_height="76dp"
-        android:layout_gravity="right"
         android:layout_marginTop="47dp"
-        android:layout_marginEnd="13dp"
+        android:layout_gravity="bottom|center_horizontal"
+        android:layout_marginStart="62dp"
+        android:layout_marginEnd="62dp"
+        android:layout_marginBottom="207dp"
         android:background="@drawable/tc_shape_open_live_options"
         android:orientation="horizontal">
 
@@ -99,15 +101,18 @@
 <!--            app:layout_constraintTop_toBottomOf="@+id/iv_live_beauty" />-->
 
         <ImageView
-            android:visibility="gone"
+            android:layout_marginTop="10dp"
+            android:visibility="visible"
             android:id="@+id/iv_live_share"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:src="@drawable/icon_live_share"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toTopOf="parent"
             app:layout_constraintRight_toRightOf="parent" />
 
         <TextView
-            android:visibility="gone"
+            android:visibility="visible"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:includeFontPadding="false"