feat: 版本提测

This commit is contained in:
eggmanQQQ
2024-12-17 14:31:46 +08:00
parent a1e908183d
commit 2dd35ac0ce
63 changed files with 903 additions and 260 deletions

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="16dp" />
<solid android:color="#ffffff"/>
</shape>

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -150,11 +150,11 @@ public class ButtonItemFactory {
}
}
if (gift) {
if (!SuperAdminUtil.isSuperAdmin()) {
buttonItems.add(createSendGiftItem(context, uid, isInRoom, listener));
}
}
// if (gift) {
// if (!SuperAdminUtil.isSuperAdmin()) {
// buttonItems.add(createSendGiftItem(context, uid, isInRoom, listener));
// }
// }
// 私聊
// buttonItems.add(createPrivateChatItem(context, account, isInRoom));

View File

@@ -71,17 +71,23 @@ public class UpMicAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
if (roomQueueInfo.mChatRoomMember == null &&
(!AvRoomDataManager.get().isLeaveMode() || position != 0) &&
(!AvRoomDataManager.get().isDatingMode() || AvRoomDataManager.get().isManager(String.valueOf(upUid)) || position != 0)) {
imageView.setImageResource(position == 0 ? R.drawable.icon_up_mic_true_preside : R.drawable.icon_up_mic_ture);
imageView.setImageResource(position == 0 ? R.drawable.icon_up_mic_ture : R.drawable.icon_up_mic_ture);
helper.itemView.setClickable(true);
helper.itemView.setOnClickListener(v -> Single.just(position).subscribe(consumer));
} else {
imageView.setImageResource(position == 0 ? R.drawable.icon_up_mic_false_preside : R.drawable.icon_up_mic_false);
imageView.setImageResource(position == 0 ? R.drawable.icon_up_mic_false : R.drawable.icon_up_mic_false);
helper.itemView.setClickable(false);
}
TextView textView = helper.getView(R.id.tv_pos);
if (position == 0) {
textView.setText(AvRoomDataManager.get().isDatingMode() ? ResUtil.getString(R.string.avroom_adapter_upmicadapter_01) : ResUtil.getString(R.string.avroom_adapter_upmicadapter_02));
if (AvRoomDataManager.get().isHomeParty()) {
textView.setText(ResUtil.getString(R.string.avroom_adapter_upmicadapter_02));
} else if (AvRoomDataManager.get().isDatingMode()) {
textView.setText(ResUtil.getString(R.string.avroom_adapter_upmicadapter_01));
} else {
textView.setText(String.format(context.getResources().getString(R.string.which_mic_position), position));
}
} else {
if (AvRoomDataManager.get().isDatingMode()) {
textView.setText(position + (Constants.maleIndex.contains(position - 1) ? ResUtil.getString(R.string.avroom_adapter_upmicadapter_03) : ResUtil.getString(R.string.avroom_adapter_upmicadapter_04)));

View File

@@ -127,6 +127,6 @@ abstract class BaseDialogFragment<T : ViewBinding> : RxDialogFragment() {
abstract fun init()
public interface Action{
fun <D:Any>onAction(type:Int,data:D?)
fun onAction(type:Int,data:Any?)
}
}

View File

@@ -418,7 +418,7 @@ class DressUpMyFragment : BaseListFragment<DressUpInfo>() {
dressUpDialog.mDressUpInfo = data
dressUpDialog.isMy = true
dressUpDialog.mActionCallBack = object : BaseDialogFragment.Action {
override fun <D : Any> onAction(type: Int, data: D?) {
override fun onAction(type: Int, data: Any?) {
onRefresh()
}
}

View File

@@ -1,8 +1,9 @@
package com.chwl.app.home.fragment
import android.graphics.Color
import android.util.SparseArray
import android.view.LayoutInflater
import android.view.View
import android.widget.LinearLayout
import androidx.core.view.isVisible
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentTransaction
@@ -15,26 +16,30 @@ import com.chwl.app.R
import com.chwl.app.application.IReportConstants
import com.chwl.app.application.ReportManager
import com.chwl.app.avroom.activity.AVRoomActivity
import com.chwl.app.base.BaseDialogFragment
import com.chwl.app.base.BaseViewBindingFragment
import com.chwl.app.databinding.FragmentHomeRecommendBinding
import com.chwl.app.databinding.ItemHomeRecommentdTagBinding
import com.chwl.app.home.HomeViewModel
import com.chwl.app.home.adapter.HomeBannerAdapter
import com.chwl.app.home.adapter.HomeRankViewFlipperAdapter
import com.chwl.app.home.dialog.RecommendRoomDialog
import com.chwl.app.support.FragmentVisibleStateHelper
import com.chwl.app.ui.bean.CountryBean
import com.chwl.app.ui.login.dialog.CountrySelectDialog
import com.chwl.app.ui.search.SearchActivity
import com.chwl.app.ui.user.adapter.HomeRecommendIndicatorAdapter
import com.chwl.app.ui.utils.load
import com.chwl.app.ui.webview.CommonWebViewActivity
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil
import com.chwl.app.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator
import com.chwl.app.utils.CommonJumpHelper
import com.chwl.app.utils.HomeUIManager
import com.chwl.core.DemoCache
import com.chwl.core.home.bean.BannerInfo
import com.chwl.core.home.bean.HomeTagInfo
import com.chwl.library.common.util.isVerify
import com.chwl.library.common.util.toColor
import com.chwl.library.utils.ListUtils
import com.example.lib_utils.ktx.getDrawableById
import com.example.lib_utils.ktx.getColor
import com.zhpan.bannerview.BannerViewPager
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
@@ -45,11 +50,12 @@ import kotlinx.coroutines.launch
class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBinding>(),
View.OnClickListener {
private val tabList = mutableListOf<HomeTagInfo>()
private var mPosition = 0
private val homeViewModel: HomeViewModel by activityViewModels()
private val tabList = mutableListOf<HomeTagInfo>()
private val fragmentArray = SparseArray<Fragment>()
private var tempFragment: Fragment? = null
private var mPosition = 0
private val tabViewList = mutableListOf<View>()
override fun init() {
initListener()
@@ -66,6 +72,10 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
homeViewModel.getBannerInfo()
homeViewModel.getHomeResourceInfo()
homeViewModel.getHomeRankList()
if (HomeUIManager.mConfigInfo?.appUiSetting?.backgroundColor.isVerify()) {
binding.tabLayoutMarks.setGradientDrawable(R.color.transparent.getColor(),-1,Color.parseColor(HomeUIManager.mConfigInfo?.appUiSetting?.backgroundColor),-1,-1f)
}
}
private fun initListener() {
@@ -184,7 +194,31 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
DemoCache.saveAnchorCardView(1)
}
}
binding.tabLayoutMore.id->{
val listData = arrayListOf<CountryBean>()
tabList.forEachIndexed { index, homeTagInfo ->
listData.add(CountryBean().apply {
id = homeTagInfo.id
name = homeTagInfo.name
icon = homeTagInfo.icon
checked = index == mPosition
})
}
CountrySelectDialog().apply {
isRegion = false
mData = listData
mActionCallBack = object : BaseDialogFragment.Action {
override fun onAction(type: Int, data: Any?) {
selectTabView(type)
}
}
}.show(context)
}
}
}
private fun initTab() {
@@ -192,31 +226,38 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
homeViewModel.homeTabLiveData.observe(this) {
loadTabList(transformTabList(it))
}
binding.tabLayoutMore.setOnClickListener(this)
}
private fun resetTabIndicator(list: List<String>) {
val commonNavigator = CommonNavigator(context)
if (list.size <= 4) {
commonNavigator.isAdjustMode = true
private fun resetTabIndicator(list: List<HomeTagInfo>) {
tabViewList.clear()
binding.tabLayout.setViews(list.size) { container, position, adapter ->
val from = LayoutInflater.from(container.context)
val view = ItemHomeRecommentdTagBinding.inflate(from, container, false)
view.icon.load(list.getOrNull(position)?.icon?:"")
tabViewList.add(view.root)
return@setViews view.root
}
val magicIndicatorAdapter = HomeRecommendIndicatorAdapter(
context,
list
)
magicIndicatorAdapter.setOnItemSelectListener { position, _ ->
// ToastUtils.show("选择 ${tabList.get(position).name}")
binding.magicIndicator.onPageSelected(position)
mPosition = position
changePage()
binding.tabLayout.setOnTabClickListener{pos,view->
selectTabView(pos)
}
commonNavigator.adapter = magicIndicatorAdapter
binding.magicIndicator.navigator = commonNavigator
val titleContainer: LinearLayout = commonNavigator.titleContainer // must after setNavigator
titleContainer.showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE
titleContainer.dividerPadding = resources.getDimensionPixelOffset(R.dimen.dp_15)
titleContainer.dividerDrawable = getDrawableById(R.drawable.home_recommend_tab_splitter)
changePage()
}
private fun selectTabView(pos:Int) {
//取消选中
tabViewList?.getOrNull(mPosition)?.let { oldView->
val tabView = ItemHomeRecommentdTagBinding.bind(oldView)
tabView.bg.changeStrikeColor("#ffffff".toColor())
}
mPosition = pos
changePage()
// binding.magicIndicator.onPageSelected(binding.viewPager.currentItem)
}
private fun transformTabList(list: List<HomeTagInfo>): List<HomeTagInfo> {
@@ -242,13 +283,12 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
}
}
// binding.viewPager.adapter?.notifyDataSetChanged()
resetTabIndicator(tabList.map { it.name })
resetTabIndicator(tabList)
}
private fun changePage() {
val showFragment = fragmentArray.get(tabList.get(mPosition).id)
val tab = tabList.getOrNull(mPosition) ?: return
val showFragment = fragmentArray.get(tab.id)
if (showFragment === tempFragment) return
val transaction: FragmentTransaction = childFragmentManager.beginTransaction()
@@ -263,6 +303,12 @@ class HomeRecommendFragment : BaseViewBindingFragment<FragmentHomeRecommendBindi
if (!isDetached) {
transaction.commitNowAllowingStateLoss()
}
//选中
tabViewList?.getOrNull(mPosition)?.let { oldView->
val tabView = ItemHomeRecommentdTagBinding.bind(oldView)
tabView.bg.changeStrikeColor("#ff8c03".toColor())
}
}
override fun onDestroyView() {

View File

@@ -36,7 +36,6 @@ import com.chwl.app.ui.relation.FansListActivity
import com.chwl.app.ui.utils.ImageLoadUtils
import com.chwl.app.ui.wallet.WalletActivity
import com.chwl.app.ui.webview.CommonWebViewActivity
import com.chwl.app.ui.widget.UserInfoDialog
import com.chwl.app.utils.HomeUIManager
import com.chwl.app.view.GenderAgeTextView
import com.chwl.app.vip.VipCenterActivity
@@ -59,7 +58,6 @@ import com.chwl.core.user.bean.UserInfo
import com.chwl.core.user.event.LoginUserInfoUpdateEvent
import com.chwl.core.utils.CoreLogger
import com.chwl.core.vip.bean.VipInfo
import com.chwl.library.common.util.doLog
import com.example.lib_utils.ktx.singleClick
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
@@ -387,12 +385,18 @@ class MeFragment : BaseFragment(), View.OnClickListener {
// view.loadUrl(url);
UserInfoDialog.showNewUserInfoDialog(
mContext,
AuthModel.get().currentUid
)
// UserInfoDialog.showNewUserInfoDialog(
// mContext,
// AuthModel.get().currentUid
// )
"特斯特特斯特".doLog()
UIHelper.showAddInfoAct(it)
// CountrySelectDialog().apply {
// isRegion = true
// }.show(it)
// "特斯特特斯特".doLog()
// LogUtil.d("特斯特特斯特")
}

View File

@@ -0,0 +1,8 @@
package com.chwl.app.ui.bean;
public class CountryBean {
public String name;
public String icon;
public int id;
public boolean checked;
}

View File

@@ -0,0 +1,102 @@
package com.chwl.app.ui.login.dialog
import android.view.Gravity
import android.view.WindowManager
import androidx.core.widget.doOnTextChanged
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.chwl.app.R
import com.chwl.app.base.BaseDialogFragment
import com.chwl.app.bindadapter.BaseBindingAdapter
import com.chwl.app.bindadapter.BaseBindingViewHolder
import com.chwl.app.databinding.DialogCountrySelectBinding
import com.chwl.app.databinding.ItemCountrySelectBinding
import com.chwl.app.ui.bean.CountryBean
import com.chwl.app.ui.utils.load
import com.chwl.library.common.util.ClickUtils.click
import com.chwl.library.common.util.setVis
import com.example.lib_utils.ktx.getColor
import com.netease.nim.uikit.common.util.sys.ScreenUtil
class CountrySelectDialog : BaseDialogFragment<DialogCountrySelectBinding>() {
override var width = WindowManager.LayoutParams.MATCH_PARENT
override var height = ScreenUtil.screenHeight / 2
override var dimAmount = 0.3f
override var gravity = Gravity.BOTTOM
private var mPosition = -1
lateinit var mAdapter: CountryAdapter
var isRegion = false
var mData = mutableListOf<CountryBean>()
override fun init() {
binding.titleBar.setTitle(R.string.layout_layout_phone_country_choose_01)
binding.titleBar.setTitleColor(R.color.color_313131.getColor())
binding.search.setVis(isRegion)
binding.searchIcon.setVis(isRegion)
mAdapter = CountryAdapter()
mAdapter.setOnItemClickListener { adapter, view, position ->
mAdapter.data?.getOrNull(mPosition)?.checked = false
mPosition = position
mAdapter.data?.getOrNull(position)?.checked = true
mAdapter.notifyDataSetChanged()
}
binding.rvList.layoutManager = LinearLayoutManager(context, RecyclerView.VERTICAL, false)
binding.rvList.adapter = mAdapter
binding.search.doOnTextChanged { text, start, before, count ->
getSearch(text)
}
mData.forEachIndexed{ index, countryBean ->
if (countryBean.checked) {
mPosition = index
}
}
mAdapter.setNewData(mData)
binding.confirm.click {
mAdapter.data?.getOrNull(mPosition)?.let {
mActionCallBack?.onAction(mPosition,it)
dismiss()
}
}
}
private fun getSearch(text: CharSequence?) {
if (text != null) {
val newData = mData.filter { it.name.contains(text,true) }
mAdapter.setNewData(newData)
} else {
mAdapter.setNewData(mData)
}
}
class CountryAdapter : BaseBindingAdapter<ItemCountrySelectBinding, CountryBean>() {
override fun convert(helper: BaseBindingViewHolder<ItemCountrySelectBinding>, data: CountryBean) {
helper.binding.let {
val position = helper.bindingAdapterPosition
it.select.setVis(data.checked)
it.icon.load(data.icon)
it.text.text = data.name
}
}
}
}

View File

@@ -1,48 +1,59 @@
package com.chwl.app.ui.login.fragment;
import android.annotation.SuppressLint;
import android.net.Uri;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.InputFilter;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RadioButton;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatTextView;
import com.chwl.app.ui.link.LinkHelper;
import com.chwl.app.ui.link.LinkIntent;
import com.google.android.material.textfield.TextInputEditText;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.sleepbot.datetimepicker.time.RadialPickerLayout;
import com.sleepbot.datetimepicker.time.TimePickerDialog;
import com.trello.rxlifecycle3.android.FragmentEvent;
import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;
import com.chwl.app.R;
import com.chwl.app.application.IReportConstants;
import com.chwl.app.application.ReportManager;
import com.chwl.app.base.BaseFragment;
import com.chwl.app.common.widget.dialog.DialogManager;
import com.chwl.app.ui.bean.CountryBean;
import com.chwl.app.ui.link.LinkHelper;
import com.chwl.app.ui.link.LinkIntent;
import com.chwl.app.ui.login.dialog.CountrySelectDialog;
import com.chwl.core.auth.AuthModel;
import com.chwl.core.auth.entity.ThirdUserInfo;
import com.chwl.core.bean.response.ServiceResult;
import com.chwl.core.initial.InitialModel;
import com.chwl.core.initial.bean.InitInfo;
import com.chwl.core.linked.LinkedModel;
import com.chwl.core.linked.bean.LinkedInfo;
import com.chwl.core.user.UserModel;
import com.chwl.core.user.bean.UserInfo;
import com.chwl.core.utils.net.RxHelper;
import com.chwl.library.common.glide.GlideUtils;
import com.chwl.library.common.util.OtherExtKt;
import com.chwl.library.net.rxnet.RxNet;
import com.chwl.library.utils.ResUtil;
import com.chwl.library.widget.text.DrawableTextView;
import com.example.lib_utils.ktx.ResourcesKtxKt;
import com.google.android.material.textfield.TextInputEditText;
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
import com.sleepbot.datetimepicker.time.RadialPickerLayout;
import com.sleepbot.datetimepicker.time.TimePickerDialog;
import com.trello.rxlifecycle3.android.FragmentEvent;
import java.util.HashMap;
import java.util.List;
import io.reactivex.Single;
import io.reactivex.SingleObserver;
import io.reactivex.disposables.Disposable;
import kotlin.Unit;
import kotlin.jvm.functions.Function1;
import me.shihao.library.XRadioGroup;
import retrofit2.http.GET;
/**
* @author jack
@@ -58,10 +69,13 @@ public class AddUserInfoFragment extends BaseFragment
private int gender = -1;
private XRadioGroup rgGender;
private RadioButton rbMale;
private String avatarUrl = "https://img.molistar.xyz/default_avatar_molistar.png";
private DrawableTextView mTvCountry;
private String avatarUrl = "https://img.molistar.xyz/default_avatar_molistar.png";
public static String INVITE_USER_CODE = "";
private List<CountryBean> mData;
@Override
public int getRootLayoutId() {
return R.layout.fragment_add_user_info;
@@ -76,6 +90,7 @@ public class AddUserInfoFragment extends BaseFragment
tvRandomNick = view.findViewById(R.id.tv_random_nick);
rgGender = view.findViewById(R.id.rg_gender);
rbMale = view.findViewById(R.id.rb_male);
mTvCountry = view.findViewById(R.id.tvCountry);
}
@Override
@@ -89,9 +104,11 @@ public class AddUserInfoFragment extends BaseFragment
gender = -1;
okBtn.setOnClickListener(this);
tvRandomNick.setOnClickListener(this);
mTvCountry.setOnClickListener(this);
addUserInfo();
addInviteCodeInfo();
InitialModel.get().init(false);
getCountryListData(false);
}
private void addUserInfo() {
@@ -178,6 +195,9 @@ public class AddUserInfoFragment extends BaseFragment
case R.id.tv_random_nick:
setRandomNick();
break;
case R.id.tvCountry:
showCountryDialog(mData);
break;
default:
break;
@@ -200,6 +220,72 @@ public class AddUserInfoFragment extends BaseFragment
});
}
//获取国家列表
private void getCountryListData(boolean needShowDialog) {
getCountryList().
compose(bindToLifecycle())
.doOnSuccess(countryBeans -> {
mData = countryBeans;
if (OtherExtKt.isVerify(countryBeans)) {
if (needShowDialog) {
showCountryDialog(countryBeans);
} else {
CountryBean checkData = null;
for (int i = 0; i < countryBeans.size(); i++) {
if (countryBeans.get(i).checked) {
checkData = countryBeans.get(i);
}
}
if (checkData != null) {
setCountryInfo(checkData);
} else {
mTvCountry.setDrawableEmpty(null,null,ResourcesKtxKt.getDrawable(R.drawable.base_ic_arrow_right),null);
OtherExtKt.doLog(" 没有默认 地区");
}
}
}
}).doOnError(throwable -> {
}).subscribe();
}
//弹出国家列表选择弹窗
private void showCountryDialog(List<CountryBean> list) {
if (OtherExtKt.isVerify(list)) {
CountrySelectDialog dialog = new CountrySelectDialog();
dialog.setRegion(true);
dialog.setMData(list);
dialog.setMActionCallBack((type, data) -> {
if (data != null && data instanceof CountryBean) {
setCountryInfo((CountryBean) data);
}
});
dialog.show(getContext());
} else {
getCountryListData(true);
}
}
private void setCountryInfo(CountryBean data) {
mTvCountry.setText(data.name);
mTvCountry.setTag(data);
GlideUtils.instance().downloadFromUrlToDrawable(getContext(), data.icon, new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
mTvCountry.setDrawableEmpty(resource,null, ResourcesKtxKt.getDrawable(R.drawable.base_ic_arrow_right),null);
return false;
}
});
}
private void commit(String nick, String avatarUrl, int gender, String shareCode) {
UserInfo userInfo = new UserInfo();
userInfo.setUid(AuthModel.get().getCurrentUid());
@@ -213,6 +299,16 @@ public class AddUserInfoFragment extends BaseFragment
return;
}
//不选国家不给注册
Object country = mTvCountry.getTag();
if (country != null && country instanceof CountryBean) {
userInfo.setRegionId(((CountryBean) country).id);
} else {
toast(ResUtil.getString(R.string.regionTips));
return;
}
getDialogManager().showProgressDialog(getContext(), ResUtil.getString(R.string.login_fragment_adduserinfofragment_08));
LinkedInfo linkedInfo = LinkedModel.get().getLinkedInfo();
@@ -261,4 +357,18 @@ public class AddUserInfoFragment extends BaseFragment
}
private Single<List<CountryBean>> getCountryList() {
return api.getCountryList()
.compose(RxHelper.handleBeanData())
.compose(RxHelper.handleSchedulers());
}
private final Api api = RxNet.create(Api.class);
public interface Api{
//获取国家列表
@GET("/regionInfo/listAll")
Single<ServiceResult<List<CountryBean>>> getCountryList();
}
}

View File

@@ -349,11 +349,18 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
//等级魅力值
setUserLevel(userInfo.getUserLevelVo());
//VIP铭牌
if (userInfo.getUserVipInfoVO() != null && !TextUtils.isEmpty(userInfo.getUserVipInfoVO().getNameplateUrl())){
setOfficialMask("",userInfo.getUserVipInfoVO().getNameplateUrl());
}
//工会长铭牌
if (userInfo.getGuildNameplateIcon() != null && !TextUtils.isEmpty(userInfo.getGuildNameplateIcon())){
setOfficialMaskGuild("",userInfo.getGuildNameplateIcon());
}
if (AuthModel.get().getCurrentUid() != userInfo.getUid()) {
PraiseModel.get().isPraised(AuthModel.get().getCurrentUid(), userInfo.getUid()).subscribe();
}
@@ -875,14 +882,27 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
private void setOfficialMask(String name, String icon) {
// if( userInfo.isCustomWord() && !TextUtils.isEmpty(icon)){
if(!TextUtils.isEmpty(icon)){
mBinding.inOfficialMask.setVisibility(View.VISIBLE);
ImageLoadUtils.loadImage(this, icon, mBinding.ivOfficialMask);
mBinding.inOfficialMask.getRoot().setVisibility(View.VISIBLE);
ImageLoadUtils.loadImage(this, icon, mBinding.inOfficialMask.ivOfficialMask);
}else if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(icon)) {
mBinding.inOfficialMask.setVisibility(View.VISIBLE);
mBinding.tvOfficialMask.setText(name);
ImageLoadUtils.loadImage(this, icon, mBinding.ivOfficialMask);
mBinding.inOfficialMask.getRoot().setVisibility(View.VISIBLE);
mBinding.inOfficialMask.tvOfficialMask.setText(name);
ImageLoadUtils.loadImage(this, icon, mBinding.inOfficialMask.ivOfficialMask);
} else {
mBinding.inOfficialMask.setVisibility(View.GONE);
mBinding.inOfficialMask.getRoot().setVisibility(View.GONE);
}
}
private void setOfficialMaskGuild(String name, String icon) {
// if( userInfo.isCustomWord() && !TextUtils.isEmpty(icon)){
if(!TextUtils.isEmpty(icon)){
mBinding.inOfficialMaskGuild.getRoot().setVisibility(View.VISIBLE);
ImageLoadUtils.loadImage(this, icon, mBinding.inOfficialMaskGuild.ivOfficialMask);
}else if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(icon)) {
mBinding.inOfficialMaskGuild.getRoot().setVisibility(View.VISIBLE);
mBinding.inOfficialMaskGuild.tvOfficialMask.setText(name);
ImageLoadUtils.loadImage(this, icon, mBinding.inOfficialMaskGuild.ivOfficialMask);
} else {
mBinding.inOfficialMaskGuild.getRoot().setVisibility(View.GONE);
}
}

View File

@@ -92,9 +92,17 @@ class MicSelectDialog : BaseDialogFragment<DialogMicSelectBinding>() {
}
})
binding.rvList.layoutManager = GridLayoutManager(context, 4, RecyclerView.VERTICAL, false)
val span = if (AvRoomDataManager.get().isHomeParty) 4 else 5
val gridLayoutManager = GridLayoutManager(context, span, RecyclerView.VERTICAL, false)
binding.rvList.layoutManager = gridLayoutManager
binding.rvList.adapter = mAdapter
//todo do gridLayoutManager.spanSizeLookup 要在recycleView设置完Adapter 后设置, 才保险
gridLayoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
override fun getSpanSize(position: Int): Int {
if (AvRoomDataManager.get().isHomeParty && position == 0) return gridLayoutManager.spanCount
return 1
}
}
binding.confirm.click {

View File

@@ -11,6 +11,7 @@ import android.content.ClipboardManager;
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
@@ -138,7 +139,6 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
//找到他处理
private ViewItem findHimView;
private String avatarBg;
private SkillPicsAdapter picsAdapter;
@@ -200,8 +200,9 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
setCanceledOnTouchOutside(true);
//设置全屏
WindowManager.LayoutParams params = getWindow().getAttributes();
params.width = OtherExtKt.toDP(330);
params.width = WindowManager.LayoutParams.MATCH_PARENT;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
params.gravity = Gravity.BOTTOM;
myUid = AuthModel.get().getCurrentUid();
@@ -271,6 +272,21 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
mBinding.follow.setVisibility(View.VISIBLE);
}
mBinding.ivUserCardWearMp4.post(new Runnable() {
@Override
public void run() {
int width = (int) (mBinding.ivUserCardWearMp4.getWidth() / 0.8636);
OtherExtKt.setViewWH(mBinding.ivUserCardWearMp4,width,mBinding.ivUserCardWearMp4.getHeight(),false);
}
});
mBinding.userCardWearLayout.post(new Runnable() {
@Override
public void run() {
int width = (int) (mBinding.userCardWearLayout.getWidth() / 0.8636);
OtherExtKt.setViewWH(mBinding.userCardWearLayout,width,mBinding.userCardWearLayout.getHeight(),false);
}
});
}
private void initAttentData() {
@@ -346,6 +362,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
private void addViewItems(List<ViewItem> buttons) {
if (ListUtils.isListEmpty(buttons)) {
mBinding.flexbox.setVisibility(View.GONE);
mBinding.flexboxLine.setVisibility(View.GONE);
return;
}
mBinding.flexbox.post(new Runnable() {
@@ -353,8 +370,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
public void run() {
// int dialogWidth = flexbox.getMeasuredWidth() == 0 ? ScreenUtil.dip2px(285) : flexbox.getMeasuredWidth();
int dialogWidth = mBinding.flexbox.getWidth();
int itemWidth = dialogWidth / 4;
if (buttons.size() < 4) itemWidth = dialogWidth / 3;
mBinding.flexbox.removeAllViews();
//底部item不添加到网格
List<ViewItem> bottomList = new ArrayList<>();
@@ -362,7 +378,8 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
ViewItem buttonItem = buttons.get(i);
if (buttonItem.mButtonType == ViewItem.BUTTON_TYPE_NORMAL) {
View item = LayoutInflater.from(getContext()).inflate(R.layout.dialog_user_card_item_new, mBinding.flexbox, false);
item.getLayoutParams().width = itemWidth;
// item.getLayoutParams().width = OtherExtKt.toDP(38);
// item.getLayoutParams().height = OtherExtKt.toDP(38);
ImageView imageView = item.findViewById(R.id.image);
imageView.setImageResource(buttonItem.imgRes);
if (buttonItem.isFindTa) {
@@ -385,8 +402,10 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
}
if (mBinding.flexbox.getChildCount() == 0) {
mBinding.flexbox.setVisibility(View.GONE);
mBinding.flexboxLine.setVisibility(View.GONE);
} else {
mBinding.flexbox.setVisibility(View.VISIBLE);
mBinding.flexboxLine.setVisibility(View.VISIBLE);
}
}
});
@@ -489,6 +508,13 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
setNamePlateVip(null);
}
//工会长铭牌
if (userInfo.getGuildNameplateIcon() != null && !TextUtils.isEmpty(userInfo.getGuildNameplateIcon())) {
setNameplateGuild(userInfo.getGuildNameplateIcon());
} else {
setNameplateGuild(null);
}
//铭牌
if (!TextUtils.isEmpty(userInfo.getNameplatePic()) && !TextUtils.isEmpty(userInfo.getNameplateWord())) {
setNamePlate(userInfo.getNameplatePic(), userInfo.getNameplateWord());
@@ -588,6 +614,15 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
}
}
private void setNameplateGuild(String nameplatePic) {
if (!TextUtils.isEmpty(nameplatePic)) {
mBinding.inNameplateGuild.getRoot().setVisibility(View.VISIBLE);
ImageLoadUtils.loadImage(context, nameplatePic, mBinding.inNameplateGuild.ivOfficialMask);
} else {
mBinding.inNameplateGuild.getRoot().setVisibility(View.GONE);
}
}
private void setOfficialMask(String name, String icon) {
if (!TextUtils.isEmpty(name) && !TextUtils.isEmpty(icon)) {
mBinding.inOfficialMask.setVisibility(View.VISIBLE);
@@ -642,39 +677,10 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
if (userInfo.getInfoCardVo() != null) {
VipUtil.INSTANCE.setUserBg(userInfo.getInfoCardVo(), mBinding.userCardWearLayout, callBack -> {
if (callBack) {
mBinding.transitionMask.setVisibility(View.INVISIBLE);
mBinding.ivAvatarBg.setVisibility(View.INVISIBLE);
} else {
if (avatarBg == null || !avatarBg.equals(userInfo.getAvatar())) {
avatarBg = userInfo.getAvatar();
ImageLoadUtils.loadImageWithBlur(context, userInfo.getAvatar(), mBinding.ivAvatarBg, 10, 1);
mBinding.transitionMask.setVisibility(View.VISIBLE);
mBinding.ivAvatarBg.setVisibility(View.VISIBLE);
}
}
return null;
});
} else {
mBinding.ivAvatarBg.setVisibility(View.VISIBLE);
if (vipInfo != null && !vipInfo.getUserCardBG().isEmpty()) {
// findViewById(R.id.transition_mask).setVisibility(View.GONE);
mBinding.ivAvatarBg.setScaleType(ImageView.ScaleType.FIT_XY);
ImageLoadUtils.loadImage(
context,
vipInfo.getUserCardBG().replace("\n", ""),
mBinding.ivAvatarBg,
R.drawable.default_avatar
);
} else {
if (avatarBg == null || !avatarBg.equals(userInfo.getAvatar())) {
avatarBg = userInfo.getAvatar();
mBinding.ivAvatarBg.setScaleType(ImageView.ScaleType.CENTER);
ImageLoadUtils.loadImageWithBlur(context, userInfo.getAvatar(), mBinding.ivAvatarBg, 10, 1);
}
}
//资料卡装扮
if (!TextUtils.isEmpty(userInfo.getUserInfoCardPic())) {
mBinding.ivUserCardWearMp4.post(() -> {
@@ -687,7 +693,22 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
});
} else {
mBinding.ivUserCardWear.setImageDrawable(null);
mBinding.ivUserCardWearMp4.setVisibility(View.GONE);
mBinding.ivUserCardWearMp4.setVisibility(View.INVISIBLE);
}
if (vipInfo != null && !vipInfo.getUserCardBG().isEmpty()) {
mBinding.ivAvatarBg.setScaleType(ImageView.ScaleType.FIT_XY);
ImageLoadUtils.loadImage(
context,
vipInfo.getUserCardBG().replace("\n", ""),
mBinding.ivAvatarBg,
R.drawable.transparent_draw
);
mBinding.ivAvatarBg.setVisibility(View.VISIBLE);
mBinding.transitionMask.setVisibility(View.VISIBLE);
} else {
mBinding.transitionMask.setVisibility(View.INVISIBLE);
mBinding.ivAvatarBg.setVisibility(View.INVISIBLE);
}
}
@@ -1020,14 +1041,13 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
private ViewItem createInviteMicItem() {
return new ViewItem(getString(R.string.ui_widget_userinfodialog_028),
R.drawable.user_card_ic_open_mic,
R.drawable.user_card_ic_up_mic,
true,
() -> {
//todo do 弹起 麦位选择布局
MicSelectDialog dialog = new MicSelectDialog();
dialog.setMActionCallBack(new BaseDialogFragment.Action() {
@Override
public <D> void onAction(int type, @Nullable D data) {
public void onAction(int type, @Nullable Object data) {
dismiss();
}
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1004 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 925 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 825 B

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 933 B

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 922 B

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 854 B

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 988 B

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<size android:width="13dp" android:height="13dp"/>
</shape>

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="16dp" />
<solid android:color="#f4f4f4" />
</shape>

View File

@@ -203,42 +203,23 @@
android:visibility="visible"
tools:src="@drawable/ic_user_charm_level" />
<androidx.constraintlayout.widget.ConstraintLayout
<include
android:id="@+id/inOfficialMask"
layout="@layout/layout_official_mask"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_height="@dimen/dp_20"
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_4"
android:visibility="visible"
tools:visibility="visible">
android:visibility="visible" />
<ImageView
android:id="@+id/ivOfficialMask"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:adjustViewBounds="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@drawable/ic_temp_official_mask" />
<TextView
android:id="@+id/tvOfficialMask"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="22dp"
android:layout_marginEnd="8dp"
android:gravity="center"
android:includeFontPadding="false"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="11sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/ivOfficialMask"
app:layout_constraintStart_toStartOf="@id/ivOfficialMask"
app:layout_constraintTop_toTopOf="parent"
tools:text="@string/layout_activity_user_info_02" />
</androidx.constraintlayout.widget.ConstraintLayout>
<include
android:id="@+id/inOfficialMaskGuild"
layout="@layout/layout_official_mask"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_20"
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_4"
android:visibility="visible" />
<ImageView
android:id="@+id/ivChargeAgent"

View File

@@ -0,0 +1,68 @@
<?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"
android:background="@drawable/bg_ffffff_topr16"
tools:background="@color/black">
<com.chwl.app.base.TitleBar
android:id="@+id/title_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/confirm"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingHorizontal="17dp"
android:paddingVertical="5dp"
android:text="@string/ok"
android:textColor="#ff8c03"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/title_bar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/title_bar" />
<EditText
android:id="@+id/search"
android:layout_width="match_parent"
android:layout_height="34dp"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="12dp"
android:background="@drawable/shape_f4f4f4_radius_16dp"
android:gravity="center_vertical"
android:hint="@string/search"
android:inputType="text"
android:paddingHorizontal="36dp"
android:textColor="@color/color_313131"
android:textColorHint="#AFB1B3"
android:textSize="12sp"
app:layout_constraintTop_toBottomOf="@id/title_bar" />
<ImageView
android:id="@+id/searchIcon"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginStart="11dp"
android:src="@drawable/ic_send_search"
app:layout_constraintBottom_toBottomOf="@+id/search"
app:layout_constraintStart_toStartOf="@+id/search"
app:layout_constraintTop_toTopOf="@+id/search"
app:tint="#AFB1B3" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvList"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="12dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/search" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -12,7 +12,6 @@
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_gravity="center_horizontal|top"
android:layout_marginHorizontal="13dp"
android:layout_marginBottom="12dp" />
android:layout_marginHorizontal="7dp" />
</FrameLayout>

View File

@@ -2,41 +2,43 @@
<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="330dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_gravity="bottom"
android:background="@color/transparent"
android:clipChildren="false"
android:clipToPadding="false"
tools:background="#2233">
<!--
userCardWearLayout
iv_avatar_bg
transition_mask
iv_user_card_wear
iv_user_card_wear_mp4
-->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/userCarRootLayout"
android:layout_width="285dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="85dp"
android:background="@drawable/bg_ffffff_r16"
android:clipChildren="false"
android:clipToPadding="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<!--白色背景-->
<com.chwl.library.widget.text.DrawableTextView
android:id="@+id/defBg"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginTop="64dp"
app:dt_drawableType="shape"
app:dt_leftTopRadius="16dp"
app:dt_rightTopRadius="16dp"
app:dt_soildColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="@id/fl_avatar_layout" />
<!-- 用户装扮资料卡-->
<FrameLayout
android:id="@+id/userCardWearLayout"
android:layout_width="330dp"
android:layout_height="250dp"
android:layout_marginTop="-85dp"
android:layout_width="match_parent"
android:layout_height="328dp"
android:clipChildren="false"
android:clipToPadding="false"
android:visibility="invisible"
@@ -50,27 +52,27 @@
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/iv_avatar_bg"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="-48dp"
android:layout_height="180dp"
android:minHeight="180dp"
android:scaleType="center"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@id/fl_avatar_layout"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintTop_toTopOf="@id/defBg"
app:riv_corner_radius_top_left="16dp"
app:riv_corner_radius_top_right="16dp"
tools:contentDescription="@string/layout_dialog_user_info_02"
tools:src="@drawable/bg_login"
tools:visibility="visible" />
<com.coorchice.library.SuperTextView
<com.chwl.library.widget.text.DrawableTextView
android:id="@+id/transition_mask"
android:layout_width="match_parent"
android:layout_height="0dp"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="@+id/iv_avatar_bg"
app:layout_constraintTop_toTopOf="@+id/iv_avatar_bg"
app:solid="@color/black_transparent_10"
app:dt_soildColor="@color/white_transparent_10"
app:dt_rightTopRadius="16dp"
app:dt_leftTopRadius="16dp"
tools:visibility="visible" />
@@ -78,10 +80,9 @@
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/iv_user_card_wear"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_height="180dp"
android:scaleType="fitXY"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="@+id/iv_avatar_bg"
app:layout_constraintTop_toTopOf="@+id/iv_avatar_bg"
app:riv_corner_radius_top_left="16dp"
app:riv_corner_radius_top_right="16dp"
@@ -90,15 +91,14 @@
<com.tencent.qgame.animplayer.AnimView
android:id="@+id/iv_user_card_wear_mp4"
android:layout_width="330dp"
android:layout_width="match_parent"
android:layout_height="180dp"
android:layout_marginTop="20dp"
android:clipChildren="false"
android:clipToPadding="false"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/userCardWearLayout"
app:layout_constraintTop_toTopOf="@+id/fl_avatar_layout"
tools:background="@drawable/bg_user_card_wear"
tools:visibility="visible" />
@@ -107,22 +107,22 @@
android:id="@+id/fl_avatar_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="27dp"
android:layout_marginTop="46dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/avatar"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_width="91dp"
android:layout_height="91dp"
android:layout_gravity="center"
android:src="@drawable/default_avatar" />
<com.chwl.library.widget.SVGAView
android:id="@+id/iv_avatar_head_wear"
android:layout_width="105dp"
android:layout_height="105dp"
android:layout_width="127dp"
android:layout_height="127dp"
android:layout_gravity="center" />
</FrameLayout>
@@ -131,7 +131,7 @@
android:id="@+id/infoLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/fl_avatar_layout"
android:layout_marginTop="5dp"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="@+id/fl_avatar_layout"
@@ -212,8 +212,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_4"
android:src="@drawable/ic_room_user_copy"
app:tint="#7b7b7d" />
android:src="@drawable/ic_room_user_copy" />
</LinearLayout>
@@ -223,6 +222,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:gravity="center_vertical"
android:orientation="horizontal"
tools:contentDescription="@string/layout_dialog_user_info_04">
@@ -275,7 +275,7 @@
android:includeFontPadding="false"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="11dp"
android:textSize="11sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/iv_official_mask"
app:layout_constraintStart_toStartOf="@id/iv_official_mask"
@@ -304,6 +304,7 @@
tools:src="@mipmap/ic_user_level"
tools:visibility="visible" />
<include
android:id="@+id/inNameplateVip"
layout="@layout/layout_official_mask"
@@ -313,6 +314,17 @@
android:layout_marginEnd="@dimen/dp_2"
android:visibility="visible" />
<include
android:id="@+id/inNameplateGuild"
layout="@layout/layout_official_mask"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_20"
android:layout_gravity="center"
android:layout_marginEnd="@dimen/dp_2"
android:visibility="visible" />
<include
android:id="@+id/in_nameplate"
layout="@layout/layout_official_mask"
@@ -329,7 +341,7 @@
android:id="@+id/ll_family"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:layout_marginTop="6dp"
android:orientation="horizontal"
android:visibility="gone"
tools:visibility="visible">
@@ -358,7 +370,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="4dp"
android:layout_marginTop="6dp"
android:layout_marginEnd="12dp"
android:layout_marginBottom="@dimen/dp_8" />
@@ -370,14 +382,14 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="26dp"
android:layout_marginTop="12dp"
android:layout_marginTop="16dp"
android:orientation="horizontal"
app:layout_constraintTop_toBottomOf="@id/infoLayout">
<ImageView
android:id="@+id/gift"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/icon_send_gift_ture"
android:visibility="gone"
app:layout_constraintEnd_toStartOf="@+id/send"
@@ -386,8 +398,8 @@
<ImageView
android:id="@+id/send"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_private_chat"
android:visibility="gone"
app:layout_constraintEnd_toStartOf="@id/aite"
@@ -396,8 +408,8 @@
<ImageView
android:id="@+id/aite"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/icon_dialog_ait"
android:visibility="gone"
app:layout_constraintEnd_toStartOf="@id/follow"
@@ -406,8 +418,8 @@
<ImageView
android:id="@+id/follow"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/icon_dialog_cancel_attent"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
@@ -417,28 +429,41 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.flexbox.FlexboxLayout
android:id="@+id/flexbox"
<HorizontalScrollView
android:id="@+id/flexboxLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="24dp"
android:minWidth="285dp"
app:flexWrap="wrap"
android:overScrollMode="never"
android:paddingHorizontal="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnLayout"
tools:layout_height="20dp" />
tools:layout_height="20dp">
<LinearLayout
android:id="@+id/flexbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal"
android:paddingVertical="10dp"
tools:layout_height="20dp" />
</HorizontalScrollView>
<View
android:id="@+id/flexboxLine"
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_marginTop="-12dp"
android:background="#e4e4e4"
app:layout_constraintTop_toTopOf="@id/flexbox" />
app:layout_constraintTop_toTopOf="@id/flexboxLayout" />
<com.coorchice.library.SuperTextView
android:id="@+id/tv_select_him"
android:layout_width="match_parent"
android:layout_height="25dp"
android:layout_height="36dp"
android:layout_gravity="center_horizontal"
android:layout_marginStart="70dp"
android:layout_marginTop="10dp"
@@ -449,27 +474,28 @@
android:textColor="#FFFEFE"
android:textSize="13sp"
android:visibility="gone"
app:corner="15dp"
app:corner="117dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/flexbox"
app:layout_constraintTop_toBottomOf="@+id/flexboxLayout"
app:shaderEnable="true"
app:shaderEndColor="#FA4771"
app:shaderEndColor="#DB58FF"
app:shaderMode="leftToRight"
app:shaderStartColor="#FA7187"
app:shaderStartColor="#FF5778"
tools:visibility="visible" />
<TextView
<ImageView
android:id="@+id/tv_report"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/layout_dialog_user_info_06"
android:textColor="@color/white"
android:textSize="@dimen/sp_12"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:layout_width="34dp"
android:layout_height="34dp"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
android:padding="5dp"
android:src="@drawable/icon_user_card_report"
app:layout_constraintEnd_toEndOf="@+id/defBg"
app:layout_constraintTop_toTopOf="@+id/defBg" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -169,6 +169,38 @@
app:layout_constraintTop_toTopOf="@id/view_code_bg"
tools:ignore="SpUsage" />
<com.chwl.library.widget.text.DrawableTextView
android:id="@+id/tvCountry"
android:layout_width="0dp"
android:layout_height="@dimen/dp_52"
android:layout_marginTop="@dimen/dp_20"
android:layout_weight="1"
android:drawablePadding="@dimen/dp_8"
android:gravity="center_vertical"
android:hint="@string/layout_layout_phone_country_choose_01"
android:lines="1"
android:paddingStart="@dimen/dp_24"
android:paddingEnd="@dimen/dp_20"
android:singleLine="true"
android:textColor="@color/text_title_color"
android:textColorHint="#B4B7BD"
android:textSize="@dimen/dp_14"
app:dt_radius="26dp"
app:dt_soildColor="@color/white"
app:dt_drawableLeftHeight="@dimen/dp_18"
app:dt_drawableLeftWidth="@dimen/dp_24"
app:dt_drawableRightHeight="@dimen/dp_21"
app:dt_drawableRightSrc="@drawable/base_ic_arrow_right"
app:dt_drawableRightWidth="@dimen/dp_21"
app:dt_drawableType="shape"
app:layout_constraintEnd_toEndOf="@id/view_code_bg"
app:layout_constraintStart_toStartOf="@+id/view_code_bg"
app:layout_constraintTop_toBottomOf="@+id/tv_code"
app:dt_drawableLeftSrc="@color/transparent"
tools:ignore="SpUsage" />
<Button
android:id="@+id/ok_btn"
android:layout_width="match_parent"
@@ -182,7 +214,7 @@
android:textSize="@dimen/sp_16"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/view_code_bg"
app:layout_constraintTop_toBottomOf="@+id/tvCountry"
tools:ignore="SpUsage" />
<TextView

View File

@@ -39,9 +39,9 @@
android:id="@+id/iv_resource0"
android:layout_width="@dimen/dp_0"
android:layout_height="0dp"
android:src="@drawable/home_rank_bg"
android:layout_marginStart="@dimen/dp_14"
android:scaleType="centerCrop"
android:src="@drawable/home_rank_bg"
android:visibility="gone"
app:layout_constraintDimensionRatio="170:82"
app:layout_constraintEnd_toStartOf="@+id/iv_resource1"
@@ -82,7 +82,7 @@
android:id="@+id/banner_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginHorizontal="@dimen/dp_14"
android:layout_marginHorizontal="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_9"
android:background="@drawable/base_shape_negative_5dp"
android:visibility="gone"
@@ -102,25 +102,54 @@
</com.google.android.material.appbar.AppBarLayout>
<LinearLayout
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<com.chwl.app.ui.widget.magicindicator.MagicIndicator
android:id="@+id/magic_indicator"
<com.chwl.library.widget.tab.SmartTabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_40"
android:layout_marginTop="@dimen/dp_8"
android:layout_marginEnd="@dimen/dp_12" />
android:layout_height="30dp"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="9dp"
app:stl_defaultTabBackground="@color/transparent"
app:stl_dividerThickness="0dp"
app:stl_indicatorWidth="0dp"
app:stl_overlineThickness="0dp"
app:stl_underlineThickness="0dp" />
<com.chwl.library.widget.text.DrawableTextView
android:id="@+id/tabLayoutMarks"
android:layout_width="35dp"
android:layout_height="30dp"
android:layout_gravity="end"
app:dt_drawableType="shape"
app:dt_startColor="@color/transparent"
app:dt_endColor="@color/black"
android:layout_marginTop="9dp"
android:layout_marginEnd="15dp" />
<ImageView
android:id="@+id/tabLayoutMore"
android:layout_width="34dp"
android:layout_height="34dp"
app:tint="@color/black"
android:src="@drawable/icon_date_arrow"
android:layout_gravity="end"
android:layout_marginTop="6dp"
android:layout_marginEnd="10dp" />
<FrameLayout
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/dp_8" />
</LinearLayout>
android:layout_marginTop="50dp" />
</FrameLayout>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>

View File

@@ -0,0 +1,47 @@
<?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"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools">
<ImageView
android:id="@+id/icon"
android:layout_width="29dp"
android:layout_height="22dp"
android:src="@drawable/default_avatar"
app:layout_constraintBottom_toBottomOf="@+id/text"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/text" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_marginStart="12dp"
android:gravity="center_vertical"
android:textColor="@color/color_313131"
android:textSize="15sp"
android:textStyle="bold"
android:text="loading..."
app:layout_constraintStart_toEndOf="@id/icon"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/select"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/text"
app:layout_constraintBottom_toBottomOf="@+id/text"
android:src="@drawable/ic_pay_selected"
android:visibility="gone"
tools:visibility="visible"
android:layout_width="25dp"
android:layout_height="25dp"/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#e4e4e4"
app:layout_constraintBottom_toBottomOf="@+id/text" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="46dp"
android:layout_height="30dp"
android:layout_marginEnd="12dp">
<com.chwl.library.widget.text.DrawableTextView
android:id="@+id/bg"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:dt_drawableType="shape"
app:dt_radius="25dp"
app:dt_soildColor="@color/white"
app:dt_startColor="@color/white"
app:dt_strikeWidth="1dp" />
<ImageView
android:id="@+id/icon"
android:layout_width="36dp"
android:layout_height="22dp"
android:layout_gravity="center"
android:src="@drawable/default_avatar" />
</FrameLayout>

View File

@@ -5368,6 +5368,9 @@ You cannot join again within 24 hours after leaving</string>
<string name="forbidTime">%s hours</string>
<string name="ageLimitHint">APP restricts registration to users under 18 years old.</string>
<string name="regionTips">必须选择国家/地区</string>
</resources>