2017-04-13 23:15:06 +02:00
|
|
|
package org.thoughtcrime.securesms.video.exo;
|
|
|
|
|
|
|
|
|
|
|
|
import android.content.Context;
|
2019-06-05 21:47:14 +02:00
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import androidx.annotation.Nullable;
|
2017-04-13 23:15:06 +02:00
|
|
|
|
|
|
|
import com.google.android.exoplayer2.upstream.DataSource;
|
|
|
|
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
|
|
|
|
import com.google.android.exoplayer2.upstream.TransferListener;
|
|
|
|
|
|
|
|
public class AttachmentDataSourceFactory implements DataSource.Factory {
|
|
|
|
|
2018-01-25 04:17:44 +01:00
|
|
|
private final Context context;
|
2017-04-13 23:15:06 +02:00
|
|
|
|
2018-07-24 22:11:23 +02:00
|
|
|
private final DefaultDataSourceFactory defaultDataSourceFactory;
|
|
|
|
private final TransferListener listener;
|
2017-04-13 23:15:06 +02:00
|
|
|
|
2018-01-25 04:17:44 +01:00
|
|
|
public AttachmentDataSourceFactory(@NonNull Context context,
|
2017-04-13 23:15:06 +02:00
|
|
|
@NonNull DefaultDataSourceFactory defaultDataSourceFactory,
|
2018-07-24 22:11:23 +02:00
|
|
|
@Nullable TransferListener listener)
|
2017-04-13 23:15:06 +02:00
|
|
|
{
|
|
|
|
this.context = context;
|
|
|
|
this.defaultDataSourceFactory = defaultDataSourceFactory;
|
|
|
|
this.listener = listener;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public AttachmentDataSource createDataSource() {
|
|
|
|
return new AttachmentDataSource(defaultDataSourceFactory.createDataSource(),
|
2019-09-27 15:10:30 +02:00
|
|
|
new PartDataSource(context, listener),
|
|
|
|
new BlobDataSource(context, listener));
|
2017-04-13 23:15:06 +02:00
|
|
|
}
|
|
|
|
}
|