コード例 #1
0
ファイル: ViewModelStore.cs プロジェクト: tretikoff/Hogwarts
        internal static IViewModelStore FindOrCreate(FragmentActivity owner)
        {
            var fm     = owner.SupportFragmentManager;
            var holder = (ViewModelStoreFragment)fm.FindFragmentByTag(ViewModelStoreFragment.HOLDER_TAG);

            if (holder != null)
            {
                return(holder._store);
            }
            if (_pendingActivityHolders.TryGetValue(owner, out holder))
            {
                return(holder._store);
            }
            if (_activityCleanup == null)
            {
                _activityCleanup = new CleanPendingActivityHolders();
                owner.Application.RegisterActivityLifecycleCallbacks(_activityCleanup);
            }
            holder = Create(fm);
            _pendingActivityHolders.Add(owner, holder);
            return(holder._store);
        }
コード例 #2
0
        public HolderFragmentManager()
        {
            _mActivityCallbacks = new EmptyActivityLifecycleCallbacks
            {
                OnActivityDestroyedAction = activity =>
                {
                    if (_mNotCommittedActivityHolders.ContainsKey(activity))
                    {
                        _mNotCommittedActivityHolders.Remove(activity);
                    }
                }
            };

            _mParentDestroyedCallback = new EmptyFragmentLifecycleCallbacks
            {
                OnFragmentDestroyedAction = (fm, f) =>
                {
                    if (_mNotCommittedFragmentHolders.ContainsKey(f))
                    {
                        _mNotCommittedFragmentHolders.Remove(f);
                    }
                }
            };
        }