Make buttons still visible when composing with media

This commit is contained in:
Thomas 2023-08-16 16:03:12 +02:00
parent 1965d196ae
commit c63ae5df4f
4 changed files with 58 additions and 9 deletions

View File

@ -21,6 +21,7 @@ import android.graphics.drawable.Drawable;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -246,7 +247,7 @@ public class FragmentMedia extends Fragment {
} }
binding.pbarInf.setIndeterminate(false); binding.pbarInf.setIndeterminate(false);
binding.pbarInf.setScaleY(3f); binding.pbarInf.setScaleY(3f);
binding.mediaVideo.setVisibility(View.VISIBLE); binding.videoViewContainer.setVisibility(View.VISIBLE);
Uri uri = Uri.parse(url); Uri uri = Uri.parse(url);
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity());
int video_cache = sharedpreferences.getInt(getString(R.string.SET_VIDEO_CACHE), Helper.DEFAULT_VIDEO_CACHE_MB); int video_cache = sharedpreferences.getInt(getString(R.string.SET_VIDEO_CACHE), Helper.DEFAULT_VIDEO_CACHE_MB);
@ -266,7 +267,16 @@ public class FragmentMedia extends Fragment {
player.setRepeatMode(Player.REPEAT_MODE_ONE); player.setRepeatMode(Player.REPEAT_MODE_ONE);
binding.mediaVideo.setUseController(false); binding.mediaVideo.setUseController(false);
} }
binding.mediaVideo.setOnTouchListener((view, motionEvent) -> {
if (binding.controls.getVisibility() != View.VISIBLE) {
binding.controls.setVisibility(View.VISIBLE);
final Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(() -> binding.controls.setVisibility(View.GONE), 2000);
}
return false;
});
binding.mediaVideo.setPlayer(player); binding.mediaVideo.setPlayer(player);
binding.controls.setPlayer(player);
binding.loader.setVisibility(View.GONE); binding.loader.setVisibility(View.GONE);
binding.mediaPicture.setVisibility(View.GONE); binding.mediaPicture.setVisibility(View.GONE);
player.setMediaSource(videoSource); player.setMediaSource(videoSource);
@ -349,7 +359,7 @@ public class FragmentMedia extends Fragment {
@Override @Override
public void onSlideChange(float percent) { public void onSlideChange(float percent) {
if (percent < 0.70) { if (percent < 0.70) {
binding.mediaVideo.setVisibility(View.GONE); binding.videoViewContainer.setVisibility(View.GONE);
binding.videoLayout.setVisibility(View.GONE); binding.videoLayout.setVisibility(View.GONE);
ActivityCompat.finishAfterTransition(requireActivity()); ActivityCompat.finishAfterTransition(requireActivity());
} }

View File

@ -35,6 +35,7 @@
android:id="@+id/media_description" android:id="@+id/media_description"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="100dp"
android:maxHeight="300dp" android:maxHeight="300dp"
android:scrollbars="vertical" android:scrollbars="vertical"
android:layout_gravity="center_horizontal|bottom" android:layout_gravity="center_horizontal|bottom"
@ -44,12 +45,13 @@
android:textColor="#ffffffff" android:textColor="#ffffffff"
android:textIsSelectable="true" android:textIsSelectable="true"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/original_message" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@+id/translate" app:layout_constraintEnd_toStartOf="@+id/translate"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
tools:visibility="visible" /> tools:visibility="visible" />
<TextView <TextView
android:layout_marginTop="100dp"
android:id="@+id/media_description_translated" android:id="@+id/media_description_translated"
android:layout_width="0dp" android:layout_width="0dp"
android:maxHeight="300dp" android:maxHeight="300dp"
@ -63,12 +65,13 @@
android:textColor="#ffffffff" android:textColor="#ffffffff"
android:textIsSelectable="true" android:textIsSelectable="true"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
tools:visibility="visible" /> tools:visibility="visible" />
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:layout_marginTop="100dp"
android:id="@+id/translate" android:id="@+id/translate"
style="@style/Widget.Material3.Button.IconButton" style="@style/Widget.Material3.Button.IconButton"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -77,7 +80,7 @@
android:visibility="gone" android:visibility="gone"
app:icon="@drawable/ic_baseline_translate_24" app:icon="@drawable/ic_baseline_translate_24"
app:iconPadding="0dp" app:iconPadding="0dp"
app:layout_constraintBottom_toBottomOf="@+id/media_description" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/media_description" app:layout_constraintStart_toEndOf="@+id/media_description"
tools:visibility="visible" /> tools:visibility="visible" />

View File

@ -59,12 +59,29 @@
</FrameLayout> </FrameLayout>
<com.google.android.exoplayer2.ui.PlayerView <FrameLayout xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/media_video" android:id="@+id/video_view_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_centerInParent="true" android:visibility="gone">
android:visibility="gone" />
<com.google.android.exoplayer2.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
android:id="@+id/controls"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginBottom="50dp"
app:show_timeout="2000" />
</FrameLayout>
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/load_remote" android:id="@+id/load_remote"

View File

@ -0,0 +1,19 @@
Added:
- Markdown support (can be disabled in Settings > Timelines)
- Hide / Show Self boosts and self replies (Long press the Home tab)
Changed:
- Full screen size when writing media descriptions.
- Move media descriptions to the top
Fixed:
- Holes in timelines due to a cache bug
- Spoiler issue when composing threads
- CamelCase tags when forwarding them in replies
- Buttons hidden by keyboard when composing
- Overlay with menu and buttons when playing videos
- Clicks on card do not open Mastodon posts inside the app
- Scrollable bio when editing profiles
- Crash when adding a user into a list
- Longer fields when editing bio
- Crash with Pixelfed