瀏覽代碼

添加选择联系人相关跳转和页面

Pq 1 年之前
父節點
當前提交
1dfcd24ed4
共有 23 個文件被更改,包括 337 次插入9 次删除
  1. 5 0
      chatModule/src/main/AndroidManifest.xml
  2. 58 0
      chatModule/src/main/java/com/cooleshow/chatmodule/adapter/ContactListTabPagerAdapter.java
  3. 124 0
      chatModule/src/main/java/com/cooleshow/chatmodule/ui/ContactListTabFragment.java
  4. 41 0
      chatModule/src/main/java/com/cooleshow/chatmodule/ui/SelectContactActivity.java
  5. 二進制
      chatModule/src/main/res/drawable-xhdpi/icon_contact_room_normal.png
  6. 二進制
      chatModule/src/main/res/drawable-xhdpi/icon_contact_room_select.png
  7. 二進制
      chatModule/src/main/res/drawable-xhdpi/icon_contact_single_normal.png
  8. 二進制
      chatModule/src/main/res/drawable-xhdpi/icon_contact_single_select.png
  9. 二進制
      chatModule/src/main/res/drawable-xxhdpi/icon_contact_room_normal.png
  10. 二進制
      chatModule/src/main/res/drawable-xxhdpi/icon_contact_room_select.png
  11. 二進制
      chatModule/src/main/res/drawable-xxhdpi/icon_contact_single_normal.png
  12. 二進制
      chatModule/src/main/res/drawable-xxhdpi/icon_contact_single_select.png
  13. 21 0
      chatModule/src/main/res/layout/tc_activity_select_contact_layout.xml
  14. 79 0
      chatModule/src/main/res/layout/tc_fragment_contact_list_tab.xml
  15. 1 1
      student/src/main/java/com/cooleshow/student/ui/live/LiveRoomActivity.java
  16. 1 1
      student/src/main/java/com/cooleshow/student/ui/web/AccompanyFragment.java
  17. 1 1
      student/src/main/java/com/cooleshow/student/ui/web/HtmlActivity.java
  18. 1 1
      student/src/main/java/com/cooleshow/student/ui/web/HtmlHorizontalScreenActivity.java
  19. 1 1
      teacher/src/main/java/com/cooleshow/teacher/ui/live/TeacherLiveRoomActivity.java
  20. 1 1
      teacher/src/main/java/com/cooleshow/teacher/ui/score/MineScoreActivity.java
  21. 1 1
      teacher/src/main/java/com/cooleshow/teacher/ui/web/AccompanyFragment.java
  22. 1 1
      teacher/src/main/java/com/cooleshow/teacher/ui/web/HtmlActivity.java
  23. 1 1
      teacher/src/main/java/com/cooleshow/teacher/ui/web/HtmlHorizontalScreenActivity.java

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

@@ -44,6 +44,11 @@
             android:screenOrientation="portrait"
             android:windowSoftInputMode="adjustPan" />
 
+        <activity
+            android:name=".ui.SelectContactActivity"
+            android:configChanges="orientation|screenSize|keyboardHidden"
+            android:screenOrientation="portrait" />
+
         <provider
             android:name=".widget.CustomChatGroupTopRightIconExtension"
             android:authorities="${applicationId}.TUIGroup.ClassicUI.Init"

+ 58 - 0
chatModule/src/main/java/com/cooleshow/chatmodule/adapter/ContactListTabPagerAdapter.java

