summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2024-01-20 18:10:05 +0100
committerThomas <tschneider.ac@gmail.com>2024-01-20 18:10:05 +0100
commitc778c71306a474a340d56c29de0296e3e2e20d76 (patch)
treefd37e8b500755b5e557bf2cb0db8744594bd43b7 /app
parent596c546cce0947169154070e464dbbad173e7856 (diff)
Prepare Media3
Diffstat (limited to 'app')
-rw-r--r--app/build.gradle11
-rw-r--r--app/src/fdroid/java/app/fedilab/android/activities/BasePeertubeActivity.java4
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/helper/CacheDataSourceFactory.java22
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java17
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java15
-rw-r--r--app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java16
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/activities/PeertubeActivity.java45
-rw-r--r--app/src/main/java/app/fedilab/android/peertube/helper/TrackSelectionDialog.java16
-rw-r--r--app/src/main/res/layouts/mastodon/layout/fragment_slide_media.xml4
-rw-r--r--app/src/main/res/layouts/mastodon/layout/layout_media.xml2
10 files changed, 79 insertions, 73 deletions
diff --git a/app/build.gradle b/app/build.gradle
index 268a76383..4917a13eb 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -132,14 +132,18 @@ dependencies {
implementation project(path: ':sparkbutton')
implementation project(path: ':colorPicker')
implementation project(path: ':mathjaxandroid')
-
+ implementation project(path: ':doubletapplayerview')
implementation 'com.burhanrashid52:photoeditor:1.5.1'
implementation("com.vanniktech:android-image-cropper:4.3.3")
annotationProcessor "com.github.bumptech.glide:compiler:4.12.0"
implementation 'jp.wasabeef:glide-transformations:4.3.0'
implementation 'com.github.penfeizhou.android.animation:glide-plugin:2.23.0'
- implementation 'com.google.android.exoplayer:exoplayer:2.19.1'
+ implementation "androidx.media3:media3-exoplayer:1.2.1"
+ implementation "androidx.media3:media3-exoplayer-dash:1.2.1"
+ implementation "androidx.media3:media3-ui:1.2.1"
+
+
implementation "androidx.viewpager2:viewpager2:1.0.0"
implementation 'com.github.piasy:rxandroidaudio:1.7.0'
implementation 'com.github.piasy:AudioProcessor:1.7.0'
@@ -177,14 +181,13 @@ dependencies {
implementation 'androidx.browser:browser:1.7.0'
implementation 'androidx.documentfile:documentfile:1.0.1'
implementation 'com.github.amoskorir:avatarimagegenerator:1.5.0'
- implementation 'com.google.android.exoplayer:extension-mediasession:2.19.1'
+
implementation "com.github.mabbas007:TagsEditText:1.0.5"
implementation "net.gotev:uploadservice:4.9.2"
implementation "net.gotev:uploadservice-okhttp:4.9.2"
implementation 'androidx.media:media:1.7.0'
implementation 'com.github.mancj:MaterialSearchBar:0.8.5'
- implementation 'com.github.vkay94:DoubleTapPlayerView:1.0.0'
implementation 'io.noties.markwon:core:4.6.2'
diff --git a/app/src/fdroid/java/app/fedilab/android/activities/BasePeertubeActivity.java b/app/src/fdroid/java/app/fedilab/android/activities/BasePeertubeActivity.java
index 1edddce2f..d190f88fa 100644
--- a/app/src/fdroid/java/app/fedilab/android/activities/BasePeertubeActivity.java
+++ b/app/src/fdroid/java/app/fedilab/android/activities/BasePeertubeActivity.java
@@ -28,9 +28,9 @@ import android.view.View;
import android.webkit.MimeTypeMap;
import androidx.appcompat.app.AlertDialog;
+import androidx.media3.common.Player;
-import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.jetbrains.annotations.NotNull;
@@ -53,7 +53,7 @@ public class BasePeertubeActivity extends BaseBarActivity {
protected ActivityPeertubeBinding binding;
protected VideoData.Video peertube;
- protected ExoPlayer player;
+ protected Player player;
protected String videoURL;
protected String subtitlesStr;
diff --git a/app/src/main/java/app/fedilab/android/mastodon/helper/CacheDataSourceFactory.java b/app/src/main/java/app/fedilab/android/mastodon/helper/CacheDataSourceFactory.java
index 3f74b906d..ddfceadfd 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/helper/CacheDataSourceFactory.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/helper/CacheDataSourceFactory.java
@@ -18,24 +18,24 @@ import android.content.Context;
import android.content.SharedPreferences;
import androidx.annotation.NonNull;
+import androidx.media3.database.ExoDatabaseProvider;
+import androidx.media3.exoplayer.upstream.DefaultBandwidthMeter;
import androidx.preference.PreferenceManager;
-import com.google.android.exoplayer2.database.ExoDatabaseProvider;
-import com.google.android.exoplayer2.upstream.DataSource;
-import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
-import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
-import com.google.android.exoplayer2.upstream.DefaultHttpDataSource;
-import com.google.android.exoplayer2.upstream.FileDataSource;
-import com.google.android.exoplayer2.upstream.cache.CacheDataSink;
-import com.google.android.exoplayer2.upstream.cache.CacheDataSource;
-import com.google.android.exoplayer2.upstream.cache.LeastRecentlyUsedCacheEvictor;
-import com.google.android.exoplayer2.upstream.cache.SimpleCache;
+import androidx.media3.datasource.DataSource;
+import androidx.media3.datasource.DefaultDataSourceFactory;
+import androidx.media3.datasource.DefaultHttpDataSource;
+import androidx.media3.datasource.FileDataSource;
+import androidx.media3.datasource.cache.CacheDataSink;
+import androidx.media3.datasource.cache.CacheDataSource;
+import androidx.media3.datasource.cache.LeastRecentlyUsedCacheEvictor;
+import androidx.media3.datasource.cache.SimpleCache;
import java.io.File;
import app.fedilab.android.R;
-
+@androidx.annotation.OptIn(markerClass = androidx.media3.common.util.UnstableApi.class)
public class CacheDataSourceFactory implements DataSource.Factory {
private static SimpleCache sDownloadCache;
diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java
index 465ebae8f..d9203d93e 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java
@@ -76,6 +76,7 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import androidx.annotation.OptIn;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.LinearLayoutCompat;
@@ -88,6 +89,14 @@ import androidx.fragment.app.Fragment;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelStoreOwner;
+import androidx.media3.common.MediaItem;
+import androidx.media3.common.Player;
+import androidx.media3.common.util.UnstableApi;
+import androidx.media3.datasource.DataSource;
+import androidx.media3.datasource.DefaultDataSource;
+import androidx.media3.exoplayer.ExoPlayer;
+import androidx.media3.exoplayer.source.ProgressiveMediaSource;
+import androidx.media3.ui.PlayerView;
import androidx.preference.PreferenceManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -97,13 +106,6 @@ import com.bumptech.glide.ListPreloader;
import com.bumptech.glide.RequestBuilder;
import com.bumptech.glide.request.RequestOptions;
import com.github.stom79.mytransl.MyTransL;
-import com.google.android.exoplayer2.ExoPlayer;
-import com.google.android.exoplayer2.MediaItem;
-import com.google.android.exoplayer2.Player;
-import com.google.android.exoplayer2.source.ProgressiveMediaSource;
-import com.google.android.exoplayer2.ui.PlayerView;
-import com.google.android.exoplayer2.upstream.DataSource;
-import com.google.android.exoplayer2.upstream.DefaultDataSource;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.smarteist.autoimageslider.SliderAnimations;
import com.smarteist.autoimageslider.SliderView;
@@ -390,6 +392,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
* @param status {@link Status}
*/
@SuppressLint("ClickableViewAccessibility")
+ @androidx.annotation.OptIn(markerClass = androidx.media3.common.util.UnstableApi.class)
public static void statusManagement(Context context,
StatusesVM statusesVM,
SearchVM searchVM,
diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java
index 7407e84ab..d96d4d429 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusDirectMessageAdapter.java
@@ -49,17 +49,18 @@ import androidx.core.content.ContextCompat;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelStoreOwner;
+import androidx.media3.common.MediaItem;
+import androidx.media3.common.Player;
+import androidx.media3.datasource.DataSource;
+import androidx.media3.datasource.DefaultDataSource;
+import androidx.media3.exoplayer.ExoPlayer;
+import androidx.media3.exoplayer.source.ProgressiveMediaSource;
+import androidx.media3.ui.PlayerView;
import androidx.preference.PreferenceManager;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.RequestBuilder;
-import com.google.android.exoplayer2.ExoPlayer;
-import com.google.android.exoplayer2.MediaItem;
-import com.google.android.exoplayer2.Player;
-import com.google.android.exoplayer2.source.ProgressiveMediaSource;
-import com.google.android.exoplayer2.ui.PlayerView;
-import com.google.android.exoplayer2.upstream.DataSource;
-import com.google.android.exoplayer2.upstream.DefaultDataSource;
+
import org.jetbrains.annotations.NotNull;
diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java
index 6740a6d8e..030efd46d 100644
--- a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java
+++ b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java
@@ -33,18 +33,18 @@ import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
+import androidx.media3.common.MediaItem;
+import androidx.media3.common.PlaybackException;
+import androidx.media3.common.Player;
+import androidx.media3.datasource.DataSource;
+import androidx.media3.datasource.DefaultDataSource;
+import androidx.media3.exoplayer.ExoPlayer;
+import androidx.media3.exoplayer.source.ProgressiveMediaSource;
import androidx.preference.PreferenceManager;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;
-import com.google.android.exoplayer2.ExoPlayer;
-import com.google.android.exoplayer2.MediaItem;
-import com.google.android.exoplayer2.PlaybackException;
-import com.google.android.exoplayer2.Player;
-import com.google.android.exoplayer2.source.ProgressiveMediaSource;
-import com.google.android.exoplayer2.upstream.DataSource;
-import com.google.android.exoplayer2.upstream.DefaultDataSource;
import com.r0adkll.slidr.Slidr;
import com.r0adkll.slidr.model.SlidrConfig;
import com.r0adkll.slidr.model.SlidrInterface;
@@ -248,7 +248,7 @@ public class FragmentMedia extends Fragment {
}
}
-
+ @androidx.annotation.OptIn(markerClass = androidx.media3.common.util.UnstableApi.class)
private void loadVideo(String url, String type) {
if (binding == null || !isAdded() || getActivity() == null || url == null) {
return;
diff --git a/app/src/main/java/app/fedilab/android/peertube/activities/PeertubeActivity.java b/app/src/main/java/app/fedilab/android/peertube/activities/PeertubeActivity.java
index 0fd8dd487..66034c619 100644
--- a/app/src/main/java/app/fedilab/android/peertube/activities/PeertubeActivity.java
+++ b/app/src/main/java/app/fedilab/android/peertube/activities/PeertubeActivity.java
@@ -14,7 +14,8 @@ package app.fedilab.android.peertube.activities;
* You should have received a copy of the GNU General Public License along with Fedilab; if not,
* see <http://www.gnu.org/licenses>. */
-import static com.google.android.exoplayer2.Player.MEDIA_ITEM_TRANSITION_REASON_AUTO;
+
+import static androidx.media3.common.Player.MEDIA_ITEM_TRANSITION_REASON_AUTO;
import static app.fedilab.android.BaseMainActivity.currentAccount;
import static app.fedilab.android.BaseMainActivity.currentInstance;
import static app.fedilab.android.BaseMainActivity.currentToken;
@@ -85,34 +86,30 @@ import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.lifecycle.ViewModelProvider;
+import androidx.media3.common.Format;
+import androidx.media3.common.MediaItem;
+import androidx.media3.common.MimeTypes;
+import androidx.media3.common.PlaybackException;
+import androidx.media3.common.PlaybackParameters;
+import androidx.media3.common.Player;
+import androidx.media3.common.VideoSize;
+import androidx.media3.datasource.DataSource;
+import androidx.media3.datasource.DefaultDataSource;
+import androidx.media3.exoplayer.ExoPlayer;
+import androidx.media3.exoplayer.source.MergingMediaSource;
+import androidx.media3.exoplayer.source.ProgressiveMediaSource;
+import androidx.media3.exoplayer.source.SingleSampleMediaSource;
+import androidx.media3.exoplayer.trackselection.AdaptiveTrackSelection;
+import androidx.media3.exoplayer.trackselection.DefaultTrackSelector;
+import androidx.media3.exoplayer.trackselection.TrackSelector;
+import androidx.media3.ui.AspectRatioFrameLayout;
+import androidx.media3.ui.PlayerControlView;
import androidx.preference.PreferenceManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.github.vkay94.dtpv.youtube.YouTubeOverlay;
-import com.google.android.exoplayer2.C;
-import com.google.android.exoplayer2.ExoPlayer;
-import com.google.android.exoplayer2.Format;
-import com.google.android.exoplayer2.MediaItem;
-import com.google.android.exoplayer2.PlaybackException;
-import com.google.android.exoplayer2.PlaybackParameters;
-import com.google.android.exoplayer2.Player;
-import com.google.android.exoplayer2.ext.mediasession.MediaSessionConnector;
-import com.google.android.exoplayer2.source.MergingMediaSource;
-import com.google.android.exoplayer2.source.ProgressiveMediaSource;
-import com.google.android.exoplayer2.source.SingleSampleMediaSource;
-import com.google.android.exoplayer2.source.hls.HlsMediaSource;
-import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection;
-import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
-import com.google.android.exoplayer2.trackselection.TrackSelector;
-import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
-import com.google.android.exoplayer2.ui.DefaultTimeBar;
-import com.google.android.exoplayer2.ui.PlayerControlView;
-import com.google.android.exoplayer2.upstream.DataSource;
-import com.google.android.exoplayer2.upstream.DefaultDataSource;
-import com.google.android.exoplayer2.util.MimeTypes;
-import com.google.android.exoplayer2.video.VideoSize;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar;
@@ -168,7 +165,7 @@ import app.fedilab.android.peertube.webview.MastalabWebChromeClient;
import app.fedilab.android.peertube.webview.MastalabWebViewClient;
import es.dmoral.toasty.Toasty;
-
+@androidx.annotation.OptIn(markerClass = androidx.media3.common.util.UnstableApi.class)
public class PeertubeActivity extends BasePeertubeActivity implements CommentListAdapter.AllCommentRemoved, MenuAdapter.ItemClicked, MenuItemAdapter.ItemAction, Player.Listener {
public static String video_id;
diff --git a/app/src/main/java/app/fedilab/android/peertube/helper/TrackSelectionDialog.java b/app/src/main/java/app/fedilab/android/peertube/helper/TrackSelectionDialog.java
index eb7e2e2e2..6090d123c 100644
--- a/app/src/main/java/app/fedilab/android/peertube/helper/TrackSelectionDialog.java
+++ b/app/src/main/java/app/fedilab/android/peertube/helper/TrackSelectionDialog.java
@@ -14,14 +14,14 @@ import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
+import androidx.media3.common.C;
+import androidx.media3.common.Player;
+import androidx.media3.common.TrackGroup;
+import androidx.media3.common.TrackSelectionOverride;
+import androidx.media3.common.TrackSelectionParameters;
+import androidx.media3.common.Tracks;
+import androidx.media3.ui.TrackSelectionView;
-import com.google.android.exoplayer2.C;
-import com.google.android.exoplayer2.Player;
-import com.google.android.exoplayer2.Tracks;
-import com.google.android.exoplayer2.source.TrackGroup;
-import com.google.android.exoplayer2.trackselection.TrackSelectionOverride;
-import com.google.android.exoplayer2.trackselection.TrackSelectionParameters;
-import com.google.android.exoplayer2.ui.TrackSelectionView;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.common.collect.ImmutableList;
@@ -31,12 +31,14 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+
import app.fedilab.android.R;
import app.fedilab.android.databinding.TrackSelectionDialogBinding;
/**
* Dialog to select tracks.
*/
+@androidx.annotation.OptIn(markerClass = androidx.media3.common.util.UnstableApi.class)
public final class TrackSelectionDialog extends DialogFragment {
public static final ImmutableList<Integer> SUPPORTED_TRACK_TYPES =
diff --git a/app/src/main/res/layouts/mastodon/layout/fragment_slide_media.xml b/app/src/main/res/layouts/mastodon/layout/fragment_slide_media.xml
index 2fc855328..d9dc542ab 100644
--- a/app/src/main/res/layouts/mastodon/layout/fragment_slide_media.xml
+++ b/app/src/main/res/layouts/mastodon/layout/fragment_slide_media.xml
@@ -65,14 +65,14 @@
android:layout_height="match_parent"
android:visibility="gone">
- <com.google.android.exoplayer2.ui.PlayerView
+ <androidx.media3.ui.PlayerView
android:id="@+id/media_video"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:use_controller="false" />
- <com.google.android.exoplayer2.ui.PlayerControlView
+ <androidx.media3.ui.PlayerControlView
android:id="@+id/controls"
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/app/src/main/res/layouts/mastodon/layout/layout_media.xml b/app/src/main/res/layouts/mastodon/layout/layout_media.xml
index 78d8a8484..f340763ac 100644
--- a/app/src/main/res/layouts/mastodon/layout/layout_media.xml
+++ b/app/src/main/res/layouts/mastodon/layout/layout_media.xml
@@ -18,7 +18,7 @@
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
- <com.google.android.exoplayer2.ui.PlayerView
+ <androidx.media3.ui.PlayerView
android:id="@+id/media_video"
app:shutter_background_color="@color/transparent"
app:surface_type="texture_view"