public override void OnCreate()
        {
            base.OnCreate();

            Agent = new AndroidAgent(null, contentId: global::Android.Resource.Id.Content);
            Agent.IdentificationFailure += OnAgentIdentificationFailure;
        }
Esempio n. 2
0
    protected override void Awake()
    {
        base.Awake();

#if UNITY_ANDROID
        agent = gameObject.AddComponent <AndroidAgent>();
#endif
    }
Esempio n. 3
0
        public void IntegrateWith(EvaluationContextManager evaluationContextManager)
        {
            realAgent = evaluationContextManager.Context as AndroidAgent;

            if (realAgent == null)
            {
                return;
            }

            if (realAgent.ViewHierarchyHandlerManager == null)
            {
                return;
            }

            try {
                realAgent.ViewHierarchyHandlerManager.AddViewHierarchyHandler(HierarchyKind,
                                                                              new AndroidFormsViewHierarchyHandler(realAgent));

                evaluationContextManager.RepresentationManager.AddProvider <FormsRepresentationProvider> ();

                if (realAgent.ClientSessionUri.SessionKind == ClientSessionKind.Workbook)
                {
                    evaluationContextManager.RegisterResetStateHandler(ResetStateHandler);

                    // Set up launching the Forms activity.
                    Log.Debug(TAG, "Setting up activity type and grabbing current activity...");
                    var activityType = Type.GetType(FormsActivityTypeName);

                    if (activityType == null)
                    {
                        Log.Warning(TAG, "Could not fully initialize Xamarin.Forms integration, missing Forms launch activity.");
                        return;
                    }

                    var intent = new Intent(Application.Context, activityType);
                    intent.AddFlags(ActivityFlags.NewTask);

                    var currentActivity = realAgent.GetTopActivity();

                    // Launch the Forms activity.
                    Log.Debug(TAG, "Launching Forms activity via intent.");
                    Application.Context.StartActivity(intent);

                    // Wrap the previous activity up to reduce confusion.
                    Log.Debug(TAG, "Finishing existing activity.");
                    currentActivity.Finish();
                }

                Log.Info(TAG, "Registered Xamarin.Forms agent integration!");
            } catch (Exception e) {
                Log.Error(TAG, "Could not register Xamarin.Forms agent integration.", e);
            }
        }
 public AndroidFormsViewHierarchyHandler(AndroidAgent agent)
 {
     this.agent = agent;
 }