1616 * along with this program. If not, see <http://www.gnu.org/licenses/>.
1717 */
1818
19-
2019package com .owncloud .android .ui .preview ;
2120
2221import android .accounts .Account ;
2726import android .os .AsyncTask ;
2827import android .util .Base64 ;
2928
30- import com .google .android .exoplayer2 .MediaItem ;
31- import com .google .android .exoplayer2 .extractor .DefaultExtractorsFactory ;
32- import com .google .android .exoplayer2 .source .MediaSource ;
33- import com .google .android .exoplayer2 .source .ProgressiveMediaSource ;
34- import com .google .android .exoplayer2 .upstream .DataSource ;
35- import com .google .android .exoplayer2 .upstream .DefaultBandwidthMeter ;
36- import com .google .android .exoplayer2 .upstream .DefaultDataSourceFactory ;
37- import com .google .android .exoplayer2 .upstream .DefaultHttpDataSource ;
38- import com .google .android .exoplayer2 .upstream .HttpDataSource ;
29+ import androidx .annotation .OptIn ;
30+ import androidx .media3 .common .MediaItem ;
31+ import androidx .media3 .common .util .UnstableApi ;
32+ import androidx .media3 .datasource .DataSource ;
33+ import androidx .media3 .datasource .DefaultDataSourceFactory ;
34+ import androidx .media3 .datasource .DefaultHttpDataSource ;
35+ import androidx .media3 .datasource .HttpDataSource ;
36+ import androidx .media3 .exoplayer .source .MediaSource ;
37+ import androidx .media3 .exoplayer .source .ProgressiveMediaSource ;
38+ import androidx .media3 .exoplayer .upstream .DefaultBandwidthMeter ;
39+ import androidx .media3 .extractor .DefaultExtractorsFactory ;
3940import com .owncloud .android .MainApp ;
4041import com .owncloud .android .domain .files .model .OCFile ;
4142import com .owncloud .android .lib .common .accounts .AccountUtils ;
5354/**
5455 * Task for prepare video player asynchronously
5556 */
57+ @ OptIn (markerClass = UnstableApi .class )
5658public class PrepareVideoPlayerAsyncTask extends AsyncTask <Object , Void , MediaSource > {
5759
5860 private final Context mContext ;
5961 private final WeakReference <OnPrepareVideoPlayerTaskListener > mListener ;
6062 private final OCFile mFile ;
6163 private final Account mAccount ;
6264
63- private static final DefaultBandwidthMeter BANDWIDTH_METER = new DefaultBandwidthMeter () ;
65+ private static DefaultBandwidthMeter BANDWIDTH_METER ;
6466
6567 public PrepareVideoPlayerAsyncTask (Context context , OnPrepareVideoPlayerTaskListener listener , OCFile file , Account account ) {
6668 mContext = context ;
6769 mListener = new WeakReference <>(listener );
6870 mFile = file ;
6971 mAccount = account ;
72+ BANDWIDTH_METER = new DefaultBandwidthMeter .Builder (mContext ).build ();
7073 }
7174
7275 @ Override
@@ -79,8 +82,7 @@ protected MediaSource doInBackground(Object... params) {
7982 try {
8083 // If the file is already downloaded, reproduce it locally, if not, do streaming
8184 uri = mFile .isAvailableLocally () ? UriUtilsKt .INSTANCE .getStorageUriForFile (mFile ) :
82- Uri .parse (AccountUtils .getWebDavUrlForAccount (mContext , mAccount ) +
83- Uri .encode (mFile .getRemotePath (), "/" ));
85+ Uri .parse (AccountUtils .getWebDavUrlForAccount (mContext , mAccount ) + Uri .encode (mFile .getRemotePath (), "/" ));
8486
8587 boolean useBandwidthMeter = true ;
8688
@@ -121,10 +123,7 @@ private MediaSource buildMediaSource(DataSource.Factory mediaDataSourceFactory,
121123 * DataSource factory.
122124 * @return A new HttpDataSource factory.
123125 */
124- private HttpDataSource .Factory buildHttpDataSourceFactory (
125- DefaultBandwidthMeter bandwidthMeter ,
126- OCFile file ,
127- Account account ) {
126+ private HttpDataSource .Factory buildHttpDataSourceFactory (DefaultBandwidthMeter bandwidthMeter , OCFile file , Account account ) {
128127
129128 if (file .isAvailableLocally ()) {
130129
@@ -150,8 +149,7 @@ private HttpDataSource.Factory buildHttpDataSourceFactory(
150149 params .put ("Authorization" , auth );
151150 }
152151
153- return new CustomHttpDataSourceFactory (MainApp .Companion .getUserAgent (),
154- bandwidthMeter , params );
152+ return new CustomHttpDataSourceFactory (MainApp .Companion .getUserAgent (), bandwidthMeter , params );
155153
156154 } catch (AuthenticatorException | IOException | OperationCanceledException e ) {
157155 Timber .e (e );
0 commit comments