Change label slide animation
authorHeonjae Jang <heonjae.jang@samsung.com>
Wed, 7 Jun 2017 05:29:37 +0000 (14:29 +0900)
committerHeonjae Jang <heonjae.jang@samsung.com>
Wed, 7 Jun 2017 05:51:37 +0000 (14:51 +0900)
Change-Id: Id767f1bec4a480f303478457d7a0c120a63ab6f6
Signed-off-by: Heonjae Jang <heonjae.jang@samsung.com>
TVMediaHub/TVMediaHub.Tizen/TVMediaHub.Tizen.project.json
TVMediaHub/TVMediaHub.Tizen/Views/VideoItem.xaml.cs

index f34ad0b..542d989 100755 (executable)
@@ -12,9 +12,9 @@
     "Tizen.Content.MediaContent": "1.0.19",
     "Tizen.Multimedia": "1.2.0",
     "Tizen.Multimedia.MediaPlayer": "1.0.0",
-    "Tizen.Xamarin.Forms.Extension": "2.3.5-r233-002",
+    "Tizen.Xamarin.Forms.Extension": "2.3.5-r233-004",
     "Xamarin.Forms": "2.3.5-r233-004",
-    "Xamarin.Forms.Platform.Tizen": "2.3.5-r233-004"
+    "Xamarin.Forms.Platform.Tizen": "2.3.5-r233-008"
   },
   "runtimes": {
     "win": {},
index a8a0481..4c16c24 100755 (executable)
@@ -166,10 +166,39 @@ namespace TVMediaHub.Tizen.Views
         {
             InitializeComponent();
             InitializeSize();
+            InitializeLabelSlide();
             PropertyChanged += VideoItemPropertyChanged;
         }
 
         /// <summary>
+        /// A method for initializing label slide
+        /// </summary>
+        private void InitializeLabelSlide()
+        {
+            ContentTitle.SetValue(SlideEffect.SlideModeProperty, SlideMode.Always);
+            ContentTitle.SetValue(SlideEffect.SlideStyleProperty, SlideStyle.Long);
+            ContentTitle.SetValue(SlideEffect.HasSlideProperty, false);
+
+            ContentTitle.PropertyChanged += SetSlideDuration;
+        }
+
+        /// <summary>
+        /// This method is called when the ContentTitle property is changed
+        /// Sets label slide duration
+        /// </summary>
+        /// <param name="sender">The source of the event</param>
+        /// <param name="e">A propertyChanged event argument</param>
+        private void SetSlideDuration(object sender, PropertyChangedEventArgs e)
+        {
+            if (e.PropertyName.Equals("Width"))
+            {
+                double slideDuration = ContentTitle.Width * 12000 / 480;
+                ContentTitle.SetValue(SlideEffect.SlideDurationProperty, slideDuration);
+                ContentTitle.PropertyChanged -= SetSlideDuration;
+            }
+        }
+
+        /// <summary>
         /// A method for initializing size of the items that are used in this class
         /// </summary>
         private void InitializeSize()
@@ -273,6 +302,7 @@ namespace TVMediaHub.Tizen.Views
             Easing easing = new Easing(EasingFunction.EasyIn2);
             this.AbortAnimation("TextSliding");
             this.AbortAnimation("FocusAnimation");
+            ContentTitle.SetValue(SlideEffect.HasSlideProperty, false);
 
             BgDimImage.Opacity = 0;
             ContentImage.ScaleTo(1.0, 167, easing);
@@ -309,17 +339,7 @@ namespace TVMediaHub.Tizen.Views
                 {
                     if (!IsCanceled)
                     {
-                        uint animationLength = (uint)(ContentTitle.Width * 12000 / 480);
-                        this.Animate("TextSliding",
-                            (v2) =>
-                            {
-                                ContentTitle.TranslationX = -ContentTitle.Width * v2;
-                            },
-                            length: animationLength,
-                            finished: (v2, c2) =>
-                             {
-                                 ContentTitle.TranslationX = 0;
-                             });
+                        ContentTitle.SetValue(SlideEffect.HasSlideProperty, true);
                     }
                 });