protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.activity_main);

            var fm       = FragmentManager;
            var fragment = (BatchStepSensorFragment)fm.FindFragmentByTag(FRAGTAG);

            if (fragment == null)
            {
                var transaction = fm.BeginTransaction();
                fragment = new BatchStepSensorFragment();
                transaction.Add(fragment, FRAGTAG);
                transaction.Commit();
            }

            // Use fragment as click listener for cards, but must implement correct interface
            if (!(fragment is OnCardClickListener))
            {
                throw new InvalidCastException("BatchStepSensorFragment must implement OnCardClickListener interface.");
            }

            var clickListener = (OnCardClickListener)fm.FindFragmentByTag(FRAGTAG);

            mRetentionFragment = (StreamRetentionFragment)fm.FindFragmentByTag(RETENTION_TAG);
            if (mRetentionFragment == null)
            {
                mRetentionFragment = new StreamRetentionFragment();
                fm.BeginTransaction().Add(mRetentionFragment, RETENTION_TAG).Commit();
            }
            else
            {
                // If the retention fragment already existed, we need to pull a state.
                // Pull State out.
                CardStreamState state = mRetentionFragment.CardStream;

                // Dump it in CardStreamFragment;
                mCardStreamFragment = (CardStreamFragment)fm.FindFragmentById(Resource.Id.fragment_cardstream);
                mCardStreamFragment.RestoreState(state, clickListener);
            }
        }
        public override void OnResume()
        {
            base.OnResume();
            CardStreamFragment stream = CardStream;

            if (stream.VisibleCardCount < 1)
            {
                // No cards are visible, started for the first time
                // Prepare all cards and show the intro card.
                InitializeCards();
                ShowIntroCard();

                if (IsKitKatWithStepSensor)
                {
                    ShowRegisterCard();
                }
                else
                {
                    ShowErrorCard();
                }
            }
        }