Exemplo n.º 1
0
 internal void WireupHandlers <TActivityController>(ControllerActivity <TActivityController> activity) where TActivityController : ActivityController
 {
     activity.OnStartHandler                    = OnStart;
     activity.OnCreateHandler                   = (p) => this.OnCreate(p);
     activity.OnActivityResultHandler           = HandleOnActivityResult;
     activity.OnStopHandler                     = OnStop;
     activity.OnResumeHandler                   = OnResume;
     activity.OnPauseHandler                    = OnPause;
     activity.OnDestroyHandler                  = OnDestroy;
     activity.OnRestoreInstanceStateHandler     = OnRestoreInstanceState;
     activity.OnSaveInstanceStateHandler        = OnSaveInstanceState;
     activity.OnDestroyHandler                  = OnDestroy;
     activity.OnBackPressedHandler              = OnBackPressed;
     activity.OnRestartHandler                  = OnRestart;
     activity.OnLowMemoryHandler                = OnLowMemory;
     activity.OnPostResumeHandler               = OnPostResume;
     activity.OnAttachedToWindowHandler         = OnAttachedToWindow;
     activity.OnDetachedFromWindowHandler       = OnDetachedFromWindow;
     activity.OnRequestPermissionsResultHandler = OnRequestPermissionsResult;
     activity.OnCreateContextMenuHandler        = OnCreateContextMenu;
     activity.OnNewIntentHandler                = OnNewIntent;
 }
        internal static AssociatedActivityInfo <TController> Associate <TController>(string associatedActivityId, ControllerActivity <TController> activity) where TController : ActivityController
        {
            AssociatedActivityInfo <TController> info;

            if (associatedActivities.ContainsKey(associatedActivityId))
            {
                info = (AssociatedActivityInfo <TController>)Get(associatedActivityId);
            }
            else
            {
                info = new AssociatedActivityInfo <TController>
                {
                    Id = associatedActivityId,
                    ControllerActivity = activity,
                    AppCompatActivity  = activity,
                };
                associatedActivities.Add(info.Id, info);
            }

            if (info.ActivityController == null)
            {
                info.ActivityController = Activator.CreateInstance <TController>();
                info.ActivityController.AssociatedActivityId = associatedActivityId;
            }

            info.ControllerActivity = activity;
            info.AppCompatActivity  = activity;
            info.ActivityController.WireupHandlers(activity);

            return(info);
        }