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(); } } }