Example #1
0
 /// <summary>
 /// Merges all the listeners registered on the specified observer with the listeners
 /// registered on this object.
 /// </summary>
 /// <remarks>
 /// Merges all the listeners registered on the specified observer with the listeners
 /// registered on this object. After this method is invoked, the specified observer
 /// will return false in
 /// <see cref="isAlive()">isAlive()</see>
 /// and should not be used anymore.
 /// </remarks>
 /// <param name="observer">The ViewTreeObserver whose listeners must be added to this observer
 ///     </param>
 internal void merge(android.view.ViewTreeObserver observer)
 {
     if (observer.mOnGlobalFocusListeners != null)
     {
         if (mOnGlobalFocusListeners != null)
         {
             mOnGlobalFocusListeners.addAll(observer.mOnGlobalFocusListeners);
         }
         else
         {
             mOnGlobalFocusListeners = observer.mOnGlobalFocusListeners;
         }
     }
     if (observer.mOnGlobalLayoutListeners != null)
     {
         if (mOnGlobalLayoutListeners != null)
         {
             mOnGlobalLayoutListeners.addAll(observer.mOnGlobalLayoutListeners);
         }
         else
         {
             mOnGlobalLayoutListeners = observer.mOnGlobalLayoutListeners;
         }
     }
     if (observer.mOnPreDrawListeners != null)
     {
         if (mOnPreDrawListeners != null)
         {
             mOnPreDrawListeners.addAll(observer.mOnPreDrawListeners);
         }
         else
         {
             mOnPreDrawListeners = observer.mOnPreDrawListeners;
         }
     }
     if (observer.mOnTouchModeChangeListeners != null)
     {
         if (mOnTouchModeChangeListeners != null)
         {
             mOnTouchModeChangeListeners.addAll(observer.mOnTouchModeChangeListeners);
         }
         else
         {
             mOnTouchModeChangeListeners = observer.mOnTouchModeChangeListeners;
         }
     }
     if (observer.mOnComputeInternalInsetsListeners != null)
     {
         if (mOnComputeInternalInsetsListeners != null)
         {
             mOnComputeInternalInsetsListeners.addAll(observer.mOnComputeInternalInsetsListeners
                                                      );
         }
         else
         {
             mOnComputeInternalInsetsListeners = observer.mOnComputeInternalInsetsListeners;
         }
     }
     observer.kill();
 }
Example #2
0
 protected internal override void onDetachedFromWindow()
 {
     if (mGlobalListenersAdded)
     {
         android.view.ViewTreeObserver observer = getViewTreeObserver();
         observer.removeOnScrollChangedListener(mScrollChangedListener);
         observer.removeOnPreDrawListener(mDrawListener);
         mGlobalListenersAdded = false;
     }
     mRequestedVisible = false;
     updateWindow(false, false);
     mHaveFrame = false;
     if (mWindow != null)
     {
         try
         {
             mSession.remove(mWindow);
         }
         catch (android.os.RemoteException)
         {
         }
         // Not much we can do here...
         mWindow = null;
     }
     mSession      = null;
     mLayout.token = null;
     base.onDetachedFromWindow();
 }
Example #3
0
 public virtual bool tryShow()
 {
     mPopup = new android.widget.ListPopupWindow(mContext, null, [email protected]
                                                 .popupMenuStyle);
     mPopup.setOnDismissListener(this);
     mPopup.setOnItemClickListener(this);
     mAdapter = new [email protected](this, mMenu
                                                                            );
     mPopup.setAdapter(mAdapter);
     mPopup.setModal(true);
     android.view.View anchor = mAnchorView;
     if (anchor != null)
     {
         bool addGlobalListener = mTreeObserver == null;
         mTreeObserver = anchor.getViewTreeObserver();
         // Refresh to latest
         if (addGlobalListener)
         {
             mTreeObserver.addOnGlobalLayoutListener(this);
         }
         anchor.addOnAttachStateChangeListener(this);
         mPopup.setAnchorView(anchor);
     }
     else
     {
         return(false);
     }
     mPopup.setContentWidth(System.Math.Min(measureContentWidth(mAdapter), mPopupMaxWidth
                                            ));
     mPopup.setInputMethodMode(android.widget.PopupWindow.INPUT_METHOD_NOT_NEEDED);
     mPopup.show();
     mPopup.getListView().setOnKeyListener(this);
     return(true);
 }
Example #4
0
 public virtual void onViewDetachedFromWindow(android.view.View v)
 {
     if (mTreeObserver != null)
     {
         if (!mTreeObserver.isAlive())
         {
             mTreeObserver = v.getViewTreeObserver();
         }
         mTreeObserver.removeGlobalOnLayoutListener(this);
     }
     v.removeOnAttachStateChangeListener(this);
 }
