Exemplo n.º 1
0
 public SelectExternalContentTypeDialog(string title, Action <ExternalContentType> selectionHandler)
     : base(title, from v in EnumUtils.GetEnumValues(typeof(ExternalContentType))
            where ExternalContentManager.IsEntryTypeDownloadSupported((ExternalContentType) v)
            select v, 64f, delegate(object item)
 {
     ExternalContentType type = (ExternalContentType)item;
     XElement node            = ContentManager.Get <XElement>("Widgets/SelectExternalContentTypeItem");
     ContainerWidget obj      = (ContainerWidget)Widget.LoadWidget(null, node, null);
     obj.Children.Find <RectangleWidget>("SelectExternalContentType.Icon").Subtexture = ExternalContentManager.GetEntryTypeIcon(type);
     obj.Children.Find <LabelWidget>("SelectExternalContentType.Text").Text           = ExternalContentManager.GetEntryTypeDescription(type);
     return(obj);
 }, delegate(object item)
 {
     selectionHandler((ExternalContentType)item);
 })
 {
 }
Exemplo n.º 2
0
        public override void Update()
        {
            if (m_listDirty)
            {
                m_listDirty = false;
                UpdateList();
            }
            ExternalContentEntry externalContentEntry = null;

            if (m_directoryList.SelectedIndex.HasValue)
            {
                externalContentEntry = (m_directoryList.Items[m_directoryList.SelectedIndex.Value] as ExternalContentEntry);
            }
            if (externalContentEntry != null)
            {
                m_actionButton.IsVisible = true;
                if (externalContentEntry.Type == ExternalContentType.Directory)
                {
                    m_actionButton.Text        = LanguageControl.Get(fName, 1);
                    m_actionButton.IsEnabled   = true;
                    m_copyLinkButton.IsEnabled = false;
                }
                else
                {
                    m_actionButton.Text = LanguageControl.Get(fName, 2);
                    if (ExternalContentManager.IsEntryTypeDownloadSupported(ExternalContentManager.ExtensionToType(Storage.GetExtension(externalContentEntry.Path).ToLower())))
                    {
                        m_actionButton.IsEnabled   = true;
                        m_copyLinkButton.IsEnabled = true;
                    }
                    else
                    {
                        m_actionButton.IsEnabled   = false;
                        m_copyLinkButton.IsEnabled = false;
                    }
                }
            }
            else
            {
                m_actionButton.IsVisible   = false;
                m_copyLinkButton.IsVisible = false;
            }
            m_directoryLabel.Text         = m_externalContentProvider.IsLoggedIn ? string.Format(LanguageControl.Get(fName, 3), m_path) : LanguageControl.Get(fName, 4);
            m_providerNameLabel.Text      = m_externalContentProvider.DisplayName;
            m_upDirectoryButton.IsEnabled = (m_externalContentProvider.IsLoggedIn && m_path != "/");
            m_loginLogoutButton.Text      = (m_externalContentProvider.IsLoggedIn ? LanguageControl.Get(fName, 5) : LanguageControl.Get(fName, 6));
            m_loginLogoutButton.IsVisible = m_externalContentProvider.RequiresLogin;
            m_copyLinkButton.IsVisible    = m_externalContentProvider.SupportsLinks;
            m_copyLinkButton.IsEnabled    = (externalContentEntry != null && ExternalContentManager.IsEntryTypeDownloadSupported(externalContentEntry.Type));
            if (m_changeProviderButton.IsClicked)
            {
                DialogsManager.ShowDialog(null, new SelectExternalContentProviderDialog(LanguageControl.Get(fName, 7), listingSupportRequired : true, delegate(IExternalContentProvider provider)
                {
                    m_externalContentProvider = provider;
                    m_listDirty = true;
                    SetPath(null);
                }));
            }
            if (m_upDirectoryButton.IsClicked)
            {
                string directoryName = Storage.GetDirectoryName(m_path);
                SetPath(directoryName);
            }
            if (m_actionButton.IsClicked && externalContentEntry != null)
            {
                if (externalContentEntry.Type == ExternalContentType.Directory)
                {
                    SetPath(externalContentEntry.Path);
                }
                else
                {
                    DownloadEntry(externalContentEntry);
                }
            }
            if (m_copyLinkButton.IsClicked && externalContentEntry != null && ExternalContentManager.IsEntryTypeDownloadSupported(externalContentEntry.Type))
            {
                CancellableBusyDialog busyDialog = new CancellableBusyDialog(LanguageControl.Get(fName, 8), autoHideOnCancel: false);
                DialogsManager.ShowDialog(null, busyDialog);
                m_externalContentProvider.Link(externalContentEntry.Path, busyDialog.Progress, delegate(string link)
                {
                    DialogsManager.HideDialog(busyDialog);
                    DialogsManager.ShowDialog(null, new ExternalContentLinkDialog(link));
                }, delegate(Exception error)
                {
                    DialogsManager.HideDialog(busyDialog);
                    DialogsManager.ShowDialog(null, new MessageDialog(LanguageControl.Get("Usual", "error"), error.Message, LanguageControl.Get("Usual", "ok"), null, null));
                });
            }
            if (m_loginLogoutButton.IsClicked)
            {
                if (m_externalContentProvider.IsLoggedIn)
                {
                    m_externalContentProvider.Logout();
                    SetPath(null);
                    m_listDirty = true;
                }
                else
                {
                    ExternalContentManager.ShowLoginUiIfNeeded(m_externalContentProvider, showWarningDialog: false, delegate
                    {
                        SetPath(null);
                        m_listDirty = true;
                    });
                }
            }
            if (base.Input.Back || base.Input.Cancel || Children.Find <ButtonWidget>("TopBar.Back").IsClicked)
            {
                ScreensManager.SwitchScreen("Content");
            }
        }
