diff --git a/app/src/main/java/com/yizhuan/erban/decoration/adapter/MyCarAdapter.java b/app/src/main/java/com/yizhuan/erban/decoration/adapter/MyCarAdapter.java index fb0a92965..ee8bbc6a8 100644 --- a/app/src/main/java/com/yizhuan/erban/decoration/adapter/MyCarAdapter.java +++ b/app/src/main/java/com/yizhuan/erban/decoration/adapter/MyCarAdapter.java @@ -1,6 +1,5 @@ package com.yizhuan.erban.decoration.adapter; -import android.support.v4.content.ContextCompat; import android.view.View; import android.widget.ImageView; import android.widget.TextView; @@ -10,7 +9,6 @@ import com.yizhuan.erban.R; import com.yizhuan.erban.bindadapter.BaseAdapter; import com.yizhuan.erban.bindadapter.BindingViewHolder; import com.yizhuan.erban.databinding.ItemCarGarageNormalBinding; -import com.yizhuan.xchat_android_core.decoration.bean.BaseDecoration; import com.yizhuan.xchat_android_core.decoration.car.bean.CarInfo; import com.yizhuan.xchat_android_library.utils.ListUtils; @@ -45,27 +43,10 @@ public class MyCarAdapter extends BaseAdapter { int status = item.getStatus(); boolean canUse; - binding.tvCarPrice.setText(item.getPriceStr()); if (remainingDay >= 0 && status == CarInfo.STATUS_USER_CAN_USE) { - // 一定是续费按钮 - binding.tvBuy.setVisibility(View.VISIBLE); - binding.tvBuy.setText("续费"); - binding.tvBuy.setBackgroundResource(R.drawable.bg_my_head_renew); - canUse = true; } else { canUse = false; - // 根据状态显示倒计时 - // 根据状态判断是购买按钮还是隐藏按钮 - if (status == CarInfo.STATUS_OFF_SHELF) { - // 隐藏购买按钮 - binding.tvBuy.setVisibility(View.GONE); - } else if (status == CarInfo.STATUS_OUT_OF_DATE) { - // 续费或购买按钮 - binding.tvBuy.setVisibility(View.VISIBLE); - binding.tvBuy.setText("购买"); - binding.tvBuy.setBackgroundResource(R.drawable.bg_my_head_buy); - } } // 时间 @@ -81,16 +62,8 @@ public class MyCarAdapter extends BaseAdapter { setUseButton(binding.tvUsed, canUse, item.isUsing()); - updateTag(item, binding.ivTag, binding.tvBuy); + updateTag(item, binding.ivTag); - if (status == CarInfo.STATUS_OFF_SHELF) { - binding.tvNoSeal.setVisibility(View.VISIBLE); - binding.tvNoSeal.setText("已下架"); - } else if (CarInfo.TAG_TYPE_LIMIT == item.getLabelType() || CarInfo.TAG_TYPE_EXCLUSIVE == item.getLabelType()) { - binding.tvNoSeal.setVisibility(View.VISIBLE); - binding.tvNoSeal.setText("暂不出售"); - } else - binding.tvNoSeal.setVisibility(View.GONE); } private void setUseButton(TextView tvUsed, boolean canUse, boolean isUsing) { @@ -114,27 +87,21 @@ public class MyCarAdapter extends BaseAdapter { } - private void updateTag(CarInfo carInfo, ImageView ivTag, TextView tvBuy) { + private void updateTag(CarInfo carInfo, ImageView ivTag) { if (CarInfo.TAG_TYPE_NORMAL == carInfo.getLabelType()) { ivTag.setVisibility(View.GONE); - } else if (CarInfo.TAG_TYPE_NEW == carInfo.getLabelType()) { ivTag.setVisibility(View.VISIBLE); ivTag.setImageResource(R.drawable.ic_mark_new); - } else if (CarInfo.TAG_TYPE_DISCOUNT == carInfo.getLabelType()) { ivTag.setVisibility(View.VISIBLE); ivTag.setImageResource(R.drawable.ic_mark_discount); - } else if (CarInfo.TAG_TYPE_LIMIT == carInfo.getLabelType()) { ivTag.setVisibility(View.VISIBLE); ivTag.setImageResource(R.drawable.ic_mark_limit); - tvBuy.setVisibility(View.GONE); - } else if (CarInfo.TAG_TYPE_EXCLUSIVE == carInfo.getLabelType()) { ivTag.setVisibility(View.VISIBLE); ivTag.setImageResource(R.drawable.ic_mark_exclusive); - tvBuy.setVisibility(View.GONE); } } diff --git a/app/src/main/java/com/yizhuan/erban/decoration/adapter/MyHeadWearAdapter.java b/app/src/main/java/com/yizhuan/erban/decoration/adapter/MyHeadWearAdapter.java index 42223cf07..9508c3b3e 100644 --- a/app/src/main/java/com/yizhuan/erban/decoration/adapter/MyHeadWearAdapter.java +++ b/app/src/main/java/com/yizhuan/erban/decoration/adapter/MyHeadWearAdapter.java @@ -24,7 +24,6 @@ public class MyHeadWearAdapter extends BaseAdapter { super.convert(helper, item); ItemMyHeadWearBinding binding = (ItemMyHeadWearBinding) helper.getBinding(); NobleUtil.loadHeadWear(item.getPic(), binding.ivCarCover); - helper.addOnClickListener(R.id.tv_buy); helper.addOnClickListener(R.id.tv_used); if (item.getLabelType() == HeadWearInfo.LABEL_TYPE_NORMAL) { @@ -56,34 +55,7 @@ public class MyHeadWearAdapter extends BaseAdapter { } else { binding.tvUsed.setVisibility(View.VISIBLE); binding.tvUsed.setEnabled(true); - } - if (!item.isEnableStatus()) { - binding.tvBuy.setVisibility(View.GONE); - binding.tvNoSeal.setVisibility(View.VISIBLE); - binding.tvNoSeal.setText("已下架"); - - } else if (item.getLabelType() == HeadWearInfo.LABEL_TYPE_NORMAL) { - binding.tvBuy.setVisibility(View.VISIBLE); - binding.tvNoSeal.setVisibility(View.GONE); - - } else if (HeadWearInfo.LABEL_TYPE_NEW == item.getLabelType()) { - binding.tvBuy.setVisibility(View.VISIBLE); - binding.tvNoSeal.setVisibility(View.GONE); - - } else if (HeadWearInfo.LABEL_TYPE_DISCOUNT == item.getLabelType()) { - binding.tvBuy.setVisibility(View.VISIBLE); - binding.tvNoSeal.setVisibility(View.GONE); - - } else if (HeadWearInfo.LABEL_TYPE_LIMIT == item.getLabelType()) { - binding.tvBuy.setVisibility(View.GONE); - binding.tvNoSeal.setText("暂不出售"); - binding.tvNoSeal.setVisibility(View.VISIBLE); - - } else if (HeadWearInfo.LABEL_TYPE_EXCLUSIVE == item.getLabelType()) { - binding.tvBuy.setVisibility(View.GONE); - binding.tvNoSeal.setText("暂不出售"); - binding.tvNoSeal.setVisibility(View.VISIBLE); } // 日期展示 @@ -93,7 +65,6 @@ public class MyHeadWearAdapter extends BaseAdapter { binding.tvCounters.setText(mContext.getString(R.string.decoration_remainder) + item.getExpireDays() + mContext.getString(R.string.day)); } - binding.tvCarPrice.setText(item.getPriceStr()); } } diff --git a/app/src/main/java/com/yizhuan/erban/decoration/adapter/MyNamePlateAdapter.java b/app/src/main/java/com/yizhuan/erban/decoration/adapter/MyNamePlateAdapter.java index 1a5f873b3..213e34a0e 100644 --- a/app/src/main/java/com/yizhuan/erban/decoration/adapter/MyNamePlateAdapter.java +++ b/app/src/main/java/com/yizhuan/erban/decoration/adapter/MyNamePlateAdapter.java @@ -4,163 +4,51 @@ import android.view.View; import android.widget.ImageView; import android.widget.TextView; -import com.netease.nim.uikit.support.glide.GlideApp; +import com.chad.library.adapter.base.BaseQuickAdapter; +import com.chad.library.adapter.base.BaseViewHolder; import com.yizhuan.erban.R; -import com.yizhuan.erban.bindadapter.BaseAdapter; -import com.yizhuan.erban.bindadapter.BindingViewHolder; -import com.yizhuan.erban.databinding.ItemCarGarageNormalBinding; -import com.yizhuan.xchat_android_core.decoration.car.bean.CarInfo; -import com.yizhuan.xchat_android_library.utils.ListUtils; +import com.yizhuan.xchat_android_core.decoration.nameplate.bean.NamePlateInfo; +import com.yizhuan.xchat_android_core.noble.NobleUtil; /** * Created by yudi * on 2018/3/2. */ -public class MyNamePlateAdapter extends BaseAdapter { +public class MyNamePlateAdapter extends BaseQuickAdapter { + + public MyNamePlateAdapter() { + super(R.layout.item_nameplate_normal); - public MyNamePlateAdapter(int layoutResId, int brid) { - super(layoutResId, brid); } + @Override - protected void convert(BindingViewHolder helper, CarInfo item) { - super.convert(helper, item); - - ItemCarGarageNormalBinding binding = (ItemCarGarageNormalBinding) helper.getBinding(); - - GlideApp.with(binding.ivCarCover) - .load(item.getPic()) - .dontAnimate() - .dontTransform() - .fitCenter() - .into(binding.ivCarCover); - - helper.addOnClickListener(R.id.tv_buy); + protected void convert(BaseViewHolder helper, NamePlateInfo.NameplateListBean item) { helper.addOnClickListener(R.id.tv_used); - - // 倒计时 - int remainingDay = item.getRemainingDay(); - int status = item.getStatus(); - boolean canUse; - - binding.tvCarPrice.setText(item.getPriceStr()); - if (remainingDay >= 0 && status == CarInfo.STATUS_USER_CAN_USE) { - // 一定是续费按钮 - binding.tvBuy.setVisibility(View.VISIBLE); - binding.tvBuy.setText("续费"); - binding.tvBuy.setBackgroundResource(R.drawable.bg_my_head_renew); - - canUse = true; - } else { - canUse = false; - // 根据状态显示倒计时 - // 根据状态判断是购买按钮还是隐藏按钮 - if (status == CarInfo.STATUS_OFF_SHELF) { - // 隐藏购买按钮 - binding.tvBuy.setVisibility(View.GONE); - } else if (status == CarInfo.STATUS_OUT_OF_DATE) { - // 续费或购买按钮 - binding.tvBuy.setVisibility(View.VISIBLE); - binding.tvBuy.setText("购买"); - binding.tvBuy.setBackgroundResource(R.drawable.bg_my_head_buy); - } - } - - // 时间 - if (remainingDay >= 0 && status == CarInfo.STATUS_USER_CAN_USE) { - binding.tvCounters.setText(String.format(binding.tvCounters.getResources().getString(R.string.decoration_status_wrapper), - binding.tvCounters.getResources().getString(R.string.decoration_remainder) + remainingDay + "天")); - } else { - if (status == CarInfo.STATUS_OFF_SHELF || status == CarInfo.STATUS_OUT_OF_DATE) { - binding.tvCounters.setText(String.format(binding.tvCounters.getResources().getString(R.string.decoration_status_wrapper), - binding.tvCounters.getResources().getString(R.string.past_due))); - } - } + //铭牌名称 + helper.setText(R.id.tv_nameplate_name,item.getNameplateName()); + //铭牌图标 + ImageView ivCover = helper.getView(R.id.iv_nameplate_cover); + NobleUtil.loadHeadWear(item.getNameplateImage(),ivCover); - setUseButton(binding.tvUsed, canUse, item.isUsing()); - updateTag(item, binding.ivTag, binding.tvBuy); - - if (status == CarInfo.STATUS_OFF_SHELF) { - binding.tvNoSeal.setVisibility(View.VISIBLE); - binding.tvNoSeal.setText("已下架"); - } else if (CarInfo.TAG_TYPE_LIMIT == item.getLabelType() || CarInfo.TAG_TYPE_EXCLUSIVE == item.getLabelType()) { - binding.tvNoSeal.setVisibility(View.VISIBLE); - binding.tvNoSeal.setText("暂不出售"); - } else - binding.tvNoSeal.setVisibility(View.GONE); - } - - private void setUseButton(TextView tvUsed, boolean canUse, boolean isUsing) { - - if (!canUse) { + //使用按钮 + TextView tvUsed = helper.getView(R.id.tv_used); + tvUsed.setBackgroundResource(item.isUsing()?R.drawable.bg_my_head_invalid:R.drawable.bg_my_head_buy); + tvUsed.setTextColor(item.isUsing()?mContext.getResources().getColor(R.color.color_333333):mContext.getResources().getColor(R.color.white)); + tvUsed.setText(item.isUsing()?R.string.label_used:R.string.label_can_use); + if (item.isIsExpired()) { // 过期 + // 日期展示 + helper.setText(R.id.tv_counters,mContext.getString(R.string.past_due)); tvUsed.setVisibility(View.GONE); - tvUsed.setText("使用"); - tvUsed.setBackgroundResource(R.drawable.bg_my_head_invalid); tvUsed.setEnabled(false); - } else if (isUsing) { - tvUsed.setVisibility(View.VISIBLE); - tvUsed.setText("取消使用"); tvUsed.setBackgroundResource(R.drawable.bg_my_head_invalid); - tvUsed.setEnabled(true); - } else { - tvUsed.setVisibility(View.VISIBLE); tvUsed.setText("使用"); - tvUsed.setBackgroundResource(R.drawable.bg_my_head_buy); + } else { + helper.setText(R.id.tv_counters,mContext.getString(R.string.past_due)); + helper.setText(R.id.tv_counters,mContext.getString(R.string.decoration_remainder) + item.getExpireDays() + mContext.getString(R.string.day)); + tvUsed.setVisibility(View.VISIBLE); tvUsed.setEnabled(true); } - } - - private void updateTag(CarInfo carInfo, ImageView ivTag, TextView tvBuy) { - if (CarInfo.TAG_TYPE_NORMAL == carInfo.getLabelType()) { - ivTag.setVisibility(View.GONE); - - } else if (CarInfo.TAG_TYPE_NEW == carInfo.getLabelType()) { - ivTag.setVisibility(View.VISIBLE); - ivTag.setImageResource(R.drawable.ic_mark_new); - - } else if (CarInfo.TAG_TYPE_DISCOUNT == carInfo.getLabelType()) { - ivTag.setVisibility(View.VISIBLE); - ivTag.setImageResource(R.drawable.ic_mark_discount); - - } else if (CarInfo.TAG_TYPE_LIMIT == carInfo.getLabelType()) { - ivTag.setVisibility(View.VISIBLE); - ivTag.setImageResource(R.drawable.ic_mark_limit); - tvBuy.setVisibility(View.GONE); - - } else if (CarInfo.TAG_TYPE_EXCLUSIVE == carInfo.getLabelType()) { - ivTag.setVisibility(View.VISIBLE); - ivTag.setImageResource(R.drawable.ic_mark_exclusive); - tvBuy.setVisibility(View.GONE); - } - } - - public void check(CarInfo selectedCarInfo) { - if (ListUtils.isListEmpty(mData)) return; - // 数据上改变那个using字段 - for (int i = 0; i < mData.size(); i++) { - CarInfo carInfo = mData.get(i); - if (selectedCarInfo.getCarId() == carInfo.getCarId()) { - carInfo.setUsing(1); - } else { - carInfo.setUsing(0); - } - } - notifyDataSetChanged(); - } - - public void setCarInfoHasBeenRenew(CarInfo carInfo) { - if (carInfo.getCarId() <= 0 || ListUtils.isListEmpty(mData)) return; - int index = mData.indexOf(carInfo); - if (index == -1) return; - if (mData.get(index).getRemainingDay() > 0) { - mData.get(index).setRemainingDay(mData.get(index).getRemainingDay() + carInfo.getDays()); - } else { - mData.get(index).setRemainingDay(carInfo.getDays()); - } - mData.get(index).setStatus(CarInfo.STATUS_USER_CAN_USE); - notifyItemChanged(index); - } - } diff --git a/app/src/main/java/com/yizhuan/erban/decoration/view/MyDecorationActivity.java b/app/src/main/java/com/yizhuan/erban/decoration/view/MyDecorationActivity.java index 0bf2bf0cf..520e5eb08 100644 --- a/app/src/main/java/com/yizhuan/erban/decoration/view/MyDecorationActivity.java +++ b/app/src/main/java/com/yizhuan/erban/decoration/view/MyDecorationActivity.java @@ -50,7 +50,7 @@ public class MyDecorationActivity extends BaseBindingActivity { - private ICarView mCarView; +public class MyNamePlateFragment extends BaseFragment { + private MyNamePlateAdapter mNamePlateAdapter; private boolean first = true; + private RecyclerView recyclerView; + private SwipeRefreshLayout swipeRefresh; - private MyCarVm myCarVm; - - public static MyNamePlateFragment instance(ICarView carView) { - MyNamePlateFragment fragment = new MyNamePlateFragment(); - fragment.mCarView = carView; - return fragment; + @Override + public int getRootLayoutId() { + return R.layout.frg_my_nameplate_common; } + + @Override public void onFindViews() { + recyclerView = mView.findViewById(R.id.recycler_view); + swipeRefresh = mView.findViewById(R.id.swipe_refresh); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - if (first && getUserVisibleHint()) { - first = false; - } + } @Override @@ -62,30 +58,13 @@ public class MyNamePlateFragment extends BaseBindingFragment { - - switch (view.getId()) { - case R.id.tv_buy: - mCarView.showDetail(mNamePlateAdapter.getItem(position)); - break; - - case R.id.tv_used: - startDriving(mNamePlateAdapter.getItem(position)); - break; - - } - }); - - mBinding.swipeRefresh.setOnRefreshListener(() -> getData()); - - mBinding.recyclerView.setAdapter(mNamePlateAdapter); - mBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); - - getData(); + private void initSwipRefresh() { + swipeRefresh.setOnRefreshListener(() -> loadData()); } public MyNamePlateAdapter getAdapter() { @@ -95,35 +74,66 @@ public class MyNamePlateFragment extends BaseBindingFragment { + if (throwable != null) { - if (myCarVm == null) - return; + } else { + List info = serviceResult.getNameplateList(); + if (ListUtils.isListEmpty(info)) { + showNoData(R.drawable.icon_common_failure, "亲爱的用户,你还没有铭牌哦!"); + return; + } - myCarVm.loadData(false).compose(bindToLifecycle()) - .doAfterTerminate(() -> { - if (ListUtils.isListEmpty(mNamePlateAdapter.getData())) { - showNoData(R.drawable.icon_common_failure, "亲爱的用户,你还没有座驾哦!"); - } + mNamePlateAdapter.setNewData(info); + mNamePlateAdapter.notifyDataSetChanged(); + } + }); + } - List list = mNamePlateAdapter.getData(); + private void initRecyclerView() { + LinearLayoutManager layoutManager = new LinearLayoutManager(getContext()); + layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); + recyclerView.setLayoutManager(layoutManager); + mNamePlateAdapter = new MyNamePlateAdapter(); + mNamePlateAdapter.setOnItemChildClickListener((adapter, view, position) -> { - for (CarInfo item : list) { - if (item.getCarId() == 0) { - list.remove(item); - break; + switch (view.getId()) { + case R.id.tv_used: + setUsedStatus(position); + break; + } + }); + recyclerView.setAdapter(mNamePlateAdapter); + } + + private void setUsedStatus(int position) { + NamePlateInfo.NameplateListBean nameplateInfo = mNamePlateAdapter.getData().get(position); + // id == 0标识不使用头饰 + final int id = nameplateInfo.isUsing() ? 0 : nameplateInfo.getId(); + final String word = nameplateInfo.getWord(); + + NamePlateModel.get().useMyNamePlate(String.valueOf(id),word) + .compose(bindUntilEvent(FragmentEvent.DESTROY)) + .doOnError(throwable -> { + toast(throwable.getMessage()); + }) + .subscribe(s -> { + for (int i = 0; i < mNamePlateAdapter.getData().size(); i++) { + if (id == mNamePlateAdapter.getData().get(i).getId()) { + mNamePlateAdapter.getData().get(i).setUsing(true); + } else { + mNamePlateAdapter.getData().get(i).setUsing(false); } } - mNamePlateAdapter.notifyDataSetChanged(); - }) - .subscribe(); + //更新用户信息 + UserModel.get().updateCurrentUserInfo().subscribe(); + }); } @Override @@ -143,38 +153,4 @@ public class MyNamePlateFragment extends BaseBindingFragment { - loadingDialog.dismiss(); - if (voidServiceResult != null && voidServiceResult.isSuccess()) { - //更换座驾状态,需要更新缓存 - UserModel.get().onlyUpdateLoginUserInfoCache(); - List list = mNamePlateAdapter.getData(); - for (CarInfo item : list) { - if (id == item.getCarId()) { - item.setUsing(1); - } else { - item.setUsing(0); - } - } - mNamePlateAdapter.notifyDataSetChanged(); - - } else if (voidServiceResult != null && !voidServiceResult.isSuccess()) { -// Toast.makeText(mContext, "驾驶失败: 网络异常!", Toast.LENGTH_SHORT).show(); - SingleToastUtil.showToastShort("驾驶失败: 网络异常!"); - } else if (throwable != null) { -// Toast.makeText(mContext, "驾驶失败: 网络异常!", Toast.LENGTH_SHORT).show(); - SingleToastUtil.showToastShort("驾驶失败: 网络异常!"); - } else { -// Toast.makeText(mContext, "驾驶失败: 网络异常!", Toast.LENGTH_SHORT).show(); - SingleToastUtil.showToastShort("驾驶失败: 网络异常!"); - } - }); - } } diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.java index 40343178d..c1029f2cf 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.java +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.java @@ -15,7 +15,6 @@ import com.yizhuan.erban.MainActivity; import com.yizhuan.erban.R; import com.yizhuan.erban.UIHelper; import com.yizhuan.erban.avroom.activity.AVRoomActivity; -import com.yizhuan.erban.base.BaseFragment; import com.yizhuan.erban.base.BaseMvpFragment; import com.yizhuan.erban.common.widget.dialog.DialogManager; import com.yizhuan.erban.databinding.FragmentMeBinding; @@ -37,7 +36,6 @@ import com.yizhuan.xchat_android_core.certification.CertificationModel; import com.yizhuan.xchat_android_core.customer_server.CustomerServerModel; import com.yizhuan.xchat_android_core.decoration.headwear.bean.HeadWearInfo; import com.yizhuan.xchat_android_core.family.bean.HomeBannerInfo; -import com.yizhuan.xchat_android_core.family.bean.HomeTitleInfo; import com.yizhuan.xchat_android_core.home.bean.TagListInfo; import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; @@ -58,14 +56,12 @@ import com.yizhuan.xchat_android_core.utils.StarUtils; import com.yizhuan.xchat_android_library.base.factory.CreatePresenter; import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack; import com.yizhuan.xchat_android_library.rxbus.RxBusHelper; -import com.yizhuan.xchat_android_library.utils.ListUtils; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; import java.util.Date; -import java.util.Iterator; import java.util.List; import java.util.Locale; @@ -331,7 +327,6 @@ public class MeFragment extends BaseMvpFragment - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_my_head_buy.xml b/app/src/main/res/drawable/bg_my_head_buy.xml index f9a5c60dd..31133aa24 100644 --- a/app/src/main/res/drawable/bg_my_head_buy.xml +++ b/app/src/main/res/drawable/bg_my_head_buy.xml @@ -6,8 +6,4 @@ - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_me.xml b/app/src/main/res/layout/fragment_me.xml index 4a1b8ca5a..c1dca8265 100644 --- a/app/src/main/res/layout/fragment_me.xml +++ b/app/src/main/res/layout/fragment_me.xml @@ -255,16 +255,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - + android:layout_height="wrap_content" + android:layout_weight="1"> - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - + tools:visibility="visible" + tools:text="@string/label_can_use" + tools:background="@drawable/bg_my_head_buy"/> - - - - - - - - - - - - + - + android:layout_height="match_parent" + android:background="@color/white"> - + > - + - - - - - - \ No newline at end of file + + \ No newline at end of file diff --git a/app/src/module_bank_card/res/layout/item_nameplate_normal.xml b/app/src/module_bank_card/res/layout/item_nameplate_normal.xml index 5d11cf09b..df6f3365b 100644 --- a/app/src/module_bank_card/res/layout/item_nameplate_normal.xml +++ b/app/src/module_bank_card/res/layout/item_nameplate_normal.xml @@ -1,145 +1,82 @@ - + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + android:layout_height="match_parent" /> + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/module_community/java/com/yizhuan/erban/community/publish/view/PublishActivity.java b/app/src/module_community/java/com/yizhuan/erban/community/publish/view/PublishActivity.java index 19d6722c6..2fd55d218 100644 --- a/app/src/module_community/java/com/yizhuan/erban/community/publish/view/PublishActivity.java +++ b/app/src/module_community/java/com/yizhuan/erban/community/publish/view/PublishActivity.java @@ -303,9 +303,7 @@ public class PublishActivity extends BaseMvpActivity - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/module_mentoring_relationship/res/drawable/bg_corner_shadow_12.xml b/app/src/module_mentoring_relationship/res/drawable/bg_corner_shadow_12.xml index 7dbc67baf..595229b6c 100644 --- a/app/src/module_mentoring_relationship/res/drawable/bg_corner_shadow_12.xml +++ b/app/src/module_mentoring_relationship/res/drawable/bg_corner_shadow_12.xml @@ -9,8 +9,8 @@ diff --git a/app/src/module_mini_world/java/com/yizhuan/erban/miniworld/adapter/AllTopicListAdapter.java b/app/src/module_mini_world/java/com/yizhuan/erban/miniworld/adapter/AllTopicListAdapter.java index 97b279abe..d4c85215b 100644 --- a/app/src/module_mini_world/java/com/yizhuan/erban/miniworld/adapter/AllTopicListAdapter.java +++ b/app/src/module_mini_world/java/com/yizhuan/erban/miniworld/adapter/AllTopicListAdapter.java @@ -1,20 +1,13 @@ package com.yizhuan.erban.miniworld.adapter; import android.support.annotation.Nullable; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.text.TextUtils; -import android.widget.ImageView; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseViewHolder; import com.yizhuan.erban.R; -import com.yizhuan.erban.ui.utils.ImageLoadUtils; import com.yizhuan.xchat_android_core.miniworld.bean.MiniWorldInfo; -import com.yizhuan.xchat_android_core.user.bean.UserInfo; import java.util.List; -import java.util.Locale; /** * 小世界列表界面 diff --git a/app/src/module_quick_pass/java/com/yizhuan/erban/quick_pass/QuickLoginUiConfig.java b/app/src/module_quick_pass/java/com/yizhuan/erban/quick_pass/QuickLoginUiConfig.java index 23ea18b7a..e459ae187 100644 --- a/app/src/module_quick_pass/java/com/yizhuan/erban/quick_pass/QuickLoginUiConfig.java +++ b/app/src/module_quick_pass/java/com/yizhuan/erban/quick_pass/QuickLoginUiConfig.java @@ -68,7 +68,7 @@ public class QuickLoginUiConfig { .setLoginBtnText("本机号码一键登录") .setLoginBtnTextColor(R.color.color_7154EE) .setLoginBtnBackgroundRes("bg_quick_pass") - .setLoginBtnWidth(225) + .setLoginBtnWidth(280) .setLoginBtnHeight(loginBtnHeight) .setLoginBtnTextSize(15) .setLoginBtnXOffset(X_OFFSET) diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/decoration/headwear/HeadwearModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/decoration/headwear/HeadwearModel.java index 00474b2cd..657197ca3 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/decoration/headwear/HeadwearModel.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/decoration/headwear/HeadwearModel.java @@ -5,6 +5,7 @@ import com.yizhuan.xchat_android_core.base.BaseModel; import com.yizhuan.xchat_android_core.bean.response.ServiceResult; import com.yizhuan.xchat_android_core.decoration.headwear.bean.HeadWearInfo; import com.yizhuan.xchat_android_core.decoration.headwear.throwable.HeadwearPulledOffShelvesException; +import com.yizhuan.xchat_android_core.decoration.nameplate.bean.NamePlateInfo; import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; import com.yizhuan.xchat_android_core.utils.net.BalanceNotEnoughExeption; @@ -278,11 +279,6 @@ public class HeadwearModel extends BaseModel implements IHeadwearModel { @Query("page") String page, @Query("pageSize") String pageSize); - @GET("nameplate/userNameplateList") - Single>> getNamePlateListV2(@Query("uid") String uid, - @Query("page") String page, - @Query("pageSize") String pageSize); - /** * 获取头饰详情 * @param headwearId diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/decoration/headwear/IHeadwearModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/decoration/headwear/IHeadwearModel.java index 5b1c3d3b2..e5f7efa84 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/decoration/headwear/IHeadwearModel.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/decoration/headwear/IHeadwearModel.java @@ -3,6 +3,7 @@ package com.yizhuan.xchat_android_core.decoration.headwear; import com.yizhuan.xchat_android_core.base.IModel; import com.yizhuan.xchat_android_core.bean.response.ServiceResult; import com.yizhuan.xchat_android_core.decoration.headwear.bean.HeadWearInfo; +import com.yizhuan.xchat_android_core.decoration.nameplate.bean.NamePlateInfo; import java.util.List; diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/decoration/nameplate/INamePlateModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/decoration/nameplate/INamePlateModel.java new file mode 100644 index 000000000..11637e272 --- /dev/null +++ b/core/src/main/java/com/yizhuan/xchat_android_core/decoration/nameplate/INamePlateModel.java @@ -0,0 +1,21 @@ +package com.yizhuan.xchat_android_core.decoration.nameplate; + +import com.yizhuan.xchat_android_core.base.IModel; +import com.yizhuan.xchat_android_core.bean.response.ServiceResult; +import com.yizhuan.xchat_android_core.decoration.headwear.bean.HeadWearInfo; +import com.yizhuan.xchat_android_core.decoration.nameplate.bean.NamePlateInfo; + +import java.util.List; + +import io.reactivex.Single; + +public interface INamePlateModel extends IModel { + + /** + * 获取我的铭牌列表 + * + * @return + */ + Single> getNamePlateList(long uid); + +} diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/decoration/nameplate/NamePlateModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/decoration/nameplate/NamePlateModel.java new file mode 100644 index 000000000..128f09c5b --- /dev/null +++ b/core/src/main/java/com/yizhuan/xchat_android_core/decoration/nameplate/NamePlateModel.java @@ -0,0 +1,106 @@ +package com.yizhuan.xchat_android_core.decoration.nameplate; + +import android.util.Log; + +import com.yizhuan.xchat_android_core.auth.AuthModel; +import com.yizhuan.xchat_android_core.base.BaseModel; +import com.yizhuan.xchat_android_core.bean.response.ServiceResult; +import com.yizhuan.xchat_android_core.decoration.headwear.HeadwearModel; +import com.yizhuan.xchat_android_core.decoration.headwear.IHeadwearModel; +import com.yizhuan.xchat_android_core.decoration.nameplate.bean.NamePlateInfo; +import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; +import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; +import com.yizhuan.xchat_android_core.utils.net.RxHelper; +import com.yizhuan.xchat_android_library.net.rxnet.RxNet; + +import java.util.List; + +import io.reactivex.Single; +import io.reactivex.SingleSource; +import io.reactivex.functions.Function; +import retrofit2.http.GET; +import retrofit2.http.POST; +import retrofit2.http.Query; + +public class NamePlateModel extends BaseModel { + + private volatile static NamePlateModel model; + private Api api; + + public static NamePlateModel get() { + if (model == null) { + synchronized (NamePlateModel.class) { + if (model == null) { + model = new NamePlateModel(); + } + } + } + return model; + } + + private NamePlateModel() { + api = RxNet.create(Api.class); + } + + /** + * 获取铭牌列表 + * + * @return + */ + public Single getNamePlateList(long uid) { + return api.getNamePlateList(String.valueOf(uid), "1", "1000") + .compose(RxHelper.handleBeanData()) + .compose(RxHelper.handleSchedulers()); + } + + /** + * 使用铭牌 + * + * @return + */ + public Single useMyNamePlate(String nameplateId,String word){ + long uid = AuthModel.get().getCurrentUid(); + String ticket = AuthModel.get().getTicket(); + return api.useMyNamePlate(String.valueOf(uid),nameplateId,word,ticket) + .flatMap(new Function, SingleSource>() { + @Override + public SingleSource apply(ServiceResult stringServiceResult) throws Exception { + if (stringServiceResult.isSuccess()) { + return Single.just("使用成功"); + }else { + return Single.error(new Throwable(stringServiceResult.getMessage())); + } + } + }) + .doOnSuccess(s -> { + if (AvRoomDataManager.get().mCurrentRoomInfo != null) { + // 更新房间信息 + IMNetEaseManager.get().updateMyRoomRole(); + } + }) + .compose(RxHelper.handleSchedulers()); + } + + + + private interface Api { + /** + * 获取铭牌列表 + * @param uid + * @param page + * @param pageSize + * @return + */ + @POST("nameplate/userNameplateList") + Single> getNamePlateList(@Query("uid") String uid, + @Query("page") String page, + @Query("pageSize") String pageSize); + + @POST("nameplate/useNameplate") + Single> useMyNamePlate(@Query("uid") String uid, + @Query("userNameplateId") String userNameplateId, + @Query("word") String word, + @Query("ticket") String ticket); + } + +} diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/decoration/nameplate/bean/NamePlateInfo.java b/core/src/main/java/com/yizhuan/xchat_android_core/decoration/nameplate/bean/NamePlateInfo.java index 5496c300c..a1111c4ac 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/decoration/nameplate/bean/NamePlateInfo.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/decoration/nameplate/bean/NamePlateInfo.java @@ -1,4 +1,192 @@ package com.yizhuan.xchat_android_core.decoration.nameplate.bean; +import java.util.List; + public class NamePlateInfo { + + + /** + * total : 4 + * nameplateList : [{"id":6,"uid":934999,"nameplateId":9,"isCustomWord":true,"remark":"5","expireTime":1587275848000,"createTime":1586930248000,"updateTime":1586930248000,"nameplateName":"天龙八部","nameplateImage":"http://4567.jpg","isExpired":false,"expireDays":71}] + */ + + private int total; + private List nameplateList; + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public List getNameplateList() { + return nameplateList; + } + + public void setNameplateList(List nameplateList) { + this.nameplateList = nameplateList; + } + + public static class NameplateListBean { + /** + * id : 6 + * uid : 934999 + * nameplateId : 9 + * isCustomWord : true + * remark : 5 + * expireTime : 1587275848000 + * createTime : 1586930248000 + * updateTime : 1586930248000 + * nameplateName : 天龙八部 + * nameplateImage : http://4567.jpg + * isExpired : false + * expireDays : 71 + */ + + private int id; + private int uid; + private int nameplateId; + private boolean isCustomWord; + private String remark; + private long expireTime; + private long createTime; + private long updateTime; + private String nameplateName; + private String nameplateImage; + private boolean isExpired; + private int expireDays; + private boolean isUsing; + private String word; + + public String getWord() { + return word; + } + + public void setWord(String word) { + this.word = word; + } + + public boolean isCustomWord() { + return isCustomWord; + } + + public void setCustomWord(boolean customWord) { + isCustomWord = customWord; + } + + public boolean isExpired() { + return isExpired; + } + + public void setExpired(boolean expired) { + isExpired = expired; + } + + public boolean isUsing() { + return isUsing; + } + + public void setUsing(boolean using) { + isUsing = using; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getUid() { + return uid; + } + + public void setUid(int uid) { + this.uid = uid; + } + + public int getNameplateId() { + return nameplateId; + } + + public void setNameplateId(int nameplateId) { + this.nameplateId = nameplateId; + } + + public boolean isIsCustomWord() { + return isCustomWord; + } + + public void setIsCustomWord(boolean isCustomWord) { + this.isCustomWord = isCustomWord; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public long getExpireTime() { + return expireTime; + } + + public void setExpireTime(long expireTime) { + this.expireTime = expireTime; + } + + public long getCreateTime() { + return createTime; + } + + public void setCreateTime(long createTime) { + this.createTime = createTime; + } + + public long getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(long updateTime) { + this.updateTime = updateTime; + } + + public String getNameplateName() { + return nameplateName; + } + + public void setNameplateName(String nameplateName) { + this.nameplateName = nameplateName; + } + + public String getNameplateImage() { + return nameplateImage; + } + + public void setNameplateImage(String nameplateImage) { + this.nameplateImage = nameplateImage; + } + + public boolean isIsExpired() { + return isExpired; + } + + public void setIsExpired(boolean isExpired) { + this.isExpired = isExpired; + } + + public int getExpireDays() { + return expireDays; + } + + public void setExpireDays(int expireDays) { + this.expireDays = expireDays; + } + } + }