Added state message
authortaeyoon0.lee <taeyoon0.lee@samsung.com>
Thu, 2 Feb 2017 08:04:35 +0000 (17:04 +0900)
committerTaeyoon Lee <taeyoon0.lee@samsung.com>
Thu, 1 Jun 2017 04:30:40 +0000 (04:30 +0000)
 - Cases for aborted widget creation or deletion

Change-Id: If371f9fd16e91b05c90f05f275ae5d5bed650a85

internal/widget_view/widget_view_impl.cpp
internal/widget_view/widget_view_impl.h

index b7e8b74..b086f8a 100644 (file)
@@ -50,6 +50,9 @@ namespace Internal
 namespace
 {
 
+const char* const STATE_MESSAGE_LOADING = "loading";
+const char* const STATE_MESSAGE_RETRY = "Unable to load data. Tap to retry";
+
 #if defined(DEBUG_ENABLED)
 Integration::Log::Filter* gWidgetViewLogging  = Integration::Log::Filter::New( Debug::Verbose, false, "LOG_WIDGET_VIEW" );
 #endif
@@ -167,7 +170,8 @@ WidgetView::WidgetView()
   mPid( 0 ),
   mUpdatePeriod( 0.0 ),
   mPreviewVisible( true ),
-  mStateTextVisible( true ),
+  mLoadingTextVisible( true ),
+  mTapTextVisible( true ),
   mPermanentDelete( false ),
   mWatcherHandle( NULL ),
   mRemoteSurface( NULL )
@@ -185,7 +189,8 @@ WidgetView::WidgetView( const std::string& widgetId, const std::string& contentI
   mPid( 0 ),
   mUpdatePeriod( updatePeriod ),
   mPreviewVisible( true ),
-  mStateTextVisible( true ),
+  mLoadingTextVisible( true ),
+  mTapTextVisible( true ),
   mPermanentDelete( false ),
   mWatcherHandle( NULL ),
   mRemoteSurface( NULL )
@@ -303,12 +308,12 @@ bool WidgetView::CancelTouchEvent()
   return false;
 }
 
-void WidgetView::ShowPreview( bool show )
+void WidgetView::SetPreviewVisible( bool visible )
 {
-  if( mPreviewImage && show != mPreviewVisible )
+  if( mPreviewImage && mPreviewVisible != visible )
   {
-    mPreviewVisible = show;
-    mPreviewImage.SetVisible( show );
+    mPreviewVisible = visible;
+    mPreviewImage.SetVisible( visible );
   }
 }
 
@@ -317,34 +322,32 @@ bool WidgetView::IsPreviewVisible()
   return mPreviewVisible;
 }
 
-void WidgetView::ShowStateText( bool show )
+void WidgetView::SetLoadingTextVisible( bool visible )
 {
-  if( mStateText && mStateTextVisible != show )
+  if( mStateText && mLoadingTextVisible != visible )
   {
-    mStateTextVisible = show;
-    mStateText.SetVisible( show );
+    mLoadingTextVisible = visible;
+
+    if( visible )
+    {
+      mStateText.SetProperty( Toolkit::TextLabel::Property::TEXT, STATE_MESSAGE_LOADING );
+    }
+    mStateText.SetVisible( visible );
   }
 }
 
