From b52d5936e871cf2f9f1b53dbb84cda918483215f Mon Sep 17 00:00:00 2001 From: h4h13 Date: Sun, 19 Apr 2020 02:18:34 +0530 Subject: [PATCH] WIP --- .../monkey/retromusic/adapter/HomeAdapter.kt | 64 ++++++--- .../adapter/SmartPlaylistAdapter.kt | 34 +++++ .../mainactivity/BannerHomeFragment.kt | 126 +---------------- .../mainactivity/FoldersFragment.java | 127 +++--------------- .../retromusic/util/PreferenceUtil.java | 2 +- .../main/res/layout/activity_main_content.xml | 35 ++--- app/src/main/res/layout/fragment_home.xml | 118 ++++++++-------- app/src/main/res/layout/home_content.xml | 2 +- app/src/main/res/layout/status_bar.xml | 1 - 9 files changed, 187 insertions(+), 322 deletions(-) create mode 100644 app/src/main/java/code/name/monkey/retromusic/adapter/SmartPlaylistAdapter.kt diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt index c186a14b7..c601f65c5 100644 --- a/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/HomeAdapter.kt @@ -34,20 +34,36 @@ class HomeAdapter( } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { - val layout = LayoutInflater.from(activity) - .inflate(R.layout.section_recycler_view, parent, false) + println("onCreateViewHolder: $viewType") return when (viewType) { - RECENT_ARTISTS, TOP_ARTISTS -> ArtistViewHolder(layout) - PLAYLISTS -> PlaylistViewHolder(layout) - else -> { - AlbumViewHolder( - LayoutInflater.from(activity).inflate( - R.layout.metal_section_recycler_view, - parent, - false - ) + RECENT_ARTISTS, TOP_ARTISTS -> ArtistViewHolder( + LayoutInflater.from(activity).inflate( + R.layout.section_recycler_view, + parent, + false ) - } + ) + PLAYLISTS -> PlaylistViewHolder( + LayoutInflater.from(activity).inflate( + R.layout.section_recycler_view, + parent, + false + ) + ) + /*TOP_ALBUMS, RECENT_ALBUMS -> AlbumViewHolder( + LayoutInflater.from(activity).inflate( + R.layout.metal_section_recycler_view, + parent, + false + ) + )*/ + else -> AlbumViewHolder( + LayoutInflater.from(activity).inflate( + R.layout.metal_section_recycler_view, + parent, + false + ) + ) } } @@ -63,13 +79,17 @@ class HomeAdapter( } RECENT_ARTISTS -> { val viewHolder = holder as ArtistViewHolder - viewHolder.bindView(list[position].arrayList.toArtists(), R.string.recent_artists) + viewHolder.bindView( + list[position].arrayList.toArtists(), + R.string.recent_artists + ) } TOP_ARTISTS -> { val viewHolder = holder as ArtistViewHolder viewHolder.bindView(list[position].arrayList.toArtists(), R.string.top_artists) } PLAYLISTS -> { + val viewHolder = holder as PlaylistViewHolder viewHolder.bindView(list[position].arrayList.toPlaylist(), R.string.favorites) } @@ -91,14 +111,18 @@ class HomeAdapter( @Retention(AnnotationRetention.SOURCE) annotation class HomeSection - const val RECENT_ALBUMS = 3 - const val TOP_ALBUMS = 1 - const val RECENT_ARTISTS = 2 - const val TOP_ARTISTS = 0 - const val PLAYLISTS = 4 + const val RECENT_ALBUMS = 4 + const val TOP_ALBUMS = 2 + const val RECENT_ARTISTS = 3 + const val TOP_ARTISTS = 1 + const val PLAYLISTS = 5 } - private inner class AlbumViewHolder(view: View) : AbsHomeViewItem(view) { + inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + + } + + inner class AlbumViewHolder(view: View) : AbsHomeViewItem(view) { fun bindView(list: ArrayList, titleRes: Int) { if (list.isNotEmpty()) { recyclerView.apply { @@ -130,7 +154,7 @@ class HomeAdapter( } } - private inner class PlaylistViewHolder(view: View) : AbsHomeViewItem(view) { + inner class PlaylistViewHolder(view: View) : AbsHomeViewItem(view) { fun bindView(arrayList: ArrayList, titleRes: Int) { if (arrayList.isNotEmpty()) { val songs = PlaylistSongsLoader.getPlaylistSongList(activity, arrayList[0]) diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/SmartPlaylistAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/SmartPlaylistAdapter.kt new file mode 100644 index 000000000..bc6e09a70 --- /dev/null +++ b/app/src/main/java/code/name/monkey/retromusic/adapter/SmartPlaylistAdapter.kt @@ -0,0 +1,34 @@ +package code.name.monkey.retromusic.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import code.name.monkey.retromusic.R + +class SmartPlaylistAdapter : RecyclerView.Adapter() { + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ): ViewHolder { + return ViewHolder( + LayoutInflater.from(parent.context).inflate( + R.layout.abs_playlists, + parent, + false + ) + ); + } + + override fun getItemCount(): Int { + return 1 + } + + override fun onBindViewHolder(holder: ViewHolder, position: Int) { + + } + + inner class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + + } +} \ No newline at end of file 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 8c4faf0b0..2b021b299 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 @@ -14,39 +14,24 @@ package code.name.monkey.retromusic.fragments.mainactivity -import android.app.ActivityOptions import android.os.Bundle import android.util.DisplayMetrics import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.MergeAdapter import code.name.monkey.retromusic.App -import code.name.monkey.retromusic.Constants -import code.name.monkey.retromusic.Constants.USER_BANNER import code.name.monkey.retromusic.R import code.name.monkey.retromusic.adapter.HomeAdapter +import code.name.monkey.retromusic.adapter.SmartPlaylistAdapter import code.name.monkey.retromusic.extensions.show import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment -import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.interfaces.MainActivityFragmentCallbacks -import code.name.monkey.retromusic.loaders.SongLoader import code.name.monkey.retromusic.model.Home -import code.name.monkey.retromusic.model.smartplaylist.HistoryPlaylist -import code.name.monkey.retromusic.model.smartplaylist.LastAddedPlaylist -import code.name.monkey.retromusic.model.smartplaylist.MyTopTracksPlaylist import code.name.monkey.retromusic.mvp.presenter.HomePresenter import code.name.monkey.retromusic.mvp.presenter.HomeView -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.* -import java.io.File -import java.util.* import javax.inject.Inject class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallbacks, HomeView { @@ -65,27 +50,12 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba savedInstanceState: Bundle? ): View? { return inflater.inflate( - if (PreferenceUtil.getInstance(requireContext()).isHomeBanner) R.layout.fragment_banner_home else R.layout.fragment_home, + R.layout.fragment_home, viewGroup, false ) } - private fun loadImageFromStorage() { - Glide.with(requireContext()) - .load( - File( - PreferenceUtil.getInstance(requireContext()).profileImage, - Constants.USER_PROFILE - ) - ) - .asBitmap() - .diskCacheStrategy(DiskCacheStrategy.NONE) - .skipMemoryCache(true) - .placeholder(R.drawable.ic_person_flat) - .error(R.drawable.ic_person_flat) - .into(userImage) - } private val displayMetrics: DisplayMetrics get() { @@ -99,51 +69,13 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba super.onViewCreated(view, savedInstanceState) setStatusBarColorAuto(view) - bannerImage?.setOnClickListener { - val options = ActivityOptions.makeSceneTransitionAnimation( - mainActivity, - userImage, - getString(R.string.transition_user_image) - ) - NavigationUtil.goToUserInfo(requireActivity(), options) - } - - lastAdded.setOnClickListener { - NavigationUtil.goToPlaylistNew(requireActivity(), LastAddedPlaylist(requireActivity())) - } - - topPlayed.setOnClickListener { - NavigationUtil.goToPlaylistNew( - requireActivity(), - MyTopTracksPlaylist(requireActivity()) - ) - } - - actionShuffle.setOnClickListener { - MusicPlayerRemote.openAndShuffleQueue(SongLoader.getAllSongs(requireActivity()), true) - } - - history.setOnClickListener { - NavigationUtil.goToPlaylistNew(requireActivity(), HistoryPlaylist(requireActivity())) - } - - userImage?.setOnClickListener { - val options = ActivityOptions.makeSceneTransitionAnimation( - mainActivity, - userImage, - getString(R.string.transition_user_image) - ) - NavigationUtil.goToUserInfo(requireActivity(), options) - } - titleWelcome?.text = - String.format("%s", PreferenceUtil.getInstance(requireContext()).userName) - App.musicComponent.inject(this) homeAdapter = HomeAdapter(mainActivity, displayMetrics) + val smartPlaylistAdapter: SmartPlaylistAdapter = SmartPlaylistAdapter() recyclerView.apply { layoutManager = OverScrollLinearLayoutManager(mainActivity) - adapter = homeAdapter + adapter = MergeAdapter(smartPlaylistAdapter, homeAdapter) } homePresenter.attachView(this) homePresenter.loadSections() @@ -153,11 +85,6 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba return false } - override fun onResume() { - super.onResume() - getTimeOfTheDay() - } - override fun onDestroyView() { super.onDestroyView() homePresenter.detachView() @@ -167,49 +94,6 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba emptyContainer.show() } - private fun getTimeOfTheDay() { - val c = Calendar.getInstance() - val timeOfDay = c.get(Calendar.HOUR_OF_DAY) - var images = arrayOf() - when (timeOfDay) { - in 0..5 -> images = resources.getStringArray(R.array.night) - in 6..11 -> images = resources.getStringArray(R.array.morning) - in 12..15 -> images = resources.getStringArray(R.array.after_noon) - in 16..19 -> images = resources.getStringArray(R.array.evening) - in 20..23 -> images = resources.getStringArray(R.array.night) - } - val day = images[Random().nextInt(images.size)] - loadTimeImage(day) - } - - private fun loadTimeImage(day: String) { - bannerImage?.let { - val request = Glide.with(requireContext()) - if (PreferenceUtil.getInstance(requireContext()).bannerImage.isEmpty()) { - request.load(day) - .diskCacheStrategy(DiskCacheStrategy.NONE) - .skipMemoryCache(true) - .placeholder(R.drawable.material_design_default) - .error(R.drawable.material_design_default) - .into(it) - } else { - request.load( - File( - PreferenceUtil.getInstance(requireContext()).bannerImage, - USER_BANNER - ) - ) - .asBitmap() - .diskCacheStrategy(DiskCacheStrategy.NONE) - .skipMemoryCache(true) - .placeholder(R.drawable.material_design_default) - .error(R.drawable.material_design_default) - .into(it) - } - } - loadImageFromStorage() - } - companion object { const val TAG: String = "BannerHomeFragment" 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..1c2fdb689 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 @@ -24,7 +24,6 @@ import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.view.ViewGroup.MarginLayoutParams; import android.webkit.MimeTypeMap; import android.widget.PopupMenu; import android.widget.TextView; @@ -34,7 +33,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.loader.app.LoaderManager; import androidx.loader.content.Loader; -import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.afollestad.materialcab.MaterialCab; @@ -50,7 +48,6 @@ import java.util.Collections; import java.util.Comparator; import java.util.LinkedList; import java.util.List; -import java.util.Objects; import code.name.monkey.appthemehelper.ThemeStore; import code.name.monkey.appthemehelper.util.ATHUtil; @@ -67,20 +64,16 @@ import code.name.monkey.retromusic.misc.DialogAsyncTask; import code.name.monkey.retromusic.misc.UpdateToastMediaScannerCompletionListener; import code.name.monkey.retromusic.misc.WrappedAsyncTaskLoader; import code.name.monkey.retromusic.model.Song; -import code.name.monkey.retromusic.util.DensityUtil; import code.name.monkey.retromusic.util.FileUtil; import code.name.monkey.retromusic.util.PreferenceUtil; 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 - MainActivityFragmentCallbacks, - CabHolder, BreadCrumbLayout.SelectionCallback, SongFileAdapter.Callbacks, - LoaderManager.LoaderCallbacks> { + MainActivityFragmentCallbacks, CabHolder, SongFileAdapter.Callbacks, LoaderManager.LoaderCallbacks> { public static final String TAG = FoldersFragment.class.getSimpleName(); public static final FileFilter AUDIO_FILE_FILTER = file -> !file.isHidden() && (file.isDirectory() || @@ -88,11 +81,11 @@ public class FoldersFragment extends AbsMainActivityFragment implements FileUtil.fileIsMimeType(file, "application/opus", MimeTypeMap.getSingleton()) || FileUtil.fileIsMimeType(file, "application/ogg", MimeTypeMap.getSingleton())); private static final String PATH = "path"; - private static final String CRUMBS = "crumbs"; private static final int LOADER_ID = LoaderIds.Companion.getFOLDERS_FRAGMENT(); private SongFileAdapter adapter; - private BreadCrumbLayout breadCrumbs; + private MaterialCab cab; + private File file; private View coordinatorLayout, empty; private TextView emojiText; private Comparator fileComparator = (lhs, rhs) -> { @@ -111,7 +104,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements } public static File getDefaultStartDirectory() { - File musicDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC); + File musicDir = Environment.getExternalStorageDirectory(); File startFolder; if (musicDir.exists() && musicDir.isDirectory()) { startFolder = musicDir; @@ -160,8 +153,6 @@ public class FoldersFragment extends AbsMainActivityFragment implements @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { setStatusBarColorAuto(view); - setUpAppbarColor(); - setUpBreadCrumbs(); setUpRecyclerView(); setUpAdapter(); } @@ -172,39 +163,19 @@ public class FoldersFragment extends AbsMainActivityFragment implements if (savedInstanceState == null) { //noinspection ConstantConditions - setCrumb(new BreadCrumbLayout.Crumb( - FileUtil.safeGetCanonicalFile((File) getArguments().getSerializable(PATH))), true); + setCrumb(FileUtil.safeGetCanonicalFile((File) getArguments().getSerializable(PATH))); } else { - breadCrumbs.restoreFromStateWrapper(savedInstanceState.getParcelable(CRUMBS)); + getLoaderManager().initLoader(LOADER_ID, null, this); } } - @Override - public void onPause() { - super.onPause(); - saveScrollPosition(); - } - - @Override - public void onSaveInstanceState(@NonNull Bundle outState) { - super.onSaveInstanceState(outState); - if (breadCrumbs != null) { - outState.putParcelable(CRUMBS, breadCrumbs.getStateWrapper()); - } - - } - @Override public boolean handleBackPress() { if (cab != null && cab.isActive()) { cab.finish(); return true; } - if (breadCrumbs != null && breadCrumbs.popHistory()) { - setCrumb(breadCrumbs.lastHistory(), false); - return true; - } return false; } @@ -214,10 +185,6 @@ public class FoldersFragment extends AbsMainActivityFragment implements return new AsyncFileLoader(this); } - @Override - public void onCrumbSelection(BreadCrumbLayout.Crumb crumb, int index) { - setCrumb(crumb, true); - } @Override public void onFileMenuClicked(final File file, View view) { @@ -287,7 +254,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements public void onFileSelected(File file) { file = tryGetCanonicalFile(file); // important as we compare the path value later if (file.isDirectory()) { - setCrumb(new BreadCrumbLayout.Crumb(file), true); + setCrumb(file); } else { FileFilter fileFilter = pathname -> !pathname.isDirectory() && AUDIO_FILE_FILTER .accept(pathname); @@ -341,34 +308,21 @@ public class FoldersFragment extends AbsMainActivityFragment implements public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.action_go_to_start_directory: - setCrumb(new BreadCrumbLayout.Crumb( - tryGetCanonicalFile(PreferenceUtil.getInstance(requireContext()).getStartDirectory())), true); + setCrumb(tryGetCanonicalFile(PreferenceUtil.getInstance(requireContext()).getStartDirectory())); return true; case R.id.action_scan: - BreadCrumbLayout.Crumb crumb = getActiveCrumb(); - if (crumb != null) { + + /* if (crumb != null) { //noinspection Convert2MethodRef new ListPathsAsyncTask(getActivity(), paths -> scanPaths(paths)) .execute(new ListPathsAsyncTask.LoadingInfo(crumb.getFile(), AUDIO_FILE_FILTER)); - } + }*/ return true; } return super.onOptionsItemSelected(item); } - @Override - public void onQueueChanged() { - super.onQueueChanged(); - checkForPadding(); - } - - @Override - public void onServiceConnected() { - super.onServiceConnected(); - checkForPadding(); - } - @NonNull @Override public MaterialCab openCab(int menuRes, MaterialCab.Callback callback) { @@ -384,12 +338,6 @@ public class FoldersFragment extends AbsMainActivityFragment implements return cab; } - private void checkForPadding() { - final int count = adapter.getItemCount(); - final MarginLayoutParams params = (MarginLayoutParams) coordinatorLayout.getLayoutParams(); - params.bottomMargin = count > 0 && !MusicPlayerRemote.getPlayingQueue().isEmpty() ? DensityUtil - .dip2px(requireContext(), 104f) : DensityUtil.dip2px(requireContext(), 54f); - } private void checkIsEmpty() { emojiText.setText(getEmojiByUnicode(0x1F631)); @@ -398,11 +346,6 @@ public class FoldersFragment extends AbsMainActivityFragment implements } } - @Nullable - private BreadCrumbLayout.Crumb getActiveCrumb() { - return breadCrumbs != null && breadCrumbs.size() > 0 ? breadCrumbs - .getCrumb(breadCrumbs.getActiveIndex()) : null; - } private String getEmojiByUnicode(int unicode) { return new String(Character.toChars(unicode)); @@ -415,18 +358,11 @@ public class FoldersFragment extends AbsMainActivityFragment implements private void initViews(View view) { coordinatorLayout = view.findViewById(R.id.coordinatorLayout); recyclerView = view.findViewById(R.id.recyclerView); - breadCrumbs = view.findViewById(R.id.breadCrumbs); + empty = view.findViewById(android.R.id.empty); emojiText = view.findViewById(R.id.emptyEmoji); } - private void saveScrollPosition() { - BreadCrumbLayout.Crumb crumb = getActiveCrumb(); - if (crumb != null) { - crumb.setScrollPosition( - ((LinearLayoutManager) recyclerView.getLayoutManager()).findFirstVisibleItemPosition()); - } - } private void scanPaths(@Nullable String[] toBeScanned) { if (getActivity() == null) { @@ -440,15 +376,12 @@ public class FoldersFragment extends AbsMainActivityFragment implements } } - private void setCrumb(BreadCrumbLayout.Crumb crumb, boolean addToHistory) { - if (crumb == null) { - return; - } - saveScrollPosition(); - breadCrumbs.setActiveOrAdd(crumb, false); - if (addToHistory) { - breadCrumbs.addHistory(crumb); - } + public File getFile() { + return file; + } + + private void setCrumb(File file) { + this.file = file; getLoaderManager().restartLoader(LOADER_ID, null, this); } @@ -460,23 +393,12 @@ public class FoldersFragment extends AbsMainActivityFragment implements public void onChanged() { super.onChanged(); checkIsEmpty(); - checkForPadding(); } }); recyclerView.setAdapter(adapter); checkIsEmpty(); } - private void setUpAppbarColor() { - breadCrumbs.setActivatedContentColor( - ATHUtil.INSTANCE.resolveColor(requireContext(), android.R.attr.textColorPrimary)); - breadCrumbs.setDeactivatedContentColor( - ATHUtil.INSTANCE.resolveColor(requireContext(), android.R.attr.textColorSecondary)); - } - - private void setUpBreadCrumbs() { - breadCrumbs.setCallback(this); - } private void setUpRecyclerView() { recyclerView.setLayoutManager(new OverScrollLinearLayoutManager(getActivity())); @@ -493,11 +415,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements private void updateAdapter(@NonNull List files) { adapter.swapDataSet(files); - BreadCrumbLayout.Crumb crumb = getActiveCrumb(); - if (crumb != null && recyclerView != null) { - ((LinearLayoutManager) recyclerView.getLayoutManager()) - .scrollToPositionWithOffset(crumb.getScrollPosition(), 0); - } + } public static class ListPathsAsyncTask extends @@ -596,7 +514,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements private WeakReference fragmentWeakReference; AsyncFileLoader(FoldersFragment foldersFragment) { - super(Objects.requireNonNull(foldersFragment.getActivity())); + super(foldersFragment.requireActivity()); fragmentWeakReference = new WeakReference<>(foldersFragment); } @@ -605,10 +523,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements FoldersFragment foldersFragment = fragmentWeakReference.get(); File directory = null; if (foldersFragment != null) { - BreadCrumbLayout.Crumb crumb = foldersFragment.getActiveCrumb(); - if (crumb != null) { - directory = crumb.getFile(); - } + directory = foldersFragment.getFile(); } if (directory != null) { List files = FileUtil.listFiles(directory, AUDIO_FILE_FILTER); diff --git a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.java b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.java index 924e96995..545aa5c30 100644 --- a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.java +++ b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.java @@ -185,7 +185,7 @@ public final class PreferenceUtil { private static final String AUTO_DOWNLOAD_IMAGES_POLICY = "auto_download_images_policy"; - private static final String START_DIRECTORY = "start_directory"; + private static final String START_DIRECTORY = "start_directory_"; private static final String SYNCHRONIZED_LYRICS_SHOW = "synchronized_lyrics_show"; diff --git a/app/src/main/res/layout/activity_main_content.xml b/app/src/main/res/layout/activity_main_content.xml index 66c852744..4d6481b95 100644 --- a/app/src/main/res/layout/activity_main_content.xml +++ b/app/src/main/res/layout/activity_main_content.xml @@ -6,27 +6,27 @@ android:layout_height="match_parent" android:background="?colorSurface"> - - + + + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/status_bar" /> + android:textAppearance="@style/TextViewHeadline6" + android:textColor="?attr/colorControlNormal" /> - + android:layout_height="wrap_content" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:layout_height="24dp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index 5affb87d8..d4d8b31e8 100755 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -11,64 +11,72 @@ ~ without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ~ See the GNU General Public License for more details. --> - + android:layout_height="match_parent"> - + + + + +--> + + + + android:layout_height="match_parent" + android:nestedScrollingEnabled="false" + android:overScrollMode="never" + app:layoutManager="androidx.recyclerview.widget.GridLayoutManager" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:spanCount="3" + tools:itemCount="3" + tools:listitem="@layout/item_album_card" /> - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/home_content.xml b/app/src/main/res/layout/home_content.xml index f97294c12..dcc1a7eab 100644 --- a/app/src/main/res/layout/home_content.xml +++ b/app/src/main/res/layout/home_content.xml @@ -22,7 +22,7 @@ android:focusableInTouchMode="true" android:orientation="vertical"> - + \ No newline at end of file