Преглед на файлове

优惠券更新完善,解决图片错乱

詹子聪 преди 5 години
родител
ревизия
8d7a2d2409

+ 11 - 0
app/src/main/java/com/itant/shibei/ui/home/coupon/CouponBean.java

@@ -54,4 +54,15 @@ public class CouponBean implements Serializable {
     public long updateTimeMillis;
 
     public boolean isCoverUrlLocal;
+
+    public void updateData(CouponBean couponBean) {
+        this.couponType = couponBean.couponType;
+        this.couponName = couponBean.couponName;
+        this.coverUrl = couponBean.coverUrl;
+        this.jumpUrl = couponBean.jumpUrl;
+        this.actionEnable = couponBean.actionEnable;
+        this.isLocal = couponBean.isLocal;
+        this.createTimeMillis = couponBean.createTimeMillis;
+        this.updateTimeMillis = couponBean.updateTimeMillis;
+    }
 }

+ 12 - 5
app/src/main/java/com/itant/shibei/ui/home/coupon/TemplateFragment.java

@@ -14,7 +14,7 @@ import com.itant.shibei.R;
 import com.itant.shibei.base.ITopActionListener;
 import com.itant.shibei.tool.DataTool;
 import com.itant.shibei.ui.function.FunctionFragment;
-import com.itant.shibei.ui.mine.goods.AddGoodsActivity;
+import com.itant.shibei.ui.mine.coupon.AddCouponActivity;
 import com.itant.shibei.widget.DividerItemDecoration;
 import com.itant.shibei.widget.bottomlistener.OnRcvScrollListener;
 import com.miekir.common.utils.ToastTool;
@@ -71,8 +71,6 @@ public class TemplateFragment extends BaseMVPFragment implements ITemplateView<C
         int dividerWidth = (int) getResources().getDimension(R.dimen.padding_full_width);
         DividerItemDecoration decoration = new DividerItemDecoration(dividerWidth);
         rv_template.addItemDecoration(decoration);
-        // 本地写死的数据
-        mCouponBeanList.addAll(DataTool.getTemplateList(mTemplateType));
         mAdapter = new TemplateAdapter(getActivity(), mCouponBeanList);
         mAdapter.setCouponLongClickListener(this::showAdminDialog);
         rv_template.setAdapter(mAdapter);
@@ -130,12 +128,14 @@ public class TemplateFragment extends BaseMVPFragment implements ITemplateView<C
                 .setMessage("选择操作")
                 .setPositiveButton("修改", (dialog, which) -> {
                     dialog.dismiss();
-                    Intent modifyIntent = new Intent(getActivity(), AddGoodsActivity.class);
-                    modifyIntent.putExtra(AddGoodsActivity.KEY_MODIFY_GOODS, couponBean);
+                    Intent modifyIntent = new Intent(getActivity(), AddCouponActivity.class);
+                    modifyIntent.putExtra(AddCouponActivity.KEY_MODIFY_COUPON, couponBean);
                     RxActivityResult.on(getActivity()).startIntent(modifyIntent)
                             .filter(result -> result.resultCode() == RESULT_OK)
                             .subscribe(result -> {
                                 // 修改商品成功之后刷新item
+                                CouponBean modifiedBean = (CouponBean) result.data().getSerializableExtra(AddCouponActivity.KEY_MODIFY_COUPON);
+                                couponBean.updateData(modifiedBean);
                                 mAdapter.notifyItemChanged(position);
                             });
                 })
@@ -172,6 +172,11 @@ public class TemplateFragment extends BaseMVPFragment implements ITemplateView<C
         srl_template.setRefreshing(false);
         if (!success) {
             ToastTool.showShort(message);
+            if (mCouponBeanList.size() == 0) {
+                // 本地写死的数据
+                mCouponBeanList.addAll(DataTool.getTemplateList(mTemplateType));
+                mAdapter.notifyDataSetChanged();
+            }
             return;
         }
 
@@ -195,6 +200,8 @@ public class TemplateFragment extends BaseMVPFragment implements ITemplateView<C
         // 请求到数据了,页数自增
         if (couponBeanList != null && couponBeanList.size() > 0) {
             mCurrentPage++;
+        } else {
+            ToastTool.showShort("没有更多数据了");
         }
     }
 

+ 15 - 13
app/src/main/java/com/itant/shibei/ui/home/goods/GoodsAdapter.java

@@ -101,18 +101,9 @@ public class GoodsAdapter extends BaseQuickAdapter<GoodsBean, BaseViewHolder> {
             ActivityTool.openUrl((Activity) mContext, goodsBean.goodsUrl);
         });
 
+        // 解决图片错乱
         AppCompatImageView aciv_goods = holder.getView(R.id.aciv_goods);
-        String coverUrl = null;
-        try {
-            coverUrl = (String) aciv_goods.getTag();
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        if (TextUtils.isEmpty(coverUrl) || !TextUtils.equals(coverUrl, goodsBean.coverImageUrl)) {
-            aciv_goods.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
-            aciv_goods.setImageResource(R.mipmap.logo_gray);
-        }
-        aciv_goods.setTag(goodsBean.coverImageUrl);
+        aciv_goods.setTag(R.id.aciv_goods, goodsBean.coverImageUrl);
         Glide.with(mContext).load(goodsBean.coverImageUrl)
                 .apply(RequestOptions.bitmapTransform(new RoundedCorners(mRadius)))
                 .apply(new RequestOptions()
@@ -123,8 +114,19 @@ public class GoodsAdapter extends BaseQuickAdapter<GoodsBean, BaseViewHolder> {
                 .into(new SimpleTarget<Drawable>() {
                     @Override
                     public void onResourceReady(Drawable resource, Transition<? super Drawable> transition) {
-                        aciv_goods.setScaleType(ImageView.ScaleType.CENTER_CROP);
-                        aciv_goods.setImageDrawable(resource);
+                        String coverUrl = null;
+                        try {
+                            coverUrl = (String) aciv_goods.getTag(R.id.aciv_goods);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                        if (TextUtils.isEmpty(coverUrl) || !TextUtils.equals(coverUrl, goodsBean.coverImageUrl)) {
+                            aciv_goods.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
+                            aciv_goods.setImageResource(R.mipmap.logo_gray);
+                        } else {
+                            aciv_goods.setScaleType(ImageView.ScaleType.CENTER_CROP);
+                            aciv_goods.setImageDrawable(resource);
+                        }
                     }
                 });
 

+ 5 - 2
app/src/main/java/com/itant/shibei/ui/home/goods/GoodsFragment.java

@@ -69,8 +69,6 @@ public class GoodsFragment extends BaseMVPFragment implements IGoodsView, ITopAc
         int dividerWidth = (int) getResources().getDimension(R.dimen.margin_s);
         DividerItemDecoration decoration = new DividerItemDecoration(dividerWidth);
         rv_goods.addItemDecoration(decoration);
-        // 本地写死的数据
-        mGoodsList.addAll(DataTool.getGoodsList());
         mAdapter = new GoodsAdapter(getActivity(), mGoodsList);
         mAdapter.setGoodsLongClickListener(this::showAdminDialog);
         rv_goods.setAdapter(mAdapter);
@@ -176,6 +174,11 @@ public class GoodsFragment extends BaseMVPFragment implements IGoodsView, ITopAc
     public void onGoodsDataCome(boolean success, String message, List<GoodsBean> goodsList) {
         srl_goods.setRefreshing(false);
         if (!success) {
+            if (mGoodsList.size() == 0) {
+                // 本地写死的数据
+                mGoodsList.addAll(DataTool.getGoodsList());
+                mAdapter.notifyDataSetChanged();
+            }
             ToastTool.showShort(message);
             return;
         }

+ 8 - 2
app/src/main/java/com/itant/shibei/ui/mine/coupon/AddCouponActivity.java

@@ -1,5 +1,6 @@
 package com.itant.shibei.ui.mine.coupon;
 
+import android.content.Intent;
 import android.os.Bundle;
 import android.view.View;
 import android.widget.CheckBox;
@@ -38,7 +39,7 @@ public class AddCouponActivity extends BaseBeiActivity implements View.OnClickLi
 
     @Override
     public void initViews(Bundle savedInstanceState) {
-        setTitle("上架新的优惠券");
+
         et_coupon_title = findViewById(R.id.et_goods_title);
         et_cover_url = findViewById(R.id.et_cover_url);
         et_jump_url = findViewById(R.id.et_desc);
@@ -47,7 +48,10 @@ public class AddCouponActivity extends BaseBeiActivity implements View.OnClickLi
 
         couponBean = (CouponBean) getIntent().getSerializableExtra(KEY_MODIFY_COUPON);
         if (couponBean != null) {
+            setTitle("更新优惠券");
             initCoupon();
+        } else {
+            setTitle("上架新的优惠券");
         }
     }
 
@@ -88,7 +92,9 @@ public class AddCouponActivity extends BaseBeiActivity implements View.OnClickLi
         dismissLoading();
         ToastTool.showShort(message);
         if (success) {
-            setResult(RESULT_OK);
+            Intent intent = getIntent();
+            intent.putExtra(KEY_MODIFY_COUPON, couponBean);
+            setResult(RESULT_OK, intent);
             finish();
         }
     }

+ 4 - 1
app/src/main/java/com/itant/shibei/ui/mine/goods/AddGoodsActivity.java

@@ -50,7 +50,6 @@ public class AddGoodsActivity extends BaseBeiActivity implements View.OnClickLis
 
     @Override
     public void initViews(Bundle savedInstanceState) {
-        setTitle("上架新的商品");
         et_goods_title = findViewById(R.id.et_goods_title);
         et_cover_url = findViewById(R.id.et_cover_url);
         et_desc = findViewById(R.id.et_desc);
@@ -71,6 +70,10 @@ public class AddGoodsActivity extends BaseBeiActivity implements View.OnClickLis
         mGoodsBean = (GoodsBean) getIntent().getSerializableExtra(KEY_MODIFY_GOODS);
         if (mGoodsBean != null) {
             initGoods();
+            setTitle("更新商品");
+
+        } else {
+            setTitle("上架新的商品");
         }
     }