-bool WidgetView::IsStateTextVisible()
+bool WidgetView::IsLoadingTextVisible()
 {
-  return mStateTextVisible;
+  return mLoadingTextVisible;
 }
 
 void WidgetView::ActivateFaultedWidget()
 {
   if( mPid < 0 )
   {
-    // Esable preview and text
-    if( mPreviewVisible )
-    {
-      mPreviewImage.SetVisible( true );
-    }
-
-    if( mStateTextVisible )
-    {
-      mStateText.SetVisible( true );
-    }
+    // Enable preview and loading text
+    ShowTapWidgetState( false );
+    ShowLoadingState( true );
 
     // launch widget again
     mPid = widget_instance_launch( mInstanceId.c_str(), (char *)mContentInfo.c_str(), mWidth, mHeight );
@@ -352,10 +355,14 @@ void WidgetView::ActivateFaultedWidget()
     {
       DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::ActivateFaultedWidget: widget_instance_launch is failed. [%s]\n", mWidgetId.c_str() );
 
+      ShowLoadingState( false );
+      ShowTapWidgetState( true );
+
       // Emit signal
       Dali::WidgetView::WidgetView handle( GetOwner() );
       mWidgetCreationAbortedSignal.Emit( handle );
 
+
       return;
     }
 
@@ -396,15 +403,7 @@ void WidgetView::CreateWidgetImageView()
   mWidgetImageView.SetProperty( Toolkit::ImageView::Property::PRE_MULTIPLIED_ALPHA, true );
 
   // Disable preview and text
-  if( mPreviewVisible )
-  {
-    mPreviewImage.SetVisible( false );
-  }
-
-  if( mStateTextVisible )
-  {
-    mStateText.SetVisible( false );
-  }
+  ShowLoadingState( false );
 
   // Emit signal
   Dali::WidgetView::WidgetView handle( GetOwner() );
@@ -415,10 +414,13 @@ void WidgetView::CreateWidgetImageView()
 
 void WidgetView::RemoveWidgetImage()
 {
+  ShowTapWidgetState( true );
+
   // Emit signal
   Dali::WidgetView::WidgetView handle( GetOwner() );
   mWidgetDeletedSignal.Emit( handle );
 
+  mWidgetImageView.SetVisible( false );
   mWidgetImageView.Reset();
 
   DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::RemoveWidgetImage: Widget image is removed.\n" );
@@ -550,7 +552,7 @@ void WidgetView::SetProperty( BaseObject* object, Property::Index index, const P
 
         if( value.Get( previewEnabled ) )
         {
-          impl.ShowPreview( previewEnabled );
+          impl.SetPreviewVisible( previewEnabled );
         }
         break;
       }
@@ -561,7 +563,7 @@ void WidgetView::SetProperty( BaseObject* object, Property::Index index, const P
 
         if( value.Get( textEnabled ) )
         {
-          impl.ShowStateText( textEnabled );
+          impl.SetLoadingTextVisible( textEnabled );
         }
         else if( value.Get( map ) )
         {
@@ -625,7 +627,7 @@ Property::Value WidgetView::GetProperty( BaseObject* object, Property::Index ind
       }
       case Dali::WidgetView::WidgetView::Property::LOADING_TEXT:
       {
-        value = impl.IsStateTextVisible();
+        value = impl.IsLoadingTextVisible();
         break;
       }
       case Dali::WidgetView::WidgetView::Property::WIDGET_STATE_FAULTED:
@@ -734,7 +736,7 @@ void WidgetView::OnInitialize()
 
   // State text
   // TODO: use po files
-  mStateText = Toolkit::TextLabel::New( "Loading..." );
+  mStateText = Toolkit::TextLabel::New( STATE_MESSAGE_LOADING );
   mStateText.SetParentOrigin( ParentOrigin::CENTER );
   mStateText.SetAnchorPoint( AnchorPoint::CENTER );
   mStateText.SetProperty( Toolkit::TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
@@ -749,6 +751,9 @@ void WidgetView::OnInitialize()
   mPid = widget_instance_launch( instanceId, (char *)mContentInfo.c_str(), mWidth, mHeight );
   if( mPid < 0)
   {
+
+    ShowTapWidgetState( true );
+
     DALI_LOG_INFO( gWidgetViewLogging, Debug::Verbose, "WidgetView::OnInitialize: widget_instance_launch is failed. [%s]\n", mWidgetId.c_str() );
 
     // Emit signal
@@ -931,6 +936,34 @@ void WidgetView::CloseRemoteSurface()
   mRemoteSurface = NULL;
 }
 
+void WidgetView::ShowLoadingState( bool show )
+{
+  if( mPreviewImage && mPreviewVisible )
+  {
+    mPreviewImage.SetVisible( show );
+  }
+
+  if( mStateText && mLoadingTextVisible )
+  {
+    mStateText.SetProperty( Toolkit::TextLabel::Property::TEXT, STATE_MESSAGE_LOADING );
+    mStateText.SetVisible( show );
+  }
+}
+
+void WidgetView::ShowTapWidgetState( bool show )
+{
+  if( mPreviewImage && mPreviewVisible )
+  {
+    mPreviewImage.SetVisible( false );
+  }
+
+  if( mStateText && mTapTextVisible )
+  {
+    mStateText.SetProperty( Toolkit::TextLabel::Property::TEXT, STATE_MESSAGE_RETRY );
+    mStateText.SetVisible( show );
+  }
+}
+
 void WidgetView::SetLoadingTextPropertyMap( Property::Map map )
 {
   if( mStateText )
index eae1155..d6af8fe 100644 (file)
@@ -112,13 +112,13 @@ public: // Internal API
 
   float GetUpdatePeriod() const;
 
-  void ShowPreview( bool show );
+  void SetPreviewVisible( bool visible );
 
   bool IsPreviewVisible();
 
-  void ShowStateText( bool show );
+  void SetLoadingTextVisible( bool visible );
 
-  bool IsStateTextVisible();
+  bool IsLoadingTextVisible();
 
   bool IsWidgetFaulted();
 
@@ -144,6 +144,10 @@ public: // Internal API
 
   void SetLoadingTextPropertyMap( Dali::Property::Map map );
 
+  void ShowLoadingState( bool show );
+
+  void ShowTapWidgetState( bool show );
+
 public: //Signals
 
   /**
@@ -258,7 +262,8 @@ private:
   float mUpdatePeriod;
 
   bool mPreviewVisible;
-  bool mStateTextVisible;
+  bool mLoadingTextVisible;
+  bool mTapTextVisible;
   bool mPermanentDelete;
   screen_connector_toolkit_h mWatcherHandle;
   tizen_remote_surface* mRemoteSurface;