Преглед изворни кода

Merge branch 'develop' of https://github.com/swict/LifeplusAndroid into develop

hyodong.min пре 7 година
родитељ
комит
e2c763f9a7

+ 4 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/event/EventCombinedTypeSelectView.java

@@ -72,6 +72,10 @@ public class EventCombinedTypeSelectView extends ConstraintLayout implements Che
     checkBox.setText(text);
   }
 
+  public String getText() {
+    return checkBox.getText().toString();
+  }
+
   @Override
   public void setOnClickListener(@Nullable OnClickListener listener) {
     this.listener = listener;

+ 65 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/loading/ButtonLoadingView.java

@@ -0,0 +1,65 @@
+package kr.co.zumo.app.lifeplus.view.custom.loading;
+
+import android.content.Context;
+import android.support.constraint.ConstraintLayout;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+
+import kr.co.zumo.app.R;
+
+/**
+ * ButtonLoadingView
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2019-01-11]   [최초 작성]
+ * @since 2019-01-11
+ */
+public class ButtonLoadingView extends ConstraintLayout {
+
+  LoadingCircleView circleView1;
+  LoadingCircleView circleView2;
+  LoadingCircleView circleView3;
+
+  public ButtonLoadingView(Context context) {
+    super(context);
+  }
+
+  public ButtonLoadingView(Context context, AttributeSet attrs) {
+    super(context, attrs);
+  }
+
+  public void draw(Context context) {
+    if (null != context) {
+      LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+      inflater.inflate(R.layout.button_loading_view, this);
+      circleView1 = findViewById(R.id.circle1);
+      circleView2 = findViewById(R.id.circle2);
+      circleView3 = findViewById(R.id.circle3);
+
+      circleView1.init(context);
+      circleView2.init(context);
+      circleView3.init(context);
+
+      circleView1.setCurrentPlayTime(100);
+      circleView2.setCurrentPlayTime(200);
+      circleView3.setCurrentPlayTime(300);
+    }
+
+  }
+
+  public void animationStart() {
+
+    circleView1.animationStart();
+    circleView2.animationStart();
+    circleView3.animationStart();
+  }
+
+  public void animationCancel() {
+    circleView1.animationCancel();
+    circleView2.animationCancel();
+    circleView3.animationCancel();
+  }
+}

+ 79 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/loading/LoadingCircleView.java

@@ -0,0 +1,79 @@
+package kr.co.zumo.app.lifeplus.view.custom.loading;
+
+import android.animation.Keyframe;
+import android.animation.ObjectAnimator;
+import android.animation.PropertyValuesHolder;
+import android.animation.ValueAnimator;
+import android.content.Context;
+import android.support.annotation.Nullable;
+import android.support.constraint.ConstraintLayout;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.animation.LinearInterpolator;
+
+import kr.co.zumo.app.R;
+
+/**
+ * ButtonLoadingView
+ * <pre>
+ * </pre>
+ *
+ * @author 하세미
+ * @version 1.0
+ * @history 하세미   [2019-01-11]   [최초 작성]
+ * @since 2019-01-11
+ */
+public class LoadingCircleView extends ConstraintLayout {
+
+  private ObjectAnimator alphaAnimator;
+
+  public LoadingCircleView(Context context) {
+    super(context);
+    ;
+  }
+
+  public LoadingCircleView(Context context, @Nullable AttributeSet attrs) {
+    super(context, attrs);
+  }
+
+  public LoadingCircleView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+    super(context, attrs, defStyleAttr);
+  }
+
+  public void init(Context context) {
+    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+    inflater.inflate(R.layout.loading_circle_view, this);
+    View circle = findViewById(R.id.loading_circle);
+
+    Keyframe kf0 = Keyframe.ofFloat(0f, 1.0f);
+    Keyframe kf1 = Keyframe.ofFloat(.5f, 0f);
+    Keyframe kf2 = Keyframe.ofFloat(1f, 1.0f);
+
+    PropertyValuesHolder propertyValuesHolder = PropertyValuesHolder.ofKeyframe(ALPHA, kf0, kf1, kf2);
+    alphaAnimator = ObjectAnimator.ofPropertyValuesHolder(circle, propertyValuesHolder);
+    alphaAnimator.setInterpolator(new LinearInterpolator());
+    alphaAnimator.setRepeatCount(ValueAnimator.INFINITE);
+    alphaAnimator.setDuration(1000);
+
+
+  }
+
+  public void setCurrentPlayTime(long currentPlayTime) {
+    if (null != alphaAnimator) {
+      alphaAnimator.setCurrentPlayTime(currentPlayTime);
+    }
+  }
+
+  public void animationStart() {
+    if (null != alphaAnimator) {
+      alphaAnimator.start();
+    }
+  }
+
+  public void animationCancel() {
+    if (null != alphaAnimator) {
+      alphaAnimator.cancel();
+    }
+  }
+}

+ 26 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/CategoryFilterDialog.java

@@ -4,6 +4,7 @@ import android.content.Context;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
+import android.support.constraint.ConstraintLayout;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -21,6 +22,7 @@ import kr.co.zumo.app.lifeplus.bean.api.CategoryFilterBean;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.util.StringUtil;
 import kr.co.zumo.app.lifeplus.view.custom.CustomSquareCheckBox;
+import kr.co.zumo.app.lifeplus.view.custom.loading.ButtonLoadingView;
 
 /**
  * CategoryFilterDialog
@@ -38,6 +40,9 @@ public class CategoryFilterDialog extends DialogBase<ICustomFilterListener<Categ
   private List<CategoryFilterDataSectionBean> filterDataSectionBeans;
   private List<String> selectedList;
   private TextView contentsCountTextView;
+  private ConstraintLayout layoutButton;
+  private ConstraintLayout layoutLoading;
+  private ButtonLoadingView buttonLoadingView;
   private int filteredContentsCount;
 
   /**
@@ -73,6 +78,10 @@ public class CategoryFilterDialog extends DialogBase<ICustomFilterListener<Categ
   @Override
   protected void onActivityCreatedInternal() {
     contentsCountTextView = getView().findViewById(R.id.text_view_show_contents);
+    layoutButton = getView().findViewById(R.id.layout_last);
+    layoutLoading = getView().findViewById(R.id.layout_filter_loading);
+    buttonLoadingView = getView().findViewById(R.id.button_loading_view);
+    buttonLoadingView.draw(getView().getContext());
 
     applyAnimation();
 
@@ -187,4 +196,21 @@ public class CategoryFilterDialog extends DialogBase<ICustomFilterListener<Categ
     selectedList = new ArrayList<>();
     init();
   }
+
+  /**
+   * 로딩뷰의 visible 설정
+   * @param isVisibleLoading
+   */
+  private void setVisibleLoading(boolean isVisibleLoading) {
+    if (isVisibleLoading) {
+      layoutButton.setVisibility(View.GONE);
+      layoutLoading.setVisibility(View.VISIBLE);
+      buttonLoadingView.animationStart();
+    }
+    else {
+      layoutButton.setVisibility(View.VISIBLE);
+      layoutLoading.setVisibility(View.GONE);
+      buttonLoadingView.animationCancel();
+    }
+  }
 }

+ 0 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/dialog/PromotionFullScreenDialog.java

@@ -3,7 +3,6 @@ package kr.co.zumo.app.lifeplus.view.dialog;
 import android.os.Bundle;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
-import android.support.v4.app.DialogFragment;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -30,7 +29,6 @@ public class PromotionFullScreenDialog extends PromotionDialog {
   @Nullable
   @Override
   public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
-    setStyle(DialogFragment.STYLE_NO_TITLE, R.style.FullScreenPromotionDialog);
     return inflater.inflate(R.layout.dialog_promotion_full_screen, container, false);
   }
 

+ 6 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/event/EventSelectTextHolder.java

@@ -1,5 +1,6 @@
 package kr.co.zumo.app.lifeplus.view.screen.event;
 
+import android.util.Log;
 import android.view.View;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
@@ -29,6 +30,7 @@ public class EventSelectTextHolder extends EventDetailView {
   private TextView textViewConfirm;
   private LinearLayout layoutSelectArea;
 
+  //private EventCombinedTypeSelectView selectView;
   public EventSelectTextHolder(View itemView) {
     super(itemView);
     textViewQuestion = itemView.findViewById(R.id.text_view_question);
@@ -52,6 +54,10 @@ public class EventSelectTextHolder extends EventDetailView {
       EventCombinedTypeSelectView selectView = new EventCombinedTypeSelectView(itemView.getContext());
       selectView.init(itemView.getContext(), "#조용한");
       layoutSelectArea.addView(selectView);
+      selectView.setOnClickListener(view -> {
+        Log.e("APP#  EventSelectTextHolder | init", "|" + selectView.isChecked() + selectView.getText());
+      });
     }
+
   }
 }

