Jelajahi Sumber

[튜토리얼][Common] 버킷리스트 튜토리얼 레이아웃 재 구현

Hasemi 7 tahun lalu
induk
melakukan
9b2c0a6df5

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/model/LifeplusPreferences.java

@@ -293,7 +293,7 @@ public class LifeplusPreferences {
     preferences.put(TUTORIAL_LISTICLE_DETAIL_DONE, isDone);
   }
 
-  public boolean isTutorialBucketListDetailDone() {
+  public boolean isTutorialBucketListTagDone() {
     return preferences.get(TUTORIAL_BUCKET_LIST_DETAIL_DONE, false);
   }
 }

+ 43 - 10
app/src/main/java/kr/co/zumo/app/lifeplus/view/custom/Tutorial.java

@@ -54,7 +54,6 @@ public class Tutorial {
         case TUTORIAL_BUCKET_UPDATE:
           showTutorialBucketUpdate(listener);
           break;
-        // TODO: 버킷리스트 태그있는 화면 진입시 튜토리얼 구현 예정
         case TUTORIAL_BUCKET_TAG:
           showTutorialBucketTag(listener);
           break;
@@ -66,7 +65,7 @@ public class Tutorial {
   }
 
   private void showTutorialListicle(IEventListener listener) {
-     Animation fadeOut = AnimationUtils.loadAnimation(activity, R.anim.fade_out);
+    Animation fadeOut = AnimationUtils.loadAnimation(activity, R.anim.fade_out);
     view = inflater.inflate(R.layout.tutorial_listicle_cover, null);
     frameLayout.addView(view);
     view.setClickable(true);
@@ -74,8 +73,7 @@ public class Tutorial {
 
     new Handler().postDelayed(new Runnable() {
       @Override
-      public void run()
-      {
+      public void run() {
         view.findViewById(R.id.tutorial_listicle_cover1).startAnimation(fadeOut);
         view.findViewById(R.id.tutorial_listicle_cover1).setVisibility(View.GONE);
       }
@@ -83,18 +81,16 @@ public class Tutorial {
 
     new Handler().postDelayed(new Runnable() {
       @Override
-      public void run()
-      {
+      public void run() {
         view.findViewById(R.id.tutorial_listicle_cover2).setVisibility(View.VISIBLE);
       }
     }, 2000);
 
     new Handler().postDelayed(new Runnable() {
       @Override
-      public void run()
-      {
+      public void run() {
         view.findViewById(R.id.tutorial_listicle_cover2).startAnimation(fadeOut);
-        view.findViewById(R.id.tutorial_listicle_cover2).setVisibility(View.GONE);
+        // view.findViewById(R.id.tutorial_listicle_cover2).setVisibility(View.GONE);
       }
     }, 3000);
 
@@ -170,7 +166,44 @@ public class Tutorial {
     }, 3000);
 
   }
-  
+
   private void showTutorialBucketTag(IEventListener listener) {
+    Animation fadeOut = AnimationUtils.loadAnimation(activity, R.anim.fade_out);
+    view = inflater.inflate(R.layout.tutorial_bucket_list_tag, null);
+    frameLayout.addView(view);
+    view.setClickable(true);
+
+    new Handler().postDelayed(new Runnable() {
+      @Override
+      public void run() {
+
+        view.findViewById(R.id.tutorial_bucket_list_tag1).startAnimation(fadeOut);
+        view.findViewById(R.id.tutorial_bucket_list_tag1).setVisibility(View.GONE);
+      }
+    }, 2000);
+
+    new Handler().postDelayed(new Runnable() {
+      @Override
+      public void run() {
+
+        view.findViewById(R.id.tutorial_bucket_list_tag2).setVisibility(View.VISIBLE);
+      }
+    }, 3000);
+
+    new Handler().postDelayed(new Runnable() {
+      @Override
+      public void run() {
+
+        view.findViewById(R.id.tutorial_bucket_list_tag2).startAnimation(fadeOut);
+        view.findViewById(R.id.tutorial_bucket_list_tag2).setVisibility(View.GONE);
+      }
+    }, 4000);
+
+    new Handler().postDelayed(new Runnable() {
+      @Override
+      public void run() {
+        frameLayout.removeView(view);
+      }
+    }, 6000);
   }
 }

+ 13 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bucketlist/BucketListWithTagDetailFragment.java

@@ -26,6 +26,8 @@ import kr.co.zumo.app.lifeplus.bean.api.TagBean;
 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.custom.Tutorial;
 import kr.co.zumo.app.lifeplus.view.screen.FragmentBase;
 
 /**
@@ -227,5 +229,16 @@ public class BucketListWithTagDetailFragment extends FragmentBase<BucketListWith
     }
   }
 
+  @Override
+  public void showTutorialBucketTag() {
+    Tutorial tutorial = new Tutorial();
+    tutorial.showTutorial(getActivity(), Tutorial.TUTORIAL_BUCKET_TAG, new IEventListener() {
+      @Override
+      public void onEvent(Event event) {
+
+      }
+    });
+  }
+
 
 }

+ 4 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/my/bucketlist/BucketListWithTagDetailPresenter.java

@@ -7,6 +7,7 @@ import kr.co.zumo.app.lifeplus.bean.api.BucketMyBean;
 import kr.co.zumo.app.lifeplus.bean.api.BucketWithTagBean;
 import kr.co.zumo.app.lifeplus.bean.api.LifeplusContentsBean;
 import kr.co.zumo.app.lifeplus.bean.api.LifeplusData;
+import kr.co.zumo.app.lifeplus.model.SuperModel;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.view.DoubleChecker;
 import kr.co.zumo.app.lifeplus.view.Event;
@@ -73,6 +74,9 @@ public class BucketListWithTagDetailPresenter extends Presenter<BucketListDetail
   protected void startInternalOnce() {
     if (null != this.model.getBucketMyBean()) {
       this.model.loadTag();
+      if (false == SuperModel.getInstance().getPreferences().isTutorialBucketListTagDone()) {
+        view.showTutorialBucketTag();
+      }
     }
     else {
       showErrorDialog("Invalid data: BucketMyBean");

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

@@ -31,4 +31,6 @@ public interface IBucketListWithTagDetailView extends IView {
   void setVisibilityResultNothing(boolean isVisible);
 
   void setCheckedTag(int index, boolean isChecked);
+
+  void showTutorialBucketTag();
 }

+ 1 - 1
app/src/main/res/layout/fragment_bucket_list_with_tag_detail.xml

@@ -86,7 +86,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginStart="5dp"
-            android:layout_marginTop="20dp"
+            android:layout_marginTop="@dimen/action_bar_height"
             android:layout_marginEnd="80dp"
             android:layout_marginBottom="20dp"
             android:ellipsize="end"

+ 299 - 31
app/src/main/res/layout/tutorial_bucket_list_tag.xml

@@ -5,55 +5,323 @@
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
-  tools:background="@color/C888888">
+  android:background="@color/CFFFFFF">
 
   <ImageView
-    android:id="@+id/image_view_bubble"
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    app:layout_constraintTop_toTopOf="parent"
-    android:layout_marginTop="198dp"
-    app:layout_constraintStart_toStartOf="parent"
-    android:layout_marginStart="30dp"
-    app:srcCompat="@drawable/bubble_tutorial_related_tags"
+    android:id="@+id/image_view_bucket"
+    android:layout_width="match_parent"
+    android:layout_height="137dp"
+    android:background="@color/C000000"
+    android:scaleType="fitXY"
     />
 
+
   <TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
-    android:textSize="12sp"
-    android:textColor="@color/C000000"
-    android:lineSpacingExtra="4sp"
+    android:layout_marginTop="77dp"
     android:gravity="center_horizontal"
-    android:text="@string/tutorial_bucket_list_tag"
-    app:layout_constraintStart_toStartOf="@+id/image_view_bubble"
-    app:layout_constraintEnd_toEndOf="@+id/image_view_bubble"
-    app:layout_constraintTop_toTopOf="@+id/image_view_bubble"
-    app:layout_constraintBottom_toBottomOf="@+id/image_view_bubble"
+    android:lineSpacingExtra="6sp"
+    android:text="리가에서 비어바이크 타기"
+    android:textColor="@color/CFFFFFF"
+    android:textSize="16sp"
+    app:layout_constraintEnd_toEndOf="parent"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toTopOf="parent"
     />
 
   <ImageView
-    android:id="@+id/image_view_bubble2"
+    android:layout_width="19dp"
+    android:layout_height="19dp"
+    android:layout_marginEnd="14dp"
+    app:layout_constraintEnd_toStartOf="@+id/imageView7"
+    app:layout_constraintTop_toTopOf="@+id/imageView7"
+    app:srcCompat="@drawable/ic_icon_bucket_complet_default"/>
+
+  <ImageView
+    android:id="@+id/imageView7"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginEnd="14dp"
+    app:layout_constraintEnd_toStartOf="@id/image_trash"
+    app:layout_constraintTop_toTopOf="@+id/image_trash"
+    app:srcCompat="@drawable/icon_edit_copy"/>
+
+
+  <ImageView
+    android:id="@+id/image_trash"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
+    android:layout_marginTop="41dp"
+    android:layout_marginEnd="16dp"
+    app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintTop_toTopOf="parent"
-    android:layout_marginTop="83dp"
-    app:layout_constraintStart_toStartOf="parent"
-    android:layout_marginStart="118dp"
-    app:srcCompat="@drawable/bubble_tutorial_edit"
+    app:srcCompat="@drawable/icon_delete_bucket"
     />
 
   <TextView
+    android:id="@+id/text_view_contents"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
+    android:layout_marginStart="25dp"
+    android:layout_marginTop="18dp"
+    android:lineSpacingExtra="3.5sp"
+    android:textColor="@color/C999999"
     android:textSize="12sp"
-    android:textColor="@color/C000000"
-    android:lineSpacingExtra="4sp"
-    android:gravity="center_horizontal"
-    android:text="@string/tutorial_bucket_list_update"
-    app:layout_constraintStart_toStartOf="@+id/image_view_bubble2"
-    app:layout_constraintEnd_toEndOf="@+id/image_view_bubble2"
-    app:layout_constraintTop_toTopOf="@+id/image_view_bubble2"
-    app:layout_constraintBottom_toBottomOf="@+id/image_view_bubble2"
-    />
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toBottomOf="@+id/image_view_bucket"
+    tools:text="연관태그 추천 콘텐츠 31개"/>
+
+  <android.support.constraint.ConstraintLayout
+    android:id="@+id/layout_tag"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_marginStart="25dp"
+    android:layout_marginTop="13dp"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toBottomOf="@+id/text_view_contents">
+
+    <TextView
+      android:id="@+id/check_box1"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginEnd="9dp"
+      android:background="@drawable/custom_rectangle_radio_on"
+      android:paddingStart="12dp"
+      android:paddingTop="5dp"
+      android:paddingEnd="12dp"
+      android:paddingBottom="5dp"
+      android:text="#배낭여행"
+      android:textAlignment="center"
+      android:textColor="@color/C000000"
+      android:textSize="12sp"
+      app:layout_constraintEnd_toStartOf="@+id/check_box2"
+      app:layout_constraintHorizontal_chainStyle="spread_inside"
+      app:layout_constraintStart_toStartOf="parent"/>
+
+    <TextView
+      android:id="@+id/check_box2"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginEnd="9dp"
+      android:background="@drawable/custom_rectangle_radio_off"
+      android:lineSpacingExtra="4sp"
+      android:paddingStart="12dp"
+      android:paddingTop="5dp"
+      android:paddingEnd="12dp"
+      android:paddingBottom="5dp"
+      android:text="#북유럽"
+      android:textAlignment="center"
+      android:textColor="@color/C999999"
+      android:textSize="12sp"
+      app:layout_constraintEnd_toStartOf="@+id/check_box3"
+      app:layout_constraintStart_toEndOf="@+id/check_box1"/>
+
+    <TextView
+      android:id="@+id/check_box3"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:background="@drawable/custom_rectangle_radio_on"
+      android:lineSpacingExtra="4sp"
+      android:paddingStart="12dp"
+      android:paddingTop="5dp"
+      android:paddingEnd="9dp"
+      android:paddingBottom="5dp"
+      android:text="#라트비아"
+      android:textAlignment="center"
+      android:textColor="@color/C000000"
+      android:textSize="12sp"
+      app:layout_constraintEnd_toStartOf="@+id/check_box4"
+      app:layout_constraintHorizontal_bias="0.5"
+      app:layout_constraintStart_toEndOf="@+id/check_box2"/>
+
+    <TextView
+      android:id="@+id/check_box4"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginStart="9dp"
+      android:background="@drawable/custom_rectangle_radio_on"
+      android:lineSpacingExtra="4sp"
+      android:paddingStart="12dp"
+      android:paddingTop="5dp"
+      android:paddingEnd="12dp"
+      android:paddingBottom="5dp"
+      android:text="#라트비아 "
+      android:textAlignment="center"
+      android:textColor="@color/C999999"
+      android:textSize="12sp"
+      app:layout_constraintHorizontal_bias="0.5"
+      app:layout_constraintStart_toEndOf="@+id/check_box3"/>
+
+  </android.support.constraint.ConstraintLayout>
+
+  <android.support.constraint.ConstraintLayout
+    android:id="@+id/layout_list_view"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:layout_marginStart="25dp"
+    android:layout_marginTop="21dp"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toBottomOf="@+id/layout_tag">
+
+    <ImageView
+      android:id="@+id/image_1"
+      android:layout_width="124dp"
+      android:layout_height="40dp"
+      android:layout_marginStart="8dp"
+      android:background="@color/CE5E5E5"/>
+
+    <ImageView
+      android:id="@+id/image_2"
+      android:layout_width="124dp"
+      android:layout_height="93dp"
+      android:layout_marginStart="8dp"
+      android:layout_marginTop="21dp"
+      android:background="@color/CE5E5E5"
+      app:layout_constraintTop_toBottomOf="@+id/image_1"/>
+
+    <TextView
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginStart="18dp"
+      android:layout_marginTop="27dp"
+      android:lineSpacingExtra="6sp"
+      android:text="더 속도감 있게!\n익스트림 액티비티"
+      android:textColor="@color/C000000"
+      android:textSize="14sp"
+      app:layout_constraintStart_toEndOf="@+id/image_2"
+      app:layout_constraintTop_toTopOf="@+id/image_2"/>
+
+    <ImageView
+      android:id="@+id/image_3"
+      android:layout_width="124dp"
+      android:layout_height="93dp"
+      android:layout_marginStart="8dp"
+      android:layout_marginTop="21dp"
+      android:background="@color/CE5E5E5"
+      app:layout_constraintTop_toBottomOf="@+id/image_2"/>
+
+    <TextView
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginStart="18dp"
+      android:layout_marginTop="27dp"
+      android:lineSpacingExtra="6sp"
+      android:text="여름을 저장하기 위한\n영화 한 편"
+      android:textColor="@color/C000000"
+      android:textSize="14sp"
+      app:layout_constraintStart_toEndOf="@+id/image_3"
+      app:layout_constraintTop_toTopOf="@+id/image_3"/>
+
+    <ImageView
+      android:id="@+id/image_4"
+      android:layout_width="124dp"
+      android:layout_height="93dp"
+      android:layout_marginStart="8dp"
+      android:layout_marginTop="21dp"
+      android:background="@color/CE5E5E5"
+      app:layout_constraintTop_toBottomOf="@+id/image_3"/>
+
+    <TextView
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginStart="18dp"
+      android:layout_marginTop="27dp"
+      android:lineSpacingExtra="6sp"
+      android:text="더 속도감 있게!\n익스트림 액티비티"
+      android:textColor="@color/C000000"
+      android:textSize="14sp"
+      app:layout_constraintStart_toEndOf="@+id/image_4"
+      app:layout_constraintTop_toTopOf="@+id/image_4"/>
+
+    <ImageView
+      android:id="@+id/image_5"
+      android:layout_width="124dp"
+      android:layout_height="93dp"
+      android:layout_marginStart="8dp"
+      android:layout_marginTop="21dp"
+      android:background="@color/CE5E5E5"
+      app:layout_constraintTop_toBottomOf="@+id/image_4"/>
+
+    <TextView
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_marginStart="18dp"
+      android:layout_marginTop="27dp"
+      android:lineSpacingExtra="6sp"
+      android:text="더 속도감 있게!\n익스트림 액티비티"
+      android:textColor="@color/C000000"
+      android:textSize="14sp"
+      app:layout_constraintStart_toEndOf="@+id/image_5"
+      app:layout_constraintTop_toTopOf="@+id/image_5"/>
+  </android.support.constraint.ConstraintLayout>
+
+  <android.support.constraint.ConstraintLayout
+    android:id="@+id/tutorial_bucket_list_tag2"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginStart="121dp"
+    android:layout_marginTop="102dp"
+    android:visibility="gone"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toTopOf="parent"
+    tools:visibility="visible"
+    >
+
+    <ImageView
+      android:id="@+id/image_view_bubble2"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      app:srcCompat="@drawable/bubble_tutorial_edit"
+      />
+
+    <TextView
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:gravity="center_horizontal"
+      android:lineSpacingExtra="4sp"
+      android:text="@string/tutorial_bucket_list_update"
+      android:textColor="@color/C000000"
+      android:textSize="12sp"
+      app:layout_constraintBottom_toBottomOf="@+id/image_view_bubble2"
+      app:layout_constraintEnd_toEndOf="@+id/image_view_bubble2"
+      app:layout_constraintStart_toStartOf="@+id/image_view_bubble2"
+      app:layout_constraintTop_toTopOf="@+id/image_view_bubble2"
+      />
+  </android.support.constraint.ConstraintLayout>
+
+  <android.support.constraint.ConstraintLayout
+    android:id="@+id/tutorial_bucket_list_tag1"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_marginStart="131dp"
+    android:layout_marginTop="216dp"
+    app:layout_constraintStart_toStartOf="parent"
+    app:layout_constraintTop_toTopOf="parent">
+
+    <ImageView
+      android:id="@+id/image_view_bubble"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      app:layout_constraintBottom_toBottomOf="parent"
+      app:layout_constraintEnd_toEndOf="parent"
+      app:layout_constraintStart_toStartOf="parent"
+      app:layout_constraintTop_toTopOf="parent"
+      app:srcCompat="@drawable/bubble_tutorial_related_tags"
+      />
+
+    <TextView
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:gravity="center_horizontal"
+      android:lineSpacingExtra="4sp"
+      android:text="@string/tutorial_bucket_list_tag"
+      android:textColor="@color/C000000"
+      android:textSize="12sp"
+      app:layout_constraintBottom_toBottomOf="@+id/image_view_bubble"
+      app:layout_constraintEnd_toEndOf="@+id/image_view_bubble"
+      app:layout_constraintStart_toStartOf="@+id/image_view_bubble"
+      app:layout_constraintTop_toTopOf="@+id/image_view_bubble"
+      />
+  </android.support.constraint.ConstraintLayout>
 </android.support.constraint.ConstraintLayout>

+ 2 - 2
app/src/main/res/layout/tutorial_bucket_list_update.xml

@@ -11,8 +11,8 @@
     android:id="@+id/tutorial_bucket_list_success"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
-    android:layout_marginTop="65dp"
-    android:layout_marginEnd="21dp"
+    android:layout_marginTop="64dp"
+    android:layout_marginEnd="20dp"
     app:layout_constraintEnd_toEndOf="parent"
     app:layout_constraintTop_toTopOf="parent">