Esempio n. 1
0
        public virtual void BindMobileLibraryBrowserView(IMobileLibraryBrowserView view, MobileNavigationTabType tabType, MobileLibraryBrowserType browserType, LibraryQuery query)
        {
            var key = new Tuple<MobileNavigationTabType, MobileLibraryBrowserType>(tabType, browserType);
            view.OnViewDestroy = (view2) =>
            {
                // The view list can be accessed from different threads.
                lock (_locker)
                {
                    Tracing.Log("MobileNavigationManager - CreateMobileLibraryBrowserView - Destroying view - type: {0}", tabType.ToString());
                    if (_mobileLibraryBrowserList.ContainsKey(key))
                    {
                        _mobileLibraryBrowserList[key].Item2.ViewDestroyed();
                        _mobileLibraryBrowserList.Remove(key);
                    }
                }
            };

            lock (_locker)
            {
                var presenter = Bootstrapper.GetContainer().Resolve<IMobileLibraryBrowserPresenter>(new NamedParameterOverloads() { { "tabType", tabType }, { "browserType", browserType }, { "query", query } });
                presenter.BindView(view);
                _mobileLibraryBrowserList.Add(key, new Tuple<IMobileLibraryBrowserView, IMobileLibraryBrowserPresenter>(view, presenter));
            }
        }
Esempio n. 2
0
        public void AddTab(MobileNavigationTabType type, string title, MobileLibraryBrowserType browserType, LibraryQuery query, IBaseView view)
        {
            Console.WriteLine("MainActivity - Adding tab {0}", title);

            //_tabHistory.Add(new Tuple<MobileNavigationTabType, List<Tuple<MobileLibraryBrowserType, LibraryQuery>>>(type, new List<Tuple<MobileLibraryBrowserType, LibraryQuery>>() {
            //   new Tuple<MobileLibraryBrowserType, LibraryQuery>(browserType, query)
            //}));

            _fragment = (Fragment)view;
            FragmentTransaction transaction = FragmentManager.BeginTransaction();
            transaction.Replace(Resource.Id.main_fragmentContainer, _fragment);
            transaction.Commit();
        }
 public MobileLibraryBrowserChangeQueryMessage(object sender, MobileLibraryBrowserType browserType, LibraryQuery query) 
     : base(sender)
 {
     BrowserType = browserType;
     Query = query;
 }       
Esempio n. 4
0
        public virtual IMobileLibraryBrowserView CreateMobileLibraryBrowserView(MobileNavigationTabType tabType, MobileLibraryBrowserType browserType, LibraryQuery query)
        {
            var key = new Tuple<MobileNavigationTabType, MobileLibraryBrowserType>(tabType, browserType);
            
            // Check if view already exists
            if(_mobileLibraryBrowserList.ContainsKey(key))
            {
                Tuple<IMobileLibraryBrowserView, IMobileLibraryBrowserPresenter> viewPresenter;
                if (_mobileLibraryBrowserList.TryGetValue(key, out viewPresenter))
                {
                    if (viewPresenter != null)
                    {
                        viewPresenter.Item2.ChangeQuery(browserType, query);
                        return viewPresenter.Item1;
                    }
                }
            }

            var view = Bootstrapper.GetContainer().Resolve<IMobileLibraryBrowserView>(new NamedParameterOverloads() { { "tabType", tabType }, { "browserType", browserType }, { "query", query } });
            return view;
        }
 public override void PushTabView(MobileNavigationTabType type, MobileLibraryBrowserType browserType, LibraryQuery query, IBaseView view)
 {
 }
 public override void NotifyMobileLibraryBrowserQueryChange(MobileNavigationTabType type, MobileLibraryBrowserType browserType,
     LibraryQuery query)
 {
 }
