From 9002b165b7e058c2a5f68fe6f05201ab9ad25db7 Mon Sep 17 00:00:00 2001 From: h4h13 Date: Thu, 16 May 2019 03:08:57 +0530 Subject: [PATCH] Folder screen have main menuu access --- .../retromusic/activities/MainActivity.kt | 14 +-- .../retromusic/activities/UserInfoActivity.kt | 10 +- .../dialogs/OptionsSheetDialogFragment.kt | 5 +- .../mainactivity/folders/FoldersFragment.java | 89 ++++++++++++++++-- app/src/main/res/drawable/black_overlay.xml | 5 - app/src/main/res/drawable/bottom_corners.xml | 7 -- app/src/main/res/drawable/flat_shadow.png | Bin 423 -> 0 bytes .../drawable/navigation_item_background.xml | 18 ++++ ...bg_fab.xml => navigation_item_checked.xml} | 7 +- app/src/main/res/drawable/toggle_album.xml | 2 +- app/src/main/res/layout/fragment_folder.xml | 9 ++ .../main/res/layout/fragment_main_options.xml | 10 ++ app/src/main/res/values/ids.xml | 1 + 13 files changed, 144 insertions(+), 33 deletions(-) delete mode 100644 app/src/main/res/drawable/black_overlay.xml delete mode 100644 app/src/main/res/drawable/bottom_corners.xml delete mode 100644 app/src/main/res/drawable/flat_shadow.png create mode 100644 app/src/main/res/drawable/navigation_item_background.xml rename app/src/main/res/drawable/{bg_fab.xml => navigation_item_checked.xml} (81%) diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt index 43d52d0f..07d306db 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt @@ -12,6 +12,10 @@ import android.view.ViewGroup import androidx.core.app.ActivityCompat import androidx.fragment.app.Fragment import code.name.monkey.retromusic.R +import code.name.monkey.retromusic.activities.base.AbsSlidingMusicPanelActivity +import code.name.monkey.retromusic.fragments.mainactivity.LibraryFragment +import code.name.monkey.retromusic.fragments.mainactivity.folders.FoldersFragment +import code.name.monkey.retromusic.fragments.mainactivity.home.BannerHomeFragment import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.helper.SearchQueryHelper import code.name.monkey.retromusic.interfaces.MainActivityFragmentCallbacks @@ -19,9 +23,6 @@ import code.name.monkey.retromusic.loaders.AlbumLoader import code.name.monkey.retromusic.loaders.ArtistLoader import code.name.monkey.retromusic.loaders.PlaylistSongsLoader import code.name.monkey.retromusic.service.MusicService -import code.name.monkey.retromusic.activities.base.AbsSlidingMusicPanelActivity -import code.name.monkey.retromusic.fragments.mainactivity.LibraryFragment -import code.name.monkey.retromusic.fragments.mainactivity.home.BannerHomeFragment import code.name.monkey.retromusic.util.NavigationUtil import code.name.monkey.retromusic.util.PreferenceUtil import io.reactivex.disposables.CompositeDisposable @@ -66,10 +67,8 @@ class MainActivity : AbsSlidingMusicPanelActivity(), SharedPreferences.OnSharedP true } - //setUpDrawerLayout() - if (savedInstanceState == null) { - selectedFragment(PreferenceUtil.getInstance().lastPage); + selectedFragment(PreferenceUtil.getInstance().lastPage) } else { restoreCurrentFragment(); } @@ -272,13 +271,14 @@ class MainActivity : AbsSlidingMusicPanelActivity(), SharedPreferences.OnSharedP }*/ } - private fun selectedFragment(itemId: Int) { + fun selectedFragment(itemId: Int) { when (itemId) { R.id.action_album, R.id.action_artist, R.id.action_playlist, R.id.action_song -> setCurrentFragment(LibraryFragment.newInstance(itemId), false) R.id.action_home -> setCurrentFragment(BannerHomeFragment.newInstance(), false) + R.id.action_folder -> setCurrentFragment(FoldersFragment.newInstance(this), false) else -> { setCurrentFragment(BannerHomeFragment.newInstance(), false) } diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/UserInfoActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/UserInfoActivity.kt index d3ab30e1..a2c02c4d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/UserInfoActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/UserInfoActivity.kt @@ -14,7 +14,10 @@ import android.view.MenuItem import android.widget.Toast import androidx.core.content.FileProvider import code.name.monkey.appthemehelper.ThemeStore -import code.name.monkey.appthemehelper.util.* +import code.name.monkey.appthemehelper.util.ColorUtil +import code.name.monkey.appthemehelper.util.MaterialUtil +import code.name.monkey.appthemehelper.util.MaterialValueHelper +import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper import code.name.monkey.retromusic.App import code.name.monkey.retromusic.Constants.USER_BANNER import code.name.monkey.retromusic.Constants.USER_PROFILE @@ -24,6 +27,7 @@ import code.name.monkey.retromusic.util.Compressor import code.name.monkey.retromusic.util.ImageUtil.getResizedBitmap import code.name.monkey.retromusic.util.PreferenceUtil import com.afollestad.materialdialogs.MaterialDialog +import com.afollestad.materialdialogs.bottomsheets.BottomSheet import com.afollestad.materialdialogs.list.listItems import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.CompositeDisposable @@ -60,7 +64,7 @@ class UserInfoActivity : AbsBaseActivity() { loadBannerFromStorage(PreferenceUtil.getInstance().bannerImage) } userImage.setOnClickListener { - MaterialDialog(this).show { + MaterialDialog(this, BottomSheet()).show { title(text = getString(R.string.set_photo)) listItems(items = listOf(getString(R.string.new_profile_photo), getString(R.string.remove_profile_photo))) { _, position, _ -> when (position) { @@ -117,7 +121,7 @@ class UserInfoActivity : AbsBaseActivity() { } private fun showBannerOptions() { - MaterialDialog(this).show { + MaterialDialog(this, BottomSheet()).show { title(R.string.select_banner_photo) listItems(items = listOf(getString(R.string.new_banner_photo), getString(R.string.remove_banner_photo))) { _, position, _ -> diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/OptionsSheetDialogFragment.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/OptionsSheetDialogFragment.kt index 0d66413a..f36117b3 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/OptionsSheetDialogFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/OptionsSheetDialogFragment.kt @@ -28,7 +28,6 @@ import code.name.monkey.retromusic.Constants.USER_PROFILE import code.name.monkey.retromusic.R import code.name.monkey.retromusic.activities.MainActivity import code.name.monkey.retromusic.activities.bugreport.BugReportActivity -import code.name.monkey.retromusic.fragments.mainactivity.folders.FoldersFragment import code.name.monkey.retromusic.util.Compressor import code.name.monkey.retromusic.util.NavigationUtil import code.name.monkey.retromusic.util.PreferenceUtil @@ -81,6 +80,7 @@ class OptionsSheetDialogFragment : RoundedBottomSheetDialogFragment(), View.OnCl actionSettings.setOnClickListener(this) actionSleepTimer.setOnClickListener(this) + actionLibrary.setOnClickListener(this) userInfoContainer.setOnClickListener(this) actionEqualizer.setOnClickListener(this) actionFolders.setOnClickListener(this) @@ -100,7 +100,8 @@ class OptionsSheetDialogFragment : RoundedBottomSheetDialogFragment(), View.OnCl override fun onClick(view: View) { val mainActivity = activity as MainActivity? ?: return when (view.id) { - R.id.actionFolders -> mainActivity.setCurrentFragment(FoldersFragment.newInstance(context), true) + R.id.actionFolders -> mainActivity.selectedFragment(R.id.action_folder) + R.id.actionLibrary -> mainActivity.selectedFragment(PreferenceUtil.getInstance().lastPage) R.id.actionSettings -> NavigationUtil.goToSettings(mainActivity) R.id.actionSleepTimer -> if (fragmentManager != null) { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/folders/FoldersFragment.java b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/folders/FoldersFragment.java index 942dbb6c..c2e741f5 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/folders/FoldersFragment.java +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/folders/FoldersFragment.java @@ -2,6 +2,7 @@ package code.name.monkey.retromusic.fragments.mainactivity.folders; import android.app.Dialog; import android.content.Context; +import android.graphics.drawable.Drawable; import android.media.MediaScannerConnection; import android.os.Bundle; import android.os.Environment; @@ -13,6 +14,7 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.webkit.MimeTypeMap; +import android.widget.ImageView; import android.widget.PopupMenu; import android.widget.ProgressBar; import android.widget.TextView; @@ -29,6 +31,10 @@ import androidx.recyclerview.widget.RecyclerView; import com.afollestad.materialcab.MaterialCab; import com.afollestad.materialdialogs.MaterialDialog; import com.afollestad.materialdialogs.bottomsheets.BottomSheet; +import com.bumptech.glide.request.Request; +import com.bumptech.glide.request.target.SizeReadyCallback; +import com.bumptech.glide.request.target.Target; +import com.bumptech.glide.request.transition.Transition; import com.google.android.material.appbar.AppBarLayout; import com.google.android.material.snackbar.Snackbar; import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView; @@ -53,6 +59,7 @@ import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper; import code.name.monkey.retromusic.R; import code.name.monkey.retromusic.adapter.SongFileAdapter; import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment; +import code.name.monkey.retromusic.glide.GlideApp; import code.name.monkey.retromusic.helper.MusicPlayerRemote; import code.name.monkey.retromusic.helper.menu.SongMenuHelper; import code.name.monkey.retromusic.helper.menu.SongsMenuHelper; @@ -69,6 +76,8 @@ import code.name.monkey.retromusic.util.RetroColorUtil; import code.name.monkey.retromusic.util.ViewUtil; import code.name.monkey.retromusic.views.BreadCrumbLayout; +import static code.name.monkey.retromusic.Constants.USER_PROFILE; + public class FoldersFragment extends AbsMainActivityFragment implements MainActivityFragmentCallbacks, CabHolder, BreadCrumbLayout.SelectionCallback, SongFileAdapter.Callbacks, @@ -94,6 +103,8 @@ public class FoldersFragment extends AbsMainActivityFragment implements private AppBarLayout appBarLayout; + private ImageView userImage; + private FastScrollRecyclerView recyclerView; private Comparator fileComparator = (lhs, rhs) -> { @@ -149,8 +160,76 @@ public class FoldersFragment extends AbsMainActivityFragment implements } } + private void loadImageFromStorage() { + GlideApp.with(getMainActivity()) + .asDrawable() + .placeholder(R.drawable.ic_person_flat) + .fallback(R.drawable.ic_person_flat) + .load(new File(PreferenceUtil.getInstance().getProfileImage(), USER_PROFILE)) + .into(new Target() { + @Override + public void onLoadStarted(@Nullable Drawable placeholder) { + userImage.setImageDrawable(placeholder); + } + + @Override + public void onLoadFailed(@Nullable Drawable errorDrawable) { + userImage.setImageDrawable(errorDrawable); + } + + @Override + public void onResourceReady(@NonNull Drawable resource, @Nullable Transition transition) { + userImage.setImageDrawable(resource); + } + + @Override + public void onLoadCleared(@Nullable Drawable placeholder) { + + } + + @Override + public void getSize(@NonNull SizeReadyCallback cb) { + cb.onSizeReady(32, 32); + } + + @Override + public void removeCallback(@NonNull SizeReadyCallback cb) { + + } + + @Nullable + @Override + public Request getRequest() { + return null; + } + + @Override + public void setRequest(@Nullable Request request) { + + } + + @Override + public void onStart() { + + } + + @Override + public void onStop() { + + } + + @Override + public void onDestroy() { + + } + }); + } + + private void initViews(View view) { coordinatorLayout = view.findViewById(R.id.coordinatorLayout); + userImage = view.findViewById(R.id.userImage); + userImage.setOnClickListener(v -> showMainMenu()); recyclerView = view.findViewById(R.id.recyclerView); appBarLayout = view.findViewById(R.id.appBarLayout); breadCrumbs = view.findViewById(R.id.breadCrumbs); @@ -209,8 +288,10 @@ public class FoldersFragment extends AbsMainActivityFragment implements } } + @NonNull @Override - public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_folder, container, false); initViews(view); @@ -224,18 +305,14 @@ public class FoldersFragment extends AbsMainActivityFragment implements setUpBreadCrumbs(); setUpRecyclerView(); setUpAdapter(); - + loadImageFromStorage(); } private void setUpAppbarColor() { title.setTextColor(ThemeStore.Companion.textColorPrimary(getContext())); - //noinspection ConstantConditions int primaryColor = ThemeStore.Companion.primaryColor(getContext()); - toolbar.setNavigationIcon(R.drawable.ic_keyboard_backspace_black_24dp); - //noinspection ConstantConditions - getActivity().setTitle(null); getMainActivity().setSupportActionBar(toolbar); TintHelper.setTintAuto(container, primaryColor, true); diff --git a/app/src/main/res/drawable/black_overlay.xml b/app/src/main/res/drawable/black_overlay.xml deleted file mode 100644 index 46e84cfe..00000000 --- a/app/src/main/res/drawable/black_overlay.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/bottom_corners.xml b/app/src/main/res/drawable/bottom_corners.xml deleted file mode 100644 index 19432e34..00000000 --- a/app/src/main/res/drawable/bottom_corners.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/flat_shadow.png b/app/src/main/res/drawable/flat_shadow.png deleted file mode 100644 index 1f8a177364092eaff30ce1133d56402a954f22c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 423 zcmV;Y0a*TtP)Px$VM# zcfqL5)^Lg7VWeQ7%LjsWT~?lEauxqs0BRR~Y9bC+Cklhs+V>ylwaY>1qehx^9VY_N zoqRMlTG{BR_}%^QZN!`8x_b=|G}VcB4t~8l8op5v=-s6Br$>fHo&W+5 + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_fab.xml b/app/src/main/res/drawable/navigation_item_checked.xml similarity index 81% rename from app/src/main/res/drawable/bg_fab.xml rename to app/src/main/res/drawable/navigation_item_checked.xml index 43331b4e..8efba42f 100644 --- a/app/src/main/res/drawable/bg_fab.xml +++ b/app/src/main/res/drawable/navigation_item_checked.xml @@ -11,7 +11,10 @@ ~ without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ~ See the GNU General Public License for more details. --> + - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/toggle_album.xml b/app/src/main/res/drawable/toggle_album.xml index b3b79144..71a54f73 100644 --- a/app/src/main/res/drawable/toggle_album.xml +++ b/app/src/main/res/drawable/toggle_album.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_folder.xml b/app/src/main/res/layout/fragment_folder.xml index 627f8c65..f65b8fc0 100644 --- a/app/src/main/res/layout/fragment_folder.xml +++ b/app/src/main/res/layout/fragment_folder.xml @@ -42,6 +42,15 @@ app:layout_collapseMode="pin" tools:ignore="UnusedAttribute"> + + + + + \ No newline at end of file