Example #5
0
 /// <summary>Dismisses the popup window with activities.</summary>
 /// <remarks>Dismisses the popup window with activities.</remarks>
 /// <returns>True if dismissed, false if already dismissed.</returns>
 public virtual bool dismissPopup()
 {
     if (isShowingPopup())
     {
         getListPopupWindow().dismiss();
         android.view.ViewTreeObserver viewTreeObserver = getViewTreeObserver();
         if (viewTreeObserver.isAlive())
         {
             viewTreeObserver.removeGlobalOnLayoutListener(mOnGlobalLayoutListener);
         }
     }
     return(true);
 }
Example #6
0
 protected internal override void onDetachedFromWindow()
 {
     base.onDetachedFromWindow();
     android.widget.ActivityChooserModel dataModel = mAdapter.getDataModel();
     if (dataModel != null)
     {
         dataModel.unregisterObserver(mModelDataSetOberver);
     }
     android.view.ViewTreeObserver viewTreeObserver = getViewTreeObserver();
     if (viewTreeObserver.isAlive())
     {
         viewTreeObserver.removeGlobalOnLayoutListener(mOnGlobalLayoutListener);
     }
     mIsAttachedToWindow = false;
 }
Example #7
0
 public virtual void onDismiss()
 {
     mPopup = null;
     mMenu.close();
     if (mTreeObserver != null)
     {
         if (!mTreeObserver.isAlive())
         {
             mTreeObserver = mAnchorView.getViewTreeObserver();
         }
         mTreeObserver.removeGlobalOnLayoutListener(this);
         mTreeObserver = null;
     }
     mAnchorView.removeOnAttachStateChangeListener(this);
 }
Example #8
0
 protected internal override void onAttachedToWindow()
 {
     base.onAttachedToWindow();
     mParent.requestTransparentRegion(this);
     mSession      = getWindowSession();
     mLayout.token = getWindowToken();
     mLayout.setTitle(java.lang.CharSequenceProxy.Wrap("SurfaceView"));
     mViewVisibility = getVisibility() == VISIBLE;
     if (!mGlobalListenersAdded)
     {
         android.view.ViewTreeObserver observer = getViewTreeObserver();
         observer.addOnScrollChangedListener(mScrollChangedListener);
         observer.addOnPreDrawListener(mDrawListener);
         mGlobalListenersAdded = true;
     }
 }
Example #9
0
 protected internal override void onDetachedFromWindow()
 {
     base.onDetachedFromWindow();
     android.view.ViewTreeObserver treeObserver = getViewTreeObserver();
     treeObserver.removeOnTouchModeChangeListener(this);
 }
Example #10
0
 protected internal override void onAttachedToWindow()
 {
     base.onAttachedToWindow();
     android.view.ViewTreeObserver treeObserver = getViewTreeObserver();
     treeObserver.addOnTouchModeChangeListener(this);
 }
Example #11
0
		public virtual bool tryShow()
		{
			mPopup = new android.widget.ListPopupWindow(mContext, null, [email protected]
				.popupMenuStyle);
			mPopup.setOnDismissListener(this);
			mPopup.setOnItemClickListener(this);
			mAdapter = new [email protected](this, mMenu
				);
			mPopup.setAdapter(mAdapter);
			mPopup.setModal(true);
			android.view.View anchor = mAnchorView;
			if (anchor != null)
			{
				bool addGlobalListener = mTreeObserver == null;
				mTreeObserver = anchor.getViewTreeObserver();
				// Refresh to latest
				if (addGlobalListener)
				{
					mTreeObserver.addOnGlobalLayoutListener(this);
				}
				anchor.addOnAttachStateChangeListener(this);
				mPopup.setAnchorView(anchor);
			}
			else
			{
				return false;
			}
			mPopup.setContentWidth(System.Math.Min(measureContentWidth(mAdapter), mPopupMaxWidth
				));
			mPopup.setInputMethodMode(android.widget.PopupWindow.INPUT_METHOD_NOT_NEEDED);
			mPopup.show();
			mPopup.getListView().setOnKeyListener(this);
			return true;
		}
Example #12
0
		public virtual void onViewDetachedFromWindow(android.view.View v)
		{
			if (mTreeObserver != null)
			{
				if (!mTreeObserver.isAlive())
				{
					mTreeObserver = v.getViewTreeObserver();
				}
				mTreeObserver.removeGlobalOnLayoutListener(this);
			}
			v.removeOnAttachStateChangeListener(this);
		}
Example #13
0
		public virtual void onDismiss()
		{
			mPopup = null;
			mMenu.close();
			if (mTreeObserver != null)
			{
				if (!mTreeObserver.isAlive())
				{
					mTreeObserver = mAnchorView.getViewTreeObserver();
				}
				mTreeObserver.removeGlobalOnLayoutListener(this);
				mTreeObserver = null;
			}
			mAnchorView.removeOnAttachStateChangeListener(this);
		}