/** * Reveal the showcaseview. Returns a bool telling us whether we actually did show anything * * @param activity * @return */ public bool Show(Activity activity) { /** * if we're in single use mode and have already shot our bolt then do nothing */ if (_singleUse) { if (_prefsManager.HasFired()) { return(false); } _prefsManager.SetFired(); } // var view = (_target as ViewTarget)._view; // ViewGroup viewGroup = null; // while (view.Parent is ViewGroup) // { // viewGroup = (ViewGroup)view.Parent; // view = viewGroup; // } // // viewGroup?.AddView(this); var view = ((ViewGroup)activity.Window.DecorView); view?.AddView(this); SetShouldRender(true); _handler = new Handler(); _handler.PostDelayed(new Runnable(() => { if (_shouldAnimate) { AnimateIn(); } else { Visibility = ViewStates.Visible; NotifyOnDisplayed(); } }), _delayInMillis); UpdateDismissButton(); return(true); }
private void ShowNextItem() { if (_showcaseQueue.Count > 0 && !_activity.IsFinishing) { var sequenceItem = _showcaseQueue.Dequeue(); sequenceItem.SetDetachedListener(this); sequenceItem.Show(_activity); _onItemShownListener?.Invoke(sequenceItem, (int)_sequencePosition); } else /** * We've reached the end of the sequence, save the fired state */ if (_singleUse) { _prefsManager.SetFired(); } }
/** * Reveal the showcaseview. Returns a bool telling us whether we actually did show anything * * @param activity * @return */ public bool Show(Activity activity) { /** * if we're in single use mode and have already shot our bolt then do nothing */ if (_singleUse) { if (_prefsManager.HasFired()) { return(false); } _prefsManager.SetFired(); } ((ViewGroup)activity.Window.DecorView).AddView(this); SetShouldRender(true); _handler = new Handler(); _handler.PostDelayed(new Runnable(() => { if (_shouldAnimate) { AnimateIn(); } else { Visibility = ViewStates.Visible; NotifyOnDisplayed(); } }), _delayInMillis); UpdateDismissButton(); return(true); }