diff --git a/app/build.gradle b/app/build.gradle
index 1598ef34a..c1a1beb57 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -184,8 +184,6 @@ dependencies {
implementation 'com.github.AdrienPoupa:jaudiotagger:2.2.3'
- implementation 'com.github.ologe:scroll-helper:2.0.0-beta01'
-
implementation 'com.anjlab.android.iab.v3:library:1.1.0'
implementation 'com.r0adkll:slidableactivity:2.1.0'
implementation 'com.heinrichreimersoftware:material-intro:1.6'
diff --git a/app/src/main/java/code/name/monkey/retromusic/RetroScrollHelper.kt b/app/src/main/java/code/name/monkey/retromusic/RetroScrollHelper.kt
deleted file mode 100644
index b7fa8031d..000000000
--- a/app/src/main/java/code/name/monkey/retromusic/RetroScrollHelper.kt
+++ /dev/null
@@ -1,67 +0,0 @@
-package code.name.monkey.retromusic
-
-import android.view.View
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.FragmentActivity
-import androidx.recyclerview.widget.RecyclerView
-import androidx.viewpager2.widget.ViewPager2
-import code.name.monkey.retromusic.fragments.player.normal.PlayerFragment
-import dev.olog.scrollhelper.ScrollHelper
-
-class RetroScrollHelper(
- private val activity: FragmentActivity
-) : ScrollHelper(activity,
- true,
- false // TODO when true, scrolls both bottomsheet and bottom navigation
-) {
-
- private val skipFragment = listOf(
- PlayerFragment::class.java.name
- )
-
- // TODO every fragment has to have it's unique tag in order to work correctly
- // here you can decide what fragment will be processed by the library
- // probably you want to skip player fragments, ecc ..
- override fun shouldSkipFragment(fragment: Fragment): Boolean {
- return fragment::class.java.name in skipFragment
- }
-
- override fun findBottomNavigation(): View? {
- return activity.findViewById(R.id.bottomNavigationView)
- }
-
- override fun findBottomSheet(): View? {
- return activity.findViewById(R.id.slidingPanel)
- }
-
- override fun findFab(fragment: Fragment): View? {
- return null
- }
-
- override fun findRecyclerView(fragment: Fragment): RecyclerView? {
- return fragment.requireView().findViewById(R.id.recyclerView)
- }
-
- override fun findToolbar(fragment: Fragment): View? {
- return fragment.requireActivity().findViewById(R.id.toolbarContainer)
- }
-
- override fun findTabLayout(fragment: Fragment): View? {
- return null
- }
-
- override fun findViewPager(fragment: Fragment): ViewPager2? {
- return null
- }
-
- // TODO override this if you want to apply custom padding
- override fun updateRecyclerViewPadding(
- fragment: Fragment,
- recyclerView: RecyclerView,
- topPadding: Int,
- bottomPadding: Int
- ) {
- super.updateRecyclerViewPadding(fragment, recyclerView, topPadding, bottomPadding)
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.java b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.java
index 12a276f6c..34d39e445 100644
--- a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.java
+++ b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.java
@@ -55,7 +55,6 @@ import java.util.List;
import code.name.monkey.appthemehelper.util.ATHUtil;
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper;
import code.name.monkey.retromusic.R;
-import code.name.monkey.retromusic.RetroScrollHelper;
import code.name.monkey.retromusic.activities.base.AbsSlidingMusicPanelActivity;
import code.name.monkey.retromusic.dialogs.CreatePlaylistDialog;
import code.name.monkey.retromusic.fragments.base.AbsLibraryPagerRecyclerViewCustomGridSizeFragment;
@@ -84,7 +83,6 @@ import code.name.monkey.retromusic.util.NavigationUtil;
import code.name.monkey.retromusic.util.PreferenceUtil;
import code.name.monkey.retromusic.util.RetroColorUtil;
import code.name.monkey.retromusic.util.RetroUtil;
-import dev.olog.scrollhelper.ScrollHelper;
/**
* Created by hemanths on 2020-02-19.
@@ -121,9 +119,6 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
private Toolbar mToolbar;
private MaterialCardView mToolbarContainer;
- @SuppressWarnings("FieldCanBeLocal")
- private ScrollHelper scrollHelper;
-
@Override
protected void onCreate(@Nullable final Bundle savedInstanceState) {
setDrawUnderStatusBar();
@@ -156,8 +151,6 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
checkShowChangelog();
AppRater.appLaunched(this);
setupToolbar();
-
- scrollHelper = new RetroScrollHelper(this);
}
@Override
diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt
index 7f92a4f62..3a84f55bc 100644
--- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt
@@ -111,14 +111,10 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
}
}
- override fun onPause() {
- super.onPause()
- bottomSheetBehavior.removeBottomSheetCallback(bottomSheetCallbackList)
- }
-
override fun onDestroy() {
super.onDestroy()
- navigationBarColorAnimator?.cancel() // just in case
+ bottomSheetBehavior.removeBottomSheetCallback(bottomSheetCallbackList)
+ if (navigationBarColorAnimator != null) navigationBarColorAnimator?.cancel() // just in case
}
protected fun wrapSlidingMusicPanel(@LayoutRes resId: Int): View {
@@ -146,6 +142,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
// necessary to make the views below clickable
miniPlayerFragment?.view?.visibility = if (alpha == 0f) View.GONE else View.VISIBLE
+ bottomNavigationView.translationY = progress * 500
//bottomNavigationView.alpha = alpha
}
@@ -220,8 +217,8 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
}
}
- fun setBottomBarVisibility(visibility: Int) {
- bottomNavigationView.visibility = visibility
+ fun setBottomBarVisibility(gone: Int) {
+ bottomNavigationView.visibility = gone
hideBottomBar(false)
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/ContextExtensions.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/ContextExtensions.kt
deleted file mode 100644
index 297e4d59a..000000000
--- a/app/src/main/java/code/name/monkey/retromusic/extensions/ContextExtensions.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package code.name.monkey.retromusic.extensions
-
-import android.content.Context
-import androidx.annotation.DimenRes
-
-@Suppress("NOTHING_TO_INLINE")
-inline fun Context.dip(value: Int): Int = (value * resources.displayMetrics.density).toInt()
-
-@Suppress("NOTHING_TO_INLINE")
-inline fun Context.dimen(@DimenRes resource: Int): Int = resources.getDimensionPixelSize(resource)
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsLibraryPagerRecyclerViewFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsLibraryPagerRecyclerViewFragment.kt
index bd7b45a8e..2ef27d5f5 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsLibraryPagerRecyclerViewFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsLibraryPagerRecyclerViewFragment.kt
@@ -8,13 +8,17 @@ import androidx.annotation.NonNull
import androidx.annotation.StringRes
import androidx.recyclerview.widget.RecyclerView
import code.name.monkey.retromusic.R
+import code.name.monkey.retromusic.helper.MusicPlayerRemote
+import code.name.monkey.retromusic.util.DensityUtil
import code.name.monkey.retromusic.util.ThemedFastScroller.create
+import code.name.monkey.retromusic.views.ScrollingViewOnApplyWindowInsetsListener
+import com.google.android.material.appbar.AppBarLayout
import kotlinx.android.synthetic.main.fragment_main_activity_recycler_view.*
import me.zhanghai.android.fastscroll.FastScroller
import me.zhanghai.android.fastscroll.FastScrollerBuilder
abstract class AbsLibraryPagerRecyclerViewFragment, LM : RecyclerView.LayoutManager> :
- AbsLibraryPagerFragment() {
+ AbsLibraryPagerFragment(), AppBarLayout.OnOffsetChangedListener {
protected var adapter: A? = null
protected var layoutManager: LM? = null
@@ -27,6 +31,7 @@ abstract class AbsLibraryPagerRecyclerViewFragment,
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
+ mainActivity.addOnAppBarOffsetChangedListener(this)
initLayoutManager()
initAdapter()
setUpRecyclerView()
@@ -36,6 +41,13 @@ abstract class AbsLibraryPagerRecyclerViewFragment,
recyclerView.layoutManager = layoutManager
recyclerView.adapter = adapter
val fastScroller = create(recyclerView)
+ recyclerView.setOnApplyWindowInsetsListener(
+ ScrollingViewOnApplyWindowInsetsListener(
+ recyclerView,
+ fastScroller
+ )
+ )
+ checkForPadding()
}
protected open fun createFastScroller(recyclerView: RecyclerView): FastScroller {
@@ -48,6 +60,7 @@ abstract class AbsLibraryPagerRecyclerViewFragment,
override fun onChanged() {
super.onChanged()
checkIsEmpty()
+ checkForPadding()
}
})
}
@@ -65,6 +78,18 @@ abstract class AbsLibraryPagerRecyclerViewFragment,
empty.visibility = if (adapter!!.itemCount == 0) View.VISIBLE else View.GONE
}
+ private fun checkForPadding() {
+ val itemCount: Int = adapter?.itemCount ?: 0
+ val params = container.layoutParams as ViewGroup.MarginLayoutParams
+ if (itemCount > 0 && MusicPlayerRemote.playingQueue.isNotEmpty()) {
+ val height = DensityUtil.dip2px(requireContext(), 104f)
+ params.bottomMargin = height
+ } else {
+ val height = DensityUtil.dip2px(requireContext(), 52f)
+ params.bottomMargin = height
+ }
+ }
+
private fun initLayoutManager() {
layoutManager = createLayoutManager()
}
@@ -74,6 +99,25 @@ abstract class AbsLibraryPagerRecyclerViewFragment,
@NonNull
protected abstract fun createAdapter(): A
+ override fun onOffsetChanged(p0: AppBarLayout?, i: Int) {
+ container.setPadding(
+ container.paddingLeft,
+ container.paddingTop,
+ container.paddingRight,
+ mainActivity.totalAppBarScrollingRange + i
+ )
+ }
+
+ override fun onQueueChanged() {
+ super.onQueueChanged()
+ checkForPadding()
+ }
+
+ override fun onServiceConnected() {
+ super.onServiceConnected()
+ checkForPadding()
+ }
+
protected fun invalidateLayoutManager() {
initLayoutManager()
recyclerView.layoutManager = layoutManager
@@ -85,6 +129,11 @@ abstract class AbsLibraryPagerRecyclerViewFragment,
recyclerView.adapter = adapter
}
+ override fun onDestroyView() {
+ super.onDestroyView()
+ mainActivity.removeOnAppBarOffsetChangedListener(this)
+ }
+
fun recyclerView(): RecyclerView {
return recyclerView
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/AlbumsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/AlbumsFragment.kt
index d7b541b29..32c374d7e 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/AlbumsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/AlbumsFragment.kt
@@ -12,7 +12,6 @@ import code.name.monkey.retromusic.model.Album
import code.name.monkey.retromusic.mvp.presenter.AlbumsPresenter
import code.name.monkey.retromusic.mvp.presenter.AlbumsView
import code.name.monkey.retromusic.util.PreferenceUtil
-import dev.olog.scrollhelper.layoutmanagers.OverScrollGridLayoutManager
import javax.inject.Inject
class AlbumsFragment :
@@ -52,7 +51,7 @@ class AlbumsFragment :
get() = R.string.no_albums
override fun createLayoutManager(): GridLayoutManager {
- return OverScrollGridLayoutManager(requireActivity(), getGridSize())
+ return GridLayoutManager(requireActivity(), getGridSize())
}
override fun createAdapter(): AlbumAdapter {
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/ArtistsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/ArtistsFragment.kt
index adb055946..6f4ded1cf 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/ArtistsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/ArtistsFragment.kt
@@ -12,7 +12,6 @@ import code.name.monkey.retromusic.model.Artist
import code.name.monkey.retromusic.mvp.presenter.ArtistsPresenter
import code.name.monkey.retromusic.mvp.presenter.ArtistsView
import code.name.monkey.retromusic.util.PreferenceUtil
-import dev.olog.scrollhelper.layoutmanagers.OverScrollGridLayoutManager
import javax.inject.Inject
class ArtistsFragment :
@@ -64,7 +63,7 @@ class ArtistsFragment :
}
override fun createLayoutManager(): GridLayoutManager {
- return OverScrollGridLayoutManager(requireActivity(), getGridSize())
+ return GridLayoutManager(requireActivity(), getGridSize())
}
override fun createAdapter(): ArtistAdapter {
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/BannerHomeFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/BannerHomeFragment.kt
index 10fb58daf..fc87c4eaa 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/BannerHomeFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/BannerHomeFragment.kt
@@ -42,7 +42,6 @@ import code.name.monkey.retromusic.util.NavigationUtil
import code.name.monkey.retromusic.util.PreferenceUtil
import com.bumptech.glide.Glide
import com.bumptech.glide.load.engine.DiskCacheStrategy
-import dev.olog.scrollhelper.layoutmanagers.OverScrollLinearLayoutManager
import kotlinx.android.synthetic.main.abs_playlists.*
import kotlinx.android.synthetic.main.fragment_banner_home.*
import kotlinx.android.synthetic.main.home_content.*
@@ -148,7 +147,7 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
homeAdapter = HomeAdapter(mainActivity, displayMetrics)
recyclerView.apply {
- layoutManager = OverScrollLinearLayoutManager(mainActivity)
+ layoutManager = LinearLayoutManager(mainActivity)
adapter = homeAdapter
}
homePresenter.attachView(this)
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/FoldersFragment.java b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/FoldersFragment.java
index a912731fb..ab2daabce 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/FoldersFragment.java
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/FoldersFragment.java
@@ -74,7 +74,6 @@ import code.name.monkey.retromusic.util.RetroColorUtil;
import code.name.monkey.retromusic.util.ThemedFastScroller;
import code.name.monkey.retromusic.views.BreadCrumbLayout;
import code.name.monkey.retromusic.views.ScrollingViewOnApplyWindowInsetsListener;
-import dev.olog.scrollhelper.layoutmanagers.OverScrollLinearLayoutManager;
import me.zhanghai.android.fastscroll.FastScroller;
public class FoldersFragment extends AbsMainActivityFragment implements
@@ -479,7 +478,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements
}
private void setUpRecyclerView() {
- recyclerView.setLayoutManager(new OverScrollLinearLayoutManager(getActivity()));
+ recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
FastScroller fastScroller = ThemedFastScroller.INSTANCE.create(recyclerView);
recyclerView.setOnApplyWindowInsetsListener(
new ScrollingViewOnApplyWindowInsetsListener(recyclerView, fastScroller));
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/GenresFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/GenresFragment.kt
index 548c13309..bf0dc49cd 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/GenresFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/GenresFragment.kt
@@ -25,7 +25,6 @@ import code.name.monkey.retromusic.interfaces.MainActivityFragmentCallbacks
import code.name.monkey.retromusic.model.Genre
import code.name.monkey.retromusic.mvp.presenter.GenresPresenter
import code.name.monkey.retromusic.mvp.presenter.GenresView
-import dev.olog.scrollhelper.layoutmanagers.OverScrollLinearLayoutManager
import javax.inject.Inject
class GenresFragment : AbsLibraryPagerRecyclerViewFragment(),
@@ -43,7 +42,7 @@ class GenresFragment : AbsLibraryPagerRecyclerViewFragment 0) {
+ result = r.getDimensionPixelSize(resourceId);
+ }
+ return result;
+ }
+
+ private void init(Context context) {
+
+ }
+
+ @Override
+ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+ setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec), getStatusBarHeight(getResources()));
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/code/name/monkey/retromusic/views/StatusBarView.kt b/app/src/main/java/code/name/monkey/retromusic/views/StatusBarView.kt
deleted file mode 100644
index 9a5833f79..000000000
--- a/app/src/main/java/code/name/monkey/retromusic/views/StatusBarView.kt
+++ /dev/null
@@ -1,30 +0,0 @@
-package code.name.monkey.retromusic.views
-
-import android.content.Context
-import android.util.AttributeSet
-import android.view.View
-
-class StatusBarView(
- context: Context,
- attrs: AttributeSet
-) : View(context, attrs) {
-
- override fun onAttachedToWindow() {
- super.onAttachedToWindow()
- if (isInEditMode){
- return
- }
- setOnApplyWindowInsetsListener { _, insets ->
- val height = insets?.systemWindowInsetTop ?: 0
- setHeight(height)
- insets
- }
- }
-
- private fun setHeight(px: Int) {
- val params = layoutParams ?: return
- params.height = px
- layoutParams = params
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main_content.xml b/app/src/main/res/layout/activity_main_content.xml
index 66c852744..b3e78f41e 100644
--- a/app/src/main/res/layout/activity_main_content.xml
+++ b/app/src/main/res/layout/activity_main_content.xml
@@ -1,71 +1,79 @@
-
-
-
-
+ android:background="?colorSurface"
+ android:orientation="vertical">
-
-
+ android:elevation="0dp"
+ tools:ignore="UnusedAttribute">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+ android:layout_height="match_parent"
+ app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_banner_home.xml b/app/src/main/res/layout/fragment_banner_home.xml
index 250d99db1..5d571b410 100644
--- a/app/src/main/res/layout/fragment_banner_home.xml
+++ b/app/src/main/res/layout/fragment_banner_home.xml
@@ -17,7 +17,6 @@
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/toolbar_height"
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior">
-
-