Exemplo n.º 3
0
        public override void Update()
        {
            CommunityContentEntry communityContentEntry = m_listPanel.SelectedItem as CommunityContentEntry;

            m_downloadButton.IsEnabled = (communityContentEntry != null);
            m_deleteButton.IsEnabled   = (UserManager.ActiveUser != null && communityContentEntry != null && communityContentEntry.UserId == UserManager.ActiveUser.UniqueId);
            m_orderLabel.Text          = GetOrderDisplayName(m_order);
            m_filterLabel.Text         = GetFilterDisplayName(m_filter);
            if (m_changeOrderButton.IsClicked)
            {
                List <Order> items = EnumUtils.GetEnumValues(typeof(Order)).Cast <Order>().ToList();
                DialogsManager.ShowDialog(null, new ListSelectionDialog(LanguageControl.Get(fName, "Order Type"), items, 60f, (object item) => GetOrderDisplayName((Order)item), delegate(object item)
                {
                    m_order = (Order)item;
                    PopulateList(null);
                }));
            }
            if (m_changeFilterButton.IsClicked)
            {
                List <object> list = new List <object>();
                list.Add(string.Empty);
                foreach (ExternalContentType item in from ExternalContentType t in EnumUtils.GetEnumValues(typeof(ExternalContentType))
                         where ExternalContentManager.IsEntryTypeDownloadSupported(t)
                         select t)
                {
                    list.Add(item);
                }
                if (UserManager.ActiveUser != null)
                {
                    list.Add(UserManager.ActiveUser.UniqueId);
                }
                DialogsManager.ShowDialog(null, new ListSelectionDialog(LanguageControl.Get(fName, "Filter"), list, 60f, (object item) => GetFilterDisplayName(item), delegate(object item)
                {
                    m_filter = item;
                    PopulateList(null);
                }));
            }
            if (m_downloadButton.IsClicked && communityContentEntry != null)
            {
                DownloadEntry(communityContentEntry);
            }
            if (m_deleteButton.IsClicked && communityContentEntry != null)
            {
                DeleteEntry(communityContentEntry);
            }
            if (m_moreOptionsButton.IsClicked)
            {
                DialogsManager.ShowDialog(null, new MoreCommunityLinkDialog());
            }
            if (m_moreLink != null && m_moreLink.IsClicked)
            {
                PopulateList((string)m_moreLink.Tag);
            }
            if (base.Input.Back || Children.Find <BevelledButtonWidget>("TopBar.Back").IsClicked)
            {
                ScreensManager.SwitchScreen("Content");
            }
            if (base.Input.Hold.HasValue && base.Input.HoldTime > 2f && base.Input.Hold.Value.Y < 20f)
            {
                m_contentExpiryTime = 0.0;
                Task.Delay(250).Wait();
            }
        }