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 BaseMvpFragment + + + + + + + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +