浏览代码

[마이][New] 코인 메인: 코인 적용

hyodong.min 7 年之前
父节点
当前提交
cf881114a0

+ 2 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/coin/IMyCoinMainView.java

@@ -16,4 +16,6 @@ import kr.co.zumo.app.lifeplus.view.IView;
 public interface IMyCoinMainView extends IView {
 
   void draw(CoopRecommendBean coopRecommendBean);
+
+  void setCoin(String coin);
 }

+ 17 - 6
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/coin/MyCoinDetailFragment.java

@@ -19,6 +19,7 @@ import java.util.List;
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.api.CoinInfoBean;
 import kr.co.zumo.app.lifeplus.helper.ActionBarHelper;
+import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.IEventListener;
 import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
@@ -39,6 +40,7 @@ public class MyCoinDetailFragment extends FragmentBase<MyCoinDetailPresenter> im
   private RecyclerView recyclerViewCoinList;
   private ConstraintLayout layoutFilterContents;
   private RelativeLayout filterDivider;
+  private TextView textResultNumber;
   private View viewDivider;
   private View viewWhiteDivider;
   private ImageView imageViewCoinInformationDialog;
@@ -65,6 +67,7 @@ public class MyCoinDetailFragment extends FragmentBase<MyCoinDetailPresenter> im
     filterDivider = findViewById(R.id.filter_divider);
     imageViewCoinInformationDialog = findViewById(R.id.image_view_coin_information_pop_up);
 
+    textResultNumber = findViewById(R.id.text_result_number);
     textCoinValue = findViewById(R.id.text_view_coin_detail);
     textExpiringCoinValue = findViewById(R.id.text_expiring_coin);
     textViewExtinctCoin = findViewById(R.id.text_view_extinct_coin);
@@ -140,13 +143,21 @@ public class MyCoinDetailFragment extends FragmentBase<MyCoinDetailPresenter> im
 
   @Override
   public void drawList(List<CoinInfoBean> coinInfoBeans) {
+    if (null != coinInfoBeans) {
 
-    adapter = new MyCoinDetailAdapter(getActivity(), coinInfoBeans, new IEventListener() {
-      @Override
-      public void onEvent(Event event) {
+      textResultNumber.setText(ResourceUtil.getString(R.string.list_result, coinInfoBeans.size()));
 
-      }
-    });
-    recyclerViewCoinList.setAdapter(adapter);
+      adapter = new MyCoinDetailAdapter(getActivity(), coinInfoBeans, new IEventListener() {
+        @Override
+        public void onEvent(Event event) {
+
+        }
+      });
+      recyclerViewCoinList.setAdapter(adapter);
+    }
+    else {
+      textResultNumber.setText(ResourceUtil.getString(R.string.list_result, 0));
+
+    }
   }
 }

+ 7 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/coin/MyCoinMainFragment.java

@@ -37,6 +37,7 @@ import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
  */
 public class MyCoinMainFragment extends FragmentBase<MyCoinMainPresenter> implements IMyCoinMainView {
   private TextView textViewMyCoinDetail;
+  private TextView textCoin;
   private ImageView imageViewArrowMyCoinDetail;
   private MainBannerView mainBannerViewCoin;
   private List<CategoryBannerBean> imageBeanList;
@@ -49,6 +50,7 @@ public class MyCoinMainFragment extends FragmentBase<MyCoinMainPresenter> implem
 
   @Override
   protected void onAfterActivityCreated(Bundle savedInstanceState) {
+    textCoin = findViewById(R.id.text_view_coin_detail);
     textViewMyCoinDetail = findViewById(R.id.text_view_my_coin_detail);
     imageViewArrowMyCoinDetail = findViewById(R.id.image_view_arrow_my_colin_detail);
     mainBannerViewCoin = findViewById(R.id.coin_banner_view);
@@ -124,6 +126,11 @@ public class MyCoinMainFragment extends FragmentBase<MyCoinMainPresenter> implem
     }
   }
 
+  @Override
+  public void setCoin(String coin) {
+    textCoin.setText(coin);
+  }
+
 
   private void drawCoopGoodsList(CoopGoodsBean bean) {
     LayoutInflater layoutInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

+ 26 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/coin/MyCoinMainModel.java

@@ -1,11 +1,14 @@
 package kr.co.zumo.app.lifeplus.view.screen.my.coin;
 
 import io.reactivex.disposables.Disposable;
+import kr.co.zumo.app.lifeplus.bean.api.CoinInfoResultBean;
+import kr.co.zumo.app.lifeplus.bean.api.RequestBean;
 import kr.co.zumo.app.lifeplus.bean.api.coop.CoopRecommendBean;
 import kr.co.zumo.app.lifeplus.bean.api.coop.CoopRequestBean;
 import kr.co.zumo.app.lifeplus.config.NetworkConfig;
 import kr.co.zumo.app.lifeplus.model.Model;
 import kr.co.zumo.app.lifeplus.model.module.APIError;
+import kr.co.zumo.app.lifeplus.model.module.IAPISimpleModuleListener;
 import kr.co.zumo.app.lifeplus.model.module.coop.CoopRecommendGoodsModule;
 import kr.co.zumo.app.lifeplus.model.module.coop.ICoopAPISimpleModuleListener;
 import kr.co.zumo.app.lifeplus.view.Event;
@@ -24,6 +27,7 @@ public class MyCoinMainModel extends Model {
 
   private Disposable disposable;
   private CoopRecommendBean coopRecommendBean;
+  private Disposable disposableCoin;
 
   @Override
   protected void createViewInternal() {
@@ -36,6 +40,11 @@ public class MyCoinMainModel extends Model {
       disposable = null;
     }
 
+    if (null != disposableCoin) {
+      disposableCoin.dispose();
+      disposableCoin = null;
+    }
+
   }
 
   @Override
@@ -88,4 +97,21 @@ public class MyCoinMainModel extends Model {
     });
   }
 
