diff --git a/.gitignore b/.gitignore index 6c004886..15679ab9 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,5 @@ app/normal/release/ /models/ app/font/ -app/src/debug/ -app/src/font/ +app/src/debug/ /app/nofont/ diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png index af146924..991844b5 100644 Binary files a/app/src/main/ic_launcher-playstore.png and b/app/src/main/ic_launcher-playstore.png differ 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 d12cbb11..34d39e44 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 @@ -229,18 +229,14 @@ public class MainActivity extends AbsSlidingMusicPanelActivity if (fragment instanceof AbsLibraryPagerRecyclerViewCustomGridSizeFragment) { AbsLibraryPagerRecyclerViewCustomGridSizeFragment currentFragment = (AbsLibraryPagerRecyclerViewCustomGridSizeFragment) fragment; - if (currentFragment instanceof SongsFragment) { - menu.removeItem(R.id.action_grid_size); - menu.removeItem(R.id.action_layout_type); - } else { - MenuItem gridSizeItem = menu.findItem(R.id.action_grid_size); - if (RetroUtil.isLandscape()) { - gridSizeItem.setTitle(R.string.action_grid_size_land); - } - setUpGridSizeMenu(currentFragment, gridSizeItem.getSubMenu()); - MenuItem layoutItem = menu.findItem(R.id.action_layout_type); - setupLayoutMenu(currentFragment, layoutItem.getSubMenu()); + + MenuItem gridSizeItem = menu.findItem(R.id.action_grid_size); + if (RetroUtil.isLandscape()) { + gridSizeItem.setTitle(R.string.action_grid_size_land); } + setUpGridSizeMenu(currentFragment, gridSizeItem.getSubMenu()); + MenuItem layoutItem = menu.findItem(R.id.action_layout_type); + setupLayoutMenu(currentFragment, layoutItem.getSubMenu()); setUpSortOrderMenu(currentFragment, menu.findItem(R.id.action_sort_order).getSubMenu()); } else { menu.removeItem(R.id.action_layout_type); diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/DrawableExt.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/DrawableExt.kt index 8e5bcd94..d25742af 100644 --- a/app/src/main/java/code/name/monkey/retromusic/extensions/DrawableExt.kt +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/DrawableExt.kt @@ -17,10 +17,16 @@ package code.name.monkey.retromusic.extensions import android.content.Context import android.graphics.Bitmap import android.graphics.BitmapFactory +import android.graphics.Canvas +import android.graphics.drawable.AdaptiveIconDrawable import android.graphics.drawable.BitmapDrawable import android.graphics.drawable.Drawable +import android.os.Build import androidx.annotation.DimenRes import androidx.annotation.DrawableRes +import androidx.core.content.ContextCompat +import code.name.monkey.retromusic.R +import code.name.monkey.retromusic.util.DensityUtil fun Context.scaledDrawableResources(@DrawableRes id: Int, @DimenRes width: Int, @DimenRes height: Int): Drawable { val w = resources.getDimension(width).toInt() @@ -34,3 +40,20 @@ fun Context.scaledDrawable(@DrawableRes id: Int, width: Int, height: Int): Drawa return BitmapDrawable(resources, bmpScaled) } +fun Drawable.getBitmapDrawable(): Bitmap { + val bmp = Bitmap.createBitmap(bounds.width(), bounds.height(), Bitmap.Config.ARGB_8888) + val canvas = Canvas(bmp) + draw(canvas) + return bmp +} + +fun getAdaptiveIconDrawable(context: Context): Drawable { + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + AdaptiveIconDrawable( + ContextCompat.getDrawable(context, R.drawable.ic_launcher_background), + ContextCompat.getDrawable(context, R.drawable.ic_launcher_background) + ) + } else { + ContextCompat.getDrawable(context, R.drawable.color_circle_gradient)!! + } +} \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.kt index a936c4a3..452b90f4 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsLibraryPagerRecyclerViewCustomGridSizeFragment.kt @@ -29,7 +29,6 @@ abstract class AbsLibraryPagerRecyclerViewCustomGridSizeFragment(), + AbsLibraryPagerRecyclerViewCustomGridSizeFragment(), SongView, MainActivityFragmentCallbacks { @Inject @@ -37,8 +37,19 @@ class SongsFragment : songPresenter.attachView(this) } - override fun createLayoutManager(): LinearLayoutManager { - return LinearLayoutManager(requireActivity()) + override fun createLayoutManager(): GridLayoutManager { + println("createLayoutManager: ${getGridSize()}") + return GridLayoutManager(requireActivity(), getGridSize()).apply { + spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() { + override fun getSpanSize(position: Int): Int { + return if (position == 0) { + getGridSize() + } else { + 1 + } + } + } + } } override fun createAdapter(): SongAdapter { @@ -46,7 +57,7 @@ class SongsFragment : return ShuffleButtonSongAdapter( mainActivity, dataSet, - R.layout.item_list, + itemLayoutRes(), mainActivity ) } @@ -60,7 +71,7 @@ class SongsFragment : } override fun loadGridSize(): Int { - return PreferenceUtil.getInstance(requireContext()).getSongGridSize(requireActivity()) + return PreferenceUtil.getInstance(requireContext()).getSongGridSize(requireContext()) } override fun saveGridSize(gridColumns: Int) { @@ -68,7 +79,7 @@ class SongsFragment : } override fun loadGridSizeLand(): Int { - return PreferenceUtil.getInstance(requireContext()).getSongGridSizeLand(requireActivity()) + return PreferenceUtil.getInstance(requireContext()).getSongGridSizeLand(requireContext()) } override fun saveGridSizeLand(gridColumns: Int) { @@ -125,10 +136,11 @@ class SongsFragment : @LayoutRes override fun loadLayoutRes(): Int { - return R.layout.item_list + return PreferenceUtil.getInstance(requireContext()).songGridStyle } override fun saveLayoutRes(@LayoutRes layoutRes: Int) { + PreferenceUtil.getInstance(requireContext()).songGridStyle = layoutRes } override fun handleBackPress(): Boolean { 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 65ab3e55..5ed9fb34 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 @@ -396,11 +396,9 @@ public final class PreferenceUtil { .getInt(ALBUM_GRID_SIZE_LAND, context.getResources().getInteger(R.integer.default_grid_columns_land)); } + @LayoutRes public int getAlbumGridStyle() { - if (mPreferences.contains(ALBUM_GRID_STYLE)) { - Log.i(TAG, "getAlbumGridStyle: " + mPreferences.getInt(ALBUM_GRID_STYLE, -10)); - } return mPreferences.getInt(ALBUM_GRID_STYLE, R.layout.item_grid); } diff --git a/app/src/main/java/code/name/monkey/retromusic/views/ColorIconsImageView.kt b/app/src/main/java/code/name/monkey/retromusic/views/ColorIconsImageView.kt index 44eb966d..3651ab75 100644 --- a/app/src/main/java/code/name/monkey/retromusic/views/ColorIconsImageView.kt +++ b/app/src/main/java/code/name/monkey/retromusic/views/ColorIconsImageView.kt @@ -20,8 +20,8 @@ import android.graphics.Color import android.util.AttributeSet import androidx.appcompat.widget.AppCompatImageView import code.name.monkey.appthemehelper.util.ATHUtil -import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.retromusic.R +import code.name.monkey.retromusic.extensions.getAdaptiveIconDrawable import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.RetroColorUtil @@ -44,15 +44,16 @@ class ColorIconsImageView @JvmOverloads constructor( } fun setIconBackgroundColor(color: Int) { - setBackgroundResource(R.drawable.color_circle_gradient) + background = getAdaptiveIconDrawable(context) if (ATHUtil.isWindowBackgroundDark(context) && PreferenceUtil.getInstance(context).desaturatedColor()) { val desaturatedColor = RetroColorUtil.desaturateColor(color, 0.4f) backgroundTintList = ColorStateList.valueOf(desaturatedColor) imageTintList = ColorStateList.valueOf(ATHUtil.resolveColor(context, R.attr.colorSurface)) } else { - backgroundTintList = ColorStateList.valueOf(ColorUtil.adjustAlpha(color, 0.22f)) - imageTintList = ColorStateList.valueOf(ColorUtil.withAlpha(color, 0.75f)) + backgroundTintList = ColorStateList.valueOf(color) + imageTintList = + ColorStateList.valueOf(ATHUtil.resolveColor(context, R.attr.colorSurface)) } requestLayout() invalidate() diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 00000000..33f5953d --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 00000000..b97f2835 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,10 @@ + + + + diff --git a/app/src/main/res/drawable/ic_retro_music_icon.xml b/app/src/main/res/drawable/ic_retro_music_icon.xml new file mode 100644 index 00000000..059ba1c2 --- /dev/null +++ b/app/src/main/res/drawable/ic_retro_music_icon.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/abs_playlists.xml b/app/src/main/res/layout/abs_playlists.xml index 1107b4cd..e970c7d7 100644 --- a/app/src/main/res/layout/abs_playlists.xml +++ b/app/src/main/res/layout/abs_playlists.xml @@ -20,10 +20,10 @@ diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index c9ad5f98..bbd3e021 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index c9ad5f98..bbd3e021 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png index be1d6a64..2cbb8842 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png index be1d6a64..2cbb8842 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png index 6c186bd4..7f7b6d05 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png index 6c186bd4..7f7b6d05 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 76da6270..6e0f844e 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png index 76da6270..6e0f844e 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index 8eab4099..5b423cb7 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png index 8eab4099..5b423cb7 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 413e33c2..544a56bf 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png index 413e33c2..544a56bf 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index e0fc10fc..e53bd7d7 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -52,4 +52,6 @@ 72dp 6dp 3dp + 48dp + 12dp