mirror of
https://framagit.org/tom79/fedilab-tube
synced 2025-04-24 23:18:43 +02:00
Fix issue #31 - Show more content when available (with a toggle button)
This commit is contained in:
parent
02cc00780d
commit
8c958a2563
@ -18,6 +18,8 @@
|
|||||||
<string name="set_video_in_list">Vidéos dans une liste</string>
|
<string name="set_video_in_list">Vidéos dans une liste</string>
|
||||||
<string name="set_video_in_list_description">Change la mise en page pour afficher les vidéos dans une liste</string>
|
<string name="set_video_in_list_description">Change la mise en page pour afficher les vidéos dans une liste</string>
|
||||||
|
|
||||||
|
<string name="show_more">Montrer plus</string>
|
||||||
|
<string name="show_less">Montrer moins</string>
|
||||||
|
|
||||||
<string name="set_play_screen_lock">Verrouillage d\'écran</string>
|
<string name="set_play_screen_lock">Verrouillage d\'écran</string>
|
||||||
<string name="set_play_screen_lock_description">Continuer à lire des vidéos lorsque l\'écran est verrouillé</string>
|
<string name="set_play_screen_lock_description">Continuer à lire des vidéos lorsque l\'écran est verrouillé</string>
|
||||||
|
@ -17,6 +17,9 @@
|
|||||||
<string name="set_video_in_list">Videos in list</string>
|
<string name="set_video_in_list">Videos in list</string>
|
||||||
<string name="set_video_in_list_description">Change the layout for displaying videos in a list</string>
|
<string name="set_video_in_list_description">Change the layout for displaying videos in a list</string>
|
||||||
|
|
||||||
|
<string name="show_more">Show more</string>
|
||||||
|
<string name="show_less">Show less</string>
|
||||||
|
|
||||||
<string name="set_play_screen_lock">Screen lock</string>
|
<string name="set_play_screen_lock">Screen lock</string>
|
||||||
<string name="set_play_screen_lock_description">Keep playing videos when the screen is locked</string>
|
<string name="set_play_screen_lock_description">Keep playing videos when the screen is locked</string>
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@ import android.net.Uri;
|
|||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
import android.os.Looper;
|
||||||
import android.support.v4.media.session.MediaSessionCompat;
|
import android.support.v4.media.session.MediaSessionCompat;
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
@ -176,6 +177,7 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
|||||||
public static List<String> playedVideos = new ArrayList<>();
|
public static List<String> playedVideos = new ArrayList<>();
|
||||||
private VideoData.Video nextVideo;
|
private VideoData.Video nextVideo;
|
||||||
private TorrentStream torrentStream;
|
private TorrentStream torrentStream;
|
||||||
|
private String show_more_content;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onVideoSizeChanged(int width, int height, int unappliedRotationDegrees, float pixelWidthHeightRatio) {
|
public void onVideoSizeChanged(int width, int height, int unappliedRotationDegrees, float pixelWidthHeightRatio) {
|
||||||
@ -285,6 +287,17 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
|||||||
|
|
||||||
manageIntentUrl(intent);
|
manageIntentUrl(intent);
|
||||||
|
|
||||||
|
binding.peertubeDescriptionMore.setOnClickListener(v->{
|
||||||
|
if( show_more_content != null && peertube != null) {
|
||||||
|
if( binding.peertubeDescriptionMore.getText().toString().compareTo(getString(R.string.show_more)) == 0) {
|
||||||
|
binding.peertubeDescriptionMore.setText(getString(R.string.show_less));
|
||||||
|
binding.peertubeDescription.setText(show_more_content);
|
||||||
|
}else{
|
||||||
|
binding.peertubeDescriptionMore.setText(getString(R.string.show_more));
|
||||||
|
binding.peertubeDescription.setText(peertube.getDescription());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
if (!Helper.isLoggedIn(PeertubeActivity.this) || sepiaSearch) {
|
if (!Helper.isLoggedIn(PeertubeActivity.this) || sepiaSearch) {
|
||||||
binding.writeCommentContainerReply.setVisibility(View.GONE);
|
binding.writeCommentContainerReply.setVisibility(View.GONE);
|
||||||
binding.writeCommentContainer.setVisibility(View.GONE);
|
binding.writeCommentContainer.setVisibility(View.GONE);
|
||||||
@ -539,6 +552,8 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
|||||||
player.setPlayWhenReady(autoPlay);
|
player.setPlayWhenReady(autoPlay);
|
||||||
captions = null;
|
captions = null;
|
||||||
}
|
}
|
||||||
|
show_more_content = null;
|
||||||
|
binding.peertubeDescriptionMore.setVisibility(View.GONE);
|
||||||
if( autoFullscreen && autoPlay) {
|
if( autoFullscreen && autoPlay) {
|
||||||
fullscreen = FullScreenMediaController.fullscreen.ON;
|
fullscreen = FullScreenMediaController.fullscreen.ON;
|
||||||
setFullscreen(FullScreenMediaController.fullscreen.ON);
|
setFullscreen(FullScreenMediaController.fullscreen.ON);
|
||||||
@ -561,6 +576,31 @@ public class PeertubeActivity extends AppCompatActivity implements CommentListAd
|
|||||||
feedsViewModel.getVideo(sepiaSearch ? peertubeInstance : null, videoUuid, isMyVideo).observe(PeertubeActivity.this, this::manageVIewVideo);
|
feedsViewModel.getVideo(sepiaSearch ? peertubeInstance : null, videoUuid, isMyVideo).observe(PeertubeActivity.this, this::manageVIewVideo);
|
||||||
CaptionsVM captionsViewModel = new ViewModelProvider(PeertubeActivity.this).get(CaptionsVM.class);
|
CaptionsVM captionsViewModel = new ViewModelProvider(PeertubeActivity.this).get(CaptionsVM.class);
|
||||||
captionsViewModel.getCaptions(sepiaSearch ? peertubeInstance : null, videoUuid).observe(PeertubeActivity.this, this::manageCaptions);
|
captionsViewModel.getCaptions(sepiaSearch ? peertubeInstance : null, videoUuid).observe(PeertubeActivity.this, this::manageCaptions);
|
||||||
|
new Thread(() -> {
|
||||||
|
try {
|
||||||
|
RetrofitPeertubeAPI api = new RetrofitPeertubeAPI(PeertubeActivity.this);
|
||||||
|
VideoData.Description description = api.getVideoDescription(videoUuid);
|
||||||
|
Handler mainHandler = new Handler(Looper.getMainLooper());
|
||||||
|
Runnable myRunnable = () -> {
|
||||||
|
if( description == null) {
|
||||||
|
binding.peertubeDescriptionMore.setVisibility(View.GONE);
|
||||||
|
show_more_content = null;
|
||||||
|
}else{
|
||||||
|
if( description.getDescription().compareTo(peertube.getDescription()) > 0) {
|
||||||
|
binding.peertubeDescriptionMore.setVisibility(View.VISIBLE);
|
||||||
|
show_more_content = description.getDescription();
|
||||||
|
}else{
|
||||||
|
binding.peertubeDescriptionMore.setVisibility(View.GONE);
|
||||||
|
show_more_content = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
mainHandler.post(myRunnable);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void change() {
|
public void change() {
|
||||||
|
@ -202,6 +202,10 @@ public interface PeertubeService {
|
|||||||
@GET("videos/{id}")
|
@GET("videos/{id}")
|
||||||
Call<VideoData.Video> getVideo(@Path("id") String id);
|
Call<VideoData.Video> getVideo(@Path("id") String id);
|
||||||
|
|
||||||
|
//Get a video description
|
||||||
|
@GET("videos/{uuid}/description")
|
||||||
|
Call<VideoData.Description> getVideoDescription(@Path("uuid") String uuid);
|
||||||
|
|
||||||
@GET("videos/{id}")
|
@GET("videos/{id}")
|
||||||
Call<VideoData.Video> getMyVideo(@Header("Authorization") String credentials, @Path("id") String id);
|
Call<VideoData.Video> getMyVideo(@Header("Authorization") String credentials, @Path("id") String id);
|
||||||
|
|
||||||
|
@ -1038,6 +1038,25 @@ public class RetrofitPeertubeAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get video description
|
||||||
|
*
|
||||||
|
* @param uuid String (pagination)
|
||||||
|
* @return APIResponse
|
||||||
|
*/
|
||||||
|
public VideoData.Description getVideoDescription(String uuid) {
|
||||||
|
PeertubeService peertubeService = init();
|
||||||
|
Call<VideoData.Description> videoDescription = peertubeService.getVideoDescription(uuid);
|
||||||
|
try {
|
||||||
|
Response<VideoData.Description> response = videoDescription.execute();
|
||||||
|
if (response.isSuccessful() && response.body() != null) {
|
||||||
|
return response.body();
|
||||||
|
}
|
||||||
|
} catch (IOException ignored) {}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get muted accounts
|
* Get muted accounts
|
||||||
*
|
*
|
||||||
|
@ -685,4 +685,17 @@ public class VideoData {
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class Description{
|
||||||
|
@SerializedName("description")
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -225,7 +225,14 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="10dp" />
|
android:layout_marginTop="10dp" />
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/peertube_description_more"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/show_more"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:textColor="?attr/colorAccent"
|
||||||
|
android:layout_marginTop="2dp" />
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/write_comment_container"
|
android:id="@+id/write_comment_container"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user