@@ -0,0 +1,58 @@
+package com.cooleshow.chatmodule.adapter;
+
+import android.view.ViewGroup;
+
+import java.util.List;
+
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentPagerAdapter;
+
+/**
+ * 创建日期:2022/6/10 10:39
+ *
+ * @author Ryan
+ * 类说明:
+ */
+public class ContactListTabPagerAdapter extends FragmentPagerAdapter {
+
+    private List<String> titles;
+    public FragmentManager fm;
+    private List<Fragment> fragments;
+
+    public ContactListTabPagerAdapter(FragmentManager fm, List<Fragment> fragments, List<String> titles) {
+        super(fm);
+        this.fm=fm;
+        this.titles = titles;
+        this.fragments = fragments;
+    }
+
+    @Override
+    public Fragment getItem(int position) {
+        return fragments != null && fragments.size() > position ? fragments.get(position) : null;
+    }
+
+    @Override
+    public int getCount() {
+        return fragments == null ? 0 : fragments.size();
+    }
+
+    @Override
+    public CharSequence getPageTitle(int position) {
+        return titles != null && titles.size() > position ? titles.get(position) : "";
+    }
+    @Override
+    public Fragment instantiateItem(ViewGroup container, int position) {
+        Fragment fragment = (Fragment) super.instantiateItem(container,
+                position);
+        fm.beginTransaction().show(fragment).commit();
+        return fragment;
+    }
+
+    @Override
+    public void destroyItem(ViewGroup container, int position, Object object) {
+        // super.destroyItem(container, position, object);
+        Fragment fragment = fragments.get(position);
+        fm.beginTransaction().hide(fragment).commit();
+    }
+}

+ 124 - 0
chatModule/src/main/java/com/cooleshow/chatmodule/ui/ContactListTabFragment.java

@@ -0,0 +1,124 @@
+package com.cooleshow.chatmodule.ui;
+
+import android.os.Bundle;
+import android.view.View;
+
+import com.cooleshow.base.ui.fragment.BaseFragment;
+import com.cooleshow.base.ui.fragment.BaseMVPFragment;
+import com.cooleshow.chatmodule.R;
+import com.cooleshow.chatmodule.adapter.ContactListTabPagerAdapter;
+import com.cooleshow.chatmodule.databinding.TcFragmentContactListTabBinding;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import androidx.fragment.app.Fragment;
+import androidx.viewpager.widget.ViewPager;
+
+/**
+ * 创建日期:2022/6/9 18:01
+ *
+ * @author Ryan
+ * 类说明:
+ */
+public class ContactListTabFragment extends BaseFragment<TcFragmentContactListTabBinding> implements View.OnClickListener {
+    private boolean isSelectContact = false;
+    public static final String IS_SELECT_CONTACT = "IS_SELECT_CONTACT";
+
+    @Override
+    protected TcFragmentContactListTabBinding getLayoutView() {
+        return TcFragmentContactListTabBinding.inflate(getLayoutInflater());
+    }
+
+
+    private ViewPager viewPager;
+
+    @Override
+    protected void initView(View rootView) {
+        if (getArguments() != null) {
+            isSelectContact = getArguments().getBoolean(IS_SELECT_CONTACT, false);
+        }
+        viewPager = mViewBinding.viewpager;
+        mViewBinding.llRoom.setOnClickListener(this);
+        mViewBinding.llSingle.setOnClickListener(this);
+        viewPager.setCurrentItem(0);
+        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
+            @Override
+            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+
+            }
+
+            @Override
+            public void onPageSelected(int position) {
+                if (position == 0) {
+                    selectSingle();
+                } else {
+                    selectRoom();
+                }
+            }
+
+            @Override
+            public void onPageScrollStateChanged(int state) {
+
+            }
+        });
+    }
+
+    private void selectSingle() {
+        mViewBinding.imContactRoom.setBackgroundResource(R.drawable.icon_contact_room_normal);
+        mViewBinding.imContactSingle.setBackgroundResource(R.drawable.icon_contact_single_select);
+        mViewBinding.tvContactRoom.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_666666));
+        mViewBinding.tvContactSingle.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_2dc7aa));
+    }
+
+    private void selectRoom() {
+        mViewBinding.imContactRoom.setBackgroundResource(R.drawable.icon_contact_room_select);
+        mViewBinding.imContactSingle.setBackgroundResource(R.drawable.icon_contact_single_normal);
+        mViewBinding.tvContactRoom.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_2dc7aa));
+        mViewBinding.tvContactSingle.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_666666));
+    }
+
+    @Override
+    protected void initData() {
+        initTabLayoutAndViewPager();
+    }
+
+    private List<Fragment> fragments = new ArrayList<>();
+    private List<String> titles = new ArrayList<String>(Arrays.asList("联系人", "群聊"));
+
+    private void initTabLayoutAndViewPager() {
+        fragments.clear();
+        ContactPersonListFragment contactPersonListFragment = new ContactPersonListFragment();
+        Bundle bundle = new Bundle();
+        bundle.putBoolean(IS_SELECT_CONTACT, isSelectContact);
+        contactPersonListFragment.setArguments(bundle);
+        fragments.add(contactPersonListFragment);
+        Bundle bundle2 = new Bundle();
+        bundle2.putBoolean(IS_SELECT_CONTACT, isSelectContact);
+        ContactRoomListFragment contactRoomListFragment = new ContactRoomListFragment();
+        contactRoomListFragment.setArguments(bundle2);
+        fragments.add(contactRoomListFragment);
+
+        viewPager.setAdapter(new ContactListTabPagerAdapter(getParentFragmentManager(), fragments, titles));
+    }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (id == R.id.ll_single) {
+            viewPager.setCurrentItem(0);
+        } else if (id == R.id.ll_room) {
+            viewPager.setCurrentItem(1);
+        }
+    }
+
+    public void refreshContactList() {
+        if (fragments.size() > 0) {
+            ContactPersonListFragment fragment = (ContactPersonListFragment) fragments.get(0);
+            if (fragment != null) {
+                fragment.initData();
+            }
+        }
+    }
+}

