1. 27 May, 2020 10 commits
    • Turn CacheUtil into stateful CacheWriter · d88f5f47
      - The new CacheWriter is simplified somewhat
      - Blocking on PriorityTaskManager.proceed is moved out of
        CacheWriter and into the Downloader tasks. This is because
        we want to shift only the caching parts of the Downloaders
        onto their Executors, whilst keeping the blocking parts on
        the main Downloader threads. Else we can end up "using"
        the Executor threads indefinitely whilst they're blocked.
      
      Issue: #5978
      PiperOrigin-RevId: 313222923
      olly committed
    • Add .inOrder() to most AnalyticsCollectorTest asserts · a1c72c0d
      I skipped it where it didn't make sense (e.g. singleton lists, or lists
      where all elements are identical).
      
      PiperOrigin-RevId: 313217398
      ibaker committed
    • Make constants more readable with _ separator · 151ea531
      Add an `_` in long constants.
      Eg: 10000 => 10_000.
      
      I'm proposing this change because I have had multiple
      missread due to confusing the number of 0 in a long number.
      
      More specifically, added an underscore to all number matching:
      `final.*\ [0-9]{2,}000;`
      
      PiperOrigin-RevId: 313186920
      krocard committed
    • Fix flaky test. · 45b574d5
      The test was flaky because it didn't wait for pending commands to finish
      after pausing the test playback.
      
      Also add more debug information to the toString() method because the
      expected and actual state only differed in the nextAdGroupIndex in the
      flaky case.
      
      PiperOrigin-RevId: 313175919
      tonihei committed
    • Make fallback value more explicitly unset. · 0add067e
      PiperOrigin-RevId: 313171970
      tonihei committed
    • ConditionVariable: Add uninterruptible block · 03ea39b1
      Sometimes it's useful to be able to block until something on some other thread
      "really has finished". This will be needed for moving caching operations onto
      the executor in Downloader implementations, since we need to guarantee that
      Downloader.download doesn't return until it's no longer modifying the
      underlying cache.
      
      One solution to this is of course just to not interrupt the thread that's
      blocking on the condition variable, but there are cases where you do need to do
      this in case the thread is at some other point in its execution. This is true
      for Downloader implementations, where the Download.download thread will also
      be blocking on PriorityTaskManager.proceed. Arranging to conditionally
      interrupt the thread based on where it's got to is probably possible, but seems
      complicated and error prone.
      
      Issue: #5978
      PiperOrigin-RevId: 313152413
      olly committed
    • Make manifest loads on timeline refresh optional in FakeMediaSource. · ee11d9d6
      Every timeline refresh currently assumes that it corresponds to a manifest
      refresh and issues the respective load events. However, there are other
      timeline updates that don't have a manifest refresh (e.g. ad state updates)and thus shouldn't issue these events.
      
      PiperOrigin-RevId: 313150489
      tonihei committed
    • Update TrackSelectionDialogBuilder to use androidx compat Dialog. · f099f570
      This ensure style themes are correctly applied.
      
      issue:#7357
      PiperOrigin-RevId: 313145345
      tonihei committed
    • Enable multidex for demos · eddc2b0b
      This is necessary now we have Guava in debug (no-minified) apps.
      
      Also switch to AndroidX multidex to remove the support library dependency.
      Temporarily we need to add an Application class, as internal jetification
      doesn't seem to handle declaring MultiDexApplication in AndroidManifest.xml.
      
      issue:#7421
      PiperOrigin-RevId: 313145023
      andrewlewis committed
    • Add Guava dep to exo-workmanager module · 1f125425
      This fixes the "cannot access ListenableFuture" build error, even though
      it seems on the surface like we shouldn't need a Guava dependency here.
      
      There's more info about what's going on here:
      https://blog.gradle.org/guava
      
      PiperOrigin-RevId: 312712991
      ibaker committed
  2. 21 May, 2020 20 commits
  3. 18 May, 2020 10 commits