Esempio n. 1
0
        //Not in viewmodel cos  Navigation available only for content page and we need to create Browser view to show
        //in authentication process
        private async Task Run()
        {
            var folders = Environment.SpecialFolder.ApplicationData;

            viewModel.IsBusy = true;
            viewModel.PhotoCollection.Clear();
            this.Appearing -= StartLoad;

            try
            {
                //var responcePage = new ResponcePage();
                //var unused = Navigation.PushModalAsync(responcePage);

                var browser = new EmbeddedBrowser("Login to google");
                browser.Cancelled += (s, evt) => { Navigation.PopModalAsync(); };

                var unused  = Navigation.PushModalAsync(browser);
                var currdir = DependencyService.Get <ICurrentDir>().GetCurrent();
                // var currdir = "/opt/usr/apps/org.tizen.example.TizenXamlApp1.TV/res/";

                using (var stream = new FileStream(currdir + "client_secrets.json", FileMode.Open, FileAccess.Read)){
                    credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
                        GoogleClientSecrets.Load(stream).Secrets,
                        new[] { PhotosLibraryService.Scope.Photoslibrary },
                        "user",
                        CancellationToken.None,
                        codeReceiver : new TizenLocalServerCodeReceiver {
                        EmbeddedBrowser = browser
                    });
                }

                unused = Navigation.PopModalAsync();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }



            // Create the service.
            service = new PhotosLibraryService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = "PhotosViewerTizen",
            });

            var request = service.SharedAlbums.List();

            request.PageSize = 50;


            try
            {
                var bookshelves = await request.ExecuteAsync();

                var she = bookshelves.SharedAlbums;


                foreach (var album in she)
                {
                    if (album != null && album.Title != null)
                    {
                        string test = album.Title;
                        await viewModel.AddOne(album);
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }

            finally
            {
                viewModel.IsBusy = false;
                TopLabel.Text    = "My Albums";
                this.Appearing  += StartLoad;
            }
        }