+ 41 - 0
chatModule/src/main/java/com/cooleshow/chatmodule/ui/SelectContactActivity.java

@@ -0,0 +1,41 @@
+package com.cooleshow.chatmodule.ui;
+
+import android.os.Bundle;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.cooleshow.base.router.RouterPath;
+import com.cooleshow.base.ui.activity.BaseActivity;
+import com.cooleshow.base.utils.helper.QMUIStatusBarHelper;
+import com.cooleshow.chatmodule.constants.TCChatRouterPath;
+import com.cooleshow.chatmodule.databinding.TcActivitySelectContactLayoutBinding;
+
+import androidx.annotation.Nullable;
+
+/**
+ * Author by pq, Date on 2022/7/13.
+ */
+@Route(path = TCChatRouterPath.CHAT_SELECT_CONTACT)
+public class SelectContactActivity extends BaseActivity<TcActivitySelectContactLayoutBinding> {
+
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        QMUIStatusBarHelper.setStatusBarLightMode(this);
+    }
+
+    @Override
+    protected void initView() {
+        initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "选择联系人");
+        ContactListTabFragment contactListTabFragment = new ContactListTabFragment();
+        Bundle bundle = new Bundle();
+        bundle.putBoolean(ContactListTabFragment.IS_SELECT_CONTACT, true);
+        contactListTabFragment.setArguments(bundle);
+        getSupportFragmentManager().beginTransaction().replace(com.cooleshow.base.R.id.fl_my_container, contactListTabFragment).commitAllowingStateLoss();
+    }
+
+    @Override
+    protected TcActivitySelectContactLayoutBinding getLayoutView() {
+        return TcActivitySelectContactLayoutBinding.inflate(getLayoutInflater());
+    }
+}

二進制
chatModule/src/main/res/drawable-xhdpi/icon_contact_room_normal.png


二進制
chatModule/src/main/res/drawable-xhdpi/icon_contact_room_select.png


二進制
chatModule/src/main/res/drawable-xhdpi/icon_contact_single_normal.png


二進制
chatModule/src/main/res/drawable-xhdpi/icon_contact_single_select.png


二進制
chatModule/src/main/res/drawable-xxhdpi/icon_contact_room_normal.png


二進制
chatModule/src/main/res/drawable-xxhdpi/icon_contact_room_select.png


二進制
chatModule/src/main/res/drawable-xxhdpi/icon_contact_single_normal.png


二進制
chatModule/src/main/res/drawable-xxhdpi/icon_contact_single_select.png


+ 21 - 0
chatModule/src/main/res/layout/tc_activity_select_contact_layout.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <include
+        android:id="@+id/toolbar_include"
+        layout="@layout/common_toolbar_layout" />
+
+    <FrameLayout
+        android:id="@+id/fl_my_container"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_marginTop="10dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/toolbar_include" />
+</androidx.constraintlayout.widget.ConstraintLayout>

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

