private void createAnchorExceptionCompletion(string message)
 {
     textView.Text = message;
     currentStep   = DemoStep.Choosing;
     cloudAnchorManager.Stop();
     cloudAnchorManager = null;
     enableCorrectUIControls();
 }
 void anchorPosted(String anchorNumber)
 {
     textView.Text = "Anchor Number: " + anchorNumber;
     currentStep   = DemoStep.Choosing;
     cloudAnchorManager.Stop();
     cloudAnchorManager = null;
     clearVisuals();
     enableCorrectUIControls();
 }
        private void startNewSession()
        {
            destroySession();

            cloudAnchorManager = new AzureSpatialAnchorsManager(sceneView.Session);
            cloudAnchorManager.AnchorLocated          += onAnchorLocated;
            cloudAnchorManager.LocateAnchorsCompleted += onLocateAnchorsCompleted;
            cloudAnchorManager.SessionUpdated         += onSessionUpdated;
            cloudAnchorManager.Start();
        }
        private void destroySession()
        {
            if (cloudAnchorManager != null)
            {
                cloudAnchorManager.Stop();
                cloudAnchorManager = null;
            }

            clearVisuals();
        }
        private void anchorLookedUp(String anchorId)
        {
            Log.Debug("ASADemo", "anchor " + anchorId);
            this.anchorId = anchorId;
            destroySession();

            cloudAnchorManager = new AzureSpatialAnchorsManager(sceneView.Session);
            cloudAnchorManager.AnchorLocated += (s, e) =>
                                                RunOnUiThread(() =>
            {
                CloudSpatialAnchor anchor = e.P0.Anchor;
                if (e.P0.Status == LocateAnchorStatus.AlreadyTracked || e.P0.Status == LocateAnchorStatus.Located)
                {
                    AnchorVisual foundVisual = new AnchorVisual(anchor.LocalAnchor);
                    foundVisual.SetCloudAnchor(anchor);
                    foundVisual.AnchorNode.SetParent(arFragment.ArSceneView.Scene);
                    String cloudAnchorIdentifier = foundVisual.CloudAnchor.Identifier;
                    foundVisual.SetColor(foundColor);
                    foundVisual.Render(arFragment);
                    anchorVisuals[cloudAnchorIdentifier] = foundVisual;
                }
            });


            cloudAnchorManager.LocateAnchorsCompleted += (s, e) =>
            {
                currentStep = DemoStep.Choosing;

                RunOnUiThread(() =>
                {
                    textView.Text = "Anchor located!";
                    enableCorrectUIControls();
                });
            };
            cloudAnchorManager.Start();
            AnchorLocateCriteria criteria = new AnchorLocateCriteria();

            criteria.SetIdentifiers(new string[] { anchorId });
            cloudAnchorManager.StartLocating(criteria);
        }
        public void createButtonClicked(View v)
        {
            textView.Text = "Scan your environment and place an anchor";
            destroySession();

            cloudAnchorManager = new AzureSpatialAnchorsManager(sceneView.Session);

            cloudAnchorManager.SessionUpdated += (s, args) =>
            {
                if (currentStep == DemoStep.Creating)
                {
                    float progress = args.P0.Status.RecommendedForCreateProgress;
                    if (progress >= 1.0)
                    {
                        AnchorVisual visual = anchorVisuals[""];
                        if (visual != null)
                        {
                            //Transition to saving...
                            transitionToSaving(visual);
                        }
                        else
                        {
                            feedbackText = "Tap somewhere to place an anchor.";
                        }
                    }
                    else
                    {
                        feedbackText = $"Progress is {progress.ToString("P2")}";
                    }
                }
            };

            cloudAnchorManager.Start();
            currentStep = DemoStep.Creating;
            enableCorrectUIControls();
        }