Esempio n. 7
0
        public void AddTab(MobileNavigationTabType type, string title, MobileLibraryBrowserType browserType, LibraryQuery query, IBaseView view)
        {
			//Tracing.Log("MainViewController - AddTab - type: {0} title: {1} browserType: {2}", type, title, browserType);
            var appDelegate = (AppDelegate)UIApplication.SharedApplication.Delegate;
            appDelegate.AddTab(type, title, (UIViewController)view);
        }
 public override void AddTab(MobileNavigationTabType type, string title, MobileLibraryBrowserType browserType, LibraryQuery query,
     IBaseView view)
 {
 }
 public override void NotifyMobileLibraryBrowserQueryChange(MobileNavigationTabType type, MobileLibraryBrowserType browserType,
     LibraryQuery query)
 {
     Debug.WriteLine("WindowsPhoneNavigationManager - NotifyMobileLibraryBrowserQueryChange");
 }
 public override void PushTabView(MobileNavigationTabType type, MobileLibraryBrowserType browserType, LibraryQuery query, IBaseView view)
 {
     Debug.WriteLine("WindowsPhoneNavigationManager - PushTabView");
 }
 public override void AddTab(MobileNavigationTabType type, string title, MobileLibraryBrowserType browserType, LibraryQuery query,
     IBaseView view)
 {
     Debug.WriteLine("WindowsPhoneNavigationManager - AddTab");
 }
 public MobileLibraryBrowserFragment(MobileNavigationTabType tabType, MobileLibraryBrowserType browserType, LibraryQuery query) : base()
 {
     _tabType = tabType;
     _browserType = browserType;
     _query = query;
 }
        public void RefreshLibraryBrowser(IEnumerable<LibraryBrowserEntity> entities, MobileLibraryBrowserType browserType, string navigationBarTitle, string navigationBarSubtitle, string breadcrumb, bool isPopBackstack, bool isBackstackEmpty)
        {
            //Console.WriteLine("MLBF - RefreshLibraryBrowser - Count: {0} browserType: {1}", entities.Count(), browserType.ToString());
            Activity.RunOnUiThread(() =>
            {
                _browserType = browserType;
                _entities = entities.ToList();
                _lblBreadcrumb.Text = breadcrumb;

                if (isPopBackstack)
                {
                    _viewFlipper.SetInAnimation(Activity, Resource.Animation.flipper_back_slide_in);
                    _viewFlipper.SetOutAnimation(Activity, Resource.Animation.flipper_back_slide_out);
                }
                else if (isBackstackEmpty)
                {
                    _viewFlipper.SetInAnimation(Activity, Resource.Animation.flipper_changetab_in);
                    _viewFlipper.SetOutAnimation(Activity, Resource.Animation.flipper_changetab_out);                    
                }
                else
                {
                    _viewFlipper.SetInAnimation(Activity, Resource.Animation.flipper_slide_in);
                    _viewFlipper.SetOutAnimation(Activity, Resource.Animation.flipper_slide_out);
                }

                switch (browserType)
                {
                    case MobileLibraryBrowserType.Artists:
                        int index = _viewFlipper.IndexOfChild(_listViewArtists);
                        _viewFlipper.DisplayedChild = index;

                        if (_listViewArtists != null)
                        {
                            _listAdapterArtists.SetData(_entities);
                            _listViewArtists.SetSelection(0);
                        }
                        break;
                    case MobileLibraryBrowserType.Albums:
                        int index2 = _viewFlipper.IndexOfChild(_gridViewAlbums);
                        _viewFlipper.DisplayedChild = index2;

                        if (_gridViewAlbums != null)
                            _gridAdapter.SetData(entities);
                        break;
                    case MobileLibraryBrowserType.Songs:
                        int index3 = _viewFlipper.IndexOfChild(_layoutSongs);
                        _viewFlipper.DisplayedChild = index3;

                        if (_entities.Count > 0)
                        {                            
                            var audioFile = _entities[0].AudioFile;
                            _lblArtistName.Text = audioFile.ArtistName;
                            _lblAlbumTitle.Text = audioFile.AlbumTitle;
                            _lblAlbumSongCount.Text = _entities.Count.ToString() + " songs";
                            _imageAlbum.SetImageBitmap(null);

                            Task.Factory.StartNew(() =>
                            {
                                string key = audioFile.ArtistName + "_" + audioFile.AlbumTitle;
                                //Console.WriteLine("MobileLibraryFragment - Album art - key: {0}", key);
                                if (_imageAlbum.Tag == null || _imageAlbum.Tag.ToString().ToUpper() != key.ToUpper())
                                {
                                    //Console.WriteLine("MobileLibraryFragment - Album art - key: {0} is different than tag {1} - Fetching album art...", key, (_imageAlbum.Tag == null) ? "null" : _imageAlbum.Tag.ToString());
                                    _imageAlbum.Tag = key;
                                    byte[] bytesImage = AudioFile.ExtractImageByteArrayForAudioFile(audioFile.FilePath);
                                    if (bytesImage.Length == 0)
                                        _imageAlbum.SetImageBitmap(null);
                                    else
                                        //((MainActivity)Activity).BitmapCache.LoadBitmapFromByteArray(bytesImage, key, _imageAlbum);
                                        BitmapCache.LoadBitmapFromByteArray(bytesImage, key, _imageAlbum);
                                }
                            });
                        }

                        if (_listViewSongs != null)
                        {
                            _listAdapterSongs.SetData(_entities);
                            _listViewSongs.SetSelection(0);
                        }
                        break;
                    case MobileLibraryBrowserType.Playlists:
                        int index4 = _viewFlipper.IndexOfChild(_listViewPlaylists);
                        _viewFlipper.DisplayedChild = index4;
                        break;
                }
            });
        }