@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_35"
+        android:layout_marginLeft="@dimen/dp_14"
+        android:layout_marginRight="@dimen/dp_14"
+        android:orientation="horizontal">
+
+        <LinearLayout
+            android:id="@+id/ll_single"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:background="@drawable/bg_white_18dp"
+            android:gravity="center"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:id="@+id/im_contact_single"
+                android:layout_width="@dimen/dp_12"
+                android:layout_height="@dimen/dp_12"
+                android:background="@drawable/icon_contact_single_select" />
+
+            <TextView
+                android:id="@+id/tv_contact_single"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/dp_5"
+                android:text="联系人"
+                android:textColor="@color/color_2dc7aa"
+                android:textSize="@dimen/sp_16" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="7dp"
+            android:layout_height="match_parent" />
+
+        <LinearLayout
+            android:id="@+id/ll_room"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1"
+            android:background="@drawable/bg_white_18dp"
+            android:gravity="center"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:id="@+id/im_contact_room"
+                android:layout_width="@dimen/dp_16"
+                android:layout_height="@dimen/dp_13"
+                android:background="@drawable/icon_contact_room_normal" />
+
+            <TextView
+                android:id="@+id/tv_contact_room"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="@dimen/dp_5"
+                android:text="群聊"
+                android:textColor="@color/color_666666"
+                android:textSize="@dimen/sp_16" />
+        </LinearLayout>
+
+    </LinearLayout>
+
+
+    <androidx.viewpager.widget.ViewPager
+        android:id="@+id/viewpager"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1" />
+
+
+</LinearLayout>

+ 1 - 1
student/src/main/java/com/cooleshow/student/ui/live/LiveRoomActivity.java

