From c19b87720006e38dda0ed8452e37c3581ff7f5c2 Mon Sep 17 00:00:00 2001 From: huangjian Date: Tue, 31 May 2022 15:59:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E7=8E=B0=E8=90=8C=E6=96=B0=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=AD=9B=E9=80=89=E5=8A=9F=E8=83=BD&UI=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res/drawable/shape_white_top_12dp.xml | 7 + .../res/layout/item_home_visitor_list.xml | 2 +- app/src/main/res/layout/newbie_list_item.xml | 201 ++++++++---------- .../activity/RoomNewbieActivity.java | 22 +- .../adapter/RoomNewbieListAdapter.java | 43 ++-- .../room_chat/fragment/NewbieFilterDialog.kt | 46 ++++ .../fragment/RoomNewbieListFragment.java | 41 +++- .../fragment/RoomNewbieMessageFragment.java | 2 +- .../res/drawable-xhdpi/ic_close_filter.png | Bin 0 -> 926 bytes .../res/drawable-xhdpi/ic_find_new_filter.png | Bin 0 -> 1433 bytes .../res/drawable/bg_newbie_filter_rb.xml | 19 ++ .../res/drawable/color_newbie_rb.xml | 8 + .../res/layout/activity_newbie_list.xml | 40 ++-- .../res/layout/activity_room_newbie_list.xml | 9 + .../res/layout/dialog_newbie_filter.xml | 160 ++++++++++++++ 15 files changed, 431 insertions(+), 169 deletions(-) create mode 100644 app/src/main/res/drawable/shape_white_top_12dp.xml create mode 100644 app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/fragment/NewbieFilterDialog.kt create mode 100644 app/src/module_room_chat/res/drawable-xhdpi/ic_close_filter.png create mode 100644 app/src/module_room_chat/res/drawable-xhdpi/ic_find_new_filter.png create mode 100644 app/src/module_room_chat/res/drawable/bg_newbie_filter_rb.xml create mode 100644 app/src/module_room_chat/res/drawable/color_newbie_rb.xml create mode 100644 app/src/module_room_chat/res/layout/dialog_newbie_filter.xml diff --git a/app/src/main/res/drawable/shape_white_top_12dp.xml b/app/src/main/res/drawable/shape_white_top_12dp.xml new file mode 100644 index 000000000..ee9c4773d --- /dev/null +++ b/app/src/main/res/drawable/shape_white_top_12dp.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_home_visitor_list.xml b/app/src/main/res/layout/item_home_visitor_list.xml index 6d320deb6..32410a46d 100644 --- a/app/src/main/res/layout/item_home_visitor_list.xml +++ b/app/src/main/res/layout/item_home_visitor_list.xml @@ -49,7 +49,7 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="@id/tv_nickname" app:layout_constraintTop_toBottomOf="@id/tv_nickname" - tools:text="66号:1234567" /> + tools:text="大鹅号:1234567" /> + android:layout_marginTop="11dp" + android:layout_marginBottom="11dp" + android:orientation="horizontal"> - - - - - - - - - - - - - - - - + - + android:layout_width="0dp" + android:layout_height="match_parent" + android:layout_marginStart="10dp" + android:layout_weight="1" + android:gravity="center_vertical" + android:orientation="vertical"> - + + + + + + + + + + + + android:layout_height="wrap_content" + android:textColor="@color/color_666666" + android:textSize="14sp" + android:fontFamily="sans-serif" + tools:text="大鹅号:666666" /> - - + - - - \ No newline at end of file diff --git a/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/activity/RoomNewbieActivity.java b/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/activity/RoomNewbieActivity.java index 6f94dd23f..e62c60aa7 100644 --- a/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/activity/RoomNewbieActivity.java +++ b/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/activity/RoomNewbieActivity.java @@ -14,7 +14,9 @@ import com.netease.nim.uikit.StatusBarUtil; import com.yizhuan.erban.R; import com.yizhuan.erban.base.BaseActivity; import com.yizhuan.tutu.room_chat.event.ClickRootViewEvent; +import com.yizhuan.tutu.room_chat.fragment.NewbieFilterDialog; import com.yizhuan.tutu.room_chat.fragment.RoomNewbieListFragment; +import com.yizhuan.xchat_android_library.utils.CommonUtils; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -22,12 +24,16 @@ import org.greenrobot.eventbus.ThreadMode; import butterknife.ButterKnife; import butterknife.OnClick; +import kotlin.Unit; +import kotlin.jvm.functions.Function2; public class RoomNewbieActivity extends BaseActivity { private RoomNewbieListFragment newbieListFragment; private boolean mIsInRoom; private ImageView ivBack; + private NewbieFilterDialog newbieFilterDialog; + public static void start(Context context, boolean isInRoom) { Intent starter = new Intent(context, RoomNewbieActivity.class); starter.putExtra("isInRoom", isInRoom); @@ -41,12 +47,20 @@ public class RoomNewbieActivity extends BaseActivity { FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.recent_container, newbieListFragment).commitAllowingStateLoss(); ivBack = findViewById(R.id.iv_back); - ivBack.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - finish(); + ivBack.setOnClickListener(v -> finish()); + findViewById(R.id.iv_filter).setOnClickListener(v -> { + if (CommonUtils.isFastDoubleClick(1000)) return; + if (newbieFilterDialog == null) { + newbieFilterDialog = NewbieFilterDialog.newInstance() + .setOnFilterListener((gender, hello) -> { + newbieListFragment.filter(gender, hello); + return null; + } + ); } + newbieFilterDialog.show(this); }); + } @Override diff --git a/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/adapter/RoomNewbieListAdapter.java b/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/adapter/RoomNewbieListAdapter.java index 0f6191ab0..6bdcd51b5 100644 --- a/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/adapter/RoomNewbieListAdapter.java +++ b/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/adapter/RoomNewbieListAdapter.java @@ -10,12 +10,9 @@ import androidx.appcompat.widget.AppCompatImageView; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import com.yizhuan.erban.R; -import com.yizhuan.xchat_android_core.bean.RoomNewbieInfo; +import com.yizhuan.erban.ui.user.UserInfoActivity; import com.yizhuan.erban.ui.utils.ImageLoadUtils; -import com.yizhuan.erban.ui.widget.NobleAvatarView; -import com.yizhuan.xchat_android_core.utils.StarUtils; - -import java.util.Date; +import com.yizhuan.xchat_android_core.bean.RoomNewbieInfo; /** * @author jack @@ -27,29 +24,34 @@ public class RoomNewbieListAdapter extends BaseQuickAdapter { if (onItemClickListener != null) { onItemClickListener.onAttentionBtnClick(newbieInfo); } + }) + .setOnClickListener(R.id.iv_avatar, v -> { + UserInfoActivity.Companion.start(mContext, newbieInfo.getUid()); }); AppCompatImageView ivGender = baseViewHolder.getView(R.id.iv_gender); if (newbieInfo.getGender() == 1) { @@ -58,9 +60,7 @@ public class RoomNewbieListAdapter extends BaseQuickAdapter() { + + companion object { + @JvmStatic + fun newInstance(): NewbieFilterDialog { + return NewbieFilterDialog() + } + } + + override var gravity: Int = Gravity.BOTTOM + override var width: Int = WindowManager.LayoutParams.MATCH_PARENT + + private var onFilterListener: ((gender: Int, hello: Int) -> Unit)? = null + + fun setOnFilterListener(onFilterListener: (gender: Int, hello: Int) -> Unit): NewbieFilterDialog { + this.onFilterListener = onFilterListener + return this + } + + override fun init() { + binding.ivClose.setOnClickListener { dismissAllowingStateLoss() } + binding.tvConfirm.setOnClickListener { + onFilterListener?.invoke( + when (binding.rgGender.checkedRadioButtonId) { + R.id.rb_gender_male -> 1 + R.id.rb_gender_female -> 2 + else -> 0 + }, + when (binding.rgHello.checkedRadioButtonId) { + R.id.rb_hello_already -> 1 + R.id.rb_hello_no -> 2 + else -> 0 + } + ) + dismissAllowingStateLoss() + } + } +} \ No newline at end of file diff --git a/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/fragment/RoomNewbieListFragment.java b/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/fragment/RoomNewbieListFragment.java index 8a76c8bd0..a2d721069 100644 --- a/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/fragment/RoomNewbieListFragment.java +++ b/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/fragment/RoomNewbieListFragment.java @@ -25,6 +25,7 @@ import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; +import java.util.ArrayList; import java.util.List; /** @@ -38,10 +39,11 @@ public class RoomNewbieListFragment extends BaseMvpFragment mData; public static RoomNewbieListFragment newInstance(boolean isInRoom) { Bundle args = new Bundle(); - args.putBoolean("isInRoom",isInRoom); + args.putBoolean("isInRoom", isInRoom); RoomNewbieListFragment fragment = new RoomNewbieListFragment(); fragment.setArguments(args); return fragment; @@ -100,16 +102,16 @@ public class RoomNewbieListFragment extends BaseMvpFragment list) { + mData = list; hideStatus(); if (mNewbieListAdapter != null) { int page = getMvpPresenter().getPage(); @@ -146,12 +149,13 @@ public class RoomNewbieListFragment extends BaseMvpFragment list) { - if (ListUtils.isListEmpty(list)){ + if (ListUtils.isListEmpty(list)) { mNewbieListAdapter.loadMoreEnd(); return; } mNewbieListAdapter.addData(list); mNewbieListAdapter.loadMoreComplete(); + mData = mNewbieListAdapter.getData(); } @Override @@ -171,7 +175,7 @@ public class RoomNewbieListFragment extends BaseMvpFragment filterData = new ArrayList<>(); + for (RoomNewbieInfo newbieInfo : mData) { + if ((newbieInfo.getGender() == gender || gender == 0) && + (hello == 0 || newbieInfo.isHello() == (hello == 2))) { + filterData.add(newbieInfo); + } + } + if (filterData.size() == 0) { + mNewbieListAdapter.setNewData(null); + showNoData(getString(R.string.empty_newbie_list)); + } else { + hideStatus(); + mNewbieListAdapter.setNewData(filterData); + } + } } diff --git a/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/fragment/RoomNewbieMessageFragment.java b/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/fragment/RoomNewbieMessageFragment.java index 1828b4ab7..34c5fd5e6 100644 --- a/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/fragment/RoomNewbieMessageFragment.java +++ b/app/src/module_room_chat/java/com/yizhuan/tutu/room_chat/fragment/RoomNewbieMessageFragment.java @@ -152,7 +152,7 @@ public class RoomNewbieMessageFragment extends BaseMvpFragmentPx&SV=@dRA@upnoVdEK@@;z_BVgsG&D_9@#aP8O;37iK?({A6(R@M5bRA4LJ``Np7d7q;>n_EnzGF{NwdErZ!u-vY`Q<)v>o@D%)EKudvD%* zJF^%i@W?V@8cWM!OVI^>NaQTUv5dwrLJDILuXhNsMcZbPX&D=unJoxOj^U55J!ecL>+7G&D@Ex&A2d;0VS& zf-JSI6uva)=FVGDj1ftJ*~wbY6!B0}ihC6W5Kbc-&lgM0un?gD1uW) z$4aJ|Osq!*tK-jFS^}=3R-fIN# z#IRIU{KBaR05)tbGf~{_m=E%tvnSe1b??UR0l0qZ_vmhAn;@mV|3h|q_F;V0{rf)v zkmnf*OHl>y=6G8rs=H2X0XP*_ohl8gNF@ac#ZHkHYTb&x1#so$kGznPvPms8NI802 zZN2z-r~zv@0MMBI`dlB|@7C`c1-x+JcyR?9KnLLVbT!-ACpkZ?=TaT3@npW-asY0f zQHya~VxDIoA&kxhB!6V_{f`tf2%!AWEvuVQ|l2s0+C5g{AlYctCu*b>F4lY9CVS7>-W zF$m>heZp!QzB*GaaTd$%6aeP?DeB1m8}mUS7F7q6wM;yFx>ioIaqEGAViRJ2L{%Qf zLxYEJoLe1Fx^4Dk8kDr2vNU@sZXQS7c%Nw3F@0U>f7o6;)RC#S4!|g z64@wDKNDw8&r3ZBq5fC}AgDgr>bjEZqeXzA{&3fUp!s;c8%k7PaJV6;y<+M@P<_d_ z1wr#QtGiNCd(rKNp!!n-Hwd*Kd-ye9d-=J|AG;0It#%LJtN;K207*qoM6N<$g1Q~3 A_5c6? literal 0 HcmV?d00001 diff --git a/app/src/module_room_chat/res/drawable-xhdpi/ic_find_new_filter.png b/app/src/module_room_chat/res/drawable-xhdpi/ic_find_new_filter.png new file mode 100644 index 0000000000000000000000000000000000000000..8c5ba84f38f147aebd628329d582f5c5acadb602 GIT binary patch literal 1433 zcmV;K1!nq*P)Px)Q%OWYRA@u(S$#}fRTMw(^-O|->zuvy3|!{~!2d4;jg5^rU%GUu z769%+M0+kWAPB+|08AGb7hgDc?%ZrTm}zA|QItcbX|@AEK{`%&brJCoo6Xjts_L7( zHrxbcS?)l@mw17*(Gx}SsH&>3@L+He@cDeDu~lRzL)S6y9=Ebw&XBO@b1 zTU*-zBKoPHw=_+AmW9DZVD%;z1RC+z|;!X;j zkR<8RXf!&+?DDK?*+S za=9u;M@PTmakg5gs;X*hEEWp^Kp~ZVURqjO)7{;@z>Aj_0Rrmx`)`|@n~MOzChFwJ zjT<+X4-5><@H!=W+qP{hx^m@87y$03b{7i^3(JOvhAyXrlQsbYURhare>@%!0>Di) z?c)Qkv%@VcgHFRnFp$8I^xgQc_ZL=FFL_uj4r(K!Wo5d?gDD3t!WKf6;aQ zE-L}I+x;^D+(G_xI-U0ggTbk6mQK$0Knkd?uI~1knVE|`1d57^Hud-S|N5UHK=#q( zp^DiIWd;Yce<{pI(I9oIU_)WBoC4;)vStH*Mt~Nf?b-jvJU3ld=T|&eueeZUfrn%43%}&L$;BYt|3WY*C zZ-6YloD)bntf;8ivbeZNUR$JXPVPBlcDwyZI2>kn+gL$c<=2crIzeQkyG|gR*~^9P ndIoYai`ihTXCRx|%Z2S<-8j}yPOxXe00000NkvXXu0mjf;8d7c literal 0 HcmV?d00001 diff --git a/app/src/module_room_chat/res/drawable/bg_newbie_filter_rb.xml b/app/src/module_room_chat/res/drawable/bg_newbie_filter_rb.xml new file mode 100644 index 000000000..a627de842 --- /dev/null +++ b/app/src/module_room_chat/res/drawable/bg_newbie_filter_rb.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/app/src/module_room_chat/res/drawable/color_newbie_rb.xml b/app/src/module_room_chat/res/drawable/color_newbie_rb.xml new file mode 100644 index 000000000..af726b410 --- /dev/null +++ b/app/src/module_room_chat/res/drawable/color_newbie_rb.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/module_room_chat/res/layout/activity_newbie_list.xml b/app/src/module_room_chat/res/layout/activity_newbie_list.xml index d5ca8b3b5..b55f574dd 100644 --- a/app/src/module_room_chat/res/layout/activity_newbie_list.xml +++ b/app/src/module_room_chat/res/layout/activity_newbie_list.xml @@ -15,43 +15,55 @@ android:orientation="vertical"> + android:orientation="horizontal" + > + android:layout_gravity="center_horizontal"> - + android:textColor="@color/color_333333" + android:textSize="@dimen/dp_18" + android:layout_marginTop="@dimen/dp_15" + /> + android:textColor="@color/color_999999" + android:textSize="@dimen/dp_13" + /> + android:src="@drawable/arrow_left" + android:layout_marginStart="@dimen/dp_8" + android:layout_gravity="center_vertical" + /> + + + diff --git a/app/src/module_room_chat/res/layout/activity_room_newbie_list.xml b/app/src/module_room_chat/res/layout/activity_room_newbie_list.xml index f7bb6b223..cb6b3d86d 100644 --- a/app/src/module_room_chat/res/layout/activity_room_newbie_list.xml +++ b/app/src/module_room_chat/res/layout/activity_room_newbie_list.xml @@ -54,6 +54,15 @@ android:layout_gravity="center_vertical" /> + diff --git a/app/src/module_room_chat/res/layout/dialog_newbie_filter.xml b/app/src/module_room_chat/res/layout/dialog_newbie_filter.xml new file mode 100644 index 000000000..3ca89b449 --- /dev/null +++ b/app/src/module_room_chat/res/layout/dialog_newbie_filter.xml @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +