Skip to content

Releases: warren-bank/Android-WebCast

release build: v04.08.02

26 Aug 03:17
Compare
Choose a tag to compare
add resource locks to 'VideoActivity': wakelock, wifilock

release build: v04.08.01

25 Aug 04:49
Compare
Choose a tag to compare
update to when HTTP request headers are updated for videos in queue

release build: v04.08.00

23 Aug 14:40
Compare
Choose a tag to compare
update the default bookmarks

release build: v04.07.04

04 Jun 01:46
Compare
Choose a tag to compare
enable LocalStorage access in WebView to allow JWPlayer 7+ to load

references:
    https://stackoverflow.com/questions/35298419/android-webview-jwplayer7-cannot-read-property-jwplayer-volume-of-null
    https://stackoverflow.com/a/36087492

release build: v04.07.02

22 May 01:14
Compare
Choose a tag to compare

fix #1: thanks to @sagorahmed for reporting this error on Android 6.0

release build: v04.07.01

18 May 20:54
Compare
Choose a tag to compare
UI fix: when casting, hide ViewGroup containing video player

For some reason, only hiding the video player wasn't sufficient.
This minor tweak completely removes the black box above the playlist.

release build: v04.07.00

18 May 01:43
Compare
Choose a tag to compare
add ability to rename persistent bookmarks

release build: v04.06.00

17 May 19:42
Compare
Choose a tag to compare
bug fix: uncaught exception when CastSession ends in "CAST_ONLY" mode
-------------------------------------------------------------------

issue:
  * uncaught exception leads to crash

steps to reproduce:
  * pause "VideoActivity"
  * click "stop" on TV remote control to end CastSession

-------------------------------------------------------------------

CastPlayer:
===========

onSessionEnded()
 -> setRemoteMediaClient(null)
    -> sessionAvailabilityListener.onCastSessionUnavailable()

VideoManager:
=============

onCastSessionUnavailable()
 -> release(false)
    -> release_castPlayer(false)
       -> castPlayer.release()

CastPlayer:
===========

release()
 -> sessionManager.endCurrentSession(false)
    -> ERROR: because this entire chain of events started when the current session ended..

solution:
=========

in: VideoManager
in: -> onCastSessionUnavailable
old:   -> release(false)
new:   -> release(true)  // retain_cast_session

-------------------------------------------------------------------

old:
====

  @Override
  public void onCastSessionUnavailable() {
    if (castPlayer == null) return;

    if (playbackMode == PlaybackMode.CAST_ONLY) {
      setPlaybackMode(PlaybackMode.RELEASED);
    }
    else {
      setCurrentPlayer(exoPlayer);
    }
  }

new:
====

  @Override
  public void onCastSessionUnavailable() {
    if (castPlayer == null) return;

    if (playbackMode == PlaybackMode.CAST_ONLY) {
      setPlaybackMode(PlaybackMode.RELEASED_ALL_BUT_CAST_SESSION);
    }
    else {
      setCurrentPlayer(exoPlayer);
    }
  }

-------------------------------------------------------------------

release build: v04.05.00

17 May 11:52
Compare
Choose a tag to compare
add "MediaIntentReceiver": functional cast notification toolbar

release build: v04.04.00

17 May 12:06
Compare
Choose a tag to compare
bug fix: add "RELEASED_ALL_BUT_CAST_SESSION" mode

issue this solves:

  • in "BrowserActivity":
    • select video URL(s) to watch
  • in "VideoActivity":
    • start a cast session
    • playlist of video URLs appears on screen
    • when a video in playlist is clicked:
      • video queue loads in Chromecast
      • position in queue skips to selected playlist item
    • "onPause" runs when Activity screen is closed
      • "PlayerManager" enters "CAST_ONLY" mode and releases all other resources
  • in "BrowserActivity":
    • select video URL(s) to watch
  • in "VideoActivity":
    • "onResume" runs and detects that "PlayerManager" is running in "CAST_ONLY" mode
      • previously:
        • "PlayerManager" transitioned: "CAST_ONLY" -> "RELEASED" -> "NORMAL"
        • "RELEASED" mode releases all resources, including closing the CastSession
        • "currentPlayer" is an instance of ExoPlayer
      • now:
        • "PlayerManager" transitions: "CAST_ONLY" -> "RELEASED_ALL_BUT_CAST_SESSION" -> "NORMAL"
        • "RELEASED_ALL_BUT_CAST_SESSION" mode is identical to "RELEASED", but CastSession is not closed
        • "currentPlayer" is an instance of CastPlayer
          • the previous video queue that was casting continues uninterupted
          • the new playlist of video URLs appears on screen
          • when a video in playlist is clicked:
            • new video queue loads in Chromecast
            • position in new queue skips to selected playlist item