diff --git a/app/build.gradle b/app/build.gradle
index 47aa4f0c9..288fd8501 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -32,8 +32,8 @@ android {
vectorDrawables.useSupportLibrary = true
applicationId "code.name.monkey.retromusic"
- versionCode 230
- versionName '3.1.250'
+ versionCode 305
+ versionName '3.1.300'
multiDexEnabled true
diff --git a/app/src/main/assets/retro-changelog.html b/app/src/main/assets/retro-changelog.html
index 91f09828a..adef1126b 100644
--- a/app/src/main/assets/retro-changelog.html
+++ b/app/src/main/assets/retro-changelog.html
@@ -1 +1 @@
-
v3.1.240
- Fix Search not showing from home screen
- Fix Volume controls color issue
- Fix Seek bar alignment
- Added tiny theme
- Improved full theme appearances
- Now playing theme preview updated
- Fix composer error
v3.1.200
- Added composer sort and editing
- Fix Crash in Album tag editor while selecting options
- Added Filter song length
- Added Favourites playlist icon will be accent color
- Added Colorful settings icons
- Added Corners for dialog
v3.0.570
- Fix Album/Artist square image
- Fix Delete dialog text format
- Fix Profile picture not showing after coming back from folders
- Fix Play button color i Simple and Plain themes
- Fix Sleep timer dialog crashing
- Fix Share song dialog title and text
If you see entire app white or dark or black select same theme in settings to fix
FAQ's
*If you face any UI related issues you clear app data and cache, if its
not working try to
uninstall and install again.
\ No newline at end of file
+
v3.1.300
- Added new slide theme
- Fix Home screen sections loading slow
v3.1.240
- Fix Search not showing from home screen
- Fix Volume controls color issue
- Fix Seek bar alignment
- Added tiny theme
- Improved full theme appearances
- Now playing theme preview updated
- Fix composer error
v3.1.200
- Added composer sort and editing
- Fix Crash in Album tag editor while selecting options
- Added Filter song length
- Added Favourites playlist icon will be accent color
- Added Colorful settings icons
- Added Corners for dialog
v3.0.570
- Fix Album/Artist square image
- Fix Delete dialog text format
- Fix Profile picture not showing after coming back from folders
- Fix Play button color i Simple and Plain themes
- Fix Sleep timer dialog crashing
- Fix Share song dialog title and text
If you see entire app white or dark or black select same theme in settings to fix
FAQ's
*If you face any UI related issues you clear app data and cache, if its
not working try to
uninstall and install again.
\ No newline at end of file
diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/CreatePlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/CreatePlaylistDialog.kt
index 53553fe16..9b59f6611 100644
--- a/app/src/main/java/code/name/monkey/retromusic/dialogs/CreatePlaylistDialog.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/CreatePlaylistDialog.kt
@@ -47,7 +47,7 @@ class CreatePlaylistDialog : RoundedBottomSheetDialogFragment() {
MaterialUtil.setTint(actionCreate, true)
MaterialUtil.setTint(actionCancel, false)
- MaterialUtil.setTint(actionNewPlaylistContainer, true)
+ MaterialUtil.setTint(actionNewPlaylistContainer, false)
actionNewPlaylist.setHintTextColor(ColorStateList.valueOf(accentColor))
actionNewPlaylist.setTextColor(ThemeStore.textColorPrimary(context!!))
diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveFromPlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveFromPlaylistDialog.kt
index 42b0ba2d9..6bef42fc5 100644
--- a/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveFromPlaylistDialog.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/RemoveFromPlaylistDialog.kt
@@ -32,7 +32,6 @@ import kotlinx.android.synthetic.main.dialog_remove_from_playlist.*
class RemoveFromPlaylistDialog : RoundedBottomSheetDialogFragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
-
return inflater.inflate(R.layout.dialog_remove_from_playlist, container, false)
}
@@ -53,8 +52,10 @@ class RemoveFromPlaylistDialog : RoundedBottomSheetDialogFragment() {
title = R.string.remove_song_from_playlist_title
content = Html.fromHtml(getString(R.string.remove_song_x_from_playlist, songs[0].title))
}
+ bannerTitle.setTextColor(ThemeStore.textColorPrimary(context!!))
+ bannerTitle.text = content;
actionDelete.apply {
- text = content
+ setText(title)
setTextColor(ThemeStore.textColorSecondary(context))
setOnClickListener {
val playlistSongs = ArrayList()
@@ -64,10 +65,7 @@ class RemoveFromPlaylistDialog : RoundedBottomSheetDialogFragment() {
}
MaterialUtil.setTint(this)
}
- bannerTitle.apply {
- setText(title)
- setTextColor(ThemeStore.textColorPrimary(context))
- }
+
actionCancel.apply {
setTextColor(ThemeStore.textColorSecondary(context))
diff --git a/app/src/main/java/code/name/monkey/retromusic/model/Home.kt b/app/src/main/java/code/name/monkey/retromusic/model/Home.kt
index 48c12a947..3fb151c45 100644
--- a/app/src/main/java/code/name/monkey/retromusic/model/Home.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/model/Home.kt
@@ -22,7 +22,8 @@ import code.name.monkey.retromusic.ui.adapter.HomeAdapter.Companion.HomeSection
* Created by hemanths on 3/4/19
*/
-class Home(@StringRes val title: Int,
+class Home(val priority: Int,
+ @StringRes val title: Int,
@StringRes val subTitle: Int,
val arrayList: ArrayList<*>,
@HomeSection
diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/HomePresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/HomePresenter.kt
index ede8d3980..a2c924eed 100644
--- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/HomePresenter.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/HomePresenter.kt
@@ -15,7 +15,7 @@
package code.name.monkey.retromusic.mvp.presenter
import code.name.monkey.retromusic.R
-import code.name.monkey.retromusic.model.*
+import code.name.monkey.retromusic.model.Home
import code.name.monkey.retromusic.mvp.Presenter
import code.name.monkey.retromusic.mvp.contract.HomeContract
import code.name.monkey.retromusic.ui.adapter.HomeAdapter.Companion.GENRES
@@ -26,42 +26,25 @@ import code.name.monkey.retromusic.ui.adapter.HomeAdapter.Companion.SUGGESTIONS
import code.name.monkey.retromusic.ui.adapter.HomeAdapter.Companion.TOP_ALBUMS
import code.name.monkey.retromusic.ui.adapter.HomeAdapter.Companion.TOP_ARTISTS
import code.name.monkey.retromusic.util.PreferenceUtil
-import io.reactivex.Observable
+import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.disposables.Disposable
-import io.reactivex.functions.Function7
operator fun CompositeDisposable.plusAssign(disposable: Disposable) {
add(disposable)
}
class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), HomeContract.HomePresenter {
+ private val hashSet: HashSet = HashSet()
+
override fun homeSections() {
- disposable += Observable.combineLatest(repository.suggestionSongs, repository.recentAlbums,
- repository.topAlbums, repository.recentArtists, repository.topArtists,
- repository.allGenres, repository.favoritePlaylist,
- Function7, ArrayList, ArrayList, ArrayList,
- ArrayList, ArrayList, ArrayList, List>
- { suggestions: ArrayList, recentAlbums: ArrayList,
- topAlbums: ArrayList, recentArtists: ArrayList,
- topArtists: ArrayList, genres: ArrayList,
- favoritePlaylist: ArrayList ->
- val homes: ArrayList = ArrayList()
- if (suggestions.isNotEmpty()) homes.add(Home(R.string.suggestion_songs, 0, suggestions, SUGGESTIONS, R.drawable.ic_audiotrack_black_24dp))
- if (recentArtists.isNotEmpty()) homes.add(Home(R.string.recent_artists, 0, recentArtists, RECENT_ARTISTS, R.drawable.ic_artist_white_24dp))
- if (recentAlbums.isNotEmpty()) homes.add(Home(R.string.recent_albums, 0, recentAlbums, RECENT_ALBUMS, R.drawable.ic_album_white_24dp))
- if (topArtists.isNotEmpty()) homes.add(Home(R.string.top_artists, 0, topArtists, TOP_ARTISTS, R.drawable.ic_artist_white_24dp))
- if (topAlbums.isNotEmpty()) homes.add(Home(R.string.top_albums, 0, topAlbums, TOP_ALBUMS, R.drawable.ic_album_white_24dp))
- if (favoritePlaylist.isNotEmpty()) homes.add(Home(R.string.favorites, 0, favoritePlaylist, PLAYLISTS, R.drawable.ic_favorite_white_24dp))
- if (genres.isNotEmpty() && PreferenceUtil.getInstance().isGenreShown) homes.add(Home(R.string.genres, 0, genres, GENRES, R.drawable.ic_guitar_acoustic_white_24dp))
- homes
- }).subscribe({ homes ->
- if (homes.isNotEmpty()) {
- view.showData(homes as ArrayList)
- }
- }, {
- view.showEmpty()
- }, { })
+ loadSuggestions()
+ loadRecentArtists()
+ loadRecentAlbums()
+ loadTopArtists()
+ loadATopAlbums()
+ loadFavorite()
+ if (PreferenceUtil.getInstance().isGenreShown) loadGenre()
}
override fun subscribe() {
@@ -71,4 +54,81 @@ class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), Home
override fun unsubscribe() {
disposable.dispose()
}
+
+ private fun loadSuggestions() {
+ disposable += repository.suggestionSongs
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe({
+ if (it.isNotEmpty()) hashSet.add(Home(5, R.string.suggestion_songs, 0, it, SUGGESTIONS, R.drawable.ic_audiotrack_black_24dp))
+ view.showData(ArrayList(hashSet))
+ }, {
+ view.showEmpty()
+ })
+ }
+
+ private fun loadRecentArtists() {
+ disposable += repository.recentArtists
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe({
+ if (it.isNotEmpty()) hashSet.add(Home(0, R.string.recent_artists, 0, it, RECENT_ARTISTS, R.drawable.ic_artist_white_24dp))
+ view.showData(ArrayList(hashSet))
+ }, {
+ view.showEmpty()
+ })
+ }
+
+ private fun loadRecentAlbums() {
+ disposable += repository.recentAlbums
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe({
+ if (it.isNotEmpty()) hashSet.add(Home(1, R.string.recent_albums, 0, it, RECENT_ALBUMS, R.drawable.ic_album_white_24dp))
+ view.showData(ArrayList(hashSet))
+ }, {
+ view.showEmpty()
+ })
+ }
+
+ private fun loadATopAlbums() {
+ disposable += repository.topAlbums
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe({
+ if (it.isNotEmpty()) hashSet.add(Home(2, R.string.top_albums, 0, it, TOP_ALBUMS, R.drawable.ic_album_white_24dp))
+ view.showData(ArrayList(hashSet))
+ }, {
+ view.showEmpty()
+ })
+ }
+
+ private fun loadTopArtists() {
+ disposable += repository.topArtists
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe({
+ if (it.isNotEmpty()) hashSet.add(Home(3, R.string.top_artists, 0, it, TOP_ARTISTS, R.drawable.ic_artist_white_24dp))
+ view.showData(ArrayList(hashSet))
+ }, {
+ view.showEmpty()
+ })
+ }
+
+ private fun loadFavorite() {
+ disposable += repository.favoritePlaylist
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe({
+ if (it.isNotEmpty()) hashSet.add(Home(4, R.string.favorites, 0, it, PLAYLISTS, R.drawable.ic_favorite_white_24dp))
+ view.showData(ArrayList(hashSet))
+ }, {
+ view.showEmpty()
+ })
+ }
+
+ private fun loadGenre() {
+ disposable += repository.allGenres
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe({
+ if (it.isNotEmpty()) hashSet.add(Home(6, R.string.genres, 0, it, GENRES, R.drawable.ic_guitar_acoustic_white_24dp))
+ view.showData(ArrayList(hashSet))
+ }, {
+ view.showEmpty()
+ })
+ }
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/transform/RoundStackTransformer.java b/app/src/main/java/code/name/monkey/retromusic/transform/RoundStackTransformer.java
new file mode 100644
index 000000000..abeb39e16
--- /dev/null
+++ b/app/src/main/java/code/name/monkey/retromusic/transform/RoundStackTransformer.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2019 Hemanth Savarala.
+ *
+ * Licensed under the GNU General Public License v3
+ *
+ * This is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by
+ * the Free Software Foundation either version 3 of the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ */
+
+package code.name.monkey.retromusic.transform;
+
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.viewpager.widget.ViewPager;
+
+/**
+ * Created by hemanths on 3/9/19
+ */
+public class RoundStackTransformer implements ViewPager.PageTransformer {
+ @Override
+ public void transformPage(@NonNull View page, float position) {
+
+ }
+}
diff --git a/app/src/main/java/code/name/monkey/retromusic/transform/StackPagerTransformer.kt b/app/src/main/java/code/name/monkey/retromusic/transform/StackPagerTransformer.kt
index 8a80393a6..8215c423a 100644
--- a/app/src/main/java/code/name/monkey/retromusic/transform/StackPagerTransformer.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/transform/StackPagerTransformer.kt
@@ -21,7 +21,12 @@ class StackPagerTransformer : ViewPager.PageTransformer {
override fun transformPage(view: View, position: Float) {
- if (position <= 0f) {
+
+ if (position < -1f) {
+ view.translationX = view.width * position
+ }
+
+ if (position < 0f) {
view.translationX = 0f
view.scaleX = 1f
view.scaleY = 1f
diff --git a/app/src/main/java/code/name/monkey/retromusic/transform/StackTransformer.kt b/app/src/main/java/code/name/monkey/retromusic/transform/VerticalStackTransformer.kt
similarity index 94%
rename from app/src/main/java/code/name/monkey/retromusic/transform/StackTransformer.kt
rename to app/src/main/java/code/name/monkey/retromusic/transform/VerticalStackTransformer.kt
index 6d374245c..b4b09f5be 100644
--- a/app/src/main/java/code/name/monkey/retromusic/transform/StackTransformer.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/transform/VerticalStackTransformer.kt
@@ -17,7 +17,7 @@ package code.name.monkey.retromusic.transform
import android.view.View
import androidx.viewpager.widget.ViewPager
-class StackTransformer : ViewPager.PageTransformer {
+class VerticalStackTransformer : ViewPager.PageTransformer {
override fun transformPage(page: View, position: Float) {
if (position >= 0) {
page.scaleX = (0.9f - 0.05f * position)
diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/activities/AlbumDetailsActivity.kt b/app/src/main/java/code/name/monkey/retromusic/ui/activities/AlbumDetailsActivity.kt
index 0309e9235..afc8f2d83 100644
--- a/app/src/main/java/code/name/monkey/retromusic/ui/activities/AlbumDetailsActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/ui/activities/AlbumDetailsActivity.kt
@@ -109,7 +109,7 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsContrac
}
private fun setupRecyclerView() {
- simpleSongAdapter = SimpleSongAdapter(this, ArrayList(), R.layout.item_song)
+ simpleSongAdapter = SimpleSongAdapter(this, ArrayList(), R.layout.item_song,false)
recyclerView.apply {
layoutManager = LinearLayoutManager(this@AlbumDetailsActivity)
itemAnimator = DefaultItemAnimator()
diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/activities/ArtistDetailActivity.kt b/app/src/main/java/code/name/monkey/retromusic/ui/activities/ArtistDetailActivity.kt
index 11e91bb69..a8c2a457a 100755
--- a/app/src/main/java/code/name/monkey/retromusic/ui/activities/ArtistDetailActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/ui/activities/ArtistDetailActivity.kt
@@ -166,7 +166,7 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac
layoutManager = GridLayoutManager(this.context, 1, GridLayoutManager.HORIZONTAL, false)
adapter = albumAdapter
}
- songAdapter = SimpleSongAdapter(this, ArrayList(), R.layout.item_song)
+ songAdapter = SimpleSongAdapter(this, ArrayList(), R.layout.item_song, false)
recyclerView.apply {
itemAnimator = DefaultItemAnimator()
layoutManager = LinearLayoutManager(this.context)
diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/activities/PlayingQueueActivity.kt b/app/src/main/java/code/name/monkey/retromusic/ui/activities/PlayingQueueActivity.kt
index c4b66f962..7fbc75c72 100644
--- a/app/src/main/java/code/name/monkey/retromusic/ui/activities/PlayingQueueActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/ui/activities/PlayingQueueActivity.kt
@@ -146,7 +146,7 @@ class PlayingQueueActivity : AbsMusicServiceActivity() {
setSupportActionBar(toolbar)
title = null
toolbar.setNavigationOnClickListener { onBackPressed() }
- ToolbarContentTintHelper.colorBackButton(toolbar, ThemeStore.accentColor(this))
+ ToolbarContentTintHelper.colorBackButton(toolbar, ThemeStore.textColorSecondary(this))
clearQueue.setColor(ThemeStore.accentColor(this))
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/activities/WhatsNewActivity.java b/app/src/main/java/code/name/monkey/retromusic/ui/activities/WhatsNewActivity.java
index 00ba10ad7..f7f2081a9 100644
--- a/app/src/main/java/code/name/monkey/retromusic/ui/activities/WhatsNewActivity.java
+++ b/app/src/main/java/code/name/monkey/retromusic/ui/activities/WhatsNewActivity.java
@@ -15,6 +15,8 @@ import java.io.InputStreamReader;
import androidx.annotation.NonNull;
import androidx.appcompat.widget.Toolbar;
+import androidx.recyclerview.widget.LinearSmoothScroller;
+import androidx.recyclerview.widget.RecyclerView;
import code.name.monkey.appthemehelper.ThemeStore;
import code.name.monkey.appthemehelper.util.ATHUtil;
import code.name.monkey.appthemehelper.util.ColorUtil;
@@ -52,7 +54,7 @@ public class WhatsNewActivity extends AbsBaseActivity {
webView = findViewById(R.id.webView);
title = findViewById(R.id.bannerTitle);
toolbar = findViewById(R.id.toolbar);
- appBarLayout= findViewById(R.id.appBarLayout);
+ appBarLayout = findViewById(R.id.appBarLayout);
setStatusbarColorAuto();
@@ -65,7 +67,7 @@ public class WhatsNewActivity extends AbsBaseActivity {
setTitle(null);
toolbar.setNavigationOnClickListener(v -> onBackPressed());
title.setTextColor(ThemeStore.Companion.textColorPrimary(this));
-ToolbarContentTintHelper.colorBackButton(toolbar,ThemeStore.Companion.textColorSecondary(this));
+ ToolbarContentTintHelper.colorBackButton(toolbar, ThemeStore.Companion.textColorSecondary(this));
try {
// Load from phonograph-changelog.html in the assets folder
@@ -84,7 +86,7 @@ ToolbarContentTintHelper.colorBackButton(toolbar,ThemeStore.Companion.textColorS
.replace("{style-placeholder}",
String.format("body { background-color: %s; color: %s; }", backgroundColor, contentColor))
.replace("{link-color}", colorToHex(ThemeStore.Companion.accentColor(this)))
- .replace("{link-color-active}", colorToHex(ColorUtil.INSTANCE.lightenColor(ThemeStore.Companion.accentColor(this))))
+ .replace("{link-color-active}", colorToHex(ColorUtil.INSTANCE.lightenColor(ThemeStore.Companion.accentColor(this))))
, "text/html", "UTF-8");
} catch (Throwable e) {
webView.loadData("Unable to load
" + e.getLocalizedMessage() + "
", "text/html", "UTF-8");
diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/activities/base/AbsSlidingMusicPanelActivity.kt b/app/src/main/java/code/name/monkey/retromusic/ui/activities/base/AbsSlidingMusicPanelActivity.kt
index 351ba9d31..c104c7422 100644
--- a/app/src/main/java/code/name/monkey/retromusic/ui/activities/base/AbsSlidingMusicPanelActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/ui/activities/base/AbsSlidingMusicPanelActivity.kt
@@ -14,6 +14,7 @@ import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.ui.fragments.MiniPlayerFragment
import code.name.monkey.retromusic.ui.fragments.NowPlayingScreen
+import code.name.monkey.retromusic.ui.fragments.NowPlayingScreen.*
import code.name.monkey.retromusic.ui.fragments.base.AbsPlayerFragment
import code.name.monkey.retromusic.ui.fragments.player.adaptive.AdaptiveFragment
import code.name.monkey.retromusic.ui.fragments.player.blur.BlurPlayerFragment
@@ -23,11 +24,12 @@ import code.name.monkey.retromusic.ui.fragments.player.color.ColorFragment
import code.name.monkey.retromusic.ui.fragments.player.fit.FitFragment
import code.name.monkey.retromusic.ui.fragments.player.flat.FlatPlayerFragment
import code.name.monkey.retromusic.ui.fragments.player.full.FullPlayerFragment
-import code.name.monkey.retromusic.ui.fragments.player.tiny.TinyPlayerFragment
import code.name.monkey.retromusic.ui.fragments.player.material.MaterialFragment
import code.name.monkey.retromusic.ui.fragments.player.normal.PlayerFragment
import code.name.monkey.retromusic.ui.fragments.player.plain.PlainPlayerFragment
import code.name.monkey.retromusic.ui.fragments.player.simple.SimplePlayerFragment
+import code.name.monkey.retromusic.ui.fragments.player.slide.SlidePlayerFragment
+import code.name.monkey.retromusic.ui.fragments.player.tiny.TinyPlayerFragment
import code.name.monkey.retromusic.util.PreferenceUtil
import code.name.monkey.retromusic.views.BottomNavigationBarTinted
import com.sothree.slidinguppanel.SlidingUpPanelLayout
@@ -83,7 +85,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(), Sliding
}
fun setAntiDragView(antiDragView: View) {
- slidingLayout.setAntiDragView(antiDragView);
+ slidingLayout.setAntiDragView(antiDragView)
}
private fun collapsePanel() {
@@ -180,19 +182,20 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(), Sliding
currentNowPlayingScreen = PreferenceUtil.getInstance().nowPlayingScreen
val fragment: Fragment = when (currentNowPlayingScreen) {
- NowPlayingScreen.BLUR -> BlurPlayerFragment()
- NowPlayingScreen.ADAPTIVE -> AdaptiveFragment()
- NowPlayingScreen.NORMAL -> PlayerFragment()
- NowPlayingScreen.CARD -> CardFragment()
- NowPlayingScreen.BLUR_CARD -> CardBlurFragment()
- NowPlayingScreen.FIT -> FitFragment()
- NowPlayingScreen.FLAT -> FlatPlayerFragment()
- NowPlayingScreen.FULL -> FullPlayerFragment()
- NowPlayingScreen.PLAIN -> PlainPlayerFragment()
- NowPlayingScreen.SIMPLE -> SimplePlayerFragment()
- NowPlayingScreen.MATERIAL -> MaterialFragment()
- NowPlayingScreen.COLOR -> ColorFragment()
- NowPlayingScreen.TINY -> TinyPlayerFragment()
+ BLUR -> BlurPlayerFragment()
+ ADAPTIVE -> AdaptiveFragment()
+ NORMAL -> PlayerFragment()
+ CARD -> CardFragment()
+ BLUR_CARD -> CardBlurFragment()
+ FIT -> FitFragment()
+ FLAT -> FlatPlayerFragment()
+ FULL -> FullPlayerFragment()
+ PLAIN -> PlainPlayerFragment()
+ SIMPLE -> SimplePlayerFragment()
+ MATERIAL -> MaterialFragment()
+ COLOR -> ColorFragment()
+ TINY -> TinyPlayerFragment()
+ SLIDE -> SlidePlayerFragment()
else -> PlayerFragment()
} // must implement AbsPlayerFragment
supportFragmentManager.beginTransaction().replace(R.id.playerFragmentContainer, fragment).commit()
@@ -256,15 +259,15 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(), Sliding
val isColorLight = ColorUtil.isColorLight(paletteColor)
if (PreferenceUtil.getInstance().adaptiveColor &&
- (currentNowPlayingScreen == NowPlayingScreen.NORMAL || currentNowPlayingScreen == NowPlayingScreen.FLAT)) {
+ (currentNowPlayingScreen == NORMAL || currentNowPlayingScreen == FLAT)) {
super.setLightNavigationBar(true)
super.setLightStatusbar(isColorLight)
- } else if (currentNowPlayingScreen == NowPlayingScreen.FULL || currentNowPlayingScreen == NowPlayingScreen.CARD ||
- currentNowPlayingScreen == NowPlayingScreen.FIT || /*currentNowPlayingScreen == NowPlayingScreen.CLASSIC ||*/
- currentNowPlayingScreen == NowPlayingScreen.BLUR || currentNowPlayingScreen == NowPlayingScreen.BLUR_CARD) {
+ } else if (currentNowPlayingScreen == FULL || (currentNowPlayingScreen == SLIDE) || currentNowPlayingScreen == CARD ||
+ currentNowPlayingScreen == FIT || /*currentNowPlayingScreen == NowPlayingScreen.CLASSIC ||*/
+ currentNowPlayingScreen == BLUR || currentNowPlayingScreen == BLUR_CARD) {
super.setLightStatusbar(false)
super.setLightNavigationBar(true)
- } else if (currentNowPlayingScreen == NowPlayingScreen.COLOR) {
+ } else if (currentNowPlayingScreen == COLOR) {
super.setNavigationbarColor(paletteColor)
super.setLightNavigationBar(isColorLight)
super.setLightStatusbar(isColorLight)
@@ -303,6 +306,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(), Sliding
super.setTaskDescriptionColor(color)
}
}
+
}
/*import android.animation.ArgbEvaluator
import android.animation.ValueAnimator
diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/HomeAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/HomeAdapter.kt
index 8ccbec9d4..951e6477e 100644
--- a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/HomeAdapter.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/HomeAdapter.kt
@@ -31,7 +31,7 @@ import code.name.monkey.retromusic.views.MetalRecyclerViewPager
import com.google.android.material.floatingactionbutton.FloatingActionButton
-class HomeAdapter(private val activity: AppCompatActivity, private val homes: ArrayList, private val displayMetrics: DisplayMetrics) : RecyclerView.Adapter() {
+class HomeAdapter(private val activity: AppCompatActivity, private val homes: List, private val displayMetrics: DisplayMetrics) : RecyclerView.Adapter() {
override fun getItemViewType(position: Int): Int {
diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/SimpleSongAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/SimpleSongAdapter.kt
index 2d308ce65..7c2e680a6 100755
--- a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/SimpleSongAdapter.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/SimpleSongAdapter.kt
@@ -13,7 +13,8 @@ import java.util.*
class SimpleSongAdapter(context: AppCompatActivity,
songs: ArrayList,
- @LayoutRes i: Int) : SongAdapter(context, songs, i, false, null) {
+ @LayoutRes i: Int,
+ val useNumbers: Boolean) : SongAdapter(context, songs, i, false, null) {
private var textColor: Int = 0
@@ -36,7 +37,11 @@ class SimpleSongAdapter(context: AppCompatActivity,
val fixedTrackNumber = MusicUtil.getFixedTrackNumber(dataSet[position].trackNumber)
if (holder.imageText != null) {
- holder.imageText!!.text = if (fixedTrackNumber > 0) fixedTrackNumber.toString() else "-"
+ if (useNumbers) {
+ holder.imageText!!.text = (position + 1).toString()
+ } else {
+ holder.imageText!!.text = if (fixedTrackNumber > 0) fixedTrackNumber.toString() else "-"
+ }
holder.imageText!!.setTextColor(textColor)
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/SongAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/SongAdapter.kt
index 91dece637..6164bfd93 100644
--- a/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/SongAdapter.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/ui/adapter/song/SongAdapter.kt
@@ -38,7 +38,6 @@ open class SongAdapter @JvmOverloads constructor(protected val activity: AppComp
@param:LayoutRes protected var itemLayoutRes: Int, usePalette: Boolean, cabHolder: CabHolder?,
showSectionName: Boolean = true) : AbsMultiSelectAdapter(activity, cabHolder, R.menu.menu_media_selection), MaterialCab.Callback, FastScrollRecyclerView.SectionedAdapter {
var dataSet: ArrayList
- protected set
protected var usePalette = false
private var showSectionName = true
diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/NowPlayingScreen.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/NowPlayingScreen.kt
index f11decc58..f9fe46d5d 100644
--- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/NowPlayingScreen.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/NowPlayingScreen.kt
@@ -21,6 +21,7 @@ enum class NowPlayingScreen constructor(@param:StringRes @field:StringRes
NORMAL(R.string.normal, R.drawable.np_normal, 0),
PLAIN(R.string.plain, R.drawable.np_plain, 3),
TINY(R.string.tiny, R.drawable.np_tiny, 7),
- SIMPLE(R.string.simple, R.drawable.np_simple, 8)
+ SIMPLE(R.string.simple, R.drawable.np_simple, 8),
+ SLIDE(R.string.slide, R.drawable.np_slide, 13)
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/home/BannerHomeFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/home/BannerHomeFragment.kt
index 8583fc5d7..61a912c06 100644
--- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/home/BannerHomeFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/mainactivity/home/BannerHomeFragment.kt
@@ -211,8 +211,9 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
}
override fun showData(list: ArrayList) {
+ val finalList = list.sortedWith(compareBy { it.priority })
recyclerView.apply {
- val homeAdapter = HomeAdapter(mainActivity, list, displayMetrics)
+ val homeAdapter = HomeAdapter(mainActivity, finalList, displayMetrics)
layoutManager = LinearLayoutManager(mainActivity)
adapter = homeAdapter
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/card/CardPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/card/CardPlaybackControlsFragment.kt
index 0f1b4a80c..144e2a4e4 100644
--- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/card/CardPlaybackControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/card/CardPlaybackControlsFragment.kt
@@ -111,7 +111,7 @@ class CardPlaybackControlsFragment : AbsPlayerControlsFragment() {
}
override fun setDark(color: Int) {
- image!!.setColorFilter(color, PorterDuff.Mode.SRC_IN)
+
if (ColorUtil.isColorLight(ATHUtil.resolveColor(context, android.R.attr.windowBackground))) {
lastPlaybackControlsColor = MaterialValueHelper.getSecondaryTextColor(activity, true)
lastDisabledPlaybackControlsColor = MaterialValueHelper.getSecondaryDisabledTextColor(activity, true)
@@ -132,7 +132,7 @@ class CardPlaybackControlsFragment : AbsPlayerControlsFragment() {
} else {
ThemeStore.accentColor(context!!)
}
-
+ image.setColorFilter(colorFinal, PorterDuff.Mode.SRC_IN)
TintHelper.setTintAuto(playPauseButton, MaterialValueHelper.getPrimaryTextColor(context, ColorUtil.isColorLight(colorFinal)), false)
TintHelper.setTintAuto(playPauseButton, colorFinal, true)
diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/color/ColorFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/color/ColorFragment.kt
index aeb9f5bc8..cebed5141 100644
--- a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/color/ColorFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/color/ColorFragment.kt
@@ -305,12 +305,12 @@ class ColorFragment : AbsPlayerFragment() {
}
}
-private fun Palette.getContrastColor(background: Int): Int {
+fun Palette.getContrastColor(background: Int): Int {
return 0
}
-private fun Palette.getColor(): Int {
+fun Palette.getColor(): Int {
return when {
darkMutedSwatch != null -> darkMutedSwatch!!.rgb
mutedSwatch != null -> mutedSwatch!!.rgb
diff --git a/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/slide/SlidePlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/slide/SlidePlayerFragment.kt
new file mode 100644
index 000000000..0b1570bcf
--- /dev/null
+++ b/app/src/main/java/code/name/monkey/retromusic/ui/fragments/player/slide/SlidePlayerFragment.kt
@@ -0,0 +1,336 @@
+/*
+ * Copyright (c) 2019 Hemanth Savarala.
+ *
+ * Licensed under the GNU General Public License v3
+ *
+ * This is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by
+ * the Free Software Foundation either version 3 of the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ */
+
+package code.name.monkey.retromusic.ui.fragments.player.slide
+
+import android.animation.ObjectAnimator
+import android.graphics.Color
+import android.graphics.PorterDuff
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.view.animation.LinearInterpolator
+import android.widget.SeekBar
+import androidx.appcompat.app.AppCompatActivity
+import androidx.appcompat.widget.Toolbar
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.LinearSmoothScroller
+import androidx.recyclerview.widget.RecyclerView
+import code.name.monkey.appthemehelper.ThemeStore
+import code.name.monkey.appthemehelper.util.*
+import code.name.monkey.retromusic.R
+import code.name.monkey.retromusic.glide.GlideApp
+import code.name.monkey.retromusic.glide.RetroGlideExtension
+import code.name.monkey.retromusic.glide.RetroMusicColoredTarget
+import code.name.monkey.retromusic.helper.MusicPlayerRemote
+import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
+import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
+import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener
+import code.name.monkey.retromusic.model.Song
+import code.name.monkey.retromusic.service.MusicService
+import code.name.monkey.retromusic.ui.activities.base.AbsSlidingMusicPanelActivity
+import code.name.monkey.retromusic.ui.adapter.song.SimpleSongAdapter
+import code.name.monkey.retromusic.ui.fragments.VolumeFragment
+import code.name.monkey.retromusic.ui.fragments.base.AbsPlayerControlsFragment
+import code.name.monkey.retromusic.ui.fragments.base.AbsPlayerFragment
+import code.name.monkey.retromusic.util.MusicUtil
+import code.name.monkey.retromusic.util.PreferenceUtil
+import code.name.monkey.retromusic.util.ViewUtil
+import kotlinx.android.synthetic.main.fragment_slide_player.*
+
+/**
+ * Created by hemanths on 3/15/19
+ */
+class SlidePlayerFragment : AbsPlayerFragment(), MusicProgressViewUpdateHelper.Callback {
+ private var lastColor: Int = 0
+ override val paletteColor: Int
+ get() = lastColor
+
+ override fun playerToolbar(): Toolbar {
+ return playerToolbar
+ }
+
+ override fun onShow() {
+
+ }
+
+ override fun onHide() {
+
+ }
+
+ override fun onBackPressed(): Boolean {
+ return false
+ }
+
+ override fun toolbarIconColor(): Int {
+ return Color.WHITE
+ }
+
+ override fun onColorChanged(color: Int) {
+
+ }
+
+ override fun onFavoriteToggled() {
+ toggleFavorite(MusicPlayerRemote.currentSong)
+ }
+
+ override fun toggleFavorite(song: Song) {
+ super.toggleFavorite(song)
+ if (song.id == MusicPlayerRemote.currentSong.id) {
+ updateIsFavorite()
+ }
+ }
+
+ override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+ return inflater.inflate(R.layout.fragment_slide_player, container, false)
+ }
+
+ override fun onResume() {
+ super.onResume()
+ progressViewUpdateHelper.start()
+ }
+
+ override fun onPause() {
+ super.onPause()
+ progressViewUpdateHelper.stop()
+ }
+
+
+ override fun onPlayingMetaChanged() {
+ super.onPlayingMetaChanged()
+ updateSong()
+ updateIsFavorite()
+ }
+
+ override fun onQueueChanged() {
+ super.onQueueChanged()
+ updateQueue()
+ }
+
+ override fun onServiceConnected() {
+ updatePlayPauseDrawableState()
+ updateRepeatState()
+ updateShuffleState()
+ updateSong()
+ updateIsFavorite()
+ updateQueue()
+ }
+
+ private fun updateQueue() {
+ songAdapter.swapDataSet(MusicPlayerRemote.playingQueue)
+ }
+
+ private lateinit var volumeFragment: VolumeFragment
+
+
+ private fun updatePlayPauseDrawableState() {
+ if (MusicPlayerRemote.isPlaying) {
+ albumCoverContainer.cardElevation = 24.0f
+ playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
+ } else {
+ albumCoverContainer.cardElevation = 0.0f
+ playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ }
+ }
+
+ fun updateRepeatState() {
+ when (MusicPlayerRemote.repeatMode) {
+ MusicService.REPEAT_MODE_NONE -> {
+ repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setColorFilter(lastDisabledPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
+ }
+ MusicService.REPEAT_MODE_ALL -> {
+ repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
+ }
+ MusicService.REPEAT_MODE_THIS -> {
+ repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
+ }
+ }
+ }
+
+ fun updateShuffleState() {
+ when (MusicPlayerRemote.shuffleMode) {
+ MusicService.SHUFFLE_MODE_SHUFFLE -> shuffleButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
+ else -> shuffleButton.setColorFilter(lastDisabledPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
+ }
+ }
+
+
+ private fun updateSong() {
+ val song = MusicPlayerRemote.currentSong
+ title.text = song.title
+ text.text = song.artistName
+
+ GlideApp.with(activity!!).asBitmapPalette()
+ .load(RetroGlideExtension.getSongModel(song))
+ .songOptions(song)
+ .transition(RetroGlideExtension.getDefaultTransition())
+ .into(object : RetroMusicColoredTarget(playerImage) {
+ override fun onColorReady(color: Int) {
+ setColor(color)
+ }
+ })
+ }
+
+ private fun setColor(color: Int) {
+ lastColor = color
+ val colorBg = ATHUtil.resolveColor(context!!, android.R.attr.colorBackground)
+ if (ColorUtil.isColorLight(colorBg)) {
+ lastPlaybackControlsColor = MaterialValueHelper.getSecondaryTextColor(context!!, true)
+ lastDisabledPlaybackControlsColor = MaterialValueHelper.getSecondaryDisabledTextColor(context!!, true)
+ } else {
+ lastPlaybackControlsColor = MaterialValueHelper.getPrimaryTextColor(context!!, false)
+ lastDisabledPlaybackControlsColor = MaterialValueHelper.getPrimaryDisabledTextColor(context!!, false)
+ }
+
+ val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) {
+ color
+ } else {
+ ThemeStore.accentColor(context!!)
+ }
+
+
+ volumeFragment.setTintable(colorFinal)
+ text.setTextColor(colorFinal)
+ playerQueueSubHeader.setTextColor(colorFinal)
+ TintHelper.setTintAuto(playPauseButton, lastPlaybackControlsColor, false)
+ ViewUtil.setProgressDrawable(progressSlider, colorFinal)
+
+ updateRepeatState()
+ updateShuffleState()
+ updatePrevNextColor()
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ setUpMusicControllers()
+ setUpPlayerToolbar()
+ (activity as AbsSlidingMusicPanelActivity).setAntiDragView(recyclerView)
+ playerQueueSubHeader.setTextColor(ThemeStore.accentColor(context!!))
+ }
+
+ private fun setUpMusicControllers() {
+ setUpPlayPauseFab()
+ setUpPrevNext()
+ setUpRepeatButton()
+ setUpShuffleButton()
+ setUpProgressSlider()
+ setUpRecyclerView()
+ volumeFragment = childFragmentManager.findFragmentById(R.id.volumeFragment) as VolumeFragment
+ volumeFragmentToggle.visibility = if (PreferenceUtil.getInstance().volumeToggle) View.VISIBLE else View.GONE
+ }
+
+ private lateinit var songAdapter: SimpleSongAdapter
+
+ private fun setUpRecyclerView() {
+ songAdapter = SimpleSongAdapter(context = activity as AppCompatActivity,
+ songs = ArrayList(), i = R.layout.item_song, useNumbers = true)
+ recyclerView.apply {
+ adapter = songAdapter
+ layoutManager = LinearLayoutManager(context)
+ }
+ }
+
+ private fun setUpProgressSlider() {
+ progressSlider.setOnSeekBarChangeListener(object : SimpleOnSeekbarChangeListener() {
+ override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
+ if (fromUser) {
+ MusicPlayerRemote.seekTo(progress)
+ onUpdateProgressViews(MusicPlayerRemote.songProgressMillis, MusicPlayerRemote.songDurationMillis)
+ }
+ }
+ })
+ }
+
+ override fun onUpdateProgressViews(progress: Int, total: Int) {
+ progressSlider.max = total
+
+ val animator = ObjectAnimator.ofInt(progressSlider, "progress", progress)
+ animator.duration = AbsPlayerControlsFragment.SLIDER_ANIMATION_TIME
+ animator.interpolator = LinearInterpolator()
+ animator.start()
+
+ songTotalTime.text = MusicUtil.getReadableDurationString(total.toLong())
+ songCurrentProgress.text = MusicUtil.getReadableDurationString(progress.toLong())
+ }
+
+ private fun setUpPlayPauseFab() {
+ playPauseButton.setOnClickListener(PlayPauseButtonOnClickHandler())
+ }
+
+ private fun setUpRepeatButton() {
+ repeatButton.setOnClickListener { MusicPlayerRemote.cycleRepeatMode() }
+ }
+
+ private fun setUpShuffleButton() {
+ shuffleButton.setOnClickListener { MusicPlayerRemote.toggleShuffleMode() }
+ }
+
+ private fun setUpPrevNext() {
+ updatePrevNextColor()
+ nextButton.setOnClickListener { MusicPlayerRemote.playNextSong() }
+ previousButton.setOnClickListener { MusicPlayerRemote.back() }
+ }
+
+ private fun updatePrevNextColor() {
+ nextButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
+ previousButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
+ }
+
+ private var lastPlaybackControlsColor: Int = 0
+ private var lastDisabledPlaybackControlsColor: Int = 0
+ private lateinit var progressViewUpdateHelper: MusicProgressViewUpdateHelper
+
+ override fun onPlayStateChanged() {
+ updatePlayPauseDrawableState()
+ }
+
+ override fun onRepeatModeChanged() {
+ updateRepeatState()
+ }
+
+ override fun onShuffleModeChanged() {
+ updateShuffleState()
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ progressViewUpdateHelper = MusicProgressViewUpdateHelper(this)
+ }
+
+ private fun setUpPlayerToolbar() {
+ playerToolbar.inflateMenu(R.menu.menu_player)
+ playerToolbar.setNavigationOnClickListener { activity!!.onBackPressed() }
+ playerToolbar.setOnMenuItemClickListener(this)
+
+ ToolbarContentTintHelper.colorizeToolbar(playerToolbar, Color.WHITE, activity)
+ }
+
+ fun RecyclerView.smoothSnapToPosition(position: Int, snapMode: Int = LinearSmoothScroller.SNAP_TO_START) {
+ val smoothScroller = object : LinearSmoothScroller(this.context) {
+ override fun getVerticalSnapPreference(): Int {
+ return snapMode
+ }
+
+ override fun getHorizontalSnapPreference(): Int {
+ return snapMode
+ }
+ }
+ smoothScroller.targetPosition = position
+ this.layoutManager?.startSmoothScroll(smoothScroller)
+ }
+}
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 f4f780fdc..c5f0b05e9 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
@@ -38,7 +38,7 @@ import code.name.monkey.retromusic.transform.DepthTransformation;
import code.name.monkey.retromusic.transform.HingeTransformation;
import code.name.monkey.retromusic.transform.HorizontalFlipTransformation;
import code.name.monkey.retromusic.transform.NormalPageTransformer;
-import code.name.monkey.retromusic.transform.StackTransformer;
+import code.name.monkey.retromusic.transform.VerticalStackTransformer;
import code.name.monkey.retromusic.transform.VerticalFlipTransformation;
import code.name.monkey.retromusic.ui.activities.MainActivity;
import code.name.monkey.retromusic.ui.fragments.AlbumCoverStyle;
@@ -727,7 +727,7 @@ public final class PreferenceUtil {
case 5:
return new HingeTransformation();
case 6:
- return new StackTransformer();
+ return new VerticalStackTransformer();
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/views/WidthFitSquareCardView.kt b/app/src/main/java/code/name/monkey/retromusic/views/WidthFitSquareCardView.kt
new file mode 100644
index 000000000..6aaabe734
--- /dev/null
+++ b/app/src/main/java/code/name/monkey/retromusic/views/WidthFitSquareCardView.kt
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2019 Hemanth Savarala.
+ *
+ * Licensed under the GNU General Public License v3
+ *
+ * This is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by
+ * the Free Software Foundation either version 3 of the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ */
+
+package code.name.monkey.retromusic.views
+
+import android.content.Context
+import android.util.AttributeSet
+
+import com.google.android.material.card.MaterialCardView
+
+/**
+ * Created by hemanths on 3/18/19
+ */
+class WidthFitSquareCardView : MaterialCardView {
+ constructor(context: Context) : super(context) {}
+
+ constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {}
+
+ constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {}
+
+ fun forceSquare(z: Boolean) {
+ this.forceSquare = z
+ requestLayout()
+ }
+
+ override fun onMeasure(i: Int, i2: Int) {
+ var i2 = i2
+ if (this.forceSquare) {
+ i2 = i
+ }
+ super.onMeasure(i, i2)
+ }
+
+ private var forceSquare = true
+}
diff --git a/app/src/main/res/color/text_field_background.xml b/app/src/main/res/color/text_field_background.xml
new file mode 100644
index 000000000..9089c1a79
--- /dev/null
+++ b/app/src/main/res/color/text_field_background.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable-xxxhdpi/np_slide.webp b/app/src/main/res/drawable-xxxhdpi/np_slide.webp
new file mode 100644
index 000000000..fd3170770
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/np_slide.webp differ
diff --git a/app/src/main/res/drawable/ic_home_selected_white_24dp.xml b/app/src/main/res/drawable/ic_home_selected_white_24dp.xml
index 1ce34292f..832b57887 100644
--- a/app/src/main/res/drawable/ic_home_selected_white_24dp.xml
+++ b/app/src/main/res/drawable/ic_home_selected_white_24dp.xml
@@ -7,6 +7,5 @@
-
+ android:pathData="M9 11.75c-0.69 0-1.25 0.56 -1.25 1.25s0.56 1.25 1.25 1.25 1.25-0.56 1.25-1.25-0.56-1.25-1.25-1.25zm6 0c-0.69 0-1.25 0.56 -1.25 1.25s0.56 1.25 1.25 1.25 1.25-0.56 1.25-1.25-0.56-1.25-1.25-1.25zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8 0-0.29 0.02 -0.58 0.05 -0.86 2.36-1.05 4.23-2.98 5.21-5.37C11.07 8.33 14.05 10 17.42 10c0.78 0 1.53-0.09 2.25-0.26 0.21 0.71 0.33 1.47 0.33 2.26 0 4.41-3.59 8-8 8z" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_home_white_24dp.xml b/app/src/main/res/drawable/ic_home_white_24dp.xml
index 75b433712..b78bab9d9 100644
--- a/app/src/main/res/drawable/ic_home_white_24dp.xml
+++ b/app/src/main/res/drawable/ic_home_white_24dp.xml
@@ -4,9 +4,7 @@
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
-
-
+ android:pathData="M10.25 13c0 0.69-0.56 1.25-1.25 1.25S7.75 13.69 7.75 13s0.56-1.25 1.25-1.25 1.25 0.56 1.25 1.25zM15 11.75c-0.69 0-1.25 0.56 -1.25 1.25s0.56 1.25 1.25 1.25 1.25-0.56 1.25-1.25-0.56-1.25-1.25-1.25zm7 0.25c0 5.52-4.48 10-10 10S2 17.52 2 12 6.48 2 12 2s10 4.48 10 10zM10.66 4.12C12.06 6.44 14.6 8 17.5 8c0.46 0 0.91-0.05 1.34-0.12C17.44 5.56 14.9 4 12 4c-0.46 0-0.91 0.05 -1.34 0.12 zM4.42 9.47c1.71-0.97 3.03-2.55 3.66-4.44C6.37 6 5.05 7.58 4.42 9.47zM20 12c0-0.78-0.12-1.53-0.33-2.24-0.7 0.15 -1.42 0.24 -2.17 0.24 -3.13 0-5.92-1.44-7.76-3.69C8.69 8.87 6.6 10.88 4 11.86c0.01 0.04 0 0.09 0 0.14 0 4.41 3.59 8 8 8s8-3.59 8-8z" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/material_design_outline.xml b/app/src/main/res/drawable/material_design_outline.xml
new file mode 100644
index 000000000..3eb8f3d77
--- /dev/null
+++ b/app/src/main/res/drawable/material_design_outline.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout-land/fragment_slide_player.xml b/app/src/main/res/layout-land/fragment_slide_player.xml
new file mode 100644
index 000000000..16ab42d4e
--- /dev/null
+++ b/app/src/main/res/layout-land/fragment_slide_player.xml
@@ -0,0 +1,349 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/abs_playlists.xml b/app/src/main/res/layout/abs_playlists.xml
index 2a167bc48..8e64d5d6d 100644
--- a/app/src/main/res/layout/abs_playlists.xml
+++ b/app/src/main/res/layout/abs_playlists.xml
@@ -6,21 +6,28 @@
android:orientation="vertical">
+ android:background="@drawable/material_design_outline"
+ android:backgroundTint="?dividerColor"
+ android:gravity="center_vertical"
+ android:paddingStart="12dp"
+ android:paddingTop="6dp"
+ android:paddingEnd="12dp"
+ android:paddingBottom="6dp"
+ android:visibility="gone">
@@ -29,7 +36,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
- android:orientation="horizontal">
+ android:orientation="horizontal"
+ android:paddingTop="12dp">
+ android:padding="16dp" />
+ android:padding="16dp" />
+ android:padding="16dp" />
+ android:padding="16dp" />
diff --git a/app/src/main/res/layout/activity_song_tag_editor.xml b/app/src/main/res/layout/activity_song_tag_editor.xml
index 02d96da76..d94e22489 100755
--- a/app/src/main/res/layout/activity_song_tag_editor.xml
+++ b/app/src/main/res/layout/activity_song_tag_editor.xml
@@ -53,11 +53,6 @@
-
-
-
+ android:layout_height="wrap_content"
+ app:boxBackgroundMode="outline"
+ app:boxCollapsedPaddingTop="16dp"
+ app:boxCornerRadiusBottomEnd="8dp"
+ app:boxCornerRadiusBottomStart="8dp"
+ app:boxCornerRadiusTopEnd="8dp"
+
+ app:boxCornerRadiusTopStart="8dp"
+ app:boxStrokeColor="?android:attr/textColorPrimary"
+ app:boxStrokeWidth="1dp"
+ app:hintEnabled="true">
-
+ android:padding="14dp" />
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ app:boxBackgroundMode="outline"
+ app:boxCollapsedPaddingTop="16dp"
+ app:boxCornerRadiusBottomEnd="8dp"
+ app:boxCornerRadiusBottomStart="8dp"
+ app:boxCornerRadiusTopEnd="8dp"
+ app:boxCornerRadiusTopStart="8dp"
+ app:boxStrokeColor="?android:attr/textColorPrimary"
+ app:boxStrokeWidth="1dp"
+ app:hintEnabled="true">
-
+ android:padding="16dp" />
-
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ app:boxBackgroundMode="outline"
+ app:boxCollapsedPaddingTop="16dp"
+ app:boxCornerRadiusBottomEnd="8dp"
+ app:boxCornerRadiusBottomStart="8dp"
+ app:boxCornerRadiusTopEnd="8dp"
+ app:boxCornerRadiusTopStart="8dp"
+ app:boxStrokeColor="?android:attr/textColorPrimary"
+ app:boxStrokeWidth="1dp"
+ app:hintEnabled="true">
+ android:padding="16dp" />
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ app:boxBackgroundMode="outline"
+ app:boxCollapsedPaddingTop="16dp"
+ app:boxCornerRadiusBottomEnd="8dp"
+ app:boxCornerRadiusBottomStart="8dp"
+ app:boxCornerRadiusTopEnd="8dp"
+ app:boxCornerRadiusTopStart="8dp"
+ app:boxStrokeColor="?android:attr/textColorPrimary"
+ app:boxStrokeWidth="1dp"
+ app:hintEnabled="true">
+
+ android:padding="16dp" />
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ app:boxBackgroundMode="outline"
+ app:boxCollapsedPaddingTop="16dp"
+ app:boxCornerRadiusBottomEnd="8dp"
+ app:boxCornerRadiusBottomStart="8dp"
+ app:boxCornerRadiusTopEnd="8dp"
+ app:boxCornerRadiusTopStart="8dp"
+ app:boxStrokeColor="?android:attr/textColorPrimary"
+ app:boxStrokeWidth="1dp"
+ app:hintEnabled="true">
+ android:padding="16dp" />
@@ -169,7 +210,18 @@
+ android:layout_marginTop="8dp"
+ android:layout_weight="1"
+ app:boxBackgroundMode="outline"
+ app:boxCollapsedPaddingTop="16dp"
+ app:boxCornerRadiusBottomEnd="8dp"
+ app:boxCornerRadiusBottomStart="8dp"
+ app:boxCornerRadiusTopEnd="8dp"
+ app:boxCornerRadiusTopStart="8dp"
+ app:boxStrokeColor="?android:attr/textColorPrimary"
+ app:boxStrokeWidth="1dp"
+ app:hintEnabled="true">
+
+ android:padding="16dp" />
@@ -188,7 +240,19 @@
+ android:layout_marginStart="8dp"
+ android:layout_marginTop="8dp"
+ android:layout_weight="1"
+ app:boxBackgroundMode="outline"
+ app:boxCollapsedPaddingTop="16dp"
+ app:boxCornerRadiusBottomEnd="8dp"
+ app:boxCornerRadiusBottomStart="8dp"
+ app:boxCornerRadiusTopEnd="8dp"
+ app:boxCornerRadiusTopStart="8dp"
+ app:boxStrokeColor="?android:attr/textColorPrimary"
+ app:boxStrokeWidth="1dp"
+ app:hintEnabled="true">
+
+ android:padding="16dp" />
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ app:boxBackgroundMode="outline"
+ app:boxCollapsedPaddingTop="16dp"
+ app:boxCornerRadiusBottomEnd="8dp"
+ app:boxCornerRadiusBottomStart="8dp"
+ app:boxCornerRadiusTopEnd="8dp"
+ app:boxCornerRadiusTopStart="8dp"
+ app:boxStrokeColor="?android:attr/textColorPrimary"
+ app:boxStrokeWidth="1dp"
+ app:hintEnabled="true">
+
+ android:padding="16dp" />
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:layout_weight="1"
+ app:boxBackgroundMode="outline"
+ app:boxCollapsedPaddingTop="16dp"
+ app:boxCornerRadiusBottomEnd="8dp"
+ app:boxCornerRadiusBottomStart="8dp"
+ app:boxCornerRadiusTopEnd="8dp"
+ app:boxCornerRadiusTopStart="8dp"
+ app:boxStrokeColor="?android:attr/textColorPrimary"
+ app:boxStrokeWidth="1dp"
+ app:hintEnabled="true">
+
+ android:padding="16dp" />
@@ -247,7 +334,7 @@
android:id="@+id/saveFab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center_horizontal|bottom"
+ android:layout_gravity="end|bottom"
app:setIcon="@drawable/ic_save_white_24dp"
app:setText="Save"
app:showTitle="true"
diff --git a/app/src/main/res/layout/dialog_add_to_playlist.xml b/app/src/main/res/layout/dialog_add_to_playlist.xml
index 85626eff3..0d1375d9d 100644
--- a/app/src/main/res/layout/dialog_add_to_playlist.xml
+++ b/app/src/main/res/layout/dialog_add_to_playlist.xml
@@ -3,6 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:paddingBottom="16dp"
android:orientation="vertical">
-
-
-
+ android:paddingBottom="16dp">
+ style="@style/TextAppearance.MaterialComponents.Headline6"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="16dp"
+ android:text="@string/remove_song_from_playlist_title" />
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_file_share.xml b/app/src/main/res/layout/dialog_file_share.xml
index 8f1a08480..c074bf736 100644
--- a/app/src/main/res/layout/dialog_file_share.xml
+++ b/app/src/main/res/layout/dialog_file_share.xml
@@ -4,13 +4,15 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
- android:padding="8dp">
+ android:paddingBottom="16dp">
+ style="@style/TextAppearance.MaterialComponents.Headline6"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:padding="16dp"
+ android:text="@string/what_do_you_want_to_share" />
+ android:orientation="vertical"
+ android:paddingBottom="16dp">
@@ -15,16 +18,15 @@
android:id="@+id/actionNewPlaylistContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="12dp"
- android:layout_marginTop="8dp"
- android:layout_marginEnd="12dp"
+ android:layout_marginStart="8dp"
+ android:layout_marginEnd="8dp"
app:boxBackgroundMode="outline"
app:boxCollapsedPaddingTop="16dp"
app:boxCornerRadiusBottomEnd="8dp"
app:boxCornerRadiusBottomStart="8dp"
app:boxCornerRadiusTopEnd="8dp"
app:boxCornerRadiusTopStart="8dp"
- app:boxStrokeColor="@color/md_grey_700"
+ app:boxStrokeColor="?android:attr/textColorPrimary"
app:boxStrokeWidth="1dp"
app:hintEnabled="true">
@@ -35,8 +37,7 @@
android:background="@null"
android:hint="@string/playlist_name_empty"
android:inputType="textPersonName|textCapWords|text"
- android:padding="16dp"
- android:textAppearance="@style/TextAppearance.AppCompat.Subhead" />
+ android:padding="16dp" />
+ app:backgroundTint="@color/md_pink_A400"
+ app:icon="@drawable/ic_playlist_add_white_24dp" />
diff --git a/app/src/main/res/layout/dialog_remove_from_playlist.xml b/app/src/main/res/layout/dialog_remove_from_playlist.xml
index 3bb572a73..1c3b399a2 100644
--- a/app/src/main/res/layout/dialog_remove_from_playlist.xml
+++ b/app/src/main/res/layout/dialog_remove_from_playlist.xml
@@ -4,12 +4,14 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
- android:paddingTop="8dp">
+ android:paddingBottom="16dp">
+ android:textAllCaps="false"
+ app:icon="@drawable/ic_delete_white_24dp" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/dialog_sleep_timer.xml b/app/src/main/res/layout/dialog_sleep_timer.xml
index 28f05aeea..b8ed7a097 100644
--- a/app/src/main/res/layout/dialog_sleep_timer.xml
+++ b/app/src/main/res/layout/dialog_sleep_timer.xml
@@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="@android:color/transparent">
+ android:paddingBottom="16dp">
-
-
+ android:layout_height="wrap_content"
+ android:padding="16dp"
+ android:text="@string/action_sleep_timer" />
-
-
-
+ app:cardUseCompatPadding="false"
+ sothree:cardCornerRadius="12dp">
+ android:src="@drawable/promotional"
+ android:visibility="gone" />
@@ -132,30 +133,23 @@
android:text="@string/action_share"
app:icon="@drawable/ic_share_white_24dp" />
+
+
+
+
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_slide_player.xml b/app/src/main/res/layout/fragment_slide_player.xml
new file mode 100644
index 000000000..dd6ba6a3e
--- /dev/null
+++ b/app/src/main/res/layout/fragment_slide_player.xml
@@ -0,0 +1,327 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/metal_section_recycler_view.xml b/app/src/main/res/layout/metal_section_recycler_view.xml
index a83957357..b74be8c61 100644
--- a/app/src/main/res/layout/metal_section_recycler_view.xml
+++ b/app/src/main/res/layout/metal_section_recycler_view.xml
@@ -6,25 +6,32 @@
android:orientation="vertical">
+ android:layout_margin="12dp"
+ android:background="@drawable/material_design_outline"
+ android:backgroundTint="?dividerColor"
+ android:gravity="center_vertical"
+ android:paddingStart="12dp"
+ android:paddingTop="6dp"
+ android:paddingEnd="12dp"
+ android:paddingBottom="6dp">
+ android:layout_marginEnd="12dp"
+ app:srcCompat="@drawable/ic_person_white_24dp" />
+ style="@style/SubTitleTextAppearance"
+ android:padding="0dp"
+ android:text="@string/for_you" />
-
+ android:background="@drawable/material_design_outline"
+ android:backgroundTint="?dividerColor"
+ android:gravity="center_vertical"
+ android:paddingStart="12dp"
+ android:paddingTop="6dp"
+ android:layout_margin="12dp"
+ android:paddingEnd="12dp"
+ android:paddingBottom="6dp">
+ app:srcCompat="@drawable/ic_person_white_24dp" />
+ style="@style/SubTitleTextAppearance"
+ android:padding="0dp"
+ android:text="@string/for_you" />
diff --git a/app/src/main/res/layout/section_recycler_view.xml b/app/src/main/res/layout/section_recycler_view.xml
index 138af94ed..9cdb344c4 100644
--- a/app/src/main/res/layout/section_recycler_view.xml
+++ b/app/src/main/res/layout/section_recycler_view.xml
@@ -8,21 +8,29 @@
android:orientation="vertical">
+ android:layout_margin="12dp"
+ android:background="@drawable/material_design_outline"
+ android:backgroundTint="?dividerColor"
+ android:gravity="center_vertical"
+ android:paddingStart="12dp"
+ android:paddingTop="6dp"
+ android:paddingEnd="12dp"
+ android:paddingBottom="6dp">
+ android:layout_marginEnd="12dp"
+ app:srcCompat="@drawable/ic_person_white_24dp" />
+ style="@style/SubTitleTextAppearance"
+ android:padding="0dp"
+ android:text="@string/for_you" />
diff --git a/app/src/main/res/menu/bottom_navigation_main.xml b/app/src/main/res/menu/bottom_navigation_main.xml
index b6b9b8476..e1b5e00be 100644
--- a/app/src/main/res/menu/bottom_navigation_main.xml
+++ b/app/src/main/res/menu/bottom_navigation_main.xml
@@ -5,7 +5,7 @@
android:id="@+id/action_home"
android:enabled="true"
android:icon="@drawable/toggle_home"
- android:title="@string/home" />
+ android:title="@string/for_you" />
- Composer
Next Song
Last song
+ Slide
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 3f8cf6d75..914917ed4 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -133,8 +133,8 @@
- ?iconColor
- ?iconColor
- center_vertical
- - 12dp
- - 12dp
+ - 8dp
+ - 8dp
- 12dp
@@ -148,4 +148,12 @@
+
+
+
+
diff --git a/app/src/main/res/values/styles_parents.xml b/app/src/main/res/values/styles_parents.xml
index 55193cd56..3233306ba 100644
--- a/app/src/main/res/values/styles_parents.xml
+++ b/app/src/main/res/values/styles_parents.xml
@@ -44,6 +44,7 @@
- @transition/grid_exit
- @transition/grid_exit
- @font/circular
+
diff --git a/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/views/ATEEditText.kt b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/views/ATEEditText.kt
index cf86a399f..5a2f71577 100755
--- a/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/views/ATEEditText.kt
+++ b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/views/ATEEditText.kt
@@ -1,17 +1,16 @@
package code.name.monkey.appthemehelper.common.views
import android.content.Context
-import androidx.appcompat.widget.AppCompatEditText
import android.util.AttributeSet
-
import code.name.monkey.appthemehelper.ATH
import code.name.monkey.appthemehelper.ThemeStore
+import com.google.android.material.textfield.TextInputEditText
/**
* @author Aidan Follestad (afollestad)
*/
-class ATEEditText : AppCompatEditText {
+class ATEEditText : TextInputEditText {
constructor(context: Context) : super(context) {
init(context)
diff --git a/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/views/ATETextInputLayout.java b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/views/ATETextInputLayout.java
new file mode 100644
index 000000000..278050a34
--- /dev/null
+++ b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/views/ATETextInputLayout.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2019 Hemanth Savarala.
+ *
+ * Licensed under the GNU General Public License v3
+ *
+ * This is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by
+ * the Free Software Foundation either version 3 of the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ */
+
+package code.name.monkey.appthemehelper.common.views;
+
+import android.content.Context;
+import android.content.res.ColorStateList;
+import android.util.AttributeSet;
+
+import com.google.android.material.textfield.TextInputLayout;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import code.name.monkey.appthemehelper.ThemeStore;
+
+/**
+ * Created by hemanths on 3/12/19
+ */
+public class ATETextInputLayout extends TextInputLayout {
+ public ATETextInputLayout(@NonNull Context context) {
+ this(context, null);
+ }
+
+ public ATETextInputLayout(@NonNull Context context, @Nullable AttributeSet attrs) {
+ this(context, attrs, -1);
+ }
+
+ public ATETextInputLayout(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+
+ setBoxBackgroundMode(BOX_BACKGROUND_OUTLINE);
+ setBoxStrokeColor(ThemeStore.Companion.textColorSecondary(context));
+ final float scale = context.getResources().getDisplayMetrics().density;
+ int border = (int) (8 * scale + 0.5f);
+ setBoxCornerRadii(border, border, border, border);
+ setHintAnimationEnabled(true);
+ setHintEnabled(true);
+
+ }
+}
diff --git a/appthemehelper/src/main/java/code/name/monkey/appthemehelper/util/MaterialUtil.kt b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/util/MaterialUtil.kt
index ef2b02cf4..1ab73dddd 100644
--- a/appthemehelper/src/main/java/code/name/monkey/appthemehelper/util/MaterialUtil.kt
+++ b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/util/MaterialUtil.kt
@@ -34,7 +34,7 @@ object MaterialUtil {
val colorState = ColorStateList.valueOf(accentColor)
if (background) {
- textInputLayout.backgroundTintList = colorState
+ //textInputLayout.backgroundTintList = colorState
textInputLayout.defaultHintTextColor = colorState
} else {
textInputLayout.boxStrokeColor = accentColor