|
|
@@ -7,7 +7,6 @@ import android.animation.ObjectAnimator;
|
|
|
import android.os.Bundle;
|
|
|
import android.support.annotation.NonNull;
|
|
|
import android.support.annotation.Nullable;
|
|
|
-import android.support.v4.view.NestedScrollingParent2;
|
|
|
import android.support.v4.view.ViewCompat;
|
|
|
import android.support.v4.view.ViewParentCompat;
|
|
|
import android.support.v7.widget.LinearLayoutManager;
|
|
|
@@ -30,6 +29,7 @@ import kr.co.zumo.app.lifeplus.supervisor.ContentsFlagHelper;
|
|
|
import kr.co.zumo.app.lifeplus.util.AppUtil;
|
|
|
import kr.co.zumo.app.lifeplus.util.ResourceUtil;
|
|
|
import kr.co.zumo.app.lifeplus.util.StringUtil;
|
|
|
+import kr.co.zumo.app.lifeplus.util.ViewUtil;
|
|
|
import kr.co.zumo.app.lifeplus.view.Event;
|
|
|
import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
|
|
|
|
|
|
@@ -49,27 +49,33 @@ public class MainFragment extends FragmentBase<MainPresenter> implements IMainVi
|
|
|
private MainContentsAdapter adapter;
|
|
|
private PageIndicator indicator;
|
|
|
private MainContentsSnapper snapper;
|
|
|
+ private ViewParent layoutCoordinator;
|
|
|
|
|
|
private RecyclerView.OnScrollListener scrollListener = new RecyclerView.OnScrollListener() {
|
|
|
@Override
|
|
|
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
|
|
|
- adapter.onScrolled(recyclerView, dx, dy);
|
|
|
-
|
|
|
- /**
|
|
|
- * 홀더에게 포커스 여부를 확인한다.
|
|
|
- * 위쪽부터 순서대로 체크한다.
|
|
|
- */
|
|
|
- int itemCount = recyclerView.getAdapter().getItemCount() - 1; // 날씨는 제외;
|
|
|
- int activePosition = 0;
|
|
|
- for (int i = 0; i < itemCount; ++i) {
|
|
|
- MainContentsHolder mainContentsHolder = (MainContentsHolder) recyclerView.findViewHolderForAdapterPosition(i + 1);
|
|
|
- if (null != mainContentsHolder && mainContentsHolder.isFocused()) {
|
|
|
- activePosition = i;
|
|
|
- break;
|
|
|
+
|
|
|
+ if (dy != 0) {
|
|
|
+ adapter.onScrolled(recyclerView, dx, dy);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 홀더에게 포커스 여부를 확인한다.
|
|
|
+ * 위쪽부터 순서대로 체크한다.
|
|
|
+ */
|
|
|
+ int itemCount = recyclerView.getAdapter().getItemCount();
|
|
|
+ int activePosition = 0;
|
|
|
+ for (int i = 0; i < itemCount; ++i) {
|
|
|
+ MainContentsHolder mainContentsHolder = (MainContentsHolder) recyclerView.findViewHolderForAdapterPosition(i);
|
|
|
+ if (null != mainContentsHolder && mainContentsHolder.isFocused()) {
|
|
|
+ activePosition = i;
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ presenter.touch();
|
|
|
+ presenter.onScrolled(activePosition);
|
|
|
}
|
|
|
|
|
|
- indicator.onChangedIndex(itemCount, activePosition);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -101,83 +107,8 @@ public class MainFragment extends FragmentBase<MainPresenter> implements IMainVi
|
|
|
snapper.attachToRecyclerView(contentsRecyclerView);
|
|
|
}
|
|
|
|
|
|
- if (AppUtil.isDebug()) {
|
|
|
-
|
|
|
- View button;
|
|
|
-
|
|
|
- button = findViewById(R.id.button_clear);
|
|
|
- button.setOnClickListener(v -> {
|
|
|
- clearData();
|
|
|
- });
|
|
|
-
|
|
|
- button = findViewById(R.id.button_zumo);
|
|
|
- button.setOnClickListener(v -> {
|
|
|
- SuperModel.getInstance().getPreferences().setZumoUserNo("---------------test--zumo-user----------------");
|
|
|
- });
|
|
|
-
|
|
|
- button = findViewById(R.id.button_sign_up);
|
|
|
- button.setOnClickListener(v -> {
|
|
|
- presenter.onEvent(new Event.Builder(Event.SIGN_UP).build());
|
|
|
- });
|
|
|
-
|
|
|
- button = findViewById(R.id.button_0000);
|
|
|
- button.setOnClickListener(v -> {
|
|
|
- presenter.onEvent(new Event.Builder(Event.DEFAULT).build());
|
|
|
- render();
|
|
|
- });
|
|
|
-
|
|
|
- button = findViewById(R.id.button_pin);
|
|
|
- button.setOnClickListener(v -> {
|
|
|
- presenter.onEvent(new Event.Builder(Event.INPUT_PIN).build());
|
|
|
- });
|
|
|
-
|
|
|
- button = findViewById(R.id.button_pin_reset);
|
|
|
- button.setOnClickListener(v -> {
|
|
|
- presenter.onEvent(new Event.Builder(Event.RESET).build());
|
|
|
- });
|
|
|
-
|
|
|
- View view = findViewById(R.id.layout_test);
|
|
|
- view.setVisibility(View.GONE);
|
|
|
-
|
|
|
- ImageView toggleButton = findViewById(R.id.image_toggle);
|
|
|
- toggleButton.setOnClickListener(v -> {
|
|
|
- view.setVisibility(view.getVisibility() == View.GONE ? View.VISIBLE : View.GONE);
|
|
|
- if (view.getVisibility() == View.GONE) {
|
|
|
- toggleButton.setImageResource(R.drawable.icon_arcordion_close_arrow);
|
|
|
- }
|
|
|
- else {
|
|
|
- toggleButton.setImageResource(R.drawable.icon_arcordion_open_arrow);
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- button = findViewById(R.id.button_set_account);
|
|
|
- button.setOnClickListener(v -> {
|
|
|
- presenter.onEvent(new Event.Builder(Event.INIT).build());
|
|
|
-
|
|
|
- });
|
|
|
-
|
|
|
- render();
|
|
|
-
|
|
|
- TextView textView = findViewById(R.id.text_member_status);
|
|
|
- String memberStatus = "";
|
|
|
- if (SuperModel.getInstance().isBlockMember()) {
|
|
|
- memberStatus = "Blocked ";
|
|
|
- }
|
|
|
- if (SuperModel.getInstance().isRestMember()) {
|
|
|
- memberStatus += "Inactive ";
|
|
|
- }
|
|
|
- if (SuperModel.getInstance().isOutMember()) {
|
|
|
- memberStatus += "Seceded";
|
|
|
- }
|
|
|
- if (StringUtil.isFull(memberStatus)) {
|
|
|
- textView.setText("Member status: " + memberStatus);
|
|
|
- }
|
|
|
+ debug();
|
|
|
|
|
|
- ((TextView) findViewById(R.id.text_version)).setText("앱 버젼: " + AppUtil.getVersionName());
|
|
|
- }
|
|
|
- else {
|
|
|
- findViewById(R.id.layout_test_all).setVisibility(View.GONE);
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -231,19 +162,6 @@ public class MainFragment extends FragmentBase<MainPresenter> implements IMainVi
|
|
|
actionBarHelper.animate();
|
|
|
}
|
|
|
|
|
|
- private void clearData() {
|
|
|
- SuperModel.getInstance().getPreferences().setTutorialDone(false);
|
|
|
- SuperModel.getInstance().getPreferences().setZumoUserNo("");
|
|
|
- SuperModel.getInstance().getPreferences().setZumoUserUpdateCompleted(false);
|
|
|
- SuperModel.getInstance().clearMemberData();
|
|
|
-
|
|
|
- // helpers...
|
|
|
- ContentsFlagHelper.getInstance().dispose();
|
|
|
- SuperModel.getInstance().setGuestLikedListBean(null);
|
|
|
-
|
|
|
- render();
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
public void render() {
|
|
|
findViewById(R.id.button_sign_up).setEnabled(SuperModel.getInstance().isMember() == false);
|
|
|
@@ -251,6 +169,11 @@ public class MainFragment extends FragmentBase<MainPresenter> implements IMainVi
|
|
|
findViewById(R.id.button_pin_reset).setEnabled(StringUtil.isEmpty(SuperModel.getInstance().getPreferences().getEncryptedPin()));
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void setIndicatorIndex(int index) {
|
|
|
+ indicator.onChangedIndex(contentsRecyclerView.getAdapter().getItemCount() - 1, index - 1);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void scrollToPosition(int index) {
|
|
|
if (null != snapper) {
|
|
|
@@ -263,13 +186,8 @@ public class MainFragment extends FragmentBase<MainPresenter> implements IMainVi
|
|
|
// helper.dispatchNestedPreScroll(0, 300, new int[2], new int[2], ViewCompat.TYPE_NON_TOUCH);
|
|
|
|
|
|
// appbar 를 스크롤 시키기위해서 가상 이벤트를 전송한다.
|
|
|
- ViewParent p = contentsRecyclerView.getParent();
|
|
|
- ViewParent layoutCoordinator = null;
|
|
|
- while (p != null) {
|
|
|
- if (p instanceof NestedScrollingParent2) {
|
|
|
- layoutCoordinator = p;
|
|
|
- }
|
|
|
- p = p.getParent();
|
|
|
+ if (null == layoutCoordinator) {
|
|
|
+ layoutCoordinator = ViewUtil.getCoodinatorLayoutParent(contentsRecyclerView);
|
|
|
}
|
|
|
|
|
|
if (null != layoutCoordinator) {
|
|
|
@@ -303,4 +221,105 @@ public class MainFragment extends FragmentBase<MainPresenter> implements IMainVi
|
|
|
adapter.update(data);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /***********************************
|
|
|
+ * debug
|
|
|
+ ***********************************/
|
|
|
+
|
|
|
+ private void debug() {
|
|
|
+
|
|
|
+ if (AppUtil.isDebug()) {
|
|
|
+
|
|
|
+ View button;
|
|
|
+
|
|
|
+ button = findViewById(R.id.button_clear);
|
|
|
+ button.setOnClickListener(v -> {
|
|
|
+ clearData();
|
|
|
+ });
|
|
|
+
|
|
|
+ button = findViewById(R.id.button_zumo);
|
|
|
+ button.setOnClickListener(v -> {
|
|
|
+ SuperModel.getInstance().getPreferences().setZumoUserNo("---------------test--zumo-user----------------");
|
|
|
+ });
|
|
|
+
|
|
|
+ button = findViewById(R.id.button_sign_up);
|
|
|
+ button.setOnClickListener(v -> {
|
|
|
+ presenter.onEvent(new Event.Builder(Event.SIGN_UP).build());
|
|
|
+ });
|
|
|
+
|
|
|
+ button = findViewById(R.id.button_0000);
|
|
|
+ button.setOnClickListener(v -> {
|
|
|
+ presenter.onEvent(new Event.Builder(Event.DEFAULT).build());
|
|
|
+ render();
|
|
|
+ });
|
|
|
+
|
|
|
+ button = findViewById(R.id.button_pin);
|
|
|
+ button.setOnClickListener(v -> {
|
|
|
+ presenter.onEvent(new Event.Builder(Event.INPUT_PIN).build());
|
|
|
+ });
|
|
|
+
|
|
|
+ button = findViewById(R.id.button_pin_reset);
|
|
|
+ button.setOnClickListener(v -> {
|
|
|
+ presenter.onEvent(new Event.Builder(Event.RESET).build());
|
|
|
+ });
|
|
|
+
|
|
|
+ View view = findViewById(R.id.layout_test);
|
|
|
+ view.setVisibility(View.GONE);
|
|
|
+
|
|
|
+ ImageView toggleButton = findViewById(R.id.image_toggle);
|
|
|
+ toggleButton.setOnClickListener(v -> {
|
|
|
+ view.setVisibility(view.getVisibility() == View.GONE ? View.VISIBLE : View.GONE);
|
|
|
+ if (view.getVisibility() == View.GONE) {
|
|
|
+ toggleButton.setImageResource(R.drawable.icon_arcordion_close_arrow);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ toggleButton.setImageResource(R.drawable.icon_arcordion_open_arrow);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ button = findViewById(R.id.button_set_account);
|
|
|
+ button.setOnClickListener(v -> {
|
|
|
+ presenter.onEvent(new Event.Builder(Event.INIT).build());
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+ render();
|
|
|
+
|
|
|
+ TextView textView = findViewById(R.id.text_member_status);
|
|
|
+ String memberStatus = "";
|
|
|
+ if (SuperModel.getInstance().isBlockMember()) {
|
|
|
+ memberStatus = "Blocked ";
|
|
|
+ }
|
|
|
+ if (SuperModel.getInstance().isRestMember()) {
|
|
|
+ memberStatus += "Inactive ";
|
|
|
+ }
|
|
|
+ if (SuperModel.getInstance().isOutMember()) {
|
|
|
+ memberStatus += "Seceded";
|
|
|
+ }
|
|
|
+ if (StringUtil.isFull(memberStatus)) {
|
|
|
+ textView.setText("Member status: " + memberStatus);
|
|
|
+ }
|
|
|
+
|
|
|
+ ((TextView) findViewById(R.id.text_version)).setText("앱 버젼: " + AppUtil.getVersionName());
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ findViewById(R.id.layout_test_all).setVisibility(View.GONE);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void clearData() {
|
|
|
+ SuperModel.getInstance().getPreferences().setTutorialDone(false);
|
|
|
+ SuperModel.getInstance().getPreferences().setZumoUserNo("");
|
|
|
+ SuperModel.getInstance().getPreferences().setZumoUserUpdateCompleted(false);
|
|
|
+ SuperModel.getInstance().clearMemberData();
|
|
|
+
|
|
|
+ // helpers...
|
|
|
+ ContentsFlagHelper.getInstance().dispose();
|
|
|
+ SuperModel.getInstance().setGuestLikedListBean(null);
|
|
|
+
|
|
|
+ render();
|
|
|
+ }
|
|
|
+
|
|
|
}
|