Ver código fonte

[설정][Common] 뒤로가기 후 돌아왔을 때 해당 목록 확장된 채 남아있게 수정

Hasemi 7 anos atrás
pai
commit
d3f7a64ab1

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/ISettingView.java

@@ -41,5 +41,5 @@ public interface ISettingView extends IView {
 
   void setGuestUi(boolean isGuest);
 
-  void drawList();
+  void drawList(int holderIndex);
 }

+ 4 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/SettingExpandableListViewAdapter.java

@@ -27,6 +27,7 @@ import kr.co.zumo.app.lifeplus.view.IEventListener;
  */
 public class SettingExpandableListViewAdapter extends RecyclerView.Adapter<SettingViewHolder> {
 
+  private int holderIndex;
   private Context context;
   private IEventListener listener;
   private RecyclerView recyclerView;
@@ -34,12 +35,13 @@ public class SettingExpandableListViewAdapter extends RecyclerView.Adapter<Setti
   private int itemCount;
   private SettingHolderBean settingHolderBean;
 
-  public SettingExpandableListViewAdapter(Context context, SettingHolderBean settingHolderBean, IEventListener listener, int itemCount) {
+  public SettingExpandableListViewAdapter(Context context, SettingHolderBean settingHolderBean, IEventListener listener, int itemCount, int holderIndex) {
     this.context = context;
     this.listener = listener;
     this.itemCount = itemCount;
     this.settingHolderBean = settingHolderBean;
     holders = new ArrayList<>();
+    this.holderIndex = holderIndex;
   }
 
   @Override
@@ -91,6 +93,7 @@ public class SettingExpandableListViewAdapter extends RecyclerView.Adapter<Setti
     });
 
     holders.add(holder);
+    click(holderIndex);
 
   }
 

+ 5 - 4
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/SettingFragment.java

@@ -38,6 +38,7 @@ public class SettingFragment extends FragmentBase<SettingPresenter> implements I
   private TextView textUpdate;
   private SettingExpandableListViewAdapter adapter;
   private SettingHolderBean settingHolderBean;
+  private LinearLayoutManager layoutManager;
 
 
   @Nullable
@@ -59,6 +60,7 @@ public class SettingFragment extends FragmentBase<SettingPresenter> implements I
     textUpdate.setOnClickListener(v -> {
       presenter.onEvent(new Event.Builder(Event.CLICK).integer(SettingPresenter.SETTING_UPDATE).build());
     });
+    layoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
 
   }
 
@@ -150,13 +152,12 @@ public class SettingFragment extends FragmentBase<SettingPresenter> implements I
   }
 
   @Override
-  public void drawList() {
-
+  public void drawList(int holderIndex) {
     adapter = new SettingExpandableListViewAdapter(getActivity(), settingHolderBean, event -> {
       presenter.onEvent(event);
-    }, settingHolderBean.isMember() ? 4 : 2);
+    }, settingHolderBean.isMember() ? 4 : 2, holderIndex);
 
-    settingRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
+    settingRecyclerView.setLayoutManager(layoutManager);
     SettingExpandableListViewDecoration decoration = new SettingExpandableListViewDecoration(getActivity(), ResourceUtil.getColor(R.color.CEBEBEB), 1);
     settingRecyclerView.addItemDecoration(decoration);
     settingRecyclerView.setAdapter(adapter);

+ 9 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/SettingModel.java

@@ -38,6 +38,7 @@ public class SettingModel extends Model {
   private Disposable disposableMarketing;
   private Disposable disposableLocation;
   private SettingMemberBean settingMemberBean;
+  private int holderIndex = 0;
 
   @Override
   protected void createViewInternal() {
@@ -90,6 +91,14 @@ public class SettingModel extends Model {
     }
   }
 
+  public void setHolderIndex(int holderIndex) {
+    this.holderIndex = holderIndex;
+  }
+
+  public int getHolderIndex() {
+    return holderIndex;
+  }
+
   /**
    * 추천인 이름
    * - 코드 등록 토스트에 사용

+ 2 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/setting/SettingPresenter.java

@@ -156,6 +156,7 @@ public class SettingPresenter extends Presenter<SettingModel, ISettingView> {
     switch (event.getEventId()) {
       case Event.TOGGLE:
         view.click(holderIndex);
+        model.setHolderIndex(holderIndex);
         break;
       case Event.SWITCH:
         if (holderIndex == SettingPresenter.SETTING_COMMON) {
@@ -422,7 +423,7 @@ public class SettingPresenter extends Presenter<SettingModel, ISettingView> {
       view.setGuestUi(true);
     }
 
-    view.drawList();
+    view.drawList(model.getHolderIndex());
 
     // version
     // 현재 버전과 비교해서 처리