mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-12-28 11:58:23 +01:00
Add an option to ignore nav bar in ViewVideoActivity and ViewImgurVideoFragment. Use Hauler to do drag up or down to finish Activity in ViewVideoActivity and ViewImgurMediaActivity.
This commit is contained in:
parent
a9ba807cf4
commit
2d69170f4f
@ -93,6 +93,7 @@ dependencies {
|
||||
implementation 'com.atlassian.commonmark:commonmark:0.13.1'
|
||||
implementation 'com.google.code.gson:gson:2.8.6'
|
||||
implementation 'me.zhanghai.android.fastscroll:library:1.1.2'
|
||||
implementation "com.thefuntasty.hauler:core:3.1.0"
|
||||
// androidX startup for auto-init
|
||||
implementation "androidx.startup:startup-runtime:1.0.0-alpha01"
|
||||
//crashy
|
||||
|
@ -43,7 +43,7 @@
|
||||
android:name=".Activity.ViewImgurMediaActivity"
|
||||
android:configChanges="orientation|screenSize|layoutDirection"
|
||||
android:parentActivityName=".Activity.MainActivity"
|
||||
android:theme="@style/AppTheme.SlidableWithActionBar" />
|
||||
android:theme="@style/AppTheme.Draggable" />
|
||||
<activity
|
||||
android:name=".Activity.ReportActivity"
|
||||
android:label="@string/report_activity_label"
|
||||
@ -299,7 +299,7 @@
|
||||
android:name=".Activity.ViewVideoActivity"
|
||||
android:configChanges="orientation|screenSize|layoutDirection"
|
||||
android:parentActivityName=".Activity.MainActivity"
|
||||
android:theme="@style/AppTheme.SlidableWithActionBar" />
|
||||
android:theme="@style/AppTheme.Draggable" />
|
||||
<activity
|
||||
android:name=".Activity.ViewPostDetailActivity"
|
||||
android:parentActivityName=".Activity.MainActivity"
|
||||
|
@ -20,9 +20,8 @@ import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import com.r0adkll.slidr.Slidr;
|
||||
import com.r0adkll.slidr.model.SlidrConfig;
|
||||
import com.r0adkll.slidr.model.SlidrPosition;
|
||||
import com.thefuntasty.hauler.DragDirection;
|
||||
import com.thefuntasty.hauler.HaulerView;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
@ -66,6 +65,8 @@ public class ViewImgurMediaActivity extends AppCompatActivity implements SetAsWa
|
||||
public static final int IMGUR_TYPE_IMAGE = 2;
|
||||
private static final String IMGUR_IMAGES_STATE = "IIS";
|
||||
|
||||
@BindView(R.id.hauler_view_view_imgur_media_activity)
|
||||
HaulerView haulerView;
|
||||
@BindView(R.id.progress_bar_view_imgur_media_activity)
|
||||
ProgressBar progressBar;
|
||||
@BindView(R.id.view_pager_view_imgur_media_activity)
|
||||
@ -128,7 +129,11 @@ public class ViewImgurMediaActivity extends AppCompatActivity implements SetAsWa
|
||||
images = savedInstanceState.getParcelableArrayList(IMGUR_IMAGES_STATE);
|
||||
}
|
||||
|
||||
Slidr.attach(this, new SlidrConfig.Builder().position(SlidrPosition.VERTICAL).build());
|
||||
haulerView.setOnDragDismissedListener(dragDirection -> {
|
||||
int slide = dragDirection == DragDirection.UP ? R.anim.slide_out_up : R.anim.slide_out_down;
|
||||
finish();
|
||||
overridePendingTransition(0, slide);
|
||||
});
|
||||
|
||||
if (images == null) {
|
||||
fetchImgurMedia(imgurId);
|
||||
|
@ -46,9 +46,8 @@ import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
|
||||
import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
import com.google.android.material.snackbar.Snackbar;
|
||||
import com.r0adkll.slidr.Slidr;
|
||||
import com.r0adkll.slidr.model.SlidrConfig;
|
||||
import com.r0adkll.slidr.model.SlidrPosition;
|
||||
import com.thefuntasty.hauler.DragDirection;
|
||||
import com.thefuntasty.hauler.HaulerView;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
@ -85,6 +84,8 @@ public class ViewVideoActivity extends AppCompatActivity {
|
||||
private static final String IS_MUTE_STATE = "IMS";
|
||||
private static final String VIDEO_DOWNLOAD_URL_STATE = "VDUS";
|
||||
private static final String VIDEO_URI_STATE = "VUS";
|
||||
@BindView(R.id.hauler_view_view_video_activity)
|
||||
HaulerView haulerView;
|
||||
@BindView(R.id.coordinator_layout_view_video_activity)
|
||||
CoordinatorLayout coordinatorLayout;
|
||||
@BindView(R.id.progress_bar_view_video_activity)
|
||||
@ -150,6 +151,7 @@ public class ViewVideoActivity extends AppCompatActivity {
|
||||
actionBar.setHomeAsUpIndicator(upArrow);
|
||||
actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.transparentActionBarAndExoPlayerControllerColor)));
|
||||
|
||||
if (!mSharedPreferences.getBoolean(SharedPreferencesUtils.VIDEO_PLAYER_IGNORE_NAV_BAR, false)) {
|
||||
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT || getResources().getBoolean(R.bool.isTablet)) {
|
||||
//Set player controller bottom margin in order to display it above the navbar
|
||||
int resourceId = getResources().getIdentifier("navigation_bar_height", "dimen", "android");
|
||||
@ -163,8 +165,13 @@ public class ViewVideoActivity extends AppCompatActivity {
|
||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) controllerLinearLayout.getLayoutParams();
|
||||
params.rightMargin = getResources().getDimensionPixelSize(resourceId);
|
||||
}
|
||||
}
|
||||
|
||||
Slidr.attach(this, new SlidrConfig.Builder().position(SlidrPosition.VERTICAL).build());
|
||||
haulerView.setOnDragDismissedListener(dragDirection -> {
|
||||
int slide = dragDirection == DragDirection.UP ? R.anim.slide_out_up : R.anim.slide_out_down;
|
||||
finish();
|
||||
overridePendingTransition(0, slide);
|
||||
});
|
||||
|
||||
mediaDownloader = new MediaDownloaderImpl();
|
||||
|
||||
|
@ -97,6 +97,7 @@ public class ViewImgurVideoFragment extends Fragment {
|
||||
|
||||
imgurMedia = getArguments().getParcelable(EXTRA_IMGUR_VIDEO);
|
||||
|
||||
if (!mSharedPreferences.getBoolean(SharedPreferencesUtils.VIDEO_PLAYER_IGNORE_NAV_BAR, false)) {
|
||||
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT || getResources().getBoolean(R.bool.isTablet)) {
|
||||
//Set player controller bottom margin in order to display it above the navbar
|
||||
int resourceId = getResources().getIdentifier("navigation_bar_height", "dimen", "android");
|
||||
@ -110,6 +111,7 @@ public class ViewImgurVideoFragment extends Fragment {
|
||||
ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) controllerLinearLayout.getLayoutParams();
|
||||
params.rightMargin = getResources().getDimensionPixelSize(resourceId);
|
||||
}
|
||||
}
|
||||
|
||||
videoPlayerView.setControllerVisibilityListener(visibility -> {
|
||||
switch (visibility) {
|
||||
|
@ -131,4 +131,5 @@ public class SharedPreferencesUtils {
|
||||
public static final String START_AUTOPLAY_VISIBLE_AREA_OFFSET_PORTRAIT = "start_autoplay_visible_area_offset_portrait";
|
||||
public static final String START_AUTOPLAY_VISIBLE_AREA_OFFSET_LANDSCAPE = "start_autoplay_visible_area_offset_landscape";
|
||||
public static final String MUTE_NSFW_VIDEO = "mute_nsfw_video";
|
||||
public static final String VIDEO_PLAYER_IGNORE_NAV_BAR = "video_player_ignore_nav_bar";
|
||||
}
|
||||
|
12
app/src/main/res/anim/slide_out_down.xml
Normal file
12
app/src/main/res/anim/slide_out_down.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromYDelta="0"
|
||||
android:toYDelta="+50%p" />
|
||||
<alpha
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromAlpha="1.0"
|
||||
android:toAlpha="0.0" />
|
||||
</set>
|
12
app/src/main/res/anim/slide_out_up.xml
Normal file
12
app/src/main/res/anim/slide_out_up.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<translate
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromYDelta="0"
|
||||
android:toYDelta="-50%p" />
|
||||
<alpha
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromAlpha="1.0"
|
||||
android:toAlpha="0.0" />
|
||||
</set>
|
@ -1,11 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<com.thefuntasty.hauler.HaulerView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/hauler_view_view_imgur_media_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:dragUpEnabled="true"
|
||||
tools:context=".Activity.ViewImgurMediaActivity">
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fillViewport="true">
|
||||
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ProgressBar
|
||||
android:id="@+id/progress_bar_view_imgur_media_activity"
|
||||
android:layout_width="wrap_content"
|
||||
@ -37,3 +48,7 @@
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
</com.thefuntasty.hauler.HaulerView>
|
@ -1,14 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
<com.thefuntasty.hauler.HaulerView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/hauler_view_view_video_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:keepScreenOn="true"
|
||||
android:id="@+id/coordinator_layout_view_video_activity"
|
||||
app:dragUpEnabled="true"
|
||||
tools:application="ml.docilealligator.infinityforreddit.Activity.ViewVideoActivity">
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fillViewport="true">
|
||||
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||
android:id="@+id/coordinator_layout_view_video_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<com.google.android.exoplayer2.ui.PlayerView
|
||||
android:id="@+id/player_view_view_video_activity"
|
||||
android:layout_width="match_parent"
|
||||
@ -23,3 +34,7 @@
|
||||
android:visibility="gone" />
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
||||
</com.thefuntasty.hauler.HaulerView>
|
@ -365,6 +365,8 @@
|
||||
<string name="settings_mute_video_title">Mute Videos</string>
|
||||
<string name="settings_mute_nsfw_video_title">Mute NSFW Videos</string>
|
||||
<string name="settings_automatically_try_redgifs_title">Automatically Try Accessing Redgifs if Videos on Gfycat are Removed.</string>
|
||||
<string name="settings_video_player_ignore_nav_bar_title">Ignore Navigation Bar in Video Player</string>
|
||||
<string name="settings_video_player_ignore_nav_bar_summary">Prevent the Video Controller Having Extra Margin</string>
|
||||
<string name="settings_confirm_to_exit">Confirm to Exit</string>
|
||||
<string name="settings_show_top_level_comments_first_title">Show Top-level Comments First</string>
|
||||
<string name="settings_show_comment_divider_title">Show Comment Divider</string>
|
||||
|
@ -47,6 +47,16 @@
|
||||
<item name="android:statusBarColor">@android:color/transparent</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.Draggable" parent="AppTheme">
|
||||
<item name="android:colorBackgroundCacheHint">@null</item>
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<item name="android:windowIsFloating">false</item>
|
||||
<item name="android:windowIsTranslucent">true</item>
|
||||
<item name="android:windowTranslucentStatus">true</item>
|
||||
<item name="android:windowBackground">@android:color/black</item>
|
||||
<item name="android:fontFamily">?attr/font_family</item>
|
||||
</style>
|
||||
|
||||
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.DayNight.ActionBar">
|
||||
<item name="android:fontFamily">?attr/font_family</item>
|
||||
</style>
|
||||
|
@ -19,6 +19,12 @@
|
||||
app:key="automatically_try_redgifs"
|
||||
app:title="@string/settings_automatically_try_redgifs_title" />
|
||||
|
||||
<SwitchPreference
|
||||
app:defaultValue="false"
|
||||
app:key="video_player_ignore_nav_bar"
|
||||
app:title="@string/settings_video_player_ignore_nav_bar_title"
|
||||
app:summary="@string/settings_video_player_ignore_nav_bar_summary" />
|
||||
|
||||
<PreferenceCategory
|
||||
app:title="@string/settings_video_autoplay_title" />
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user