+  public String getCoin() {
+    return CoinModelHelper.getInstance().getCoin();
+  }
+
+  public void loadCoinInfo() {
+    disposableCoin = CoinModelHelper.getInstance().loadCoinInfo(new RequestBean(), new IAPISimpleModuleListener<CoinInfoResultBean>() {
+      @Override
+      public void onApiSuccess(CoinInfoResultBean resultBean) {
+        onResult(new Event.Builder(Event.RESULT).integer(Event.COIN_LOADING).build());
+      }
+
+      @Override
+      public void onApiError(String errorMessage, APIError error) {
+        onResult(new Event.Builder(Event.ERROR).integer(Event.COIN_LOADING).string(errorMessage).build());
+      }
+    });
+  }
 }

+ 15 - 3
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/coin/MyCoinMainPresenter.java

@@ -20,12 +20,17 @@ import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
 public class MyCoinMainPresenter extends Presenter<MyCoinMainModel, IMyCoinMainView> {
 
   DoubleChecker doubleChecker;
+  DoubleChecker doubleCheckerCoin;
 
   public MyCoinMainPresenter(MyCoinMainModel model, IMyCoinMainView view) {
     super(model, view);
 
     doubleChecker = new DoubleChecker(this::render);
-    model.loadRecommendGoods();
+    doubleCheckerCoin = new DoubleChecker(this::renderCoin);
+  }
+
+  private void renderCoin() {
+    view.setCoin(model.getCoin());
   }
 
   private void render() {
@@ -52,7 +57,8 @@ public class MyCoinMainPresenter extends Presenter<MyCoinMainModel, IMyCoinMainV
 
   @Override
   protected void startInternalOnce() {
-
+    model.loadRecommendGoods();
+    model.loadCoinInfo();
   }
 
   @Override
@@ -92,7 +98,12 @@ public class MyCoinMainPresenter extends Presenter<MyCoinMainModel, IMyCoinMainV
   public void onResult(Event event) {
     switch (event.getEventId()) {
       case Event.RESULT:
-        doubleChecker.checkSecond();
+        if (event.getInteger() == Event.COIN_LOADING) {
+          doubleCheckerCoin.checkSecond();
+        }
+        else {
+          doubleChecker.checkSecond();
+        }
         break;
       case Event.ERROR:
         showErrorDialog(event.getString());
@@ -105,6 +116,7 @@ public class MyCoinMainPresenter extends Presenter<MyCoinMainModel, IMyCoinMainV
   @Override
   public void onScreenReady() {
     doubleChecker.checkFirst();
+    doubleCheckerCoin.checkFirst();
   }
 
   @Override

+ 5 - 5
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/coin/MyCoinModel.java

@@ -23,7 +23,7 @@ import kr.co.zumo.app.lifeplus.view.Event;
  */
 public class MyCoinModel extends Model {
 
-  private Disposable disposable;
+  private Disposable disposableCoin;
 
   @Override
   protected void createViewInternal() {
@@ -59,9 +59,9 @@ public class MyCoinModel extends Model {
   }
 
   private void disposeCoin() {
-    if (null != disposable) {
-      disposable.dispose();
-      disposable = null;
+    if (null != disposableCoin) {
+      disposableCoin.dispose();
+      disposableCoin = null;
     }
   }
 
@@ -78,7 +78,7 @@ public class MyCoinModel extends Model {
   }
 
   public void loadCoinInfo() {
-    disposable = CoinModelHelper.getInstance().loadCoinInfo(new RequestBean(), new IAPISimpleModuleListener<CoinInfoResultBean>() {
+    disposableCoin = CoinModelHelper.getInstance().loadCoinInfo(new RequestBean(), new IAPISimpleModuleListener<CoinInfoResultBean>() {
       @Override
       public void onApiSuccess(CoinInfoResultBean resultBean) {
         onResult(new Event.Builder(Event.RESULT).build());

+ 5 - 4
app/src/main/res/layout/fragment_my_coin_detail.xml

@@ -45,9 +45,9 @@
             android:layout_marginStart="30dp"
             android:layout_marginTop="20dp"
             android:lineSpacingExtra="10sp"
-            tools:text="6,900"
             android:textColor="@color/C000000"
             android:textSize="25sp"
+            tools:text="6,900"
             />
 
           <ImageView
@@ -124,9 +124,9 @@
             android:layout_marginEnd="3dp"
             android:layout_toLeftOf="@+id/image_view_coin"
             android:lineSpacingExtra="6sp"
-            tools:text="-410"
             android:textColor="@color/C000000"
-            android:textSize="16sp"/>
+            android:textSize="16sp"
+            tools:text="-410"/>
         </RelativeLayout>
       </LinearLayout>
 
@@ -154,15 +154,16 @@
       app:layout_collapseMode="pin">
 
       <TextView
+        android:id="@+id/text_result_number"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:lineSpacingExtra="4sp"
-        android:text="조회결과 5건"
         android:textColor="@color/C999999"
         android:textSize="12sp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent"
+        tools:text="조회결과 5건"
         />
 
 

+ 1 - 0
app/src/main/res/values/strings.xml

@@ -715,6 +715,7 @@
   <string name="quit_app">앱 종료</string>
   <string name="more_contents">더보기</string>
   <string name="lifeplus_app">Lifeplus app</string>
+  <string name="list_result">조회결과 %d건</string>
 
   <!-- 임의 추가 문자열 : 시작 -->
   <string name="undefined_error">알 수 없는 에러</string>