From 4f24fed67f1b2ca08a077ef404c30ca41c945a09 Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 24 Nov 2023 19:04:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=AE=8C=E6=88=90=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E9=A1=B5UI=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/home/fragment/ContactsListFragment.kt | 32 ++-- .../app/ui/im/recent/RecentListFragment.java | 96 +++++----- .../ui/user/adapter/DrawableIndicator.java | 177 ++++++++++++++++++ .../adapter/UserInfoIndicatorAdapter.java | 25 +-- .../com/chwl/app/view/GenderAgeTextView.kt | 8 +- .../drawable-xhdpi/ic_gender_female_t.webp | Bin 222 -> 0 bytes .../res/drawable-xhdpi/ic_gender_male_t.webp | Bin 216 -> 0 bytes .../drawable-xxhdpi/ic_gender_female_t.webp | Bin 0 -> 1128 bytes .../res/drawable-xxhdpi/ic_gender_male_t.webp | Bin 0 -> 1064 bytes .../main/res/drawable/bg_gender_female.xml | 9 +- app/src/main/res/drawable/bg_gender_male.xml | 8 +- .../main/res/layout/fragment_contact_list.xml | 43 ++--- app/src/main/res/layout/fragment_home.xml | 2 +- .../main/res/layout/fragment_recent_list.xml | 77 ++++---- .../nim_recent_contact_list_item_new.xml | 48 +++-- .../adapter/RoomMsgRecentViewHolder.java | 10 +- .../fragment/RoomMsgRecentListFragment.java | 10 +- .../room_msg_nim_recent_contact_list_item.xml | 3 +- .../res/drawable/base_arrow_right_1e1e1f.xml | 3 +- .../drawable/base_shape_ffffff_top_12dp.xml | 6 + .../ui/draggablebubbles/BubbleView.java | 2 +- 21 files changed, 367 insertions(+), 192 deletions(-) create mode 100644 app/src/main/java/com/chwl/app/ui/user/adapter/DrawableIndicator.java delete mode 100644 app/src/main/res/drawable-xhdpi/ic_gender_female_t.webp delete mode 100644 app/src/main/res/drawable-xhdpi/ic_gender_male_t.webp create mode 100644 app/src/main/res/drawable-xxhdpi/ic_gender_female_t.webp create mode 100644 app/src/main/res/drawable-xxhdpi/ic_gender_male_t.webp create mode 100644 modules/module_base/src/main/res/drawable/base_shape_ffffff_top_12dp.xml diff --git a/app/src/main/java/com/chwl/app/home/fragment/ContactsListFragment.kt b/app/src/main/java/com/chwl/app/home/fragment/ContactsListFragment.kt index b6dbcff3f..df5f17fed 100644 --- a/app/src/main/java/com/chwl/app/home/fragment/ContactsListFragment.kt +++ b/app/src/main/java/com/chwl/app/home/fragment/ContactsListFragment.kt @@ -41,21 +41,21 @@ class ContactsListFragment : BaseViewBindingFragment private var pagerAdapter: UserInfoPagerAdapter? = null override fun init() { - //标记已读消息 - binding.ivContactTrash.setOnClickListener { - if (NIMClient.getService(MsgService::class.java).totalUnreadCount > 0) { - dialogManager.showOkCancelDialog(getString(R.string.tips_clear_unread_count), - getString(R.string.text_canle), getString(R.string.tips_ok_label_clear), - object : AbsOkDialogListener() { - override fun onOk() {} - override fun onCancel() { - EventBus.getDefault().post(ContactTrashEvent()) - } - }) - } else { - toast(ResUtil.getString(R.string.home_fragment_contactslistfragment_01)) - } - } +// //标记已读消息 +// binding.ivContactTrash.setOnClickListener { +// if (NIMClient.getService(MsgService::class.java).totalUnreadCount > 0) { +// dialogManager.showOkCancelDialog(getString(R.string.tips_clear_unread_count), +// getString(R.string.text_canle), getString(R.string.tips_ok_label_clear), +// object : AbsOkDialogListener() { +// override fun onOk() {} +// override fun onCancel() { +// EventBus.getDefault().post(ContactTrashEvent()) +// } +// }) +// } else { +// toast(ResUtil.getString(R.string.home_fragment_contactslistfragment_01)) +// } +// } initViewPager() } @@ -73,7 +73,7 @@ class ContactsListFragment : BaseViewBindingFragment tagList.add(getString(R.string.layout_fragment_contact_list_03)) tagList.add(getString(R.string.layout_fragment_contact_list_04)) val commonNavigator = CommonNavigator(context) - commonNavigator.setTitleWrapContent(true) + commonNavigator.setTitleWrapContent(false) val magicIndicatorAdapter = UserInfoIndicatorAdapter(context, tagList) magicIndicatorAdapter.setOnItemSelectListener { position: Int, view: TextView? -> binding.viewPager.currentItem = position diff --git a/app/src/main/java/com/chwl/app/ui/im/recent/RecentListFragment.java b/app/src/main/java/com/chwl/app/ui/im/recent/RecentListFragment.java index 25b3047a2..a3f99e470 100644 --- a/app/src/main/java/com/chwl/app/ui/im/recent/RecentListFragment.java +++ b/app/src/main/java/com/chwl/app/ui/im/recent/RecentListFragment.java @@ -76,8 +76,6 @@ import io.reactivex.functions.BiConsumer; */ public class RecentListFragment extends BaseFragment { - private static final String TAG = "RecentListFragment"; - private final String share_pref_is_newbie_clicked = "share_pref_is_newbie_clicked"; private RecyclerView grabApprenticesRecyclerView; @@ -86,10 +84,10 @@ public class RecentListFragment extends BaseFragment { private RecentContactsFragment recentContactsFragment; private boolean isInRoom; - private RecyclerView rvAttentionOnline; - private AttentionInRoomAdapter mAttentionInRoomAdapter; +// private RecyclerView rvAttentionOnline; +// private AttentionInRoomAdapter mAttentionInRoomAdapter; private FrameLayout flNewbie; - private ImageView ivRedPoint; +// private ImageView ivRedPoint; private long lastClickTime; public static RecentListFragment newInstance(boolean isInRoom) { @@ -115,36 +113,36 @@ public class RecentListFragment extends BaseFragment { public void onFindViews() { // 一起玩、关注用户在房间内列表 - rvAttentionOnline = mView.findViewById(R.id.rv_attention_online); - mAttentionInRoomAdapter = new AttentionInRoomAdapter(); - rvAttentionOnline.setAdapter(mAttentionInRoomAdapter); - rvAttentionOnline.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false)); - mAttentionInRoomAdapter.setOnItemChildClickListener((adapter, view, position) -> { - List attentionItems = adapter.getData(); - if (attentionItems.size() > position) { - AttentionItem attentionItem = attentionItems.get(position); - switch (attentionItem.getItemType()) { - case AttentionItem.TYPE_ATTENTION: - try { - AttentionInfo attentionInfo = (AttentionInfo) attentionItem.getData(); - if (attentionInfo != null && attentionInfo.getUserInRoom() != null && mContext != null) { - AVRoomActivity.startForFromType(mContext, attentionInfo.getUserInRoom().getUid(), - AVRoomActivity.FROM_TYPE_USER, attentionInfo.getNick(), String.valueOf(attentionInfo.getUid())); - } - - } catch (Exception ex) { - ex.printStackTrace(); - } - break; - - case AttentionItem.TYPE_ATTENTION_MORE: - if (mContext != null) { - AttentionListActivity.start(mContext); - } - break; - } - } - }); +// rvAttentionOnline = mView.findViewById(R.id.rv_attention_online); +// mAttentionInRoomAdapter = new AttentionInRoomAdapter(); +// rvAttentionOnline.setAdapter(mAttentionInRoomAdapter); +// rvAttentionOnline.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false)); +// mAttentionInRoomAdapter.setOnItemChildClickListener((adapter, view, position) -> { +// List attentionItems = adapter.getData(); +// if (attentionItems.size() > position) { +// AttentionItem attentionItem = attentionItems.get(position); +// switch (attentionItem.getItemType()) { +// case AttentionItem.TYPE_ATTENTION: +// try { +// AttentionInfo attentionInfo = (AttentionInfo) attentionItem.getData(); +// if (attentionInfo != null && attentionInfo.getUserInRoom() != null && mContext != null) { +// AVRoomActivity.startForFromType(mContext, attentionInfo.getUserInRoom().getUid(), +// AVRoomActivity.FROM_TYPE_USER, attentionInfo.getNick(), String.valueOf(attentionInfo.getUid())); +// } +// +// } catch (Exception ex) { +// ex.printStackTrace(); +// } +// break; +// +// case AttentionItem.TYPE_ATTENTION_MORE: +// if (mContext != null) { +// AttentionListActivity.start(mContext); +// } +// break; +// } +// } +// }); recentContactsFragment = RecentContactsFragment.newInstance(isInRoom); FragmentManager fragmentManager = getChildFragmentManager(); @@ -164,10 +162,10 @@ public class RecentListFragment extends BaseFragment { } }); - boolean isClicked = (boolean) SharedPreferenceUtils.get(share_pref_is_newbie_clicked, false); +// boolean isClicked = (boolean) SharedPreferenceUtils.get(share_pref_is_newbie_clicked, false); flNewbie = mView.findViewById(R.id.fl_newbie); - ivRedPoint = mView.findViewById(R.id.iv_red_point); - ivRedPoint.setVisibility(isClicked ? View.GONE : View.VISIBLE); +// ivRedPoint = mView.findViewById(R.id.iv_red_point); +// ivRedPoint.setVisibility(isClicked ? View.GONE : View.VISIBLE); // 等级限制 setFindNewbieView(); } @@ -223,7 +221,7 @@ public class RecentListFragment extends BaseFragment { } lastClickTime = currTime; SharedPreferenceUtils.put(share_pref_is_newbie_clicked, true);// 是否第一次点击发现萌新 - ivRedPoint.setVisibility(View.GONE); +// ivRedPoint.setVisibility(View.GONE); RoomNewbieActivity.start(getActivity(), false); }); } @@ -398,18 +396,18 @@ public class RecentListFragment extends BaseFragment { // attentionItems.add(attentionItem); // } - if (rvAttentionOnline != null) { - rvAttentionOnline.setVisibility(View.VISIBLE); - } - - if (mAttentionInRoomAdapter != null) { - mAttentionInRoomAdapter.setNewData(attentionItems); - } +// if (rvAttentionOnline != null) { +// rvAttentionOnline.setVisibility(View.VISIBLE); +// } +// +// if (mAttentionInRoomAdapter != null) { +// mAttentionInRoomAdapter.setNewData(attentionItems); +// } } else { - if (rvAttentionOnline != null) { - rvAttentionOnline.setVisibility(View.GONE); - } +// if (rvAttentionOnline != null) { +// rvAttentionOnline.setVisibility(View.GONE); +// } } } diff --git a/app/src/main/java/com/chwl/app/ui/user/adapter/DrawableIndicator.java b/app/src/main/java/com/chwl/app/ui/user/adapter/DrawableIndicator.java new file mode 100644 index 000000000..6692bd1ec --- /dev/null +++ b/app/src/main/java/com/chwl/app/ui/user/adapter/DrawableIndicator.java @@ -0,0 +1,177 @@ +package com.chwl.app.ui.user.adapter; + +import android.content.Context; +import android.graphics.Canvas; +import android.graphics.Rect; +import android.graphics.drawable.Drawable; +import android.view.View; +import android.view.animation.Interpolator; +import android.view.animation.LinearInterpolator; + + +import com.chwl.app.ui.widget.magicindicator.FragmentContainerHelper; +import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; +import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.model.PositionData; + +import java.util.List; + +public class DrawableIndicator extends View implements IPagerIndicator { + public static final int MODE_MATCH_EDGE = 0; // drawable宽度 == title宽度 - 2 * mXOffset + public static final int MODE_WRAP_CONTENT = 1; // drawable宽度 == title内容宽度 - 2 * mXOffset + public static final int MODE_EXACTLY = 2; + + private int mMode; // 默认为MODE_MATCH_EDGE模式 + private Drawable mIndicatorDrawable; + + // 控制动画 + private Interpolator mStartInterpolator = new LinearInterpolator(); + private Interpolator mEndInterpolator = new LinearInterpolator(); + + private float mDrawableHeight; + private float mDrawableWidth; + private float mYOffset; + private float mXOffset; + + private List mPositionDataList; + private Rect mDrawableRect = new Rect(); + + public DrawableIndicator(Context context) { + super(context); + } + + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + if (mIndicatorDrawable == null) { + return; + } + + if (mPositionDataList == null || mPositionDataList.isEmpty()) { + return; + } + + // 计算锚点位置 + PositionData current = FragmentContainerHelper.getImitativePositionData(mPositionDataList, position); + PositionData next = FragmentContainerHelper.getImitativePositionData(mPositionDataList, position + 1); + + float leftX; + float nextLeftX; + float rightX; + float nextRightX; + if (mMode == MODE_MATCH_EDGE) { + leftX = current.mLeft + mXOffset; + nextLeftX = next.mLeft + mXOffset; + rightX = current.mRight - mXOffset; + nextRightX = next.mRight - mXOffset; + mDrawableRect.top = (int) mYOffset; + mDrawableRect.bottom = (int) (getHeight() - mYOffset); + } else if (mMode == MODE_WRAP_CONTENT) { + leftX = current.mContentLeft + mXOffset; + nextLeftX = next.mContentLeft + mXOffset; + rightX = current.mContentRight - mXOffset; + nextRightX = next.mContentRight - mXOffset; + mDrawableRect.top = (int) (current.mContentTop - mYOffset); + mDrawableRect.bottom = (int) (current.mContentBottom + mYOffset); + } else { // MODE_EXACTLY + leftX = current.mLeft + (current.width() - mDrawableWidth) / 2; + nextLeftX = next.mLeft + (next.width() - mDrawableWidth) / 2; + rightX = current.mLeft + (current.width() + mDrawableWidth) / 2; + nextRightX = next.mLeft + (next.width() + mDrawableWidth) / 2; + mDrawableRect.top = (int) (getHeight() - mDrawableHeight - mYOffset); + mDrawableRect.bottom = (int) (getHeight() - mYOffset); + } + + mDrawableRect.left = (int) (leftX + (nextLeftX - leftX) * mStartInterpolator.getInterpolation(positionOffset)); + mDrawableRect.right = (int) (rightX + (nextRightX - rightX) * mEndInterpolator.getInterpolation(positionOffset)); + mIndicatorDrawable.setBounds(mDrawableRect); + + invalidate(); + } + + @Override + public void onPageSelected(int position) { + } + + @Override + public void onPageScrollStateChanged(int state) { + } + + @Override + protected void onDraw(Canvas canvas) { + if (mIndicatorDrawable != null) { + mIndicatorDrawable.draw(canvas); + } + } + + @Override + public void onPositionDataProvide(List dataList) { + mPositionDataList = dataList; + } + + public Drawable getIndicatorDrawable() { + return mIndicatorDrawable; + } + + public void setIndicatorDrawable(Drawable indicatorDrawable) { + mIndicatorDrawable = indicatorDrawable; + } + + public Interpolator getStartInterpolator() { + return mStartInterpolator; + } + + public void setStartInterpolator(Interpolator startInterpolator) { + mStartInterpolator = startInterpolator; + } + + public Interpolator getEndInterpolator() { + return mEndInterpolator; + } + + public void setEndInterpolator(Interpolator endInterpolator) { + mEndInterpolator = endInterpolator; + } + + public int getMode() { + return mMode; + } + + public void setMode(int mode) { + if (mode == MODE_EXACTLY || mode == MODE_MATCH_EDGE || mode == MODE_WRAP_CONTENT) { + mMode = mode; + } else { + throw new IllegalArgumentException("mode " + mode + " not supported."); + } + } + + public float getDrawableHeight() { + return mDrawableHeight; + } + + public void setDrawableHeight(float drawableHeight) { + mDrawableHeight = drawableHeight; + } + + public float getDrawableWidth() { + return mDrawableWidth; + } + + public void setDrawableWidth(float drawableWidth) { + mDrawableWidth = drawableWidth; + } + + public float getYOffset() { + return mYOffset; + } + + public void setYOffset(float yOffset) { + mYOffset = yOffset; + } + + public float getXOffset() { + return mXOffset; + } + + public void setXOffset(float xOffset) { + mXOffset = xOffset; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/chwl/app/ui/user/adapter/UserInfoIndicatorAdapter.java b/app/src/main/java/com/chwl/app/ui/user/adapter/UserInfoIndicatorAdapter.java index 5d0ee5418..f9fd0b46c 100644 --- a/app/src/main/java/com/chwl/app/ui/user/adapter/UserInfoIndicatorAdapter.java +++ b/app/src/main/java/com/chwl/app/ui/user/adapter/UserInfoIndicatorAdapter.java @@ -14,22 +14,18 @@ import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil; import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter; import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerTitleView; -import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.indicators.GradientLinePagerIndicator; -import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator; import java.util.List; public class UserInfoIndicatorAdapter extends CommonNavigatorAdapter { - private final Context mContext; private final List mTitleList; - private int textSize = 18; - private float minScale = 0.75f; + private int textSize = 16; + private float minScale = 1f; private boolean showIndicator = true; private OnItemSelectListener mOnItemSelectListener; public UserInfoIndicatorAdapter(Context context, List charSequences) { - this.mContext = context; this.mTitleList = charSequences; } @@ -41,18 +37,17 @@ public class UserInfoIndicatorAdapter extends CommonNavigatorAdapter { @Override public IPagerTitleView getTitleView(Context context, final int i) { ScaleTransitionPagerTitleView scaleTransitionPagerTitleView = new ScaleTransitionPagerTitleView(context, true); - scaleTransitionPagerTitleView.setNormalColor(ContextCompat.getColor(context, R.color.color_6D6B89)); - scaleTransitionPagerTitleView.setSelectedColor(ContextCompat.getColor(context, R.color.color_1F1A4E)); + scaleTransitionPagerTitleView.setNormalColor(ContextCompat.getColor(context, R.color.color_84868A)); + scaleTransitionPagerTitleView.setSelectedColor(ContextCompat.getColor(context, R.color.color_1E1E1F)); scaleTransitionPagerTitleView.setMinScale(minScale); scaleTransitionPagerTitleView.setTextSize(textSize); - int padding = UIUtil.dip2px(context, 12); + int padding = UIUtil.dip2px(context, 16); scaleTransitionPagerTitleView.setPadding(padding, 0, padding, 0); scaleTransitionPagerTitleView.setText(mTitleList.get(i)); scaleTransitionPagerTitleView.setOnClickListener(view -> { if (mOnItemSelectListener != null) { mOnItemSelectListener.onItemSelect(i, scaleTransitionPagerTitleView); } - }); return scaleTransitionPagerTitleView; } @@ -60,13 +55,13 @@ public class UserInfoIndicatorAdapter extends CommonNavigatorAdapter { @Override public IPagerIndicator getIndicator(Context context) { if (!showIndicator) return null; - GradientLinePagerIndicator indicator = new GradientLinePagerIndicator(context); - indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT); - indicator.setLineHeight(UIUtil.dip2px(mContext, 8)); - indicator.setRoundRadius(UIUtil.dip2px(mContext, 360)); + DrawableIndicator indicator = new DrawableIndicator(context); + indicator.setMode(DrawableIndicator.MODE_EXACTLY); + indicator.setDrawableWidth(UIUtil.dip2px(context, 24)); + indicator.setDrawableHeight(UIUtil.dip2px(context, 8)); + indicator.setIndicatorDrawable(context.getResources().getDrawable(R.drawable.base_ic_indicator)); FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp.gravity = Gravity.END; - lp.bottomMargin = UIUtil.dip2px(mContext, 0); indicator.setLayoutParams(lp); return indicator; } diff --git a/app/src/main/java/com/chwl/app/view/GenderAgeTextView.kt b/app/src/main/java/com/chwl/app/view/GenderAgeTextView.kt index 484474352..afd104af5 100644 --- a/app/src/main/java/com/chwl/app/view/GenderAgeTextView.kt +++ b/app/src/main/java/com/chwl/app/view/GenderAgeTextView.kt @@ -24,15 +24,15 @@ class GenderAgeTextView @JvmOverloads constructor( setTextColor(Color.WHITE) - minWidth = resources.getDimensionPixelOffset(R.dimen.dp_26) + minWidth = resources.getDimensionPixelOffset(R.dimen.dp_34) gravity = Gravity.CENTER_VERTICAL setPadding( - resources.getDimensionPixelOffset(R.dimen.dp_4), + resources.getDimensionPixelOffset(R.dimen.dp_3), 0, - resources.getDimensionPixelOffset(R.dimen.dp_4), + resources.getDimensionPixelOffset(R.dimen.dp_5), 0 ) - compoundDrawablePadding = resources.getDimensionPixelOffset(R.dimen.dp_2) +// compoundDrawablePadding = resources.getDimensionPixelOffset(R.dimen.dp_2) setGender(gender) setBirthDay(System.currentTimeMillis()) diff --git a/app/src/main/res/drawable-xhdpi/ic_gender_female_t.webp b/app/src/main/res/drawable-xhdpi/ic_gender_female_t.webp deleted file mode 100644 index 538ee0210fd42a03ab9ea311a8b1e7b817e3421b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmV<403rWUNk&H200012MM6+kP&iD<0000l55NNug_*W(!k@H{bsQq#*tT};xqoaM zt!<;S>I}fPodMWgx^z~RjuWuTbhf@T0ci`=WZsMl?&)P_)E5AFR`pl_!>&&KjsUGg z9{eavDJ9MDE9lsQu{5o~`0)TiOA(wLzu>wg!D-@>l3U1GDqv5ef9=U6>@zzYTtdBa z26XWE1gip567CRg*d}cZ=#c9T{$02O+>1;p831$$v*{P`VVQqQiIoii+7lNEV%eo@ Y3SKNRpgsM%-APZ{7?AQ!^$z$v0CT!!EdT%j diff --git a/app/src/main/res/drawable-xhdpi/ic_gender_male_t.webp b/app/src/main/res/drawable-xhdpi/ic_gender_male_t.webp deleted file mode 100644 index 2e8fbb6762c699f834f4aaa2d1dde8aa0cdf693c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216 zcmV;}04M)aNk&G{00012MM6+kP&iD(0000l55NNul{knbNs-pS>3len(9h5h5l{sH zFl3!=+vu0M=#3M@r;^w}U=AT>kep}GoL;yOBJp!-*>K$-4FK__91OhRQHO!8TQ z0lcS9)qhyFZKrKA^iCsF@Ndzz^qwS(!pzLfjFJUOvT0kkZQHhO+qP~0>e;q!+qP}{ zZOsfLw{09z+1_sZ2)f=&aAJy71nkYV@8*s8ok!ev#)DVff5BZxTr`H_D*`xp zrSTq=rr6v#6eroiwy^h10FKb@qNcoISb zP2Ps}hP-m$$~gjSmf%;n?L?a{EhA8Ni~UQc07m`J(nJn*q_J zO%-nS#h*tX1S`j48nH6KeD8ud4}2;~UXxT`$4sW){}ZUoGZ`eu0As0Dx&Of4GkE0| z8>;9?_>|*x@y;UwJ#}8eb^|O(uFU=i_Fcdyx21=wI+!mn*wWo61iI@Sqb*v2q@?=q zq69uqNu_T2F(HOSH!Mxw5x$`g=4)l!qx&uhROc9lWM~PT4(b=#=Ea8;-%xt8nfm{} zGa=Mfc5 zVixB_HCwN|vSKa(>(?02*GNO54eb>UuqIt%JI9LV(yyC{%^L}x@VvyB9~UH`1jhh7 z+dtNU5WaTTSph{_N?@C9*bV@UIT>cjp1mI0BA8Y1xcg%Ix>1(*H#hdIjLX z6*Kj_f270tBdwD9ip-DQCjzXoF4`GpTYmKtBG4AwxPj92H;D~V(j7+13leZ~!i+L* z`E{TP_cTJ|Jq*Za)A3PB((jglor5ik00=wz6~Xqp!xsaszZ*9+F*~tkN5gH#uU<*E zQRS9oP{OAM#~G~^Ja{DluqK^i2ZMOQt5ulgV5_}yt5d9DWG<(TQg|hNh>?LPhraeI z`x}V-2COinC%;W8QZfBYHQ`6;VO&I%47;CWkKP7;ch>ld%->7C;|jNN)F5-sWZDBe zkBI394CX1&d&zgYYupX9zXXBRxv?L;O`#;oNm^-ob3AeRr1ONb6MM6+kP&iB!1ONapBftm{BDvMJsdA&zRgco8JM+)(T{elA znVH1QFn7)A7(!Lx%xx$&#dfM~K%psSJ9F$BT!wnkasHV?4Cx#Q0sxkc_R0It9Co&C z+qQkSZL9yXAW1fDD{R}gZQHi(XWO>EY}>YN+q}lsnw|i4IoQvZWgwR5QNni!-ynR2 z=mn0?5IIidkf3`x-a%wDku^3@J+LO%9Y&qKy3geWbxzPeL~|dFUDUTw-9Tl9@*Kq} z3L|8D81x84_Umlrt`M$F*4f%0*8d^9`VF7y8-t-;VZ!uCj#hslh4EO2O_*uS#8zc| zi<>rKDo1ZeLlmnZQKNL5Pj`fDPs;VtKEe)xWS0i=jOa>rfr~g=cgp@WkQfZ-5XmEu zz$qIEh9mNT@H_@@4SHzy7CVH}-9!ovxWy(692oR;++TR6l}|id`^Cx^7GBUfq48)p zgD+0mfBy$?9SCK687h-nXUSNpt5fzo(~+KG_wo{%4n4!l7cy;3Ujv8~`ff-O^w6ab z%PXk|tp8!|0Uz7Pn7s#p>#N`RGkb?4L22p|K(y3Pq(;Wd*5r6&X(sLi^N$F`nMXV5 z);w{mAGkGrgI;m!0sv-i;8yW=@mdDoPn-dWR|beQ$Os%U78zLn0Is(V$szqjVA4sM zrc&QHsMqChYn$SAAd(y4WF$lPJI4T$wLwmsWpwG$$~ptuN6e*qyLVS9rPlvt>?qJ7 zepKIKz|0M~)o0&+08$N3;5G>%)N`wag=b*-6M;BSFiq{;$C6<%)Nf>qufWssSU*Sq zz60qtFUU{{O;9-GEomj^+d+af)x`sjOT7B`)eTzv0d{X4;I#8Ikp|V( z1CIQ4+1>HDF#mv^-i5P*Q}I=UX}`Op6hSRQ(>Z)S==qcG2$dC8*D2Q%N5dUNUNg9K i0BWhTXrlTA(})b$;8Yu!&gm$^c~-XhfjZmA>S7Nz`~=nj literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/bg_gender_female.xml b/app/src/main/res/drawable/bg_gender_female.xml index c3ca459e5..c17b95ba5 100644 --- a/app/src/main/res/drawable/bg_gender_female.xml +++ b/app/src/main/res/drawable/bg_gender_female.xml @@ -1,7 +1,12 @@ - + + + - \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_gender_male.xml b/app/src/main/res/drawable/bg_gender_male.xml index baf8a7f4a..4f4ebe94d 100644 --- a/app/src/main/res/drawable/bg_gender_male.xml +++ b/app/src/main/res/drawable/bg_gender_male.xml @@ -1,7 +1,11 @@ - + - + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_contact_list.xml b/app/src/main/res/layout/fragment_contact_list.xml index d7865a4e3..8e6fe054b 100644 --- a/app/src/main/res/layout/fragment_contact_list.xml +++ b/app/src/main/res/layout/fragment_contact_list.xml @@ -3,21 +3,22 @@ android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" - android:background="@color/color_white"> - + android:background="@color/color_F7F7F7"> + + android:layout_height="0dp" + android:background="@drawable/bg_home_top" + app:layout_constraintDimensionRatio="375:178" + app:layout_constraintTop_toTopOf="parent" /> + android:layout_height="match_parent" /> - + + + + - + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 3c73500cb..d32d0963c 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -56,7 +56,7 @@ app:layout_constraintTop_toTopOf="@id/layout_menu" /> + android:layout_height="match_parent" + android:orientation="vertical"> - + + + + + + + tools:visibility="visible"> + android:layout_gravity="center" + android:gravity="center_horizontal" + android:orientation="vertical"> + android:src="@mipmap/ic_find_new" /> + + android:textColor="@color/color_333333" + android:textSize="@dimen/dp_14" /> + + + + + + + + - - - - + + + + + + + android:layout_height="wrap_content" /> + android:layout_height="match_parent" + android:background="@drawable/base_shape_ffffff_top_12dp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/nim_recent_contact_list_item_new.xml b/app/src/main/res/layout/nim_recent_contact_list_item_new.xml index b431e9da3..19ea35a6f 100644 --- a/app/src/main/res/layout/nim_recent_contact_list_item_new.xml +++ b/app/src/main/res/layout/nim_recent_contact_list_item_new.xml @@ -2,7 +2,7 @@ + android:layout_marginStart="11dp"> @@ -38,9 +38,8 @@ @@ -71,7 +70,7 @@ android:singleLine="true" android:text="" android:textColor="@color/text_title_color" - android:textSize="15dp" + android:textSize="14dp" tools:ignore="SpUsage" tools:text="@string/layout_nim_recent_contact_list_item_new_01" /> @@ -115,7 +114,7 @@ @@ -153,8 +152,8 @@ android:lines="1" android:scrollHorizontally="true" android:text="" - android:textColor="@color/text_normal_c6c6e9" - android:textSize="12dp" + android:textColor="#84868A" + android:textSize="13dp" tools:ignore="SpUsage" tools:text="@string/layout_nim_recent_contact_list_item_new_03" /> @@ -165,8 +164,7 @@ @@ -174,7 +172,8 @@ android:id="@+id/unread_number_tip" android:layout_width="wrap_content" android:layout_height="@dimen/dp_18" - android:layout_gravity="right" + android:layout_gravity="right|bottom" + android:layout_marginBottom="19dp" android:singleLine="true" android:visibility="gone" tools:text="123" @@ -193,8 +192,7 @@ android:id="@+id/tv_date_time" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_gravity="center_vertical|right" - android:layout_marginTop="6dp" + android:layout_marginTop="19dp" android:textColor="@color/text_secondary_4f516a" android:textSize="11dp" tools:text="just now" /> @@ -203,11 +201,11 @@ - + + + + + + diff --git a/app/src/module_room_chat/java/com/chwl/app/room_chat/adapter/RoomMsgRecentViewHolder.java b/app/src/module_room_chat/java/com/chwl/app/room_chat/adapter/RoomMsgRecentViewHolder.java index 58fc83503..481c5ceae 100644 --- a/app/src/module_room_chat/java/com/chwl/app/room_chat/adapter/RoomMsgRecentViewHolder.java +++ b/app/src/module_room_chat/java/com/chwl/app/room_chat/adapter/RoomMsgRecentViewHolder.java @@ -68,11 +68,11 @@ public abstract class RoomMsgRecentViewHolder extends RecyclerViewHolder + android:layout_height="75dp"> + android:viewportHeight="18"> + + + + \ No newline at end of file diff --git a/nim_uikit/src/com/netease/nim/uikit/common/ui/draggablebubbles/BubbleView.java b/nim_uikit/src/com/netease/nim/uikit/common/ui/draggablebubbles/BubbleView.java index a9b39408c..bbad35b9d 100644 --- a/nim_uikit/src/com/netease/nim/uikit/common/ui/draggablebubbles/BubbleView.java +++ b/nim_uikit/src/com/netease/nim/uikit/common/ui/draggablebubbles/BubbleView.java @@ -52,7 +52,7 @@ public class BubbleView extends AppCompatTextView { gradientDrawable.setShape(GradientDrawable.RECTANGLE); // gradientDrawable.setShape(GradientDrawable.RECTANGLE); gradientDrawable.setCornerRadius(ScreenUtil.dip2px(20)); - gradientDrawable.setColor(Color.parseColor("#FF3B30")); + gradientDrawable.setColor(Color.parseColor("#FC5168")); setBackground(gradientDrawable); setPadding(ScreenUtil.dip2px(6), ScreenUtil.dip2px(2), ScreenUtil.dip2px(6), ScreenUtil.dip2px(2)); setGravity(Gravity.CENTER);