bool _addClient(KeepAliveNotification notification)
        {
            Listenable handle = notification.handle;

            this._handles = this._handles ?? new Dictionary <Listenable, VoidCallback>();

            D.assert(!this._handles.ContainsKey(handle));
            this._handles[handle] = this._createCallback(handle);
            handle.addListener(this._handles[handle]);
            if (!this._keepingAlive)
            {
                this._keepingAlive = true;
                ParentDataElement childElement = this._getChildElement();
                if (childElement != null)
                {
                    this._updateParentDataOfChild(childElement);
                }
                else
                {
                    SchedulerBinding.instance.addPostFrameCallback(timeStamp => {
                        ParentDataElement childElement1 = this._getChildElement();
                        D.assert(childElement1 != null);
                        this._updateParentDataOfChild(childElement1);
                    });
                }
            }

            return(false);
        }
 void _updateParentDataOfChild(ParentDataElement childElement)
 {
     childElement.applyWidgetOutOfTurn((ParentDataWidget)this.build(this.context));
 }