+ 9 - 0
app/src/main/res/drawable/loading_circle.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="oval">
+  <size
+    android:width="8dp"
+    android:height="8dp"/>
+  <solid
+    android:color="@color/CFFFFFF"/>
+</shape>

+ 50 - 0
app/src/main/res/layout/button_loading_view.xml

@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:app="http://schemas.android.com/apk/res-auto"
+  xmlns:tools="http://schemas.android.com/tools"
+  android:layout_width="wrap_content"
+  android:layout_height="wrap_content"
+  tools:background="@color/C000000">
+
+  <kr.co.zumo.app.lifeplus.view.custom.loading.LoadingCircleView
+    android:id="@+id/circle1"
+    android:layout_width="8dp"
+    android:layout_height="8dp"
+    android:layout_marginStart="4dp"
+    android:layout_marginEnd="4dp"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintEnd_toStartOf="@+id/circle2"
+    app:layout_constraintHorizontal_bias="0.5"
+    app:layout_constraintHorizontal_chainStyle="packed"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toTopOf="parent"/>
+
+  <kr.co.zumo.app.lifeplus.view.custom.loading.LoadingCircleView
+    android:id="@+id/circle2"
+    android:layout_width="8dp"
+    android:layout_height="8dp"
+    android:layout_marginStart="4dp"
+    android:layout_marginEnd="4dp"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintEnd_toStartOf="@+id/circle3"
+    app:layout_constraintHorizontal_bias="0.5"
+    app:layout_constraintHorizontal_chainStyle="packed"
+    app:layout_constraintStart_toEndOf="@+id/circle1"
+    app:layout_constraintTop_toTopOf="parent"/>
+
+  <kr.co.zumo.app.lifeplus.view.custom.loading.LoadingCircleView
+    android:id="@+id/circle3"
+    android:layout_width="8dp"
+    android:layout_height="8dp"
+    android:layout_marginStart="4dp"
+    android:layout_marginEnd="4dp"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintEnd_toEndOf="parent"
+    app:layout_constraintHorizontal_bias="0.5"
+    app:layout_constraintHorizontal_chainStyle="packed"
+    app:layout_constraintStart_toEndOf="@+id/circle2"
+    app:layout_constraintTop_toTopOf="parent"/>
+
+
+</android.support.constraint.ConstraintLayout>

+ 20 - 0
app/src/main/res/layout/dialog_category_filter.xml

@@ -101,4 +101,24 @@
       app:layout_constraintStart_toEndOf="@+id/view3"
       tools:text="@string/show_contents"/>
   </android.support.constraint.ConstraintLayout>
+
+  <android.support.constraint.ConstraintLayout
+    android:visibility="gone"
+    android:id="@+id/layout_filter_loading"
+    android:layout_width="match_parent"
+    android:layout_height="42dp"
+    android:background="@color/C000000"
+    app:layout_constraintBottom_toBottomOf="parent"
+    app:layout_constraintTop_toBottomOf="@+id/scroll_view"
+    >
+
+    <kr.co.zumo.app.lifeplus.view.custom.loading.ButtonLoadingView
+      android:id="@+id/button_loading_view"
+      android:layout_width="wrap_content"
+      app:layout_constraintTop_toTopOf="parent"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintStart_toStartOf="parent"
+      app:layout_constraintEnd_toEndOf="parent"
+      android:layout_height="wrap_content"/>
+  </android.support.constraint.ConstraintLayout>
 </android.support.constraint.ConstraintLayout>

+ 15 - 0
app/src/main/res/layout/loading_circle_view.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:tools="http://schemas.android.com/tools"
+  tools:background="@color/C000000"
+  android:layout_width="wrap_content"
+  android:layout_height="wrap_content">
+
+  <View
+    android:id="@+id/loading_circle"
+    android:layout_width="8dp"
+    android:layout_height="8dp"
+    android:background="@drawable/loading_circle"
+    />
+</android.support.constraint.ConstraintLayout>