@@ -2151,7 +2151,7 @@ public class LiveRoomActivity extends BaseMVPActivity<ActivityLiveroomLayoutBind
                         if (share_media == null) {
                             if (TextUtils.equals(snsPlatform.mKeyword, "chat")) {
                                 //分享群聊
-                                ARouter.getInstance().build(RouterPath.ChatCenter.CHAT_SELECT_CONTACT)
+                                ARouter.getInstance().build(TCChatRouterPath.CHAT_SELECT_CONTACT)
                                         .navigation(LiveRoomActivity.this, SHARE_CHAT_REQUEST_CODE);
                             }
                         } else {

+ 1 - 1
student/src/main/java/com/cooleshow/student/ui/web/AccompanyFragment.java

@@ -1506,7 +1506,7 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
                                 if (share_media == null) {
                                     if (TextUtils.equals(snsPlatform.mKeyword, "chat")) {
                                         //分享群聊
-                                        ARouter.getInstance().build(RouterPath.ChatCenter.CHAT_SELECT_CONTACT)
+                                        ARouter.getInstance().build(TCChatRouterPath.CHAT_SELECT_CONTACT)
                                                 .navigation(getActivity(), SHARE_CHAT_REQUEST_CODE);
                                     } else if (TextUtils.equals(snsPlatform.mKeyword, "copy")) {
                                         if (!TextUtils.isEmpty(shareUrl)) {

+ 1 - 1
student/src/main/java/com/cooleshow/student/ui/web/HtmlActivity.java

@@ -459,7 +459,7 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
                                 if (share_media == null) {
                                     if (TextUtils.equals(snsPlatform.mKeyword, "chat")) {
                                         //分享群聊
-                                        ARouter.getInstance().build(RouterPath.ChatCenter.CHAT_SELECT_CONTACT)
+                                        ARouter.getInstance().build(TCChatRouterPath.CHAT_SELECT_CONTACT)
                                                 .navigation(HtmlActivity.this, SHARE_CHAT_REQUEST_CODE);
                                     } else if (TextUtils.equals(snsPlatform.mKeyword, "copy")) {
                                         if (!TextUtils.isEmpty(shareUrl)) {

+ 1 - 1
student/src/main/java/com/cooleshow/student/ui/web/HtmlHorizontalScreenActivity.java

@@ -449,7 +449,7 @@ public class HtmlHorizontalScreenActivity extends BaseActivity<ActivityHtml1Bind
                                 if (share_media == null) {
                                     if (TextUtils.equals(snsPlatform.mKeyword, "chat")) {
                                         //分享群聊
-                                        ARouter.getInstance().build(RouterPath.ChatCenter.CHAT_SELECT_CONTACT)
+                                        ARouter.getInstance().build(TCChatRouterPath.CHAT_SELECT_CONTACT)
                                                 .navigation(HtmlHorizontalScreenActivity.this, SHARE_CHAT_REQUEST_CODE);
                                     } else if (TextUtils.equals(snsPlatform.mKeyword, "copy")) {
                                         if (!TextUtils.isEmpty(shareUrl)) {

+ 1 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/live/TeacherLiveRoomActivity.java

@@ -684,7 +684,7 @@ public class TeacherLiveRoomActivity extends BaseMVPActivity<ActivityTeacherLive
 
         if (id == R.id.iv_live_share) {
             //分享
-            ARouter.getInstance().build(RouterPath.ChatCenter.CHAT_SELECT_CONTACT)
+            ARouter.getInstance().build(TCChatRouterPath.CHAT_SELECT_CONTACT)
                     .navigation(this, SHARE_LIVE_REQUEST_CODE);
             return;
         }

+ 1 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/score/MineScoreActivity.java

@@ -267,7 +267,7 @@ public class MineScoreActivity extends BaseMVPActivity<ActivityMineScoreBinding,
                             if (TextUtils.equals(snsPlatform.mKeyword, "chat")) {
                                 //分享群聊
                                 MineScoreActivity.this.targetBitmap = bitmap;
-                                ARouter.getInstance().build(RouterPath.ChatCenter.CHAT_SELECT_CONTACT)
+                                ARouter.getInstance().build(TCChatRouterPath.CHAT_SELECT_CONTACT)
                                         .navigation(MineScoreActivity.this, SHARE_CHAT_REQUEST_CODE);
                             }
                         } else {

+ 1 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/web/AccompanyFragment.java

@@ -1508,7 +1508,7 @@ public class AccompanyFragment extends BaseMVPFragment<FragmentAccompanyBinding,
                                 if (share_media == null) {
                                     if (TextUtils.equals(snsPlatform.mKeyword, "chat")) {
                                         //分享群聊
-                                        ARouter.getInstance().build(RouterPath.ChatCenter.CHAT_SELECT_CONTACT)
+                                        ARouter.getInstance().build(TCChatRouterPath.CHAT_SELECT_CONTACT)
                                                 .navigation(getActivity(), SHARE_CHAT_REQUEST_CODE);
                                     } else if (TextUtils.equals(snsPlatform.mKeyword, "copy")) {
                                         if (!TextUtils.isEmpty(shareUrl)) {

+ 1 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/web/HtmlActivity.java

@@ -460,7 +460,7 @@ public class HtmlActivity extends BaseActivity<ActivityHtml1Binding> implements
                                 if (share_media == null) {
                                     if (TextUtils.equals(snsPlatform.mKeyword, "chat")) {
                                         //分享群聊
-                                        ARouter.getInstance().build(RouterPath.ChatCenter.CHAT_SELECT_CONTACT)
+                                        ARouter.getInstance().build(TCChatRouterPath.CHAT_SELECT_CONTACT)
                                                 .navigation(HtmlActivity.this, SHARE_CHAT_REQUEST_CODE);
                                     } else if (TextUtils.equals(snsPlatform.mKeyword, "copy")) {
                                         if (!TextUtils.isEmpty(shareUrl)) {

+ 1 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/web/HtmlHorizontalScreenActivity.java

@@ -447,7 +447,7 @@ public class HtmlHorizontalScreenActivity extends BaseActivity<ActivityHtml1Bind
                                 if (share_media == null) {
                                     if (TextUtils.equals(snsPlatform.mKeyword, "chat")) {
                                         //分享群聊
-                                        ARouter.getInstance().build(RouterPath.ChatCenter.CHAT_SELECT_CONTACT)
+                                        ARouter.getInstance().build(TCChatRouterPath.CHAT_SELECT_CONTACT)
                                                 .navigation(HtmlHorizontalScreenActivity.this, SHARE_CHAT_REQUEST_CODE);
                                     } else if (TextUtils.equals(snsPlatform.mKeyword, "copy")) {
                                         if (!TextUtils.isEmpty(shareUrl)) {