diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomFabBehavior.java b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomFabBehavior.java
index 0eea48297..cabce3ec2 100644
--- a/app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomFabBehavior.java
+++ b/app/src/mobile/java/com/fongmi/android/tv/ui/custom/CustomFabBehavior.java
@@ -28,10 +28,18 @@ public class CustomFabBehavior extends FloatingActionButton.Behavior {
@Override
public void onNestedScroll(@NonNull CoordinatorLayout coordinatorLayout, @NonNull FloatingActionButton child, @NonNull View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int type, @NonNull int[] consumed) {
super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed, type, consumed);
- if (dyConsumed > 0 && child.getVisibility() == View.VISIBLE) {
- onHide(child);
- } else if (dyConsumed < 0 && child.getVisibility() == View.INVISIBLE) {
- child.show();
+ if ("uptop".equals(child.getTag())) {
+ if (dyConsumed > 0 && child.getVisibility() == View.INVISIBLE) {
+ child.show();
+ } else if (dyConsumed < 0 && child.getVisibility() == View.VISIBLE) {
+ onHide(child);
+ }
+ } else {
+ if (dyConsumed > 0 && child.getVisibility() == View.VISIBLE) {
+ onHide(child);
+ } else if (dyConsumed < 0 && child.getVisibility() == View.INVISIBLE) {
+ child.show();
+ }
}
}
diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java
index 5d45c682e..46633dcfa 100644
--- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java
+++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java
@@ -193,6 +193,10 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac
}
}
+ public void scrollToTop() {
+ mBinding.recycler.smoothScrollToPosition(0);
+ }
+
public void setFilter(String key, Value value) {
if (value.isActivated()) mExtends.put(key, value.getV());
else mExtends.remove(key);
diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
index 1023294ab..0e8c65ac1 100644
--- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
+++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
@@ -102,6 +102,7 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
mBinding.keep.setOnClickListener(this::onKeep);
mBinding.retry.setOnClickListener(this::onRetry);
mBinding.filter.setOnClickListener(this::onFilter);
+ mBinding.uptop.setOnClickListener(this::onUptop);
mBinding.search.setOnClickListener(this::onSearch);
mBinding.history.setOnClickListener(this::onHistory);
mBinding.pager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@@ -166,12 +167,15 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
if (mAdapter.getItemCount() == 0) {
mBinding.filter.setVisibility(View.GONE);
mBinding.link.setVisibility(View.VISIBLE);
+ mBinding.uptop.setVisibility(View.INVISIBLE);
} else if (mAdapter.get(position).getFilters().size() > 0) {
mBinding.link.setVisibility(View.GONE);
mBinding.filter.show();
+ mBinding.uptop.setVisibility(View.INVISIBLE);
} else if (position == 0 || mAdapter.get(position).getFilters().isEmpty()) {
mBinding.link.show();
mBinding.filter.setVisibility(View.GONE);
+ mBinding.uptop.setVisibility(View.INVISIBLE);
}
}
@@ -179,6 +183,13 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
mBinding.retry.setVisibility(mAdapter.getItemCount() == 0 ? View.VISIBLE : View.GONE);
}
+ private void onUptop(View view) {
+ ((TypeFragment) getFragment()).scrollToTop();
+ mBinding.uptop.setVisibility(View.INVISIBLE);
+ if (mBinding.filter.getVisibility() == View.INVISIBLE) mBinding.filter.show();
+ else if (mBinding.link.getVisibility() == View.INVISIBLE) mBinding.link.show();
+ }
+
private void onLink(View view) {
LinkDialog.create(this).show();
}
diff --git a/app/src/mobile/res/drawable/ic_fab_uptop.xml b/app/src/mobile/res/drawable/ic_fab_uptop.xml
new file mode 100644
index 000000000..a207c79e7
--- /dev/null
+++ b/app/src/mobile/res/drawable/ic_fab_uptop.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/mobile/res/layout/fragment_vod.xml b/app/src/mobile/res/layout/fragment_vod.xml
index d23b6b826..8af70a698 100644
--- a/app/src/mobile/res/layout/fragment_vod.xml
+++ b/app/src/mobile/res/layout/fragment_vod.xml
@@ -141,4 +141,18 @@
app:tint="@color/white"
tools:visibility="visible" />
+
+
\ No newline at end of file