1. 18 Apr, 2016 3 commits
  2. 17 Apr, 2016 1 commit
  3. 16 Apr, 2016 1 commit
  4. 13 Apr, 2016 2 commits
  5. 12 Apr, 2016 7 commits
  6. 08 Apr, 2016 1 commit
  7. 07 Apr, 2016 2 commits
  8. 06 Apr, 2016 9 commits
  9. 05 Apr, 2016 6 commits
  10. 04 Apr, 2016 1 commit
    • Benjamin Adolphi's avatar
      Fixed bug where the VLCMedia server browser in some cases would play a folder instead of opening it · 1020d645
      Benjamin Adolphi authored
      In some cases, when navigating through folders using the VLCMedia server browser, VLC would try to play the folder instead of listing its contents. One way to reproduce this is to browse the content of a folder, then go back the the parent folder, then browse the content of the same folder again and then browse the content of a sub-folder.
      
      The problem is in the _addMediaListRootItemsToList method of the VLCMedia server browser. This method makes a copy of the all the media in a folder. The copied media is then used to create VLCNetworkServerBrowserItemVLCMedia objects that are appended to the mutableItems list. When creating a new VLCNetworkServerBrowserItemVLCMedia, the initWithMedia:options: method decides whether the item is a folder or not based on the media type of the media. However, the copied media always has the 'VLCMediaTypeFile' type even when the media is a folder. This is because the input items of the original media objects are created in libvlc when the content of a folder is parsed and there, the type is set correctly. But when making a copy the way _addMediaListRootItemsToList does, libvlc will just set 'VLCMediaTypeFile' as the type of the input item of the media.
      
      This bug was actually mostly fixed by accident already (in f1bf1413). In that commit, the original media is used to create the VLCNetworkServerBrowserItemVLCMedia objects instead of the copied one. Since the copying of media is not needed anymore, we can simply remove it completely and use the code from the accidential fix, which uses the original media.
      Signed-off-by: Felix Paul Kühne's avatarFelix Paul Kühne <fkuehne@videolan.org>
      (cherry picked from commit dd68214b)
      1020d645
  11. 21 Mar, 2016 1 commit
    • Benjamin Adolphi's avatar
      tvOS: Fixed bug when restoring the focused cell in the server browsing view · e576b29c
      Benjamin Adolphi authored
      When the collection view of the server browsing view controller is appearing, it will in some cases try to reload its data. If this happens depends on the server browser implementation. Some server browsers will trigger an update (VLCMedia, Plex, UPnP and HTTP) and some won't (FTP). When this happens, all the cells in the collection view are being recycled and the view is repopulated with cells. After that, the tvOS focus engine will give focus to the collection view, which will then restore the previously selected cell. Unfortunately, this is implemented by Apple in such a way that the focus engine will pass the cell to select to the UICollectionView class, which will then select the same cell again. The problem here is that the cell recycling mechanism does not guarantee that the same cell is used for the same thing. This usually leads to the selection of the wrong cell when the view comes back into the foreground and an update was triggered.
      
      I my opinion, this is an Apple bug. The UICollectionView class should be able to select the correct cell after its data has been reloaded. But since this is the current situation, we need to work around the problem to fix the issue. One way to do this would be to do the same thing as the FTP server browser and not update when the view reappears. However, this decreases flexibility and causes a dependency of the the server browsers on UI problems.
      
      Another way to solve this is to use the tvOS focus engine. The idea is to select the correct cell ourselves whenever the collection view is gaining focus. In addition, we prevent the wrong selection of the cell that the UICollectionView class wants to select by telling the focus engine that only the cell we want to switch to is focusable during the time when the collection view gains focus. This commit implements that approach.
      Signed-off-by: Felix Paul Kühne's avatarFelix Paul Kühne <fkuehne@videolan.org>
      (cherry picked from commit af3c735d)
      e576b29c
  12. 08 Mar, 2016 5 commits
  13. 03 Mar, 2016 1 commit
    • Benjamin Adolphi's avatar
      Update transport bar when it becomes visible · 7bc7b819
      Benjamin Adolphi authored
      The transport bar is being updated whenever the playback position has changed and when the transport bar is visible. This causes an old position being displayed when the playback is paused and the transport bar is not visible at that time. A previous commit fixed that problem by adding another update when the playback is paused. But this is not enough to fix all cases where the old value could be displayed. If the playback state is changing to buffering because there is a switch between two media, the bar is also not being updated. And there are probably more cases where this happens. This commit therefore takes a more general approach to solve the problem by updating the transport bar whenever it becomes visible.
      Signed-off-by: Felix Paul Kühne's avatarFelix Paul Kühne <fkuehne@videolan.org>
      (cherry picked from commit ca408dd9)
      7bc7b819