From: taeyoon0.lee Date: Thu, 2 Feb 2017 08:04:35 +0000 (+0900) Subject: Added state message X-Git-Tag: accepted/tizen/4.0/unified/20170920.081503~1^2~17 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fwidget-viewer-dali.git;a=commitdiff_plain;h=8dca9a279a62eb5f7542abf0c00d79c19134d216 Added state message - Cases for aborted widget creation or deletion Change-Id: If371f9fd16e91b05c90f05f275ae5d5bed650a85 --- diff --git a/internal/widget_view/widget_view_impl.cpp b/internal/widget_view/widget_view_impl.cpp index b7e8b74..b086f8a 100644 --- a/internal/widget_view/widget_view_impl.cpp +++ b/internal/widget_view/widget_view_impl.cpp @@ -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 ) diff --git a/internal/widget_view/widget_view_impl.h b/internal/widget_view/widget_view_impl.h index eae1155..d6af8fe 100644 --- a/internal/widget_view/widget_view_impl.h +++ b/internal/widget_view/widget_view_impl.h @@ -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;