Fix loading home scections multiple times
This commit is contained in:
parent
b1c0f70f61
commit
3a7d3bfcfe
11 changed files with 59 additions and 32 deletions
|
@ -18,7 +18,6 @@ import code.name.monkey.retromusic.mvp.presenter.HomePresenter
|
|||
import code.name.monkey.retromusic.mvp.presenter.HomePresenter.HomePresenterImpl
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import javax.inject.Singleton
|
||||
|
||||
/**
|
||||
* Created by hemanths on 2019-09-04.
|
||||
|
@ -27,7 +26,6 @@ import javax.inject.Singleton
|
|||
class HomeModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun providesHomePresenter(presenter: HomePresenterImpl): HomePresenter {
|
||||
return presenter
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ import android.app.Dialog
|
|||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.activities.MainActivity
|
||||
|
@ -78,6 +79,15 @@ class OptionsSheetDialogFragment : DialogFragment(), View.OnClickListener {
|
|||
return materialDialog
|
||||
}
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
dialog?.window?.let {
|
||||
(requireActivity() as MainActivity).setLightNavigationBar(true)
|
||||
}
|
||||
|
||||
return super.onCreateView(inflater, container, savedInstanceState)
|
||||
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
private const val WHICH_ONE = "which_one"
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package code.name.monkey.retromusic.fragments.mainactivity.folders;
|
||||
|
||||
import android.app.ActivityOptions;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.media.MediaScannerConnection;
|
||||
|
@ -26,6 +27,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||
|
||||
import com.afollestad.materialcab.MaterialCab;
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
import com.google.android.material.card.MaterialCardView;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.google.android.material.snackbar.Snackbar;
|
||||
import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView;
|
||||
|
@ -62,6 +64,7 @@ import code.name.monkey.retromusic.misc.UpdateToastMediaScannerCompletionListene
|
|||
import code.name.monkey.retromusic.misc.WrappedAsyncTaskLoader;
|
||||
import code.name.monkey.retromusic.model.Song;
|
||||
import code.name.monkey.retromusic.util.FileUtil;
|
||||
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.ViewUtil;
|
||||
|
@ -84,6 +87,8 @@ public class FoldersFragment extends AbsMainActivityFragment implements
|
|||
|
||||
private View coordinatorLayout, container, empty;
|
||||
|
||||
private MaterialCardView toolbarContainer;
|
||||
|
||||
private Toolbar toolbar;
|
||||
|
||||
private BreadCrumbLayout breadCrumbs;
|
||||
|
@ -238,6 +243,10 @@ public class FoldersFragment extends AbsMainActivityFragment implements
|
|||
breadCrumbs.setDeactivatedContentColor(ToolbarContentTintHelper.toolbarSubtitleColor(requireActivity(),
|
||||
ColorUtil.INSTANCE.darkenColor(primaryColor)));
|
||||
appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) -> getMainActivity().setLightStatusbar(!ATHUtil.INSTANCE.isWindowBackgroundDark(getContext())));
|
||||
toolbar.setOnClickListener(v -> {
|
||||
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(getMainActivity(), toolbarContainer, getString(R.string.transition_toolbar));
|
||||
NavigationUtil.goToSearch(getMainActivity(), options);
|
||||
});
|
||||
}
|
||||
|
||||
private void setUpBreadCrumbs() {
|
||||
|
|
|
@ -43,17 +43,21 @@ import kotlinx.android.synthetic.main.home_content.*
|
|||
import java.io.File
|
||||
import java.util.*
|
||||
import javax.inject.Inject
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallbacks, HomeView {
|
||||
private lateinit var homeAdapter: HomeAdapter
|
||||
|
||||
@Inject
|
||||
lateinit var homePresenter: HomePresenter
|
||||
|
||||
private var disposable: CompositeDisposable = CompositeDisposable()
|
||||
private lateinit var toolbar: Toolbar
|
||||
|
||||
override fun sections(sections: ArrayList<Home>) {
|
||||
val finalList = sections.sortedWith(compareBy { it.priority })
|
||||
homeAdapter.swapData(finalList)
|
||||
recyclerView.apply {
|
||||
layoutManager = LinearLayoutManager(mainActivity)
|
||||
adapter = homeAdapter
|
||||
}
|
||||
|
||||
|
||||
if (sections.isEmpty()) {
|
||||
showEmptyView()
|
||||
} else {
|
||||
|
@ -61,11 +65,6 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
|
|||
}
|
||||
}
|
||||
|
||||
@Inject
|
||||
lateinit var homePresenter: HomePresenter
|
||||
|
||||
private var disposable: CompositeDisposable = CompositeDisposable()
|
||||
private lateinit var toolbar: Toolbar
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, viewGroup: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
return inflater.inflate(if (PreferenceUtil.getInstance(requireContext()).isHomeBanner) R.layout.fragment_banner_home else R.layout.fragment_home, viewGroup, false)
|
||||
|
@ -102,7 +101,6 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
|
|||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
App.musicComponent.inject(this)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -136,8 +134,6 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
|
|||
contentContainer.setBackgroundColor(ThemeStore.primaryColor(requireContext()))
|
||||
|
||||
setupToolbar()
|
||||
homeAdapter = HomeAdapter(mainActivity, ArrayList(), displayMetrics)
|
||||
|
||||
checkPadding()
|
||||
|
||||
userImage.setOnClickListener {
|
||||
|
@ -145,8 +141,16 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
|
|||
}
|
||||
titleWelcome.setTextColor(ThemeStore.textColorPrimary(requireContext()))
|
||||
titleWelcome.text = String.format("%s", PreferenceUtil.getInstance(requireContext()).userName)
|
||||
|
||||
homePresenter.attachView(this)
|
||||
homePresenter.loadSections()
|
||||
|
||||
homeAdapter = HomeAdapter(mainActivity, ArrayList(), displayMetrics)
|
||||
|
||||
recyclerView.apply {
|
||||
layoutManager = LinearLayoutManager(mainActivity)
|
||||
adapter = homeAdapter
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkPadding() {
|
||||
|
@ -210,7 +214,6 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
|
|||
checkPadding()
|
||||
}
|
||||
|
||||
private lateinit var homeAdapter: HomeAdapter
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||
super.onCreateOptionsMenu(menu, inflater)
|
||||
|
|
|
@ -45,7 +45,7 @@ interface HomePresenter : Presenter<HomeView> {
|
|||
private val repository: Repository
|
||||
) : PresenterImpl<HomeView>(), HomePresenter {
|
||||
|
||||
val hashSet: HashSet<Home> = HashSet()
|
||||
private val hashSet: HashSet<Home> = HashSet()
|
||||
|
||||
override fun loadSections() {
|
||||
loadRecentArtists()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue