Skip to content

Releases: mahozad/androidx-release-notes

2023-08-22@10PM

23 Aug 18:37

Choose a tag to compare

Activity: v1.8.0-alpha07

August 23, 2023

androidx.activity:activity:1.8.0-alpha07, androidx.activity:activity-compose:1.8.0-alpha07, and androidx.activity:activity-ktx:1.8.0-alpha07 are released. Version 1.8.0-alpha07 contains these commits.

New Features

  • Activity Compose has added a new PredictiveBackHandler Composable to handle predictive back gesture events. It provides a Flow of BackEventCompat objects that must be collected in the suspending lamba you provide:

    PredictiveBackHandler { progress: Flow<BackEventCompat> ->
      // code for gesture back started
      try {
        progress.collect { backEvent ->
        // code for progress
      }
      // code for completion
      } catch (e: CancellationException) {
        // code for cancellation
      }
    }
    

    It also comes with a compile time warning via lint rule to ensure the Flow calls collect(). (Id2773, b/294884345)

  • The onBackPressedDispatcher in ComponentActivity is now initialized lazily so that it is only created when required. (I0bf8e)

Bug Fixes

  • ComponentActivity will no longer show a NPE on Android 13 when it gets an onBackPressed() callback and the Activity has already been DESTROYED. (Idb055, b/291869278)
  • Removed usages of experimental isAtLeastU() API (Ie9117, b/289269026)

Annotation: v1.7.0-rc01

August 23, 2023

androidx.annotation:annotation-*:1.7.0-rc01 is released. Version 1.7.0-rc01 contains these commits.

This release does not contain any changes from the prior beta.

Benchmark: v1.2.0-beta04

August 23, 2023

androidx.benchmark:benchmark-*:1.2.0-beta04 is released. Version 1.2.0-beta04 contains these commits.

New Features

  • The Baseline Profiles Gradle plugin now supports Android Gradle Plugin 8.3. (aosp/2715214)

Bug Fixes

  • Fix failures in writing / moving and pulling files (especially those from parameterized tests) by sanitizing output file names further, avoiding '=' and ':' in output file names. (I759d8)

CameraX: v1.3.0-rc01

August 23, 2023

androidx.camera:camera-*:1.3.0-rc01 is released. Version 1.3.0-rc01 contains these commits.

API Changes

  • Added PendingRecording.asPersistentRecording to allow a recording to continuously record while the VideoCapture it's Recorder is attached to is rebound. (I517c6)

Bug Fixes

  • Fixed a crash when a stream is shared with both VideoCapture and Preview. Also fixed a black screen on LEGACY devices when stream sharing is enabled.
  • Fixed large captured JPEG image issue on Samsung S7 (SM-G930T, SM-G930V) series devices. The captured JPEG images contain redundant 0's padding data in the JFIF compressed data segment. It causes the captured images to have large file size. Those redundant 0's padding data will be removed to make the captured images have normal image file sizes. (I407b0, b/288828159)
  • Fixed large captured JPEG image issue on Samsung S22 (SM-S901B, SM-S901B/DS) and S22+ (SM-S906B) series devices. The captured JPEG images contain redundant 0's padding data in the JFIF compressed data segment. It causes the captured images to have large file size about 13MB on S22 SM-S901B/DS device. Those redundant 0's padding data will be removed to make the captured images have normal image file sizes. (I73be9, b/288828159)
  • Fixed large captured JPEG image issue on Samsung A5, A52, A70 and A72 series devices. The captured JPEG images contain redundant 0's padding data in the JFIF compressed data segment. It causes the captured images to have extreme file size (ex about 32MB or even 96 MB). Those redundant 0's padding data will be removed to make the captured images have normal image file sizes. (I97c4d, b/288828159)
  • Fixed the native crash when taking pictures with Extensions enabled (I698f5)

Compose Animation: v1.6.0-alpha04

August 23, 2023

androidx.compose.animation:animation-*:1.6.0-alpha04 is released. Version 1.6.0-alpha04 contains these commits.

API Changes

  • Add SeekableTransitionState to allow developers to control the progress of a transition. (I8e69d)

Compose Compiler: v1.5.2

August 23, 2023

androidx.compose.compiler:compiler:1.5.2, androidx.compose.compiler:compiler-daemon:1.5.2, and androidx.compose.compiler:compiler-hosted:1.5.2 are released. Version 1.5.2 contains these commits.

Bug Fixes

  • Insert line numbers for return statements in constant-returning composable functions. (I42d89)
  • Fix a memory leak caused by switching to the new compiler plugin entrypoint. (4f0a101)
  • Stop transforming non-composable fun interfaces in Compose compiler. This causes fun interfaces to be handled the same way as lambdas, including memoization rules. (28b3ce9)
  • Use vararg argument type for inferring stability on call site. (bc83645)

Compose Foundation: v1.6.0-alpha04

August 23, 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha04 is released. Version 1.6.0-alpha04 contains these commits.

API Changes

  • Add ReusableComposition interface for managing lifecycle and reuse of subcompositions. (
Read more

2023-08-22

22 Aug 21:36

Choose a tag to compare

Runner 1.6.0: runner 1.6.0-alpha04

August 21, 2023

androidx.test:runner:1.6.0-alpha04 is released.

Bug fixes

  • Force initialization of instrumentationRunListener, to prevent NPEs when instrumenting system server process.

Dependency changes

  • Upgrade to androidx.annotation:1.7.0-beta01

2023-08-16

16 Aug 18:36

Choose a tag to compare

Media3: v1.1.1

  • Common Library:
    • Remove accidentally added multidex dependency from all modules (#499).
  • ExoPlayer:
    • Fix issue in PlaybackStatsListener where spurious PlaybackStats are created after the playlist is cleared.
    • Add additional fields to Common Media Client Data (CMCD) logging: streaming format (sf), stream type (st), version (v), top birate (tb), object duration (d), measured throughput (mtp) and object type (ot) (#8699).
  • Audio:
    • Fix a bug where Player.getState() never transitioned to STATE_ENDED when playing very short files (#538).
  • Audio Offload:
    • Prepend Ogg ID Header and Comment Header Pages to bitstream for offloaded Opus playback in accordance with RFC 7845.
  • Video:
    • H.265/HEVC: Fix parsing SPS short and long term reference picture info.
  • Text:
    • CEA-608: Change cue truncation logic to only consider visible text. Previously indent and tab offset were included when limiting the cue length to 32 characters (which was technically correct by the spec) (#11019).
  • IMA extension:
    • Bump IMA SDK version to 3.30.3.
  • Session:
    • Add custom layout to the state of the controller and provide a getter to access it. When the custom layout changes, MediaController.Listener.onCustomLayoutChanged is called. Apps that want to send different custom layouts to different Media3 controller can do this in MediaSession.Callback.onConnect by using an AcceptedResultBuilder to make sure the custom layout is available to the controller when connection completes.
    • Fix cases where MediaLibraryServiceLegacyStub sent an error to a Result that didn't support this which produced an UnsupportedOperationException (#78).
    • Fix the way PlayerWrapper creates a VolumeProviderCompat by determining volumeControlType through both legacy commands (COMMAND_ADJUST_DEVICE_VOLUME and COMMAND_SET_DEVICE_VOLUME) and new commands (COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS and COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS) (#554).

2023-08-14

16 Aug 15:36

Choose a tag to compare

Media3: v1.1.1

  • Common Library:
    • Remove accidentally added multidex dependency from all modules (#499).
  • ExoPlayer:
    • Fix issue in PlaybackStatsListener where spurious PlaybackStats are created after the playlist is cleared.
    • Add additional fields to Common Media Client Data (CMCD) logging: streaming format (sf), stream type (st), version (v), top birate (tb), object duration (d), measured throughput (mtp) and object type (ot) (#8699).
  • Audio:
    • Fix a bug where Player.getState() never transitioned to STATE_ENDED when playing very short files (#538).
  • Audio Offload:
    • Prepend Ogg ID Header and Comment Header Pages to bitstream for offloaded Opus playback in accordance with RFC 7845.
  • Video:
    • H.265/HEVC: Fix parsing SPS short and long term reference picture info.
  • Text:
    • CEA-608: Change cue truncation logic to only consider visible text. Previously indent and tab offset were included when limiting the cue length to 32 characters (which was technically correct by the spec) (#11019).
  • IMA extension:
    • Bump IMA SDK version to 3.30.3.
  • Session:
    • Add custom layout to the state of the controller and provide a getter to access it. When the custom layout changes, MediaController.Listener.onCustomLayoutChanged is called. Apps that want to send different custom layouts to different Media3 controller can do this in MediaSession.Callback.onConnect by using an AcceptedResultBuilder to make sure the custom layout is available to the controller when connection completes.
    • Fix cases where MediaLibraryServiceLegacyStub sent an error to a Result that didn't support this which produced an UnsupportedOperationException (#78).
    • Fix the way PlayerWrapper creates a VolumeProviderCompat by determining volumeControlType through both legacy commands (COMMAND_ADJUST_DEVICE_VOLUME and COMMAND_SET_DEVICE_VOLUME) and new commands (COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS and COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS) (#554).

2023-08-09

09 Aug 18:38

Choose a tag to compare

Annotation: v1.7.0-beta01

August 9, 2023

androidx.annotation:annotation-*:1.7.0-beta01 is released. Version 1.7.0-beta01 contains these commits.

New Features

  • Stabilized APIs for release

Benchmark: v1.2.0-beta03

August 9, 2023

androidx.benchmark:benchmark-*:1.2.0-beta03 is released. Version 1.2.0-beta03 contains these commits.

API Changes

  • Added argument to filter TraceSectionMetric to only the target package, on by default (Ia219b, b/292208786)

Bug Fixes

  • Renamed fullTracing.enable instrumentation argument to perfettoSdkTracing.enable for consistency with artifact name, and other references. fullTracing.enable will continue to work as a fallback. (I7cc00)
  • Benchmark library internal tracepoints (including microbenchmark loop/phase tracing) will now show up in Studio system trace viewer, and nest under the correct process in Perfetto. (I6b2e7, b/293510459)
  • Removed macrobenchmark NOT-PROFILEABLE error on API 31+, and skip profileable check on eng/userdebug rooted devices. (I2abac, b/291722507)
  • When using Dex Layout Optimizations, startup profile rules are also now considered as baseline profile rules. (aosp/2684246, b/293889189)

Browser: v1.6.0

August 9, 2023

androidx.browser:browser:1.6.0 is released with no changes since 1.6.0-rc01. Version 1.6.0 contains these commits.

Car App: v1.4.0-beta01

August 9, 2023

androidx.car.app:app-*:1.4.0-beta01 is released. Version 1.4.0-beta01 contains these commits. - Note: Next release will be moving from 1.4 to 1.7, to align naming to the CarApi level to be released (e.g. CarApi 7 => 1.7)

New Features

  • Instrument Cluster map rendering for Navigation apps
  • New TabTemplate for improved app layout / usability
  • Support for Adaptive task limits
  • Secondary actions on list elements

API Changes

  • See alpha02

Collection: v1.3.0-beta01

August 9, 2023

androidx.collection:collection-*:1.3.0-beta01 is released. Version 1.3.0-beta01 contains these commits.

Compose Animation: v1.5.0

August 9, 2023

androidx.compose.animation:animation-*:1.5.0 is released. Version 1.5.0 contains these commits.

Compose Animation: v1.6.0-alpha03

August 9, 2023

androidx.compose.animation:animation-*:1.6.0-alpha03 is released. Version 1.6.0-alpha03 contains these commits.

API Changes

  • New type of enter/exit transition that scales the content based on the size of the animating container during enter & exit animation. LookaheadScope Composable fun and interface are now stable. (Ifb2ce)

Compose Foundation: v1.5.0

August 9, 2023

androidx.compose.foundation:foundation-*:1.5.0 is released. Version 1.5.0 contains these commits.

Important changes since 1.4.0

  • Many foundational modifiers, including Modifier.clickable,Modifier.draggable, Modifier.scrollable, layout modifier and more have been migrated to Modifier.Node API, reducing the overhead on the initial composition.
  • Improvements in Pagers stability. Many bugs have been addressed.
  • pageCount parameters now lives in PagerState instead of the Pager itself

Compose Foundation: v1.6.0-alpha03

August 9, 2023

androidx.compose.foundation:foundation-*:1.6.0-alpha03 is released. Version 1.6.0-alpha03 contains these commits.

API Changes

  • Overload of LazyLayout added, it accepts a lambda of LazyLayoutItemProvider, not a plain object as it was before. The previous overload is deprecated. (I42a5a)
  • Added support for configuring privateImeOptions (Idb772)

Bug Fixes

  • Fixed text fields showing keyboard and being editable when readOnly is true. Also fixed the keyboard not showing when readOnly is changed from true to false while focused. (I34a19, b/246909589)

Compose Material: v1.5.0

August 9, 2023

androidx.compose.material:material-*:1.5.0 is released. Version 1.5.0 contains these commits.

Important changes since 1.4.0

API Changes

  • Incorporated changes in the Swipeable1 APIs in BottomSheetScaffold. BottomSheetState's confirmStateChange param has been renamed to confirmValueChange. progress is now exposed as a float value. animateTo and snapTo are internal. Use expand() and collapse() instead. direction and overflow have been removed. offset has been replaced with requireOffset(). I323b4
  • Mark the snapTo function in Drawer as non-experimental API. (Ib9c18, b/261425368)
  • Added a track color parameter for circular...
Read more

2023-08-01

02 Aug 01:40

Choose a tag to compare

credentials: v1.2.0-beta02

August 1, 2023

androidx.credentials:credentials:1.2.0-beta02 and androidx.credentials:credentials-play-services-auth:1.2.0-beta02 are released. Version 1.2.0-beta02 contains these commits.

Bug Fixes

  • b/293743991 - Fix the constant value for the authenticatorData field, in order to correctly parse the authenticationResponseJson property in PublicKeyCredential

2023-07-26@06PM

26 Jul 21:37

Choose a tag to compare

Annotation: v1.7.0-alpha03

July 26, 2023

androidx.annotation:annotation-*:1.7.0-alpha03 is released. Version 1.7.0-alpha03 contains these commits.

Bug Fixes

  • Maven POM publication now includes default JVM-targeted multiplatform artifact as dependency

Appcompat: v1.7.0-alpha03

July 26, 2023

androidx.appcompat:appcompat:1.7.0-alpha03 and androidx.appcompat:appcompat-resources:1.7.0-alpha03 are released. Version 1.7.0-alpha03 contains these commits.

New Features

  • Support for getting per-app locales in non-Activity contexts (I58e753). Four new APIs have been added for this feature:

    • LocaleManagerCompat.getApplicationLocales(): for developers to get per-app locales out of activity scope.

    • ContextCompat.getString(): return localized strings based on per-app locales.

    • ContextCompat.getContextForLanguage(): the context returned by this method will respect the per-app locales.

    • ConfigurationCompat.setLocales(): for above APIs, to set the configuration's locale.

Other API Changes

  • Added setLineHeight(unit, lineHeight) to TextView compat classes (Ia9fa9)
  • Added setLineHeight(unit, lineHeight) to TextView compat classes (Ib2ee1)
  • Added setLineHeight(unit, lineHeight) to TextView compat classes (I15716)

Bug Fixes

  • AppCompatDialog now correctly sets the LifecycleOwner, SavedStateRegistryOwner, and OnBackPressedDispatcherOwner on the dialog's decor view via the ViewTree APIs, fixing issues when hosting a ComposeView within an AppCompatDialog. AppCompat now depends on Activity 1.7.0. (Ib28ab, b/261314581)
  • Significantly improve the performance of SupportMenuInflater (I0b087)

Benchmark: v1.2.0-beta02

July 26, 2023

androidx.benchmark:benchmark-*:1.2.0-beta02 is released. Version 1.2.0-beta02 contains these commits.

API Changes

  • Added experimental APIs for microbench custom metrics and configuration (e.g. profiler, and tracing). (I86101, b/291820856)

Bug Fixes

  • Report error in macrobench when OS is misconfigured for tracing, as was recently fixed in API 26/28 ARM64 emulators. (I0a328, b/282191686)
  • Added detail to compilation reset failure to suggest updating emulator, as some emulators have recently fixed this issue. (I8c815, b/282191686)
  • Make androidx.test.uiautomator:uiautomator:2.2.0 an api instead of an implementation dependency. (I1981e)

Browser: v1.6.0-rc01

July 26, 2023

androidx.browser:browser:1.6.0-rc01 is released with no changes since 1.6.0-beta01. Version 1.6.0-rc01 contains these commits.

CameraX: v1.3.0-beta02

July 26, 2023

androidx.camera:camera-*:1.3.0-beta02 is released. Version 1.3.0-beta02 contains these commits.

Bug Fixes

  • Use torch as flash for Pixel 4 and 5 variants to improve capture quality in low light (I56ff5, b/280221967)
  • Fixed large captured JPEG image issue on Samsung A5 (2017) series devices. The captured JPEG images contain redundant 0's padding data in the JFIF compressed data segment. It causes the captured images to have about 32 MB file size. Those redundant 0's padding data will be removed to make the captured images have normal image file sizes. (I29837, b/288828159)
  • Fixed retry not triggering properly in case of capture failure in problematic devices mentioned in CaptureFailedRetryQuirk. (I7b589)

Car App: v1.4.0-alpha02

July 26, 2023

androidx.car.app:app-*:1.4.0-alpha02 is released. Version 1.4.0-alpha02 contains these commits.

  • Release of Alpha02 is intended to be a preparation for an upcoming release of beta01.

New Features

  • Map rendering on Instrument Cluster support for navigation apps
  • Added Tabs for apps to improve layout experience
  • Added List / Grid template rendering options
  • Added new categories for Weather and Comms
  • Move several API’s to the next CarApi 7 release

API Changes

  • Add multimedia fields to CarMessage (I5aaf6)
  • Adds custom actions to ConversationItem in Car App Library (Ie5ed6)
  • Add extras to indicate a media item is played with an immersive audio format and showcase its content format logo (Icb5bb)
  • Add new Action type, ActionsConstraints API to support compose button. (I31661)
  • Made set/getTemplate as set/get ContentTemplate (Ica036)
  • Template parameter would now be @NonNull. Updated MapWithContentTemplate API documentation (I0f8ed)
  • Removes @ExperimentalCarApi tag for Actions in ListTemplate for launch in CAL 1.4 (
Read more

2023-07-26

26 Jul 18:37

Choose a tag to compare

Annotation: v1.7.0-alpha03

July 26, 2023

androidx.annotation:annotation-*:1.7.0-alpha03 is released. Version 1.7.0-alpha03 contains these commits.

Bug Fixes

  • Maven POM publication now includes default JVM-targeted multiplatform artifact as dependency

Appcompat: v1.7.0-alpha03

July 26, 2023

androidx.appcompat:appcompat:1.7.0-alpha03 and androidx.appcompat:appcompat-resources:1.7.0-alpha03 are released. Version 1.7.0-alpha03 contains these commits.

New Features

  • Support for getting per-app locales in non-Activity contexts (I58e753). Four new APIs have been added for this feature:

    • LocaleManagerCompat.getApplicationLocales(): for developers to get per-app locales out of activity scope.

    • ContextCompat.getString(): return localized strings based on per-app locales.

    • ContextCompat.getContextForLanguage(): the context returned by this method will respect the per-app locales.

    • ConfigurationCompat.setLocales(): for above APIs, to set the configuration's locale.

Other API Changes

  • Added setLineHeight(unit, lineHeight) to TextView compat classes (Ia9fa9)
  • Added setLineHeight(unit, lineHeight) to TextView compat classes (Ib2ee1)
  • Added setLineHeight(unit, lineHeight) to TextView compat classes (I15716)

Bug Fixes

  • AppCompatDialog now correctly sets the LifecycleOwner, SavedStateRegistryOwner, and OnBackPressedDispatcherOwner on the dialog's decor view via the ViewTree APIs, fixing issues when hosting a ComposeView within an AppCompatDialog. AppCompat now depends on Activity 1.7.0. (Ib28ab, b/261314581)
  • Significantly improve the performance of SupportMenuInflater (I0b087)

Browser: v1.6.0-rc01

July 26, 2023

androidx.browser:browser:1.6.0-rc01 is released with no changes since 1.6.0-beta01. Version 1.6.0-rc01 contains these commits.

CameraX: v1.3.0-beta02

July 26, 2023

androidx.camera:camera-*:1.3.0-beta02 is released. Version 1.3.0-beta02 contains these commits.

Bug Fixes

  • Use torch as flash for Pixel 4 and 5 variants to improve capture quality in low light (I56ff5, b/280221967)
  • Fixed large captured JPEG image issue on Samsung A5 (2017) series devices. The captured JPEG images contain redundant 0's padding data in the JFIF compressed data segment. It causes the captured images to have about 32 MB file size. Those redundant 0's padding data will be removed to make the captured images have normal image file sizes. (I29837, b/288828159)
  • Fixed retry not triggering properly in case of capture failure in problematic devices mentioned in CaptureFailedRetryQuirk. (I7b589)

Car App: v1.4.0-alpha02

July 26, 2023

androidx.car.app:app-*:1.4.0-alpha02 is released. Version 1.4.0-alpha02 contains these commits.

  • Release of Alpha02 is intended to be a preparation for an upcoming release of beta01.

New Features

  • Map rendering on Instrument Cluster support for navigation apps
  • Added Tabs for apps to improve layout experience
  • Added List / Grid template rendering options
  • Added new categories for Weather and Comms
  • Move several API’s to the next CarApi 7 release

API Changes

  • Add multimedia fields to CarMessage (I5aaf6)
  • Adds custom actions to ConversationItem in Car App Library (Ie5ed6)
  • Add extras to indicate a media item is played with an immersive audio format and showcase its content format logo (Icb5bb)
  • Add new Action type, ActionsConstraints API to support compose button. (I31661)
  • Made set/getTemplate as set/get ContentTemplate (Ica036)
  • Template parameter would now be @NonNull. Updated MapWithContentTemplate API documentation (I0f8ed)
  • Removes @ExperimentalCarApi tag for Actions in ListTemplate for launch in CAL 1.4 (I2cfcb)
  • Removes @ExperimentalCarApi tag for TabTemplate (Ifcb82)
  • Remove @ExperimentalCarApi annotations from Row secondary actions and decorations (I8487e)
  • Adds active tab content ID to TabTemplate and deprecates active state on Tabs (I96932)
  • Add ItemImageShape property to GridTemplate (Ibf431)
  • Add ItemSize property to GridTemplate, which controls grid item sizing according to relative small, medium, large buckets. (Icdb3b)
  • Open up the API access for developers to gain a copy of the current screen stack. (I48107)
  • Adds category for weather apps to Car App Library (I2be44)
  • Adds category for calling apps to Car App Library (
Read more

2023-07-17

18 Jul 18:39

Choose a tag to compare

Benchmark: v1.2.0-beta01

July 18, 2023

androidx.benchmark:benchmark-*:1.2.0-beta01 is released. Version 1.2.0-beta01 contains these commits.

Bug Fixes

  • Fix warnings being sometimes suppressed in Benchmark output in Studio, and workaround leading whitespaces from Benchmark output not showing up in Studio (Ia61d0, b/227205461, b/286306579, b/285912360)
  • Fixed comment for FrameTimingMetric. The submetric is named frameDurationCpuMs. (Ib097f, b/288830934).

Compose Compiler: v1.5.0

July 18, 2023

androidx.compose.compiler:compiler:1.5.0, androidx.compose.compiler:compiler-daemon:1.5.0, and androidx.compose.compiler:compiler-hosted:1.5.0 are released. Version 1.5.0 contains these commits.

Experimental K2 support

  • Compose compiler 1.5.0 provides experimental support for K2 compiler. Some Compose features are not supported with K2 yet and will be coming in the future versions of the compiler.

Important changes since 1.4.0

  • Kotlin version is updated to 1.9.0.
  • Named arguments for @Composable lambda calls have been deprecated. This feature is relying on internal compiler APIs and will not be supported by K2.
  • Added a diagnostic to verify @Composable annotation on expect/actual calls. Both declarations are expected to have matching annotations.

Tracing Perfetto: v1.0.0-beta01

July 18, 2023

androidx.tracing:tracing-perfetto:1.0.0-beta01, androidx.tracing:tracing-perfetto-binary:1.0.0-beta01, and androidx.tracing:tracing-perfetto-handshake:1.0.0-beta01 are released. Version 1.0.0-beta01 contains these commits.

API Changes

  • Renamed androidx.tracing.perfetto.Trace to androidx.tracing.perfetto.PerfettoSdkTrace (I44af8)
  • Renamed "exit code" to "result code" constants in the protocol for consistency (Id1d1e)
  • Renamed EnableTracingResponse to Response. (I56275)
  • Added an option to enable cold start tracing in a persistent mode. Added a function to clear (persistent or not) cold start tracing. (Iaa09d)
  • Made Tracing Perfetto SDK APIs consistent with android.os.Trace. (I73ba0, b/282199917)
  • Moved to a factory pattern for LibrarySource allowing for future use-cases (e.g. loading the .so file directly) to be easily added to the API if needed. (I128df)
  • Making enableTracingColdStart parameters match enableTracingImmediate (I54126)
  • Removed killProcess argument in enableTracingColdStart (I81c4d)

2023-06-29

05 Jul 09:37

Choose a tag to compare

Media3: v1.1.0

  • Common Library:
    • Add suppression reason for unsuitable audio route and play when ready change reason for suppressed too long. (#15).
    • Add commands to Player:
      • COMMAND_GET_METADATA
      • COMMAND_SET_PLAYLIST_METADATA
      • COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS
      • COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS
    • Add overloaded methods to Player which allow users to specify volume flags:
      • void setDeviceVolume(int, int)
      • void increaseDeviceVolume(int)
      • void decreaseDeviceVolume(int)
      • void setDeviceMuted(boolean, int)
    • Add Builder for DeviceInfo and deprecate existing constructor.
    • Add DeviceInfo.routingControllerId to specify the routing controller ID for remote playbacks.
    • Add Player.replaceMediaItem(s) as a shortcut to adding and removing items at the same position (#8046).
  • ExoPlayer:
    • Allow ExoPlayer to have control of device volume methods only if explicitly opted in. Use ExoPlayer.Builder.setDeviceVolumeControlEnabled to have access to:
      • getDeviceVolume()
      • isDeviceMuted()
      • setDeviceVolume(int) and setDeviceVolume(int, int)
      • increaseDeviceVolume(int) and increaseDeviceVolume(int, int)
      • decreaseDeviceVolume(int) and decreaseDeviceVolume(int, int)
    • Add FilteringMediaSource that allows to filter available track types from a MediaSource.
    • Add support for including Common Media Client Data (CMCD) in the outgoing requests of adaptive streaming formats DASH, HLS, and SmoothStreaming. The following fields, br, bl, cid, rtp, and sid, have been incorporated (#8699). API structure and API methods:
      • CMCD logging is disabled by default, use MediaSource.Factory.setCmcdConfigurationFactory(CmcdConfiguration.Factory cmcdConfigurationFactory) to enable it.
      • All keys are enabled by default, override CmcdConfiguration.RequestConfig.isKeyAllowed(String key) to filter out which keys are logged.
      • Override CmcdConfiguration.RequestConfig.getCustomData() to enable custom key logging.
    • Add additional action to manifest of main demo to make it easier to start the demo app with a custom *.exolist.json file (#439).
    • Add ExoPlayer.setVideoEffects() for using Effect during video playback.
    • Update SampleQueue to store sourceId as a long rather than an int. This changes the signatures of public methods SampleQueue.sourceId and SampleQueue.peekSourceId.
    • Add parameters to LoadControl methods shouldStartPlayback and onTracksSelected that allow associating these methods with the relevant MediaPeriod.
    • Change signature of ServerSideAdInsertionMediaSource.setAdPlaybackStates(Map<Object, AdPlaybackState>) by adding a timeline parameter that contains the periods with the UIDs used as keys in the map. This is required to avoid concurrency issues with multi-period live streams.
    • Deprecate EventDispatcher.withParameters(int windowIndex, @Nullable MediaPeriodId mediaPeriodId, long mediaTimeOffsetMs) and BaseMediaSource.createEventDispatcher(..., long mediaTimeOffsetMs). The variant of the methods without the mediaTimeOffsetUs can be called instead. Note that even for the deprecated variants, the offset is not anymore added to startTimeUs and endTimeUs of the MediaLoadData objects that are dispatched by the dispatcher.
    • Rename ExoTrackSelection.blacklist to excludeTrack and isBlacklisted to isTrackExcluded.
    • Fix inconsistent behavior between ExoPlayer.setMediaItem(s) and addMediaItem(s) when called on an empty playlist.
  • Transformer:
    • Remove Transformer.Builder.setMediaSourceFactory(MediaSource.Factory). Use ExoPlayerAssetLoader.Factory(MediaSource.Factory) and Transformer.Builder.setAssetLoaderFactory(AssetLoader.Factory) instead.
    • Remove Transformer.startTransformation(MediaItem, ParcelFileDescriptor).
    • Fix a bug where transformation could get stuck (leading to muxer timeout) if the end of the video stream was signaled at the moment when an input frame was pending processing.
    • Query codecs via MediaCodecList instead of using findDecoder/EncoderForFormat utilities, to expand support.
    • Remove B-frame configuration in DefaultEncoderFactory because it doesn't work on some devices.
  • Track selection:
    • Add DefaultTrackSelector.Parameters.allowInvalidateSelectionsForRendererCapabilitiesChange which is disabled by default. When enabled, the DefaultTrackSelector will trigger a new track selection when the renderer capabilities changed.
  • Extractors:
    • Ogg: Fix bug when seeking in files with a long duration (#391).
    • FMP4: Fix issue where TimestampAdjuster initializes a wrong timestamp offset with metadata sample time from emsg atom (#356).
  • Audio:
    • Fix bug where some playbacks fail when tunneling is enabled and AudioProcessors are active, e.g. for gapless trimming (#10847).
    • Encapsulate Opus frames in Ogg packets in direct playbacks (offload).
    • Extrapolate current position during sleep with offload scheduling.
    • Add Renderer.release() and AudioSink.release() for releasing the resources at the end of player's lifecycle.
    • Listen to audio capabilities changes in DefaultAudioSink. Add a required parameter context in the constructor of DefaultAudioSink, with which the DefaultAudioSink will register as the listener to the AudioCapabilitiesReceiver and update its audioCapabilities property when informed with a capabilities change.
    • Propagate audio capabilities changes via a new event onAudioCapabilitiesChanged in AudioSink.Listener interface, and a new interface RendererCapabilities.Listener which triggers onRendererCapabilitiesChanged events.
    • Add ChannelMixingAudioProcessor for applying scaling/mixing to audio channels.
    • Add new int value DISCARD_REASON_AUDIO_BYPASS_POSSIBLE to DecoderDiscardReasons to discard audio ...
Read more