mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-19 00:08:26 +00:00
Migration to Media3
This commit is contained in:
parent
5b34a09ff9
commit
c55c55d775
@ -267,8 +267,8 @@ dependencies {
|
|||||||
exclude group: 'com.google.firebase', module: 'firebase-measurement-connector'
|
exclude group: 'com.google.firebase', module: 'firebase-measurement-connector'
|
||||||
}
|
}
|
||||||
if (project.hasProperty('huawei')) huaweiImplementation 'com.huawei.hms:push:6.7.0.300'
|
if (project.hasProperty('huawei')) huaweiImplementation 'com.huawei.hms:push:6.7.0.300'
|
||||||
implementation 'com.google.android.exoplayer:exoplayer-core:2.19.1'
|
implementation 'androidx.media3:media3-exoplayer:1.1.1'
|
||||||
implementation 'com.google.android.exoplayer:exoplayer-ui:2.19.1'
|
implementation 'androidx.media3:media3-ui:1.1.1'
|
||||||
implementation 'org.conscrypt:conscrypt-android:2.5.2'
|
implementation 'org.conscrypt:conscrypt-android:2.5.2'
|
||||||
implementation 'org.signal:aesgcmprovider:0.0.3'
|
implementation 'org.signal:aesgcmprovider:0.0.3'
|
||||||
implementation 'org.webrtc:google-webrtc:1.0.32006'
|
implementation 'org.webrtc:google-webrtc:1.0.32006'
|
||||||
|
@ -16,13 +16,13 @@ import android.util.Pair;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import com.google.android.exoplayer2.C;
|
import androidx.media3.common.C;
|
||||||
import com.google.android.exoplayer2.ExoPlayer;
|
import androidx.media3.common.MediaItem;
|
||||||
import com.google.android.exoplayer2.MediaItem;
|
import androidx.media3.common.PlaybackException;
|
||||||
import com.google.android.exoplayer2.PlaybackException;
|
import androidx.media3.common.PlaybackParameters;
|
||||||
import com.google.android.exoplayer2.PlaybackParameters;
|
import androidx.media3.common.Player;
|
||||||
import com.google.android.exoplayer2.Player;
|
import androidx.media3.common.AudioAttributes;
|
||||||
import com.google.android.exoplayer2.audio.AudioAttributes;
|
import androidx.media3.exoplayer.ExoPlayer;
|
||||||
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.session.libsession.utilities.ServiceUtil;
|
import org.session.libsession.utilities.ServiceUtil;
|
||||||
@ -356,7 +356,7 @@ public class AudioSlidePlayer implements SensorEventListener {
|
|||||||
mediaPlayer.getAudioAttributes().contentType != streamType &&
|
mediaPlayer.getAudioAttributes().contentType != streamType &&
|
||||||
System.currentTimeMillis() - startTime > 500)
|
System.currentTimeMillis() - startTime > 500)
|
||||||
{
|
{
|
||||||
if (wakeLock != null) wakeLock.release();
|
if (wakeLock != null && wakeLock.isHeld()) wakeLock.release();
|
||||||
stop();
|
stop();
|
||||||
notifyOnStop();
|
notifyOnStop();
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,10 @@ import android.net.Uri;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.annotation.OptIn;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
import androidx.media3.common.util.UnstableApi;
|
||||||
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@ -16,6 +19,7 @@ import org.thoughtcrime.securesms.video.VideoPlayer;
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@OptIn(markerClass = UnstableApi.class)
|
||||||
public class MediaSendVideoFragment extends Fragment implements MediaSendPageFragment {
|
public class MediaSendVideoFragment extends Fragment implements MediaSendPageFragment {
|
||||||
|
|
||||||
private static final String TAG = MediaSendVideoFragment.class.getSimpleName();
|
private static final String TAG = MediaSendVideoFragment.class.getSimpleName();
|
||||||
|
@ -29,12 +29,14 @@ import android.widget.VideoView;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import com.google.android.exoplayer2.ExoPlayer;
|
import androidx.media3.common.MediaItem;
|
||||||
import com.google.android.exoplayer2.MediaItem;
|
import androidx.media3.common.Player;
|
||||||
import com.google.android.exoplayer2.Player;
|
import androidx.media3.common.AudioAttributes;
|
||||||
import com.google.android.exoplayer2.audio.AudioAttributes;
|
import androidx.media3.common.util.UnstableApi;
|
||||||
import com.google.android.exoplayer2.ui.PlayerControlView;
|
import androidx.media3.exoplayer.ExoPlayer;
|
||||||
import com.google.android.exoplayer2.ui.PlayerView;
|
import androidx.media3.ui.LegacyPlayerControlView;
|
||||||
|
import androidx.media3.ui.PlayerView;
|
||||||
|
|
||||||
|
|
||||||
import org.session.libsession.utilities.ViewUtil;
|
import org.session.libsession.utilities.ViewUtil;
|
||||||
import org.session.libsignal.utilities.Log;
|
import org.session.libsignal.utilities.Log;
|
||||||
@ -46,15 +48,16 @@ import java.io.IOException;
|
|||||||
|
|
||||||
import network.loki.messenger.R;
|
import network.loki.messenger.R;
|
||||||
|
|
||||||
|
@UnstableApi
|
||||||
public class VideoPlayer extends FrameLayout {
|
public class VideoPlayer extends FrameLayout {
|
||||||
|
|
||||||
private static final String TAG = VideoPlayer.class.getSimpleName();
|
private static final String TAG = VideoPlayer.class.getSimpleName();
|
||||||
|
|
||||||
@Nullable private final VideoView videoView;
|
@Nullable private final VideoView videoView;
|
||||||
@Nullable private final PlayerView exoView;
|
@Nullable private final PlayerView exoView;
|
||||||
|
|
||||||
@Nullable private ExoPlayer exoPlayer;
|
@Nullable private ExoPlayer exoPlayer;
|
||||||
@Nullable private PlayerControlView exoControls;
|
@Nullable private LegacyPlayerControlView exoControls;
|
||||||
@Nullable private AttachmentServer attachmentServer;
|
@Nullable private AttachmentServer attachmentServer;
|
||||||
@Nullable private Window window;
|
@Nullable private Window window;
|
||||||
|
|
||||||
@ -73,7 +76,7 @@ public class VideoPlayer extends FrameLayout {
|
|||||||
|
|
||||||
this.exoView = ViewUtil.findById(this, R.id.video_view);
|
this.exoView = ViewUtil.findById(this, R.id.video_view);
|
||||||
this.videoView = null;
|
this.videoView = null;
|
||||||
this.exoControls = new PlayerControlView(getContext());
|
this.exoControls = new LegacyPlayerControlView(getContext());
|
||||||
this.exoControls.setShowTimeoutMs(-1);
|
this.exoControls.setShowTimeoutMs(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,10 +3,12 @@ package org.thoughtcrime.securesms.video.exo;
|
|||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
|
||||||
import com.google.android.exoplayer2.upstream.DataSource;
|
|
||||||
import com.google.android.exoplayer2.upstream.DataSpec;
|
import androidx.media3.common.util.UnstableApi;
|
||||||
import com.google.android.exoplayer2.upstream.DefaultDataSource;
|
import androidx.media3.datasource.DataSource;
|
||||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
import androidx.media3.datasource.DataSpec;
|
||||||
|
import androidx.media3.datasource.DefaultDataSource;
|
||||||
|
import androidx.media3.datasource.TransferListener;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.mms.PartAuthority;
|
import org.thoughtcrime.securesms.mms.PartAuthority;
|
||||||
|
|
||||||
@ -15,6 +17,7 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@UnstableApi
|
||||||
public class AttachmentDataSource implements DataSource {
|
public class AttachmentDataSource implements DataSource {
|
||||||
|
|
||||||
private final DefaultDataSource defaultDataSource;
|
private final DefaultDataSource defaultDataSource;
|
||||||
|
@ -4,17 +4,19 @@ package org.thoughtcrime.securesms.video.exo;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.media3.common.util.UnstableApi;
|
||||||
|
import androidx.media3.datasource.DataSource;
|
||||||
|
import androidx.media3.datasource.DefaultDataSourceFactory;
|
||||||
|
import androidx.media3.datasource.TransferListener;
|
||||||
|
|
||||||
import com.google.android.exoplayer2.upstream.DataSource;
|
|
||||||
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
|
|
||||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
|
||||||
|
|
||||||
|
@UnstableApi
|
||||||
public class AttachmentDataSourceFactory implements DataSource.Factory {
|
public class AttachmentDataSourceFactory implements DataSource.Factory {
|
||||||
|
|
||||||
private final Context context;
|
private final Context context;
|
||||||
|
|
||||||
private final DefaultDataSourceFactory defaultDataSourceFactory;
|
private final DefaultDataSourceFactory defaultDataSourceFactory;
|
||||||
private final TransferListener listener;
|
private final TransferListener listener;
|
||||||
|
|
||||||
public AttachmentDataSourceFactory(@NonNull Context context,
|
public AttachmentDataSourceFactory(@NonNull Context context,
|
||||||
@NonNull DefaultDataSourceFactory defaultDataSourceFactory,
|
@NonNull DefaultDataSourceFactory defaultDataSourceFactory,
|
||||||
|
@ -6,10 +6,10 @@ import android.net.Uri;
|
|||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.media3.common.util.UnstableApi;
|
||||||
import com.google.android.exoplayer2.upstream.DataSource;
|
import androidx.media3.datasource.DataSource;
|
||||||
import com.google.android.exoplayer2.upstream.DataSpec;
|
import androidx.media3.datasource.DataSpec;
|
||||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
import androidx.media3.datasource.TransferListener;
|
||||||
|
|
||||||
import org.session.libsession.messaging.sending_receiving.attachments.Attachment;
|
import org.session.libsession.messaging.sending_receiving.attachments.Attachment;
|
||||||
import org.thoughtcrime.securesms.database.AttachmentDatabase;
|
import org.thoughtcrime.securesms.database.AttachmentDatabase;
|
||||||
@ -23,6 +23,7 @@ import java.util.Collections;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@UnstableApi
|
||||||
public class PartDataSource implements DataSource {
|
public class PartDataSource implements DataSource {
|
||||||
|
|
||||||
private final @NonNull Context context;
|
private final @NonNull Context context;
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<com.google.android.exoplayer2.ui.AspectRatioFrameLayout
|
<androidx.media3.ui.AspectRatioFrameLayout
|
||||||
android:id="@+id/exo_content_frame"
|
android:id="@+id/exo_content_frame"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<com.google.android.exoplayer2.ui.PlayerView
|
<androidx.media3.ui.PlayerView
|
||||||
android:id="@+id/video_view"
|
android:id="@+id/video_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user