diff --git a/app/build.gradle b/app/build.gradle
index ac79d316..016c7ca0 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -31,8 +31,8 @@ android {
vectorDrawables.useSupportLibrary = true
applicationId "code.name.monkey.retromusic"
- versionCode 324
- versionName '3.1.700'
+ versionCode 333
+ versionName '3.1.900'
multiDexEnabled true
@@ -127,38 +127,47 @@ dependencies {
implementation "androidx.palette:palette:1.0.0"
implementation 'androidx.annotation:annotation:1.1.0'
implementation 'androidx.preference:preference:1.1.0-beta01'
- implementation 'com.google.android.material:material:1.1.0-alpha07'
implementation 'androidx.palette:palette-ktx:1.0.0'
+
+ implementation 'com.google.android.material:material:1.1.0-alpha07'
+ implementation 'com.google.android.material:material:1.1.0-alpha07'
+
implementation 'com.squareup.retrofit2:retrofit:2.5.0'
implementation 'com.squareup.retrofit2:converter-gson:2.5.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.5.0'
+
implementation 'com.afollestad.material-dialogs:core:3.0.0-alpha1'
implementation 'com.afollestad.material-dialogs:input:3.0.0-alpha1'
implementation 'com.afollestad.material-dialogs:color:3.0.0-alpha1'
implementation 'com.afollestad.material-dialogs:bottomsheets:3.0.0-alpha1'
implementation 'com.afollestad:material-cab:0.1.12'
+
implementation 'com.github.bumptech.glide:glide:4.8.0'
kapt 'com.github.bumptech.glide:compiler:4.8.0'
implementation 'com.github.bumptech.glide:okhttp3-integration:4.8.0'
+
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'io.reactivex.rxjava2:rxjava:2.2.8'
+
implementation('com.h6ah4i.android.widget.advrecyclerview:advrecyclerview:0.11.0@aar') {
transitive = true
}
- implementation 'com.github.ksoichiro:android-observablescrollview:1.6.0'
- implementation 'com.github.kabouzeid:RecyclerView-FastScroll:1.0.16-kmod'
+
implementation 'com.anjlab.android.iab.v3:library:1.0.44'
/*UI Library*/
implementation 'me.zhanghai.android.materialprogressbar:library:1.6.1'
implementation 'com.r0adkll:slidableactivity:2.0.6'
- /*Backend all*/
- implementation 'com.github.kabouzeid:AndroidSlidingUpPanel:3.3.0-kmod3'
- implementation 'com.github.AdrienPoupa:jaudiotagger:2.2.3'
- implementation 'org.nanohttpd:nanohttpd:2.3.1'
+
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation 'org.eclipse.mylyn.github:org.eclipse.egit.github.core:3.4.0.201406110918-r'
+
implementation 'com.github.jetradarmobile:android-snowfall:1.2.0'
implementation 'com.github.takahirom.downloadable.calligraphy:downloadable-calligraphy:0.1.3'
+ implementation 'com.github.ksoichiro:android-observablescrollview:1.6.0'
+ implementation 'com.github.kabouzeid:RecyclerView-FastScroll:1.0.16-kmod'
+ implementation 'com.github.kabouzeid:AndroidSlidingUpPanel:3.3.0-kmod3'
+ implementation 'com.github.AdrienPoupa:jaudiotagger:2.2.3'
+
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2'
implementation project(':appthemehelper')
}
diff --git a/app/src/main/assets/contributors.json b/app/src/main/assets/contributors.json
index 4c0ee556..b2b6baab 100644
--- a/app/src/main/assets/contributors.json
+++ b/app/src/main/assets/contributors.json
@@ -19,9 +19,9 @@
},
{
"name": "Gaming Inc.",
- "summary": "Discord server maintainer",
- "link": "https://discord.gg/qTecXXn",
- "profile_image": "https://i.imgur.com/FMqPDSS.png"
+ "summary": "Telegram & Discord server maintainer",
+ "link": "https://t.me/Gaming_Inc",
+ "profile_image": "https://i.imgur.com/pfvN7d9.png"
},
{
"name": "Marko Ivanović",
@@ -34,5 +34,11 @@
"summary": "Telegram and Design contributor",
"link": "https://t.me/Allstargaurav",
"profile_image": "https://i.imgur.com/EertxDu.jpg"
+ },
+ {
+ "name": "Abilas Sathiya",
+ "summary": "Design & Suggestions",
+ "link": "https://t.me/@abs2606",
+ "profile_image": "https://i.imgur.com/MUyEWlx.jpg"
}
]
\ No newline at end of file
diff --git a/app/src/main/assets/retro-changelog.html b/app/src/main/assets/retro-changelog.html
index be9b331b..3e8ac797 100644
--- a/app/src/main/assets/retro-changelog.html
+++ b/app/src/main/assets/retro-changelog.html
@@ -1 +1 @@
-
v3.1.700
- Fix crashing on What's New screen
- Fix lyrics dialog
- Changed toggles to line icons
- Custom UserImageView for loading user profile image
- Fix crashing on artist list for number format error
- Fix blacklist dialog crashing
- Rearranged icons and main menu access
- Fix some crashes when device is locked or background
- Folder screen have main options access
- Dialogs are now using Material Dialogs v3(BottomSheet)
- Fix Shuffle icon for Artist, Album, Genre and Playlist details
v3.1.400
- Removed sync lyrics for Android 5
- Fix Seek-bar color in settings
- Added keyboard to popup on search
- Added keyboard to popup on search
- Improved lock-screen behavior and UI
- Improved text appearance
- Fix bio text not showing in settings
- Fix not showing slider(blur, filter song) amount in settings
- Fix setting ringtone
- Fix file sharing crash
- Fix some crashes
- Fix playlist icon on small devices
- Fix empty lyrics text color
- Fix album cover background purple color in color theme
v3.1.300
- Fix rename playlist text color
- Fix same album showing in details page
- Fix lyrics text alignment on sync and lyrics reading improved
- Improved home sections loading
- Removed library options which are duplicated (it's available from profile menu)
- Replaced collapsing Fab with Android Floating Extended Fab
- Replaced home with for you
- Fixed profile image not loading in about
- Improved selecting user profile image
- Added bio to enter custom message
- Improved some UI screens
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
- Bottom Options improved(internal)
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
+
We're really sorry for Announcing this Retro Music is driving towards pure Android Material
Design guidelines we don't want any unnecessary UI elements that don't need for Music
player.
Artist images are not loading because last.fm changed policy for image downloading
v3.1.900
- Added Play and Shuffle buttons on Songs list, Album Details, Artist Details, Playlist
Details etc.
- Home toolbar is semi transparent in Banner mode
- Added new Buy Retro Music pro in settings
- Improved dark color in Dark theme
v3.1.850
- Toolbar will be clickable for Search
v3.1.800
- Search bar CardView background
- Improve volume zero
- Now playing and Album theme picker rollback to dialog
- Fix sharing app link
- Fix scanning dialog
- Added settings icons for options
v3.1.700
- Cleaned internal code
- Removed full screen option
- Added Toolbar elevation
- To access menu either tap on Toolbar or Hamburger icon
- Fix back button not working on playing queue
- Fix crashing on What's New screen
- Fix lyrics dialog
- Changed toggles to line icons
- Custom UserImageView for loading user profile image
- Fix crashing on artist list for number format error
- Fix blacklist dialog crashing
- Rearranged icons and main menu access
- Fix some crashes when device is locked or background
- Folder screen have main options access
- Dialogs are now using Material Dialogs v3(BottomSheet)
- Fix Shuffle icon for Artist, Album, Genre and Playlist details
v3.1.400
- Removed sync lyrics for Android 5
- Fix Seek-bar color in settings
- Added keyboard to popup on search
- Added keyboard to popup on search
- Improved lock-screen behavior and UI
- Improved text appearance
- Fix bio text not showing in settings
- Fix not showing slider(blur, filter song) amount in settings
- Fix setting ringtone
- Fix file sharing crash
- Fix some crashes
- Fix playlist icon on small devices
- Fix empty lyrics text color
- Fix album cover background purple color in color theme
v3.1.300
- Fix rename playlist text color
- Fix same album showing in details page
- Fix lyrics text alignment on sync and lyrics reading improved
- Improved home sections loading
- Removed library options which are duplicated (it's available from profile menu)
- Replaced collapsing Fab with Android Floating Extended Fab
- Replaced home with for you
- Fixed profile image not loading in about
- Improved selecting user profile image
- Added bio to enter custom message
- Improved some UI screens
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
- Bottom Options improved(internal)
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/Injection.kt b/app/src/main/java/code/name/monkey/retromusic/Injection.kt
index 55857020..8023706e 100644
--- a/app/src/main/java/code/name/monkey/retromusic/Injection.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/Injection.kt
@@ -16,8 +16,6 @@ package code.name.monkey.retromusic
import code.name.monkey.retromusic.providers.RepositoryImpl
import code.name.monkey.retromusic.providers.interfaces.Repository
-import code.name.monkey.retromusic.rest.KogouClient
-import code.name.monkey.retromusic.rest.service.KuGouApiService
import code.name.monkey.retromusic.util.schedulers.BaseSchedulerProvider
import code.name.monkey.retromusic.util.schedulers.SchedulerProvider
@@ -30,8 +28,4 @@ object Injection {
fun provideSchedulerProvider(): BaseSchedulerProvider {
return SchedulerProvider.getInstance()
}
-
- fun provideKuGouApiService(): KuGouApiService {
- return KogouClient().apiService
- }
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/AlbumDetailsActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/AlbumDetailsActivity.kt
index e195b77a..37a7f0d9 100644
--- a/app/src/main/java/code/name/monkey/retromusic/activities/AlbumDetailsActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/activities/AlbumDetailsActivity.kt
@@ -10,7 +10,6 @@ import android.view.animation.AnimationUtils
import android.widget.ImageView
import androidx.core.app.ActivityCompat
import androidx.core.util.Pair
-import androidx.core.widget.NestedScrollView
import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
@@ -20,6 +19,11 @@ import code.name.monkey.appthemehelper.util.MaterialValueHelper
import code.name.monkey.appthemehelper.util.TintHelper
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
import code.name.monkey.retromusic.R
+import code.name.monkey.retromusic.activities.base.AbsSlidingMusicPanelActivity
+import code.name.monkey.retromusic.activities.tageditor.AbsTagEditorActivity
+import code.name.monkey.retromusic.activities.tageditor.AlbumTagEditorActivity
+import code.name.monkey.retromusic.adapter.album.HorizontalAlbumAdapter
+import code.name.monkey.retromusic.adapter.song.SimpleSongAdapter
import code.name.monkey.retromusic.dialogs.AddToPlaylistDialog
import code.name.monkey.retromusic.dialogs.DeleteSongsDialog
import code.name.monkey.retromusic.glide.GlideApp
@@ -32,11 +36,6 @@ import code.name.monkey.retromusic.misc.AppBarStateChangeListener
import code.name.monkey.retromusic.model.Album
import code.name.monkey.retromusic.mvp.contract.AlbumDetailsContract
import code.name.monkey.retromusic.mvp.presenter.AlbumDetailsPresenter
-import code.name.monkey.retromusic.activities.base.AbsSlidingMusicPanelActivity
-import code.name.monkey.retromusic.activities.tageditor.AbsTagEditorActivity
-import code.name.monkey.retromusic.activities.tageditor.AlbumTagEditorActivity
-import code.name.monkey.retromusic.adapter.album.HorizontalAlbumAdapter
-import code.name.monkey.retromusic.adapter.song.SimpleSongAdapter
import code.name.monkey.retromusic.util.MusicUtil
import code.name.monkey.retromusic.util.NavigationUtil
import code.name.monkey.retromusic.util.PreferenceUtil
@@ -55,8 +54,7 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsContrac
private lateinit var simpleSongAdapter: SimpleSongAdapter
private var disposable = CompositeDisposable()
- var album: Album? = null
- private set
+ private lateinit var album: Album
private val savedSortOrder: String
get() = PreferenceUtil.getInstance().albumDetailSongSortOrder
@@ -80,7 +78,6 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsContrac
setLightNavigationBar(true)
setNavigationbarColorAuto()
-
ActivityCompat.postponeEnterTransition(this)
val albumId = intent.getIntExtra(EXTRA_ALBUM_ID, -1)
@@ -90,23 +87,16 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsContrac
setupRecyclerView()
setupToolbarMarginHeight()
- contentContainer.setOnScrollChangeListener { _: NestedScrollView?, _: Int, scrollY: Int, _: Int, oldScrollY: Int ->
- run {
- if (scrollY > oldScrollY) {
- actionShuffleAll.shrink(true)
- }
- if (scrollY < oldScrollY) {
- actionShuffleAll.extend(true)
- }
- }
- }
-
- actionShuffleAll.setOnClickListener { MusicPlayerRemote.openAndShuffleQueue(album!!.songs!!, true) }
-
artistImage = findViewById(R.id.artistImage)
artistImage.setOnClickListener {
val artistPairs = arrayOf>(Pair.create(image, resources.getString(R.string.transition_artist_image)))
- NavigationUtil.goToArtist(this, album!!.artistId, *artistPairs)
+ NavigationUtil.goToArtist(this, album.artistId, *artistPairs)
+ }
+ playAction.apply {
+ setOnClickListener { MusicPlayerRemote.openQueue(album.songs!!, 0, true) }
+ }
+ shuffleAction.apply {
+ setOnClickListener { MusicPlayerRemote.openAndShuffleQueue(album.songs!!, true) }
}
}
@@ -144,13 +134,13 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsContrac
appBarLayout?.apply {
addOnOffsetChangedListener(object : AppBarStateChangeListener() {
- override fun onStateChanged(appBarLayout: AppBarLayout, state: AppBarStateChangeListener.State) {
+ override fun onStateChanged(appBarLayout: AppBarLayout, state: State) {
val color: Int = when (state) {
- AppBarStateChangeListener.State.COLLAPSED -> {
+ State.COLLAPSED -> {
setLightStatusbar(ColorUtil.isColorLight(ThemeStore.primaryColor(this@AlbumDetailsActivity)))
ThemeStore.primaryColor(this@AlbumDetailsActivity)
}
- AppBarStateChangeListener.State.EXPANDED, AppBarStateChangeListener.State.IDLE -> {
+ State.EXPANDED, State.IDLE -> {
setLightStatusbar(false)
Color.TRANSPARENT
}
@@ -242,9 +232,9 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsContrac
private fun loadAlbumCover() {
GlideApp.with(this)
.asBitmapPalette()
- .load(RetroGlideExtension.getSongModel(album!!.safeGetFirstSong()))
+ .load(RetroGlideExtension.getSongModel(album.safeGetFirstSong()))
.transition(RetroGlideExtension.getDefaultTransition())
- .songOptions(album!!.safeGetFirstSong())
+ .songOptions(album.safeGetFirstSong())
.dontAnimate()
.into(object : RetroMusicColoredTarget(image as ImageView) {
override fun onColorReady(color: Int) {
@@ -259,10 +249,14 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsContrac
songTitle.setTextColor(themeColor)
moreTitle.setTextColor(themeColor)
- actionShuffleAll.backgroundTintList = ColorStateList.valueOf(themeColor)
+ playAction.backgroundTintList = ColorStateList.valueOf(themeColor)
+ shuffleAction.backgroundTintList = ColorStateList.valueOf(themeColor)
ColorStateList.valueOf(MaterialValueHelper.getPrimaryTextColor(this, ColorUtil.isColorLight(themeColor))).apply {
- actionShuffleAll.setTextColor(this)
- actionShuffleAll.iconTint = this
+ playAction.setTextColor(this)
+ playAction.iconTint = this
+
+ shuffleAction.setTextColor(this)
+ shuffleAction.iconTint = this
}
}
@@ -304,12 +298,12 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsContrac
}
R.id.action_tag_editor -> {
val intent = Intent(this, AlbumTagEditorActivity::class.java)
- intent.putExtra(AbsTagEditorActivity.EXTRA_ID, album!!.id)
+ intent.putExtra(AbsTagEditorActivity.EXTRA_ID, album.id)
startActivityForResult(intent, TAG_EDITOR_REQUEST)
return true
}
R.id.action_go_to_artist -> {
- NavigationUtil.goToArtist(this, album!!.artistId)
+ NavigationUtil.goToArtist(this, album.artistId)
return true
}
/*Sort*/
diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/ArtistDetailActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/ArtistDetailActivity.kt
index ded4bf05..9c0dc629 100755
--- a/app/src/main/java/code/name/monkey/retromusic/activities/ArtistDetailActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/activities/ArtistDetailActivity.kt
@@ -4,6 +4,7 @@ import android.app.Activity
import android.content.Intent
import android.content.res.ColorStateList
import android.graphics.Color
+import android.graphics.drawable.Drawable
import android.os.Build
import android.os.Bundle
import android.text.Html
@@ -13,7 +14,6 @@ import android.view.*
import android.view.animation.AnimationUtils
import android.widget.Toast
import androidx.core.app.ActivityCompat
-import androidx.core.widget.NestedScrollView
import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
@@ -23,6 +23,10 @@ import code.name.monkey.appthemehelper.util.MaterialValueHelper
import code.name.monkey.appthemehelper.util.TintHelper
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
import code.name.monkey.retromusic.R
+import code.name.monkey.retromusic.activities.base.AbsSlidingMusicPanelActivity
+import code.name.monkey.retromusic.adapter.album.AlbumAdapter
+import code.name.monkey.retromusic.adapter.album.HorizontalAlbumAdapter
+import code.name.monkey.retromusic.adapter.song.SimpleSongAdapter
import code.name.monkey.retromusic.dialogs.AddToPlaylistDialog
import code.name.monkey.retromusic.glide.GlideApp
import code.name.monkey.retromusic.glide.RetroGlideExtension
@@ -34,10 +38,6 @@ import code.name.monkey.retromusic.mvp.contract.ArtistDetailContract
import code.name.monkey.retromusic.mvp.presenter.ArtistDetailsPresenter
import code.name.monkey.retromusic.rest.LastFMRestClient
import code.name.monkey.retromusic.rest.model.LastFmArtist
-import code.name.monkey.retromusic.activities.base.AbsSlidingMusicPanelActivity
-import code.name.monkey.retromusic.adapter.album.AlbumAdapter
-import code.name.monkey.retromusic.adapter.album.HorizontalAlbumAdapter
-import code.name.monkey.retromusic.adapter.song.SimpleSongAdapter
import code.name.monkey.retromusic.util.*
import com.google.android.material.appbar.AppBarLayout
import kotlinx.android.synthetic.main.activity_artist_content.*
@@ -53,7 +53,7 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac
private var biography: Spanned? = null
private lateinit var artist: Artist
private var lastFMRestClient: LastFMRestClient? = null
- private var artistDetailsPresenter: ArtistDetailsPresenter? = null
+ private lateinit var artistDetailsPresenter: ArtistDetailsPresenter
private lateinit var songAdapter: SimpleSongAdapter
private lateinit var albumAdapter: AlbumAdapter
private var forceDownload: Boolean = false
@@ -64,7 +64,6 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac
window.enterTransition = slide
}
-
override fun createContentView(): View {
return wrapSlidingMusicPanel(R.layout.activity_artist_details)
}
@@ -85,17 +84,13 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac
setUpViews()
artistDetailsPresenter = ArtistDetailsPresenter(this, intent.extras!!)
- artistDetailsPresenter!!.subscribe()
+ artistDetailsPresenter.subscribe()
- contentContainer.setOnScrollChangeListener { _: NestedScrollView?, _: Int, scrollY: Int, _: Int, oldScrollY: Int ->
- run {
- if (scrollY > oldScrollY) {
- actionShuffleAll.shrink(true)
- }
- if (scrollY < oldScrollY) {
- actionShuffleAll.extend(true)
- }
- }
+ playAction.apply {
+ setOnClickListener { MusicPlayerRemote.openQueue(artist.songs, 0, true) }
+ }
+ shuffleAction.apply {
+ setOnClickListener { MusicPlayerRemote.openAndShuffleQueue(artist.songs, true) }
}
biographyText.setOnClickListener {
@@ -105,7 +100,6 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac
biographyText.maxLines = 4
}
}
- actionShuffleAll.setOnClickListener { MusicPlayerRemote.openAndShuffleQueue(getArtist().songs, true) }
}
private fun setUpViews() {
@@ -125,17 +119,16 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac
private fun setupToolbarMarginHeight() {
val primaryColor = ThemeStore.primaryColor(this)
TintHelper.setTintAuto(contentContainer!!, primaryColor, true)
- if (collapsingToolbarLayout != null) {
- collapsingToolbarLayout!!.setContentScrimColor(primaryColor)
- collapsingToolbarLayout!!.setStatusBarScrimColor(ColorUtil.darkenColor(primaryColor))
+ collapsingToolbarLayout?.let {
+ it.setContentScrimColor(primaryColor)
+ it.setStatusBarScrimColor(ColorUtil.darkenColor(primaryColor))
}
- toolbar!!.setNavigationIcon(R.drawable.ic_keyboard_backspace_black_24dp)
+ toolbar?.setNavigationIcon(R.drawable.ic_keyboard_backspace_black_24dp)
setSupportActionBar(toolbar)
supportActionBar!!.title = null
-
if (toolbar != null && !PreferenceUtil.getInstance().fullScreenMode) {
val params = toolbar!!.layoutParams as ViewGroup.MarginLayoutParams
params.topMargin = RetroUtil.getStatusBarHeight()
@@ -143,13 +136,13 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac
}
appBarLayout?.addOnOffsetChangedListener(object : AppBarStateChangeListener() {
- override fun onStateChanged(appBarLayout: AppBarLayout, state: AppBarStateChangeListener.State) {
+ override fun onStateChanged(appBarLayout: AppBarLayout, state: State) {
val color: Int = when (state) {
- AppBarStateChangeListener.State.COLLAPSED -> {
+ State.COLLAPSED -> {
setLightStatusbar(ColorUtil.isColorLight(ThemeStore.primaryColor(appBarLayout.context)))
ThemeStore.primaryColor(appBarLayout.context)
}
- AppBarStateChangeListener.State.EXPANDED, AppBarStateChangeListener.State.IDLE -> {
+ State.EXPANDED, State.IDLE -> {
setLightStatusbar(false)
Color.TRANSPARENT
}
@@ -158,6 +151,7 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac
ToolbarContentTintHelper.setToolbarContentColorBasedOnToolbarColor(appBarLayout.context, toolbar, color)
}
})
+ setColors(ThemeStore.accentColor(this))
}
private fun setupRecyclerView() {
@@ -190,7 +184,7 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac
override fun onPause() {
super.onPause()
- artistDetailsPresenter!!.unsubscribe()
+ artistDetailsPresenter.unsubscribe()
}
override fun loading() {}
@@ -208,10 +202,7 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac
}
private fun getArtist(): Artist {
- if (artist == null) {
- artist = Artist()
- }
- return this.artist!!
+ return this.artist;
}
private fun setArtist(artist: Artist) {
@@ -283,6 +274,11 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac
override fun onColorReady(color: Int) {
setColors(color)
}
+
+ override fun onLoadFailed(errorDrawable: Drawable?) {
+ super.onLoadFailed(errorDrawable)
+ setColors(defaultFooterColor)
+ }
})
forceDownload = false;
}
@@ -295,10 +291,14 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac
songTitle.setTextColor(textColor)
biographyTitle.setTextColor(textColor)
- actionShuffleAll.backgroundTintList = ColorStateList.valueOf(textColor)
+ playAction.backgroundTintList = ColorStateList.valueOf(textColor)
+ shuffleAction.backgroundTintList = ColorStateList.valueOf(textColor)
ColorStateList.valueOf(MaterialValueHelper.getPrimaryTextColor(this, ColorUtil.isColorLight(textColor))).apply {
- actionShuffleAll.setTextColor(this)
- actionShuffleAll.iconTint = this
+ playAction.setTextColor(this)
+ playAction.iconTint = this
+
+ shuffleAction.setTextColor(this)
+ shuffleAction.iconTint = this
}
findViewById(R.id.root).setBackgroundColor(ThemeStore.primaryColor(this))
@@ -356,8 +356,8 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailContrac
}
private fun reload() {
- artistDetailsPresenter!!.unsubscribe()
- artistDetailsPresenter!!.subscribe()
+ artistDetailsPresenter.unsubscribe()
+ artistDetailsPresenter.subscribe()
}
companion object {
diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/GenreDetailsActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/GenreDetailsActivity.kt
index 5a440efa..eba3df0d 100644
--- a/app/src/main/java/code/name/monkey/retromusic/activities/GenreDetailsActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/activities/GenreDetailsActivity.kt
@@ -1,6 +1,5 @@
package code.name.monkey.retromusic.activities
-import android.content.res.ColorStateList
import android.graphics.Color
import android.os.Bundle
import android.view.Menu
@@ -11,13 +10,11 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.ColorUtil
-import code.name.monkey.appthemehelper.util.MaterialValueHelper
-import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.activities.base.AbsSlidingMusicPanelActivity
+import code.name.monkey.retromusic.adapter.song.ShuffleButtonSongAdapter
import code.name.monkey.retromusic.adapter.song.SongAdapter
import code.name.monkey.retromusic.extensions.applyToolbar
-import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.helper.menu.GenreMenuHelper
import code.name.monkey.retromusic.interfaces.CabHolder
import code.name.monkey.retromusic.model.Genre
@@ -27,12 +24,7 @@ import code.name.monkey.retromusic.mvp.presenter.GenreDetailsPresenter
import code.name.monkey.retromusic.util.RetroColorUtil
import code.name.monkey.retromusic.util.ViewUtil
import com.afollestad.materialcab.MaterialCab
-import kotlinx.android.synthetic.main.activity_playing_queue.*
import kotlinx.android.synthetic.main.activity_playlist_detail.*
-import kotlinx.android.synthetic.main.activity_playlist_detail.appBarLayout
-import kotlinx.android.synthetic.main.activity_playlist_detail.empty
-import kotlinx.android.synthetic.main.activity_playlist_detail.recyclerView
-import kotlinx.android.synthetic.main.activity_playlist_detail.toolbar
import java.util.*
/**
@@ -43,18 +35,17 @@ class GenreDetailsActivity : AbsSlidingMusicPanelActivity(), GenreDetailsContrac
private var genre: Genre? = null
private var presenter: GenreDetailsPresenter? = null
- private var songAdapter: SongAdapter? = null
+ private lateinit var songAdapter: ShuffleButtonSongAdapter
private var cab: MaterialCab? = null
private fun checkIsEmpty() {
- empty!!.visibility = if (songAdapter!!.itemCount == 0) View.VISIBLE else View.GONE
+ empty?.visibility = if (songAdapter.itemCount == 0) View.VISIBLE else View.GONE
}
override fun onCreate(savedInstanceState: Bundle?) {
setDrawUnderStatusBar()
super.onCreate(savedInstanceState)
-
setStatusbarColor(Color.TRANSPARENT)
setNavigationbarColorAuto()
setTaskDescriptionColorAuto()
@@ -62,34 +53,30 @@ class GenreDetailsActivity : AbsSlidingMusicPanelActivity(), GenreDetailsContrac
setLightStatusbar(ColorUtil.isColorLight(ThemeStore.primaryColor(this)))
toggleBottomNavigationView(true)
- genre = intent.extras!!.getParcelable(EXTRA_GENRE_ID)
- presenter = GenreDetailsPresenter(this, genre!!.id)
+ genre = intent?.extras?.getParcelable(EXTRA_GENRE_ID)
+ presenter = genre?.id?.let { GenreDetailsPresenter(this, it) }
setUpToolBar()
setupRecyclerView()
- actionShuffleAll.setOnClickListener { MusicPlayerRemote.openAndShuffleQueue(songAdapter!!.dataSet, true) }
+
}
private fun setUpToolBar() {
val primaryColor = ThemeStore.primaryColor(this)
appBarLayout.setBackgroundColor(primaryColor)
applyToolbar(toolbar)
- actionShuffleAll.backgroundTintList = ColorStateList.valueOf(ThemeStore.accentColor(this))
- ColorStateList.valueOf(MaterialValueHelper.getPrimaryTextColor(this, ColorUtil.isColorLight(ThemeStore.accentColor(this)))).apply {
- actionShuffleAll.setTextColor(this)
- actionShuffleAll.iconTint = this
- }
- title = genre!!.name
+
+ title = genre?.name
}
override fun onResume() {
super.onResume()
- presenter!!.subscribe()
+ presenter?.subscribe()
}
override fun onPause() {
super.onPause()
- presenter!!.unsubscribe()
+ presenter?.unsubscribe()
}
override fun createContentView(): View {
@@ -123,22 +110,13 @@ class GenreDetailsActivity : AbsSlidingMusicPanelActivity(), GenreDetailsContrac
private fun setupRecyclerView() {
ViewUtil.setUpFastScrollRecyclerViewColor(this, recyclerView, ThemeStore.accentColor(this))
- songAdapter = SongAdapter(this, ArrayList(), R.layout.item_list, false, this)
+ songAdapter = ShuffleButtonSongAdapter(this, ArrayList(), R.layout.item_list, false, this)
recyclerView.apply {
itemAnimator = DefaultItemAnimator()
layoutManager = LinearLayoutManager(this@GenreDetailsActivity)
adapter = songAdapter
- }.addOnScrollListener(object : RecyclerView.OnScrollListener() {
- override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
- super.onScrolled(recyclerView, dx, dy)
- if (dy > 0) {
- actionShuffleAll.shrink(true)
- } else if (dy < 0) {
- actionShuffleAll.extend(true)
- }
- }
- })
- songAdapter!!.registerAdapterDataObserver(object : RecyclerView.AdapterDataObserver() {
+ }
+ songAdapter.registerAdapterDataObserver(object : RecyclerView.AdapterDataObserver() {
override fun onChanged() {
super.onChanged()
checkIsEmpty()
@@ -147,7 +125,7 @@ class GenreDetailsActivity : AbsSlidingMusicPanelActivity(), GenreDetailsContrac
}
override fun showData(list: ArrayList) {
- songAdapter!!.swapDataSet(list)
+ songAdapter.swapDataSet(list)
}
override fun openCab(menuRes: Int, callback: MaterialCab.Callback): MaterialCab {
@@ -171,7 +149,7 @@ class GenreDetailsActivity : AbsSlidingMusicPanelActivity(), GenreDetailsContrac
override fun onMediaStoreChanged() {
super.onMediaStoreChanged()
- presenter!!.subscribe()
+ presenter?.subscribe()
}
companion object {
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 07d306db..0e3add24 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
@@ -13,6 +13,7 @@ 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.dialogs.OptionsSheetDialogFragment
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
@@ -116,7 +117,7 @@ class MainActivity : AbsSlidingMusicPanelActivity(), SharedPreferences.OnSharedP
PreferenceUtil.getInstance().unregisterOnSharedPreferenceChangedListener(this)
}
- fun setCurrentFragment(fragment: Fragment, b: Boolean) {
+ private fun setCurrentFragment(fragment: Fragment, b: Boolean) {
val trans = supportFragmentManager.beginTransaction()
trans.replace(R.id.fragment_container, fragment, null)
if (b) {
@@ -288,8 +289,7 @@ class MainActivity : AbsSlidingMusicPanelActivity(), SharedPreferences.OnSharedP
override fun onOptionsItemSelected(item: MenuItem): Boolean {
if (item.itemId == android.R.id.home) {
- NavigationUtil.goToSearch(this);
- return true
+ OptionsSheetDialogFragment.newInstance().show(supportFragmentManager, "Main_Menu")
}
return super.onOptionsItemSelected(item)
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/PlayingQueueActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/PlayingQueueActivity.kt
index 002db50a..790bffa6 100644
--- a/app/src/main/java/code/name/monkey/retromusic/activities/PlayingQueueActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/activities/PlayingQueueActivity.kt
@@ -2,6 +2,7 @@ package code.name.monkey.retromusic.activities
import android.content.res.ColorStateList
import android.os.Bundle
+import android.view.MenuItem
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import code.name.monkey.appthemehelper.ThemeStore
@@ -46,6 +47,16 @@ class PlayingQueueActivity : AbsMusicServiceActivity() {
}
}
+ override fun onOptionsItemSelected(item: MenuItem): Boolean {
+ return when (item.itemId) {
+ android.R.id.home -> {
+ onBackPressed()
+ true
+ }
+ else -> super.onOptionsItemSelected(item)
+ }
+ }
+
private fun setUpRecyclerView() {
recyclerViewDragDropManager = RecyclerViewDragDropManager()
val animator = RefactoredDefaultItemAnimator()
diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/PlaylistDetailActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/PlaylistDetailActivity.kt
index a45f0aba..4c31048d 100644
--- a/app/src/main/java/code/name/monkey/retromusic/activities/PlaylistDetailActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/activities/PlaylistDetailActivity.kt
@@ -1,6 +1,5 @@
package code.name.monkey.retromusic.activities
-import android.content.res.ColorStateList
import android.graphics.Color
import android.os.Bundle
import android.view.Menu
@@ -10,14 +9,12 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.ColorUtil
-import code.name.monkey.appthemehelper.util.MaterialValueHelper
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.activities.base.AbsSlidingMusicPanelActivity
import code.name.monkey.retromusic.adapter.song.OrderablePlaylistSongAdapter
import code.name.monkey.retromusic.adapter.song.PlaylistSongAdapter
import code.name.monkey.retromusic.adapter.song.SongAdapter
import code.name.monkey.retromusic.extensions.applyToolbar
-import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.helper.menu.PlaylistMenuHelper
import code.name.monkey.retromusic.interfaces.CabHolder
import code.name.monkey.retromusic.loaders.PlaylistLoader
@@ -25,6 +22,7 @@ import code.name.monkey.retromusic.model.AbsCustomPlaylist
import code.name.monkey.retromusic.model.Playlist
import code.name.monkey.retromusic.model.Song
import code.name.monkey.retromusic.mvp.contract.PlaylistSongsContract
+import code.name.monkey.retromusic.mvp.contract.PlaylistSongsContract.*
import code.name.monkey.retromusic.mvp.presenter.PlaylistSongsPresenter
import code.name.monkey.retromusic.util.PlaylistsUtil
import code.name.monkey.retromusic.util.RetroColorUtil
@@ -36,7 +34,7 @@ import com.h6ah4i.android.widget.advrecyclerview.utils.WrapperAdapterUtils
import kotlinx.android.synthetic.main.activity_playlist_detail.*
import java.util.*
-class PlaylistDetailActivity : AbsSlidingMusicPanelActivity(), CabHolder, PlaylistSongsContract.PlaylistSongsView {
+class PlaylistDetailActivity : AbsSlidingMusicPanelActivity(), CabHolder, PlaylistSongsView {
private var playlist: Playlist? = null
private var cab: MaterialCab? = null
@@ -54,6 +52,7 @@ class PlaylistDetailActivity : AbsSlidingMusicPanelActivity(), CabHolder, Playli
setTaskDescriptionColorAuto()
setLightNavigationBar(true)
setLightStatusbar(ColorUtil.isColorLight(ThemeStore.primaryColor(this)))
+
toggleBottomNavigationView(true)
playlist = intent.extras!!.getParcelable(EXTRA_PLAYLIST)
@@ -99,22 +98,6 @@ class PlaylistDetailActivity : AbsSlidingMusicPanelActivity(), CabHolder, Playli
checkIsEmpty()
}
})
- recyclerView!!.addOnScrollListener(object : RecyclerView.OnScrollListener() {
- override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
- super.onScrolled(recyclerView, dx, dy)
- if (dy > 0) {
- actionShuffleAll.shrink(true)
- } else if (dy < 0) {
- actionShuffleAll.extend(true)
- }
- }
- })
- actionShuffleAll.setOnClickListener {
- if (adapter.dataSet.isEmpty()) {
- return@setOnClickListener
- }
- MusicPlayerRemote.openAndShuffleQueue(adapter.dataSet, true)
- }
}
override fun onResume() {
@@ -123,13 +106,6 @@ class PlaylistDetailActivity : AbsSlidingMusicPanelActivity(), CabHolder, Playli
}
private fun setUpToolBar() {
-
- actionShuffleAll.backgroundTintList = ColorStateList.valueOf(ThemeStore.accentColor(this))
- ColorStateList.valueOf(MaterialValueHelper.getPrimaryTextColor(this, ColorUtil.isColorLight(ThemeStore.accentColor(this)))).apply {
- actionShuffleAll.setTextColor(this)
- actionShuffleAll.iconTint = this
- }
-
applyToolbar(toolbar)
title = playlist!!.name
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/SearchActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/SearchActivity.kt
index 66bf5195..066e1146 100644
--- a/app/src/main/java/code/name/monkey/retromusic/activities/SearchActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/activities/SearchActivity.kt
@@ -22,10 +22,10 @@ import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.MaterialValueHelper
import code.name.monkey.retromusic.R
-import code.name.monkey.retromusic.mvp.contract.SearchContract
-import code.name.monkey.retromusic.mvp.presenter.SearchPresenter
import code.name.monkey.retromusic.activities.base.AbsMusicServiceActivity
import code.name.monkey.retromusic.adapter.SearchAdapter
+import code.name.monkey.retromusic.mvp.contract.SearchContract
+import code.name.monkey.retromusic.mvp.presenter.SearchPresenter
import code.name.monkey.retromusic.util.RetroUtil
import kotlinx.android.synthetic.main.activity_search.*
import java.util.*
@@ -52,17 +52,18 @@ class SearchActivity : AbsMusicServiceActivity(), OnQueryTextListener, SearchCon
setUpToolBar()
setupSearchView()
- if (intent.getBooleanExtra("mic_search", false)) {
+ if (intent.getBooleanExtra(EXTRA_SHOW_MIC, false)) {
startMicSearch()
}
+
back.setOnClickListener { onBackPressed() }
voiceSearch.setOnClickListener { startMicSearch() }
- searchContainer.setCardBackgroundColor(ColorStateList.valueOf(ColorUtil.darkenColor(ThemeStore.primaryColor(this))))
+ searchContainer.setCardBackgroundColor(RetroUtil.toolbarColor(this))
keyboardPopup.setOnClickListener {
val inputManager = getSystemService(Service.INPUT_METHOD_SERVICE) as InputMethodManager
- inputManager.showSoftInput(searchView,0)
+ inputManager.showSoftInput(searchView, 0)
}
keyboardPopup.backgroundTintList = ColorStateList.valueOf(ThemeStore.accentColor(this))
@@ -215,9 +216,11 @@ class SearchActivity : AbsMusicServiceActivity(), OnQueryTextListener, SearchCon
}
companion object {
-
val TAG: String = SearchActivity::class.java.simpleName
+
+ const val EXTRA_SHOW_MIC = "extra_show_mic"
const val QUERY: String = "query"
+
private const val REQ_CODE_SPEECH_INPUT = 9002
}
}
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 8c36a911..1b4dc5dd 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
@@ -82,14 +82,14 @@ class UserInfoActivity : AbsBaseActivity() {
Toast.makeText(this, "Umm name is empty", Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
- val bioString = bio.text.toString().trim() { it <= ' ' }
+ /*val bioString = bio.text.toString().trim() { it <= ' ' }
if (TextUtils.isEmpty(bioString)) {
Toast.makeText(this, "Umm bio is empty", Toast.LENGTH_SHORT).show()
return@setOnClickListener
- }
+ }*/
PreferenceUtil.getInstance().userName = nameString
- PreferenceUtil.getInstance().userBio = bioString
+ //PreferenceUtil.getInstance().userBio = bioString
setResult(Activity.RESULT_OK)
finish()
}
@@ -128,7 +128,7 @@ class UserInfoActivity : AbsBaseActivity() {
private fun selectBannerImage() {
- if (PreferenceUtil.getInstance().bannerImage.isEmpty()) {
+ if (TextUtils.isEmpty(PreferenceUtil.getInstance().bannerImage)) {
val pickImageIntent = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
pickImageIntent.type = "image/*"
//pickImageIntent.putExtra("crop", "true")
@@ -138,8 +138,7 @@ class UserInfoActivity : AbsBaseActivity() {
pickImageIntent.putExtra("aspectY", 9)
pickImageIntent.putExtra("scale", true)
//intent.setAction(Intent.ACTION_GET_CONTENT);
- startActivityForResult(Intent.createChooser(pickImageIntent,
- "Select Picture"), PICK_BANNER_REQUEST)
+ startActivityForResult(Intent.createChooser(pickImageIntent, "Select Picture"), PICK_BANNER_REQUEST)
} else {
PreferenceUtil.getInstance().setBannerImagePath("")
bannerImage.setImageResource(android.R.color.transparent)
@@ -193,11 +192,12 @@ class UserInfoActivity : AbsBaseActivity() {
}
}
CROP_BANNER_REQUEST -> {
- val extras: Bundle = data.extras!!
- val selectedBitmap: Bitmap = extras.getParcelable("data")
- val profileImagePath = saveToInternalStorage(selectedBitmap, USER_BANNER)
- PreferenceUtil.getInstance().saveProfileImage(profileImagePath)
- loadImageFromStorage(profileImagePath)
+ val selectedBitmap: Bitmap? = data.extras?.getParcelable("date")
+ val profileImagePath = selectedBitmap?.let { saveToInternalStorage(it, USER_BANNER) }
+ profileImagePath?.let {
+ PreferenceUtil.getInstance().saveProfileImage(it)
+ loadImageFromStorage(it)
+ }
}
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/AlbumTagEditorActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/AlbumTagEditorActivity.kt
index c9778a40..bd843394 100755
--- a/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/AlbumTagEditorActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/AlbumTagEditorActivity.kt
@@ -70,7 +70,6 @@ class AlbumTagEditorActivity : AbsTagEditorActivity(), TextWatcher {
private val disposable = CompositeDisposable()
private fun setupToolbar() {
- bannerTitle.setTextColor(Color.WHITE)
toolbar.setNavigationOnClickListener { onBackPressed() }
ToolbarContentTintHelper.setToolbarContentColorBasedOnToolbarColor(this, toolbar, Color.TRANSPARENT)
title = null
diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/SongTagEditorActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/SongTagEditorActivity.kt
index 65075528..f42faca7 100755
--- a/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/SongTagEditorActivity.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/SongTagEditorActivity.kt
@@ -29,7 +29,6 @@ class SongTagEditorActivity : AbsTagEditorActivity(), TextWatcher {
setSupportActionBar(toolbar)
}
title = null
- bannerTitle.setTextColor(ThemeStore.textColorPrimary(this))
}
override fun onCreate(savedInstanceState: Bundle?) {
@@ -44,7 +43,7 @@ class SongTagEditorActivity : AbsTagEditorActivity(), TextWatcher {
private fun setUpViews() {
fillViewsWithFileTags()
- MaterialUtil.setTint(songTextContainer,false)
+ MaterialUtil.setTint(songTextContainer, false)
MaterialUtil.setTint(composerContainer, false)
MaterialUtil.setTint(albumTextContainer, false)
MaterialUtil.setTint(artistContainer, false)
diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/CollageSongAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/CollageSongAdapter.kt
deleted file mode 100644
index ef2dac03..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/adapter/CollageSongAdapter.kt
+++ /dev/null
@@ -1,75 +0,0 @@
-package code.name.monkey.retromusic.adapter
-
-import android.app.Activity
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.ImageView
-import android.widget.TextView
-import androidx.recyclerview.widget.RecyclerView
-import code.name.monkey.appthemehelper.ThemeStore
-import code.name.monkey.appthemehelper.util.ColorUtil
-import code.name.monkey.appthemehelper.util.MaterialValueHelper
-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.model.Song
-import code.name.monkey.retromusic.adapter.CollageSongAdapter.CollageSongViewHolder
-import code.name.monkey.retromusic.adapter.base.MediaEntryViewHolder
-import java.util.*
-
-/**
- * @author Hemanth S (h4h13).
- */
-class CollageSongAdapter(private val activity: Activity, private val dataSet: ArrayList) : RecyclerView.Adapter() {
-
- override fun onBindViewHolder(holder: CollageSongViewHolder, position: Int) {
- holder.bindSongs()
- if (dataSet.size > 8) {
- for (i in 0 until dataSet.subList(0, 8).size) {
- GlideApp.with(activity)
- .asBitmapPalette()
- .load(RetroGlideExtension.getSongModel(dataSet[i]))
- .transition(RetroGlideExtension.getDefaultTransition())
- .songOptions(dataSet[i])
- .into(object : RetroMusicColoredTarget(holder.itemView.findViewById(holder.ids[i]) as ImageView) {
- override fun onColorReady(color: Int) {
-
- }
- })
- }
- }
- }
-
- override fun getItemCount(): Int {
- return 1
- }
-
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CollageSongViewHolder {
- return CollageSongViewHolder(LayoutInflater.from(activity).inflate(R.layout.item_collage, parent, false))
- }
-
- inner class CollageSongViewHolder(itemView: View) : MediaEntryViewHolder(itemView) {
-
- val ids = arrayListOf(R.id.image_2, R.id.image_3, R.id.image_4, R.id.image_5, R.id.image_6, R.id.image_7, R.id.image_8, R.id.image_9)
- private var textView: TextView = itemView.findViewById(R.id.image_1)
-
- fun bindSongs() {
- for (i in ids) {
- val imageView = itemView.findViewById(i)
- imageView.setOnClickListener {
- textView.setOnClickListener { MusicPlayerRemote.openQueue(dataSet, 0, true) }
- }
- }
-
- val context = itemView.context
- val color = ThemeStore.accentColor(context);
-
- textView.setOnClickListener { MusicPlayerRemote.openQueue(dataSet, 0, true) }
- textView.setBackgroundColor(color);
- textView.setTextColor(MaterialValueHelper.getPrimaryTextColor(context, ColorUtil.isColorLight(color)))
- }
- }
-}
diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/GenreAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/GenreAdapter.kt
index 60839503..1e70dc29 100644
--- a/app/src/main/java/code/name/monkey/retromusic/adapter/GenreAdapter.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/adapter/GenreAdapter.kt
@@ -25,11 +25,11 @@ class GenreAdapter(private val mActivity: Activity, dataSet: ArrayList, p
this.dataSet = dataSet
}
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GenreAdapter.ViewHolder {
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
return ViewHolder(LayoutInflater.from(mActivity).inflate(mItemLayoutRes, parent, false))
}
- override fun onBindViewHolder(holder: GenreAdapter.ViewHolder, position: Int) {
+ override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val genre = dataSet[position]
if (holder.title != null) {
holder.title!!.text = genre.name
diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/SpanSongsAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/SpanSongsAdapter.kt
deleted file mode 100644
index 313f65c2..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/adapter/SpanSongsAdapter.kt
+++ /dev/null
@@ -1,20 +0,0 @@
-package code.name.monkey.retromusic.adapter
-
-import androidx.appcompat.app.AppCompatActivity
-import androidx.recyclerview.widget.StaggeredGridLayoutManager
-import code.name.monkey.retromusic.interfaces.CabHolder
-import code.name.monkey.retromusic.model.Song
-import code.name.monkey.retromusic.adapter.song.SongAdapter
-import java.util.*
-
-class SpanSongsAdapter(activity: AppCompatActivity, dataSet: ArrayList, itemLayoutRes: Int, usePalette: Boolean, cabHolder: CabHolder?) : SongAdapter(activity, dataSet, itemLayoutRes, usePalette, cabHolder) {
-
- override fun onBindViewHolder(holder: SongAdapter.ViewHolder, position: Int) {
- super.onBindViewHolder(holder, position)
- if (position == 0) {
- val params = StaggeredGridLayoutManager.LayoutParams(StaggeredGridLayoutManager.LayoutParams.WRAP_CONTENT, StaggeredGridLayoutManager.LayoutParams.MATCH_PARENT)
- params.isFullSpan = true
- holder.itemView.layoutParams = params
- }
- }
-}
diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumAdapter.kt
index 3bf36fdd..ab204ef3 100644
--- a/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumAdapter.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/adapter/album/AlbumAdapter.kt
@@ -12,6 +12,8 @@ import androidx.core.util.Pair
import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.MaterialValueHelper
import code.name.monkey.retromusic.R
+import code.name.monkey.retromusic.adapter.base.AbsMultiSelectAdapter
+import code.name.monkey.retromusic.adapter.base.MediaEntryViewHolder
import code.name.monkey.retromusic.glide.GlideApp
import code.name.monkey.retromusic.glide.RetroGlideExtension
import code.name.monkey.retromusic.glide.RetroMusicColoredTarget
@@ -21,13 +23,10 @@ import code.name.monkey.retromusic.helper.menu.SongsMenuHelper
import code.name.monkey.retromusic.interfaces.CabHolder
import code.name.monkey.retromusic.model.Album
import code.name.monkey.retromusic.model.Song
-import code.name.monkey.retromusic.adapter.base.AbsMultiSelectAdapter
-import code.name.monkey.retromusic.adapter.base.MediaEntryViewHolder
import code.name.monkey.retromusic.util.MusicUtil
import code.name.monkey.retromusic.util.NavigationUtil
import code.name.monkey.retromusic.util.PreferenceUtil
import com.simplecityapps.recyclerview_fastscroll.views.FastScrollRecyclerView
-import java.util.*
open class AlbumAdapter(protected val activity: AppCompatActivity,
@@ -200,7 +199,10 @@ open class AlbumAdapter(protected val activity: AppCompatActivity,
if (isInQuickSelectMode) {
toggleChecked(adapterPosition)
} else {
- val albumPairs = arrayOf>(Pair.create(image, activity.resources.getString(R.string.transition_album_art)))
+ val pairImageView = Pair.create(image, activity.resources.getString(R.string.transition_album_art))
+ val pairs = ArrayList>()
+ pairs.add(pairImageView)
+ val albumPairs: Array> = pairs.toTypedArray()
NavigationUtil.goToAlbum(activity, dataSet[adapterPosition].id, *albumPairs)
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/playlist/PlaylistAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/playlist/PlaylistAdapter.kt
index e8465c09..d2e1c873 100755
--- a/app/src/main/java/code/name/monkey/retromusic/adapter/playlist/PlaylistAdapter.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/adapter/playlist/PlaylistAdapter.kt
@@ -12,6 +12,8 @@ import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.ATHUtil
import code.name.monkey.appthemehelper.util.TintHelper
import code.name.monkey.retromusic.R
+import code.name.monkey.retromusic.adapter.base.AbsMultiSelectAdapter
+import code.name.monkey.retromusic.adapter.base.MediaEntryViewHolder
import code.name.monkey.retromusic.dialogs.ClearSmartPlaylistDialog
import code.name.monkey.retromusic.dialogs.DeletePlaylistDialog
import code.name.monkey.retromusic.helper.menu.PlaylistMenuHelper
@@ -23,8 +25,6 @@ import code.name.monkey.retromusic.model.Playlist
import code.name.monkey.retromusic.model.Song
import code.name.monkey.retromusic.model.smartplaylist.AbsSmartPlaylist
import code.name.monkey.retromusic.model.smartplaylist.LastAddedPlaylist
-import code.name.monkey.retromusic.adapter.base.AbsMultiSelectAdapter
-import code.name.monkey.retromusic.adapter.base.MediaEntryViewHolder
import code.name.monkey.retromusic.util.MusicUtil
import code.name.monkey.retromusic.util.NavigationUtil
import java.util.*
@@ -61,17 +61,7 @@ class PlaylistAdapter(protected val activity: AppCompatActivity, dataSet: ArrayL
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
- /* if (getItemViewType(position) == SMART_PLAYLIST) {
- if (holder.viewList != null) {
- holder.viewList.get(0).setOnClickListener(
- v -> NavigationUtil.goToPlaylistNew(activity, new HistoryPlaylist(activity)));
- holder.viewList.get(1).setOnClickListener(
- v -> NavigationUtil.goToPlaylistNew(activity, new LastAddedPlaylist(activity)));
- holder.viewList.get(2).setOnClickListener(
- v -> NavigationUtil.goToPlaylistNew(activity, new MyTopTracksPlaylist(activity)));
- }
- return;
- }*/
+
val playlist = dataSet[position]
val songs = getSongs(playlist)
holder.itemView.isActivated = isChecked(playlist)
diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/song/AbsOffsetSongAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/song/AbsOffsetSongAdapter.kt
index 98a0f5ae..53b3d2e2 100644
--- a/app/src/main/java/code/name/monkey/retromusic/adapter/song/AbsOffsetSongAdapter.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/adapter/song/AbsOffsetSongAdapter.kt
@@ -20,7 +20,7 @@ abstract class AbsOffsetSongAdapter : SongAdapter {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SongAdapter.ViewHolder {
if (viewType == OFFSET_ITEM) {
- val view = LayoutInflater.from(activity).inflate(R.layout.item_list_single_row, parent, false)
+ val view = LayoutInflater.from(activity).inflate(R.layout.item_list_quick_actions, parent, false)
return createViewHolder(view)
}
return super.onCreateViewHolder(parent, viewType)
diff --git a/app/src/main/java/code/name/monkey/retromusic/adapter/song/PlaylistSongAdapter.kt b/app/src/main/java/code/name/monkey/retromusic/adapter/song/PlaylistSongAdapter.kt
index b39a0823..7f8d5355 100644
--- a/app/src/main/java/code/name/monkey/retromusic/adapter/song/PlaylistSongAdapter.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/adapter/song/PlaylistSongAdapter.kt
@@ -1,20 +1,29 @@
package code.name.monkey.retromusic.adapter.song
+import android.content.res.ColorStateList
import android.view.MenuItem
import android.view.View
import androidx.annotation.LayoutRes
import androidx.appcompat.app.AppCompatActivity
import androidx.core.util.Pair
-import code.name.monkey.appthemehelper.ThemeStore
+import code.name.monkey.appthemehelper.util.ColorUtil
+import code.name.monkey.appthemehelper.util.MaterialValueHelper
import code.name.monkey.retromusic.R
+import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.interfaces.CabHolder
import code.name.monkey.retromusic.model.Song
-import code.name.monkey.retromusic.util.MusicUtil
import code.name.monkey.retromusic.util.NavigationUtil
+import code.name.monkey.retromusic.util.RetroUtil
+import com.google.android.material.button.MaterialButton
import java.util.*
-open class PlaylistSongAdapter(activity: AppCompatActivity, dataSet: ArrayList, @LayoutRes itemLayoutRes: Int, usePalette: Boolean, cabHolder: CabHolder?) : AbsOffsetSongAdapter(activity, dataSet, itemLayoutRes, usePalette, cabHolder, false) {
+open class PlaylistSongAdapter(activity: AppCompatActivity,
+ dataSet: ArrayList,
+ @LayoutRes itemLayoutRes: Int,
+ usePalette: Boolean,
+ cabHolder: CabHolder?) :
+ AbsOffsetSongAdapter(activity, dataSet, itemLayoutRes, usePalette, cabHolder, false) {
init {
this.setMultiSelectMenuRes(R.menu.menu_cannot_delete_single_songs_playlist_songs_selection)
@@ -25,35 +34,30 @@ open class PlaylistSongAdapter(activity: AppCompatActivity, dataSet: ArrayList message = getString(R.string.title_good_night)
- in 6..11 -> message = getString(R.string.title_good_morning)
- in 12..15 -> message = getString(R.string.title_good_afternoon)
- in 16..19 -> message = getString(R.string.title_good_evening)
- in 20..23 -> message = getString(R.string.title_good_night)
- }
- return message
- }
-
- override fun onDestroyView() {
- super.onDestroyView()
- disposable.dispose()
- }
-
- override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
- return inflater.inflate(R.layout.fragment_main_options, container, false)
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
-
- text.setTextColor(ThemeStore.textColorSecondary(context!!))
- text.text = PreferenceUtil.getInstance().userBio
- titleWelcome.setTextColor(ThemeStore.textColorPrimary(context!!))
- titleWelcome.text = String.format("%s %s!", timeOfTheDay, PreferenceUtil.getInstance().userName)
-
- loadImageFromStorage()
-
- actionSettings.setOnClickListener(this)
-
- actionSleepTimer.setOnClickListener(this)
- actionLibrary.setOnClickListener(this)
- userInfoContainer.setOnClickListener(this)
- actionEqualizer.setOnClickListener(this)
- actionFolders.setOnClickListener(this)
- actionRate.setOnClickListener(this)
- actionShare.setOnClickListener(this)
- actionBugReport.setOnClickListener(this)
- buyProContainer.apply {
- setCardBackgroundColor(ThemeStore.accentColor(context!!))
- visibility = if (!App.isProVersion) View.VISIBLE else View.GONE
- setOnClickListener {
- NavigationUtil.goToProVersion(context)
- }
- }
- }
+import com.afollestad.materialdialogs.MaterialDialog
+import com.afollestad.materialdialogs.bottomsheets.BottomSheet
+import com.afollestad.materialdialogs.customview.customView
+import kotlinx.android.synthetic.main.fragment_main_settings.*
+class OptionsSheetDialogFragment : DialogFragment(), View.OnClickListener {
override fun onClick(view: View) {
val mainActivity = activity as MainActivity? ?: return
@@ -103,18 +42,16 @@ class OptionsSheetDialogFragment : RoundedBottomSheetDialogFragment(), View.OnCl
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) {
SleepTimerDialog().show(fragmentManager!!, TAG)
}
- R.id.userInfoContainer -> NavigationUtil.goToUserInfo(mainActivity)
R.id.actionRate -> NavigationUtil.goToPlayStore(mainActivity)
R.id.actionShare -> shareApp()
R.id.actionBugReport -> prepareBugReport()
R.id.actionEqualizer -> NavigationUtil.openEqualizer(mainActivity)
}
- dismiss()
+ materialDialog.dismiss()
}
private fun prepareBugReport() {
@@ -122,33 +59,48 @@ class OptionsSheetDialogFragment : RoundedBottomSheetDialogFragment(), View.OnCl
}
private fun shareApp() {
- val shareIntent = ShareCompat.IntentBuilder.from(activity)
- .setType("songText/plain")
+ ShareCompat.IntentBuilder.from(activity)
+ .setType("text/plain")
+ .setChooserTitle(R.string.action_share)
.setText(String.format(getString(R.string.app_share), activity!!.packageName))
- .intent
- if (shareIntent.resolveActivity(activity!!.packageManager) != null) {
- startActivity(
- Intent.createChooser(shareIntent, resources.getText(R.string.action_share)))
- }
+ .startChooser()
}
- private fun loadImageFromStorage() {
+ private lateinit var actionSettings: View
+ private lateinit var actionSleepTimer: View
+ private lateinit var actionLibrary: View
+ private lateinit var actionEqualizer: View
+ private lateinit var actionFolders: View
+ private lateinit var actionRate: View
+ private lateinit var actionShare: View
+ private lateinit var actionBugReport: View
+ private lateinit var materialDialog: MaterialDialog
- disposable.add(Compressor(context!!)
- .setMaxHeight(300)
- .setMaxWidth(300)
- .setQuality(75)
- .setCompressFormat(Bitmap.CompressFormat.WEBP)
- .compressToBitmapAsFlowable(
- File(PreferenceUtil.getInstance().profileImage, USER_PROFILE))
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe({ userImage!!.setImageBitmap(it) }, {
- userImage!!.setImageDrawable(ContextCompat
- .getDrawable(context!!, R.drawable.ic_account_white_24dp))
- }, {
+ override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+ val layout = LayoutInflater.from(context).inflate(R.layout.fragment_main_options, null)
+ actionSettings = layout.findViewById(R.id.actionSettings)
+ actionSleepTimer = layout.findViewById(R.id.actionSleepTimer)
+ actionLibrary = layout.findViewById(R.id.actionLibrary)
+ actionEqualizer = layout.findViewById(R.id.actionEqualizer)
+ actionFolders = layout.findViewById(R.id.actionFolders)
+ actionRate = layout.findViewById(R.id.actionRate)
+ actionShare = layout.findViewById(R.id.actionShare)
+ actionBugReport = layout.findViewById(R.id.actionBugReport)
- }))
+ actionSettings.setOnClickListener(this)
+ actionSleepTimer.setOnClickListener(this)
+ actionLibrary.setOnClickListener(this)
+ actionEqualizer.setOnClickListener(this)
+ actionFolders.setOnClickListener(this)
+ actionRate.setOnClickListener(this)
+ actionShare.setOnClickListener(this)
+ actionBugReport.setOnClickListener(this)
+
+ materialDialog = MaterialDialog(activity!!, BottomSheet())
+ .show {
+ customView(view = layout, scrollable = true)
+ }
+ return materialDialog
}
companion object {
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 99183767..b2636d4e 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
@@ -27,47 +27,6 @@ import com.afollestad.materialdialogs.bottomsheets.BottomSheet
class RemoveFromPlaylistDialog : DialogFragment() {
- /*override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
- return inflater.inflate(code.name.monkey.retromusic.R.layout.dialog_delete, container, false)
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- val songs = arguments!!.getParcelableArrayList("songs")
- val content: CharSequence
- if (songs!!.size > 1) {
- content = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
- Html.fromHtml(getString(code.name.monkey.retromusic.R.string.remove_x_songs_from_playlist, songs.size), Html.FROM_HTML_MODE_LEGACY)
- } else {
- Html.fromHtml(getString(code.name.monkey.retromusic.R.string.remove_x_songs_from_playlist, songs.size))
- }
- } else {
- content = Html.fromHtml(getString(code.name.monkey.retromusic.R.string.remove_song_x_from_playlist, songs[0].title))
- }
- bannerTitle.setTextColor(ThemeStore.textColorPrimary(context!!))
- bannerTitle.text = content;
- actionDelete.apply {
- setIconResource(code.name.monkey.retromusic.R.drawable.ic_delete_white_24dp)
- setText(code.name.monkey.retromusic.R.string.remove_action)
- setTextColor(ThemeStore.textColorSecondary(context))
- setOnClickListener {
- val playlistSongs = ArrayList()
- playlistSongs.addAll(songs as ArrayList)
- PlaylistsUtil.removeFromPlaylist(activity!!, playlistSongs)
- dismiss()
- }
- MaterialUtil.setTint(this)
- }
-
-
- actionCancel.apply {
- setIconResource(code.name.monkey.retromusic.R.drawable.ic_close_white_24dp)
- setTextColor(ThemeStore.textColorSecondary(context))
- setOnClickListener { dismiss() }
- MaterialUtil.setTint(this, false)
- }
- }
-*/
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val songs = arguments!!.getParcelableArrayList("songs")
@@ -82,16 +41,17 @@ class RemoveFromPlaylistDialog : DialogFragment() {
}
- return MaterialDialog(activity!!, BottomSheet()).show {
- title(title)
- message(text = content)
- negativeButton(android.R.string.cancel)
- positiveButton(R.string.remove_action) {
- if (activity == null)
- return@positiveButton
- PlaylistsUtil.removeFromPlaylist(activity!!, songs as MutableList)
- }
- }
+ return MaterialDialog(activity!!, BottomSheet())
+ .show {
+ title(title)
+ message(text = content)
+ negativeButton(android.R.string.cancel)
+ positiveButton(R.string.remove_action) {
+ if (activity == null)
+ return@positiveButton
+ PlaylistsUtil.removeFromPlaylist(activity!!, songs as MutableList)
+ }
+ }
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/ScanMediaFolderChooserDialog.java b/app/src/main/java/code/name/monkey/retromusic/dialogs/ScanMediaFolderChooserDialog.java
deleted file mode 100644
index 5b4acea7..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/dialogs/ScanMediaFolderChooserDialog.java
+++ /dev/null
@@ -1 +0,0 @@
-/*
* 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.dialogs;
import android.app.Activity;
import android.content.Context;
import android.media.MediaScannerConnection;
import android.os.Bundle;
import android.widget.Toast;
import com.afollestad.materialdialogs.MaterialDialog;
import java.io.File;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.DialogFragment;
import code.name.monkey.retromusic.R;
import code.name.monkey.retromusic.misc.UpdateToastMediaScannerCompletionListener;
import code.name.monkey.retromusic.util.PreferenceUtil;
public class ScanMediaFolderChooserDialog extends DialogFragment /*implements MaterialDialog.ListCallback*/ {
String initialPath = PreferenceUtil.getInstance().getStartDirectory().getAbsolutePath();
private File parentFolder;
private File[] parentContents;
private boolean canGoUp = false;
public static ScanMediaFolderChooserDialog create() {
return new ScanMediaFolderChooserDialog();
}
private static void scanPaths(@NonNull WeakReference activityWeakReference, @NonNull Context applicationContext, @Nullable String[] toBeScanned) {
Activity activity = activityWeakReference.get();
if (toBeScanned == null || toBeScanned.length < 1) {
Toast.makeText(applicationContext, R.string.nothing_to_scan, Toast.LENGTH_SHORT).show();
} else {
MediaScannerConnection.scanFile(applicationContext, toBeScanned, null, activity != null ? new UpdateToastMediaScannerCompletionListener(activity, toBeScanned) : null);
}
}
private String[] getContentsArray() {
if (parentContents == null) {
if (canGoUp) {
return new String[]{".."};
}
return new String[]{};
}
String[] results = new String[parentContents.length + (canGoUp ? 1 : 0)];
if (canGoUp) {
results[0] = "..";
}
for (int i = 0; i < parentContents.length; i++) {
results[canGoUp ? i + 1 : i] = parentContents[i].getName();
}
return results;
}
private File[] listFiles() {
File[] contents = parentFolder.listFiles();
List results = new ArrayList<>();
if (contents != null) {
for (File fi : contents) {
if (fi.isDirectory()) {
results.add(fi);
}
}
Collections.sort(results, new FolderSorter());
return results.toArray(new File[results.size()]);
}
return null;
}
/*@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& ActivityCompat.checkSelfPermission(
getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
return new MaterialDialog.Builder(getActivity())
.title(R.string.md_error_label)
.content(R.string.md_storage_perm_error)
.positiveText(android.R.string.ok)
.build();
}
if (savedInstanceState == null) {
savedInstanceState = new Bundle();
}
if (!savedInstanceState.containsKey("current_path")) {
savedInstanceState.putString("current_path", initialPath);
}
parentFolder = new File(savedInstanceState.getString("current_path", File.pathSeparator));
checkIfCanGoUp();
parentContents = listFiles();
MaterialDialog.Builder builder =
new MaterialDialog.Builder(getActivity())
.title(parentFolder.getAbsolutePath())
.items((CharSequence[]) getContentsArray())
.itemsCallback(this)
.autoDismiss(false)
.onPositive((dialog, which) -> {
final Context applicationContext = getActivity().getApplicationContext();
final WeakReference activityWeakReference = new WeakReference<>(getActivity());
dismiss();
new FoldersFragment.ListPathsAsyncTask(getActivity(), paths ->
scanPaths(activityWeakReference, applicationContext, paths)).execute(new FoldersFragment.ListPathsAsyncTask.LoadingInfo(parentFolder, FoldersFragment.AUDIO_FILE_FILTER));
})
.onNegative((materialDialog, dialogAction) -> dismiss())
.positiveText(R.string.action_scan_directory)
.negativeText(android.R.string.cancel);
return builder.build();
}
@Override
public void onSelection(MaterialDialog materialDialog, View view, int i, CharSequence s) {
if (canGoUp && i == 0) {
parentFolder = parentFolder.getParentFile();
if (parentFolder.getAbsolutePath().equals("/storage/emulated")) {
parentFolder = parentFolder.getParentFile();
}
checkIfCanGoUp();
} else {
parentFolder = parentContents[canGoUp ? i - 1 : i];
canGoUp = true;
if (parentFolder.getAbsolutePath().equals("/storage/emulated")) {
parentFolder = Environment.getExternalStorageDirectory();
}
}
reload();
}*/
private void checkIfCanGoUp() {
canGoUp = parentFolder.getParent() != null;
}
private void reload() {
parentContents = listFiles();
MaterialDialog dialog = (MaterialDialog) getDialog();
dialog.setTitle(parentFolder.getAbsolutePath());
//dialog.setItems((CharSequence[]) getContentsArray());
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("current_path", parentFolder.getAbsolutePath());
}
private static class FolderSorter implements Comparator {
@Override
public int compare(File lhs, File rhs) {
return lhs.getName().compareTo(rhs.getName());
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/MiniPlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/MiniPlayerFragment.kt
index e7ace8b6..777d0b79 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/MiniPlayerFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/MiniPlayerFragment.kt
@@ -124,7 +124,7 @@ open class MiniPlayerFragment : AbsMusicServiceFragment(), MusicProgressViewUpda
if (MusicPlayerRemote.isPlaying) {
miniPlayerPlayPauseButton!!.setImageResource(R.drawable.ic_pause_white_24dp)
} else {
- miniPlayerPlayPauseButton!!.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ miniPlayerPlayPauseButton!!.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/VolumeFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/VolumeFragment.kt
index d5d46d2e..4daa88b1 100755
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/VolumeFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/VolumeFragment.kt
@@ -79,7 +79,7 @@ class VolumeFragment : Fragment(), SeekBar.OnSeekBarChangeListener, OnAudioVolum
val audioManager = audioManager
audioManager?.setStreamVolume(AudioManager.STREAM_MUSIC, i, 0)
setPauseWhenZeroVolume(i < 1)
- volumeDown!!.setImageResource(if (i == 0) R.drawable.ic_volume_off_white_24dp else R.drawable.ic_volume_down_white_24dp)
+ volumeDown?.setImageResource(if (i == 0) R.drawable.ic_volume_off_white_24dp else R.drawable.ic_volume_down_white_24dp)
}
@@ -118,8 +118,8 @@ class VolumeFragment : Fragment(), SeekBar.OnSeekBarChangeListener, OnAudioVolum
}
private fun setPauseWhenZeroVolume(pauseWhenZeroVolume: Boolean) {
- if (PreferenceUtil.getInstance().pauseOnZeroVolume() && pauseWhenZeroVolume)
- if (MusicPlayerRemote.isPlaying) {
+ if (PreferenceUtil.getInstance().pauseOnZeroVolume())
+ if (MusicPlayerRemote.isPlaying && pauseWhenZeroVolume) {
MusicPlayerRemote.pauseSong()
} else {
MusicPlayerRemote.resumePlaying()
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsMainActivityFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsMainActivityFragment.kt
index 168f418f..0765d7bd 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsMainActivityFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsMainActivityFragment.kt
@@ -3,13 +3,12 @@ package code.name.monkey.retromusic.fragments.base
import android.os.Build
import android.os.Bundle
import android.view.View
-
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.VersionUtils
import code.name.monkey.retromusic.R
-import code.name.monkey.retromusic.dialogs.OptionsSheetDialogFragment
import code.name.monkey.retromusic.activities.MainActivity
+import code.name.monkey.retromusic.dialogs.OptionsSheetDialogFragment
abstract class AbsMainActivityFragment : AbsMusicServiceFragment() {
@@ -50,6 +49,6 @@ abstract class AbsMainActivityFragment : AbsMusicServiceFragment() {
}
protected fun showMainMenu() {
- OptionsSheetDialogFragment.newInstance().show(childFragmentManager, "Main Menu")
+ OptionsSheetDialogFragment.newInstance().show(childFragmentManager, "Main_Menu")
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/GenreFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/GenreFragment.kt
deleted file mode 100644
index eb5989bd..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/GenreFragment.kt
+++ /dev/null
@@ -1,91 +0,0 @@
-package code.name.monkey.retromusic.fragments.mainactivity
-
-import android.os.Bundle
-import android.view.Menu
-import android.view.MenuInflater
-import androidx.recyclerview.widget.LinearLayoutManager
-import code.name.monkey.retromusic.R
-import code.name.monkey.retromusic.model.Genre
-import code.name.monkey.retromusic.mvp.contract.GenreContract
-import code.name.monkey.retromusic.mvp.presenter.GenrePresenter
-import code.name.monkey.retromusic.adapter.GenreAdapter
-import code.name.monkey.retromusic.fragments.base.AbsLibraryPagerRecyclerViewFragment
-import code.name.monkey.retromusic.util.PreferenceUtil
-import java.util.*
-
-class GenreFragment : AbsLibraryPagerRecyclerViewFragment(), GenreContract.GenreView {
-
- private var mPresenter: GenrePresenter? = null
-
- override val emptyMessage: Int
- get() = R.string.no_genres
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setHasOptionsMenu(true)
- mPresenter = GenrePresenter(this)
- }
-
- override fun setMenuVisibility(menuVisible: Boolean) {
- super.setMenuVisibility(menuVisible)
- if (menuVisible) {
- libraryFragment.setTitle(if (PreferenceUtil.getInstance().tabTitles()) R.string.library else R.string.genres)
- }
- }
-
- override fun onResume() {
- super.onResume()
- libraryFragment.setTitle(if (PreferenceUtil.getInstance().tabTitles()) R.string.library else R.string.genres)
- if (adapter!!.dataSet.isEmpty()) {
- mPresenter!!.subscribe()
- }
- }
-
-
- override fun onDestroy() {
- super.onDestroy()
- mPresenter!!.unsubscribe()
- }
-
- override fun createLayoutManager(): LinearLayoutManager {
- return LinearLayoutManager(activity)
- }
-
- override fun createAdapter(): GenreAdapter {
- val dataSet = adapter!!.dataSet
- return GenreAdapter(libraryFragment.mainActivity, dataSet, R.layout.item_list)
- }
-
- override fun loading() {
-
- }
-
- override fun showData(list: ArrayList) {
- adapter!!.swapDataSet(list)
- }
-
- override fun showEmptyView() {
- adapter!!.swapDataSet(ArrayList())
- }
-
- override fun completed() {
-
- }
-
- override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
- super.onCreateOptionsMenu(menu, inflater)
- menu.removeItem(R.id.action_sort_order)
- menu.removeItem(R.id.action_grid_size)
- menu.removeItem(R.id.action_new_playlist)
- }
-
- companion object {
-
- fun newInstance(): GenreFragment {
- val args = Bundle()
- val fragment = GenreFragment()
- fragment.arguments = args
- return fragment
- }
- }
-}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/LibraryFragment.java b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/LibraryFragment.java
index 5cd05650..f422220d 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/LibraryFragment.java
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/LibraryFragment.java
@@ -1,6 +1,7 @@
package code.name.monkey.retromusic.fragments.mainactivity;
import android.app.Activity;
+import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -9,25 +10,26 @@ import android.view.MenuItem;
import android.view.SubMenu;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.widget.Toolbar;
+import androidx.core.util.Pair;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import com.afollestad.materialcab.MaterialCab;
import com.google.android.material.appbar.AppBarLayout;
+import com.google.android.material.card.MaterialCardView;
import org.jetbrains.annotations.NotNull;
import code.name.monkey.appthemehelper.ThemeStore;
import code.name.monkey.appthemehelper.common.ATHToolbarActivity;
import code.name.monkey.appthemehelper.util.ATHUtil;
+import code.name.monkey.appthemehelper.util.ColorUtil;
import code.name.monkey.appthemehelper.util.TintHelper;
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper;
import code.name.monkey.retromusic.R;
@@ -50,12 +52,12 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
private Toolbar toolbar;
private AppBarLayout appBarLayout;
private View contentContainer;
+ private MaterialCardView toolbarContainer;
private MaterialCab cab;
private FragmentManager fragmentManager;
- private ImageView userImage;
private CompositeDisposable disposable;
- private TextView bannerTitle;
+
@NonNull
public static Fragment newInstance(int tab) {
@@ -84,16 +86,15 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
View view = inflater.inflate(R.layout.fragment_library, container, false);
disposable = new CompositeDisposable();
contentContainer = view.findViewById(R.id.fragmentContainer);
- bannerTitle = view.findViewById(R.id.bannerTitle);
+ toolbarContainer = view.findViewById(R.id.toolbarContainer);
appBarLayout = view.findViewById(R.id.appBarLayout);
toolbar = view.findViewById(R.id.toolbar);
- userImage = view.findViewById(R.id.userImage);
- userImage.setOnClickListener(v -> showMainMenu());
+
return view;
}
-
+
public void setTitle(@StringRes int name) {
- bannerTitle.setText(getString(name));
+ toolbar.setTitle(getString(name));
}
public void addOnAppBarOffsetChangedListener(@NonNull AppBarLayout.OnOffsetChangedListener onOffsetChangedListener) {
@@ -143,17 +144,16 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
private void setupToolbar() {
int primaryColor = ThemeStore.Companion.primaryColor(getContext());
TintHelper.setTintAuto(contentContainer, primaryColor, true);
- bannerTitle.setTextColor(ThemeStore.Companion.textColorPrimary(getContext()));
-
- toolbar.setBackgroundColor(primaryColor);
- toolbar.setNavigationIcon(null);
+ toolbar.setBackgroundColor(RetroUtil.toolbarColor(getMainActivity()));
+ toolbar.setNavigationIcon(R.drawable.ic_menu_white_24dp);
+ toolbar.setOnClickListener(v -> {
+ Pair pair = new Pair<>(toolbarContainer, getString(R.string.transition_toolbar));
+ NavigationUtil.goToSearch(getMainActivity(), pair);
+ });
appBarLayout.setBackgroundColor(primaryColor);
appBarLayout.addOnOffsetChangedListener((appBarLayout, verticalOffset) ->
getMainActivity().setLightStatusbar(!ATHUtil.INSTANCE.isWindowBackgroundDark(getContext())));
- getMainActivity().setTitle(null);
getMainActivity().setSupportActionBar(toolbar);
-
-
}
private Fragment getCurrentFragment() {
@@ -359,7 +359,8 @@ public class LibraryFragment extends AbsMainActivityFragment implements CabHolde
int id = item.getItemId();
switch (id) {
case R.id.action_search:
- NavigationUtil.goToSearch(getMainActivity());
+ Pair pair = new Pair<>(toolbarContainer, getString(R.string.transition_toolbar));
+ NavigationUtil.goToSearch(getMainActivity(), pair);
break;
case R.id.action_new_playlist:
CreatePlaylistDialog.Companion.create().show(getChildFragmentManager(), "CREATE_PLAYLIST");
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 b6951fc7..d2123907 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
@@ -1,8 +1,8 @@
package code.name.monkey.retromusic.fragments.mainactivity.folders;
import android.app.Dialog;
+import android.app.ProgressDialog;
import android.content.Context;
-import android.graphics.drawable.Drawable;
import android.media.MediaScannerConnection;
import android.os.Bundle;
import android.os.Environment;
@@ -14,10 +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;
import android.widget.Toast;
import androidx.annotation.NonNull;
@@ -29,12 +26,6 @@ import androidx.recyclerview.widget.LinearLayoutManager;
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;
@@ -59,7 +50,6 @@ 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;
@@ -73,11 +63,10 @@ import code.name.monkey.retromusic.model.Song;
import code.name.monkey.retromusic.util.FileUtil;
import code.name.monkey.retromusic.util.PreferenceUtil;
import code.name.monkey.retromusic.util.RetroColorUtil;
+import code.name.monkey.retromusic.util.RetroUtil;
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,
@@ -95,16 +84,12 @@ public class FoldersFragment extends AbsMainActivityFragment implements
private View coordinatorLayout, container, empty;
- private TextView title;
-
private Toolbar toolbar;
private BreadCrumbLayout breadCrumbs;
private AppBarLayout appBarLayout;
- private ImageView userImage;
-
private FastScrollRecyclerView recyclerView;
private Comparator fileComparator = (lhs, rhs) -> {
@@ -162,14 +147,12 @@ public class FoldersFragment extends AbsMainActivityFragment implements
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);
toolbar = view.findViewById(R.id.toolbar);
empty = view.findViewById(android.R.id.empty);
- title = view.findViewById(R.id.bannerTitle);
container = view.findViewById(R.id.container);
}
@@ -242,19 +225,15 @@ public class FoldersFragment extends AbsMainActivityFragment implements
}
private void setUpAppbarColor() {
- title.setTextColor(ThemeStore.Companion.textColorPrimary(getContext()));
-
int primaryColor = ThemeStore.Companion.primaryColor(getContext());
-
- getActivity().setTitle(null);
getMainActivity().setSupportActionBar(toolbar);
TintHelper.setTintAuto(container, primaryColor, true);
appBarLayout.setBackgroundColor(primaryColor);
- toolbar.setBackgroundColor(primaryColor);
- toolbar.setNavigationOnClickListener(v -> {
- getActivity().onBackPressed();
+ toolbar.setBackgroundColor(RetroUtil.toolbarColor(getMainActivity()));
+ toolbar.setNavigationIcon(R.drawable.ic_menu_white_24dp);
+ toolbar.setOnClickListener(v -> {
+ showMainMenu();
});
-
breadCrumbs.setActivatedContentColor(ToolbarContentTintHelper.toolbarTitleColor(getActivity(), ColorUtil.INSTANCE.darkenColor(primaryColor)));
breadCrumbs.setDeactivatedContentColor(ToolbarContentTintHelper.toolbarSubtitleColor(getActivity(),
ColorUtil.INSTANCE.darkenColor(primaryColor)));
@@ -348,10 +327,6 @@ public class FoldersFragment extends AbsMainActivityFragment implements
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
- case android.R.id.home:
- //noinspection ConstantConditions
- getActivity().onBackPressed();
- break;
case R.id.action_go_to_start_directory:
setCrumb(new BreadCrumbLayout.Crumb(tryGetCanonicalFile(PreferenceUtil.getInstance().getStartDirectory())), true);
return true;
@@ -489,8 +464,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements
private void checkIsEmpty() {
if (empty != null) {
- empty
- .setVisibility(adapter == null || adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE);
+ empty.setVisibility(adapter == null || adapter.getItemCount() == 0 ? View.VISIBLE : View.GONE);
}
}
@@ -754,21 +728,13 @@ public class FoldersFragment extends AbsMainActivityFragment implements
@Override
protected Dialog createDialog(@NonNull Context context) {
- View view = LayoutInflater.from(context).inflate(R.layout.progress_bar, null);
- view.setBackgroundColor(ThemeStore.Companion.primaryColor(context));
- ProgressBar progressBar = view.findViewById(R.id.progressBar);
- TintHelper.setTintAuto(progressBar, ThemeStore.Companion.accentColor(context), false);
-
- MaterialDialog materialDialog = new MaterialDialog(context, new BottomSheet());
- materialDialog.setContentView(view);
- materialDialog.title(R.string.listing_files, "");
- materialDialog.setOnCancelListener(dialog -> cancel(false));
- materialDialog.setOnDismissListener(dialog -> cancel(false));
- materialDialog.negativeButton(android.R.string.cancel, "", materialDialog1 -> {
- cancel(false);
- return null;
- });
- return materialDialog;
+ ProgressDialog dialog = new ProgressDialog(context);
+ dialog.setIndeterminate(true);
+ dialog.setTitle(R.string.listing_files);
+ dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
+ dialog.setOnCancelListener(dialog1 -> cancel(false));
+ dialog.setOnDismissListener(dialog1 -> cancel(false));
+ return dialog;
}
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/home/BannerHomeFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/home/BannerHomeFragment.kt
index 57b87883..a583a67e 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/home/BannerHomeFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/home/BannerHomeFragment.kt
@@ -2,18 +2,19 @@ package code.name.monkey.retromusic.fragments.mainactivity.home
import android.graphics.Bitmap
import android.graphics.Color
-import android.graphics.drawable.Drawable
import android.os.Bundle
import android.util.DisplayMetrics
import android.view.*
-import android.widget.ImageView
import androidx.appcompat.widget.Toolbar
+import androidx.core.content.ContextCompat
+import androidx.core.util.Pair
import androidx.recyclerview.widget.LinearLayoutManager
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.common.ATHToolbarActivity
+import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
+import code.name.monkey.retromusic.Constants
import code.name.monkey.retromusic.Constants.USER_BANNER
-import code.name.monkey.retromusic.Constants.USER_PROFILE
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.adapter.HomeAdapter
import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment
@@ -32,14 +33,12 @@ import code.name.monkey.retromusic.util.NavigationUtil
import code.name.monkey.retromusic.util.PreferenceUtil
import code.name.monkey.retromusic.util.RetroUtil
import com.bumptech.glide.load.engine.DiskCacheStrategy
-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 io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.schedulers.Schedulers
+import kotlinx.android.synthetic.main.abs_playlists.*
import kotlinx.android.synthetic.main.fragment_banner_home.*
+import kotlinx.android.synthetic.main.fragment_home.recyclerView
import java.io.File
import java.util.*
import kotlin.collections.ArrayList
@@ -56,13 +55,32 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
private lateinit var topPlayed: View
private lateinit var actionShuffle: View
private lateinit var history: View
- private lateinit var userImage: ImageView
private lateinit var toolbar: Toolbar
override fun onCreateView(inflater: LayoutInflater, viewGroup: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(if (PreferenceUtil.getInstance().isHomeBanner) R.layout.fragment_banner_home else R.layout.fragment_home, viewGroup, false)
}
+ private fun loadImageFromStorage() {
+ disposable.add(Compressor(context!!)
+ .setMaxHeight(300)
+ .setMaxWidth(300)
+ .setQuality(75)
+ .setCompressFormat(Bitmap.CompressFormat.WEBP)
+ .compressToBitmapAsFlowable(File(PreferenceUtil.getInstance().profileImage, Constants.USER_PROFILE))
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe({
+ if (it != null) {
+ userImage.setImageBitmap(it)
+ } else {
+ userImage.setImageDrawable(ContextCompat.getDrawable(context!!, R.drawable.ic_person_flat))
+ }
+ }) {
+ userImage.setImageDrawable(ContextCompat.getDrawable(context!!, R.drawable.ic_person_flat))
+ })
+ }
+
private val displayMetrics: DisplayMetrics
get() {
val display = mainActivity.windowManager.defaultDisplay
@@ -71,44 +89,6 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
return metrics
}
- private fun getTimeOfTheDay() {
- val c = Calendar.getInstance()
- val timeOfDay = c.get(Calendar.HOUR_OF_DAY)
-
- var images = arrayOf()
- when (timeOfDay) {
- in 0..5 -> images = resources.getStringArray(R.array.night)
- in 6..11 -> images = resources.getStringArray(R.array.morning)
- in 12..15 -> images = resources.getStringArray(R.array.after_noon)
- in 16..19 -> images = resources.getStringArray(R.array.evening)
- in 20..23 -> images = resources.getStringArray(R.array.night)
- }
-
- val day = images[Random().nextInt(images.size)]
- loadTimeImage(day)
- }
-
-
- private fun loadTimeImage(day: String) {
- if (bannerImage != null) {
- if (PreferenceUtil.getInstance().bannerImage.isEmpty()) {
- GlideApp.with(activity!!)
- .load(day)
- .placeholder(R.drawable.material_design_default)
- .diskCacheStrategy(DiskCacheStrategy.ALL)
- .into(bannerImage!!)
- } else {
- disposable.add(Compressor(context!!)
- .setQuality(100)
- .setCompressFormat(Bitmap.CompressFormat.WEBP)
- .compressToBitmapAsFlowable(File(PreferenceUtil.getInstance().bannerImage, USER_BANNER))
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe { bannerImage!!.setImageBitmap(it) })
- }
- }
- }
-
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
homePresenter = HomePresenter(this)
@@ -118,7 +98,9 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
toolbar = view.findViewById(R.id.toolbar)
-
+ bannerImage?.setOnClickListener {
+ NavigationUtil.goToUserInfo(activity!!)
+ }
if (!PreferenceUtil.getInstance().isHomeBanner)
setStatusbarColorAuto(view)
@@ -142,9 +124,6 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
NavigationUtil.goToPlaylistNew(mainActivity, HistoryPlaylist(mainActivity))
}
- userImage = view.findViewById(R.id.userImage)
- userImage.setOnClickListener { showMainMenu() }
-
homePresenter = HomePresenter(this)
contentContainerView = view.findViewById(R.id.contentContainer)
@@ -156,6 +135,12 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
homePresenter.subscribe()
checkPadding()
+
+ userInfoContainer.setOnClickListener {
+ NavigationUtil.goToUserInfo(activity!!)
+ }
+ titleWelcome.setTextColor(ThemeStore.textColorPrimary(context!!))
+ titleWelcome.text = String.format("%s", PreferenceUtil.getInstance().userName)
}
private fun checkPadding() {
@@ -167,12 +152,22 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
(recyclerView.layoutParams as ViewGroup.MarginLayoutParams).bottomMargin = (marginSpan * 2.3f).toInt()
}
+ private fun toolbarColor(): Int {
+ return if (PreferenceUtil.getInstance().isHomeBanner) {
+ toolbarContainer.setBackgroundColor(Color.TRANSPARENT)
+ ColorUtil.withAlpha(RetroUtil.toolbarColor(mainActivity), 0.85f)
+ } else {
+ RetroUtil.toolbarColor(mainActivity)
+ }
+ }
+
private fun setupToolbar() {
- mainActivity.title = null
toolbar.apply {
- setBackgroundColor(if (PreferenceUtil.getInstance().isHomeBanner) Color.TRANSPARENT else ThemeStore.primaryColor(context))
- setNavigationOnClickListener {
- NavigationUtil.goToSearch(activity)
+ setBackgroundColor(toolbarColor())
+ setNavigationIcon(R.drawable.ic_menu_white_24dp)
+ setOnClickListener {
+ val pairImageView = Pair.create(toolbarContainer, resources.getString(R.string.transition_toolbar))
+ NavigationUtil.goToSearch(activity!!, pairImageView)
}
}
mainActivity.setSupportActionBar(toolbar)
@@ -243,11 +238,51 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
override fun onOptionsItemSelected(item: MenuItem): Boolean {
if (item.itemId == R.id.action_search) {
- NavigationUtil.goToSearch(mainActivity)
+ val pairImageView = Pair.create(toolbarContainer, resources.getString(R.string.transition_toolbar))
+ NavigationUtil.goToSearch(mainActivity, true, pairImageView)
}
return super.onOptionsItemSelected(item)
}
+ private fun getTimeOfTheDay() {
+ val c = Calendar.getInstance()
+ val timeOfDay = c.get(Calendar.HOUR_OF_DAY)
+
+ var images = arrayOf()
+ when (timeOfDay) {
+ in 0..5 -> images = resources.getStringArray(R.array.night)
+ in 6..11 -> images = resources.getStringArray(R.array.morning)
+ in 12..15 -> images = resources.getStringArray(R.array.after_noon)
+ in 16..19 -> images = resources.getStringArray(R.array.evening)
+ in 20..23 -> images = resources.getStringArray(R.array.night)
+ }
+
+ val day = images[Random().nextInt(images.size)]
+ loadTimeImage(day)
+ }
+
+
+ private fun loadTimeImage(day: String) {
+ if (bannerImage != null) {
+ if (PreferenceUtil.getInstance().bannerImage.isEmpty()) {
+ GlideApp.with(activity!!)
+ .load(day)
+ .placeholder(R.drawable.material_design_default)
+ .diskCacheStrategy(DiskCacheStrategy.ALL)
+ .into(bannerImage!!)
+ } else {
+ disposable.add(Compressor(context!!)
+ .setQuality(100)
+ .setCompressFormat(Bitmap.CompressFormat.WEBP)
+ .compressToBitmapAsFlowable(File(PreferenceUtil.getInstance().bannerImage, USER_BANNER))
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe { bannerImage!!.setImageBitmap(it) })
+ }
+ }
+ loadImageFromStorage()
+ }
+
companion object {
const val TAG: String = "BannerHomeFragment"
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt
index 1998c6e4..1cd64bb9 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt
@@ -120,7 +120,7 @@ class AdaptivePlaybackControlsFragment : AbsPlayerControlsFragment() {
if (MusicPlayerRemote.isPlaying) {
playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
} else {
- playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/blur/BlurPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/blur/BlurPlaybackControlsFragment.kt
index be8907a7..d465b5df 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/blur/BlurPlaybackControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/blur/BlurPlaybackControlsFragment.kt
@@ -135,7 +135,7 @@ class BlurPlaybackControlsFragment : AbsPlayerControlsFragment() {
if (MusicPlayerRemote.isPlaying) {
playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
} else {
- playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardPlaybackControlsFragment.kt
index e75ed286..5954f6b2 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardPlaybackControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardPlaybackControlsFragment.kt
@@ -149,7 +149,7 @@ class CardPlaybackControlsFragment : AbsPlayerControlsFragment() {
if (MusicPlayerRemote.isPlaying) {
playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
} else {
- playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurPlaybackControlsFragment.kt
index e6e441e4..e2a22642 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurPlaybackControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/cardblur/CardBlurPlaybackControlsFragment.kt
@@ -75,7 +75,7 @@ class CardBlurPlaybackControlsFragment : AbsPlayerControlsFragment() {
private fun updatePlayPauseDrawableState() {
when {
MusicPlayerRemote.isPlaying -> playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
- else -> playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ else -> playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/classic/ClassicPlayerPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/classic/ClassicPlayerPlaybackControlsFragment.kt
index 83930366..52f3524e 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/classic/ClassicPlayerPlaybackControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/classic/ClassicPlayerPlaybackControlsFragment.kt
@@ -97,7 +97,7 @@ class ClassicPlayerPlaybackControlsFragment : AbsPlayerControlsFragment() {
if (MusicPlayerRemote.isPlaying) {
playerPlayPauseFab.setImageResource(R.drawable.ic_pause_white_24dp)
} else {
- playerPlayPauseFab.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ playerPlayPauseFab.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/color/ColorPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/color/ColorPlaybackControlsFragment.kt
index 013ae905..2be99a8d 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/color/ColorPlaybackControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/color/ColorPlaybackControlsFragment.kt
@@ -132,7 +132,7 @@ class ColorPlaybackControlsFragment : AbsPlayerControlsFragment() {
private fun updatePlayPauseDrawableState() {
when {
MusicPlayerRemote.isPlaying -> playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
- else -> playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ else -> playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/fit/FitPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/fit/FitPlaybackControlsFragment.kt
index 9abbd3ec..2d24d31c 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/fit/FitPlaybackControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/fit/FitPlaybackControlsFragment.kt
@@ -137,7 +137,7 @@ class FitPlaybackControlsFragment : AbsPlayerControlsFragment() {
if (MusicPlayerRemote.isPlaying) {
playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
} else {
- playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/flat/FlatPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/flat/FlatPlaybackControlsFragment.kt
index 7fbcdc57..0eee0793 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/flat/FlatPlaybackControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/flat/FlatPlaybackControlsFragment.kt
@@ -153,7 +153,7 @@ class FlatPlaybackControlsFragment : AbsPlayerControlsFragment(), Callback {
if (MusicPlayerRemote.isPlaying) {
playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
} else {
- playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt
index ca2a19ba..9ca74482 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt
@@ -154,7 +154,7 @@ class FullPlaybackControlsFragment : AbsPlayerControlsFragment(), PopupMenu.OnMe
if (MusicPlayerRemote.isPlaying) {
playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
} else {
- playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt
index 6c8e39dc..52511340 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt
@@ -144,7 +144,7 @@ class LockScreenPlayerControlsFragment : AbsPlayerControlsFragment() {
if (MusicPlayerRemote.isPlaying) {
playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
} else {
- playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/material/MaterialControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/material/MaterialControlsFragment.kt
index e40c82e6..96e66e28 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/material/MaterialControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/material/MaterialControlsFragment.kt
@@ -129,7 +129,7 @@ class MaterialControlsFragment : AbsPlayerControlsFragment() {
if (MusicPlayerRemote.isPlaying) {
playPauseButton.setImageResource(R.drawable.ic_pause_white_big);
} else {
- playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_big);
+ playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_64dp);
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerPlaybackControlsFragment.kt
index 9dd78cef..3c445d7f 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerPlaybackControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerPlaybackControlsFragment.kt
@@ -134,7 +134,7 @@ class PlayerPlaybackControlsFragment : AbsPlayerControlsFragment() {
if (MusicPlayerRemote.isPlaying) {
playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
} else {
- playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/plain/PlainPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/plain/PlainPlaybackControlsFragment.kt
index 4a71afb7..ef5e6206 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/plain/PlainPlaybackControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/plain/PlainPlaybackControlsFragment.kt
@@ -238,7 +238,7 @@ class PlainPlaybackControlsFragment : AbsPlayerControlsFragment() {
if (MusicPlayerRemote.isPlaying) {
playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
} else {
- playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/simple/SimplePlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/simple/SimplePlaybackControlsFragment.kt
index a6f8017b..ce27c5fb 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/simple/SimplePlaybackControlsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/simple/SimplePlaybackControlsFragment.kt
@@ -213,7 +213,7 @@ class SimplePlaybackControlsFragment : AbsPlayerControlsFragment() {
if (MusicPlayerRemote.isPlaying) {
playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
} else {
- playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/slide/SlidePlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/slide/SlidePlayerFragment.kt
deleted file mode 100644
index afe71387..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/slide/SlidePlayerFragment.kt
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
- * 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.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.activities.base.AbsSlidingMusicPanelActivity
-import code.name.monkey.retromusic.adapter.song.SimpleSongAdapter
-import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment
-import code.name.monkey.retromusic.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 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!!)
- }
-
-
- 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()
- }
-
- 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/fragments/settings/AbsSettingsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AbsSettingsFragment.kt
index 3ac5206e..4e2c15ac 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AbsSettingsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AbsSettingsFragment.kt
@@ -75,8 +75,7 @@ abstract class AbsSettingsFragment : PreferenceFragmentCompat() {
dialogFragment = AlbumCoverStylePreferenceDialog.newInstance(preference.key);
}
if (preference is MaterialListPreference) {
- val entries = preference.entries
-
+ preference.entries
dialogFragment = MaterialListPreferenceDialog.newInstance(preference)
}
if (preference is BlacklistPreference) {
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/MainSettingsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/MainSettingsFragment.kt
index 0e9ca834..bb61c777 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/MainSettingsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/MainSettingsFragment.kt
@@ -14,27 +14,24 @@
package code.name.monkey.retromusic.fragments.settings
-import android.graphics.Bitmap
+import android.content.res.ColorStateList
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.annotation.StringRes
-import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import code.name.monkey.appthemehelper.ThemeStore
-import code.name.monkey.retromusic.Constants.USER_PROFILE
+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.retromusic.App
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.activities.SettingsActivity
-import code.name.monkey.retromusic.util.Compressor
+import code.name.monkey.retromusic.extensions.hide
+import code.name.monkey.retromusic.extensions.show
import code.name.monkey.retromusic.util.NavigationUtil
-import code.name.monkey.retromusic.util.PreferenceUtil
-import io.reactivex.android.schedulers.AndroidSchedulers
-import io.reactivex.disposables.CompositeDisposable
-import io.reactivex.schedulers.Schedulers
import kotlinx.android.synthetic.main.fragment_main_settings.*
-import java.io.File
-import java.util.*
class MainSettingsFragment : Fragment(), View.OnClickListener {
@@ -70,30 +67,27 @@ class MainSettingsFragment : Fragment(), View.OnClickListener {
otherSettings.setOnClickListener(this)
aboutSettings.setOnClickListener(this)
- text.setTextColor(ThemeStore.textColorSecondary(context!!))
- text.text = PreferenceUtil.getInstance().userBio
- titleWelcome.setTextColor(ThemeStore.textColorPrimary(context!!))
- titleWelcome.text = String.format("%s %s!", getTimeOfTheDay(), PreferenceUtil.getInstance().userName)
- userInfoContainer.setOnClickListener { NavigationUtil.goToUserInfo(activity!!) }
+ buyProContainer.apply {
+ if (!App.isProVersion) show() else hide()
+ setOnClickListener {
+ NavigationUtil.goToProVersion(context)
+ }
+ }
+ buyPremium.setOnClickListener {
+ NavigationUtil.goToProVersion(context!!)
+ }
+ MaterialUtil.setTint(buyPremium)
+ val primaryColor = MaterialValueHelper.getPrimaryTextColor(context, ColorUtil.isColorLight(ThemeStore.primaryColor(context!!)))
+ text.setTextColor(ColorUtil.withAlpha(primaryColor, 0.75f))
+ //title.setTextColor(primaryColor)
+ text2.setTextColor(primaryColor)
+ text3.imageTintList = ColorStateList.valueOf(primaryColor)
+
}
+
private fun inflateFragment(fragment: Fragment, @StringRes title: Int) {
if (activity != null) {
(activity as SettingsActivity).setupFragment(fragment, title)
}
}
-
- private fun getTimeOfTheDay(): String {
- var message = getString(R.string.title_good_day)
- val c = Calendar.getInstance()
- val timeOfDay = c.get(Calendar.HOUR_OF_DAY)
-
- when (timeOfDay) {
- in 0..5 -> message = getString(R.string.title_good_night)
- in 6..11 -> message = getString(R.string.title_good_morning)
- in 12..15 -> message = getString(R.string.title_good_afternoon)
- in 16..19 -> message = getString(R.string.title_good_evening)
- in 20..23 -> message = getString(R.string.title_good_night)
- }
- return message
- }
}
\ No newline at end of file
diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/PersonaizeSettingsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/PersonaizeSettingsFragment.kt
index e497178d..ee8a997f 100644
--- a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/PersonaizeSettingsFragment.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/PersonaizeSettingsFragment.kt
@@ -36,8 +36,6 @@ class PersonaizeSettingsFragment : AbsSettingsFragment(), SharedPreferences.OnSh
activity!!.recreate()
return@setOnPreferenceChangeListener true
}
-
-
val toggleFullScreen: TwoStatePreference = findPreference("toggle_full_screen")!!
toggleFullScreen.setOnPreferenceChangeListener { _, _ ->
activity!!.recreate()
diff --git a/app/src/main/java/code/name/monkey/retromusic/helper/MusicPlayerRemote.kt b/app/src/main/java/code/name/monkey/retromusic/helper/MusicPlayerRemote.kt
index 3b65f126..5f1ade9c 100644
--- a/app/src/main/java/code/name/monkey/retromusic/helper/MusicPlayerRemote.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/helper/MusicPlayerRemote.kt
@@ -96,8 +96,7 @@ object MusicPlayerRemote {
val isServiceConnected: Boolean
get() = musicService != null
- fun bindToService(context: Context,
- callback: ServiceConnection): ServiceToken? {
+ fun bindToService(context: Context, callback: ServiceConnection): ServiceToken? {
var realActivity: Activity? = (context as Activity).parent
if (realActivity == null) {
@@ -105,6 +104,7 @@ object MusicPlayerRemote {
}
val contextWrapper = ContextWrapper(realActivity)
+
contextWrapper.startService(Intent(contextWrapper, MusicService::class.java))
val binder = ServiceBinder(callback)
@@ -129,24 +129,21 @@ object MusicPlayerRemote {
}
private fun getFilePathFromUri(context: Context, uri: Uri): String? {
-
+ var cursor: Cursor? = null
val column = "_data"
val projection = arrayOf(column)
- var cursor: Cursor? = null
+
try {
cursor = context.contentResolver.query(uri, projection, null, null, null)
- cursor.use {
- if (it.moveToFirst()) {
- val columnIndex = it.getColumnIndexOrThrow(column)
- return it.getString(columnIndex)
- }
+ if (cursor != null && cursor.moveToFirst()) {
+ val column_index = cursor.getColumnIndexOrThrow(column)
+ return cursor.getString(column_index)
}
} catch (e: Exception) {
Log.e(TAG, e.message)
} finally {
- cursor!!.close()
+ cursor?.close()
}
-
return null
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/misc/DisposableManager.kt b/app/src/main/java/code/name/monkey/retromusic/misc/DisposableManager.kt
deleted file mode 100644
index 2102843e..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/misc/DisposableManager.kt
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.misc
-
-import io.reactivex.disposables.CompositeDisposable
-import io.reactivex.disposables.Disposable
-
-object DisposableManager {
-
- private var compositeDisposable: CompositeDisposable? = null
-
- fun add(disposable: Disposable) {
- getCompositeDisposable().add(disposable)
- }
-
- fun dispose() {
- getCompositeDisposable().dispose()
- }
-
- private fun getCompositeDisposable(): CompositeDisposable {
- if (compositeDisposable == null || compositeDisposable!!.isDisposed) {
- compositeDisposable = CompositeDisposable()
- }
- return compositeDisposable!!
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/code/name/monkey/retromusic/misc/DisposingObserver.kt b/app/src/main/java/code/name/monkey/retromusic/misc/DisposingObserver.kt
deleted file mode 100644
index dcb3c8ac..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/misc/DisposingObserver.kt
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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.misc
-
-import androidx.annotation.CallSuper
-import io.reactivex.Observer
-import io.reactivex.disposables.Disposable
-
-class DisposingObserver : Observer {
- @CallSuper
- override fun onSubscribe(d: Disposable) {
- DisposableManager.add(d)
- }
-
- override fun onNext(next: T) {}
-
- override fun onError(e: Throwable) {}
-
- override fun onComplete() {}
-}
\ No newline at end of file
diff --git a/app/src/main/java/code/name/monkey/retromusic/misc/ScrollAwareFABBehavior.java b/app/src/main/java/code/name/monkey/retromusic/misc/ScrollAwareFABBehavior.java
deleted file mode 100644
index 7f416f69..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/misc/ScrollAwareFABBehavior.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * 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.misc;
-
-import android.content.Context;
-import android.os.Handler;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.view.View;
-import android.view.animation.LinearInterpolator;
-
-import com.google.android.material.floatingactionbutton.FloatingActionButton;
-
-import androidx.annotation.NonNull;
-import androidx.coordinatorlayout.widget.CoordinatorLayout;
-import androidx.core.view.ViewCompat;
-
-/*Don't delete even if its not showing not using*/
-public class ScrollAwareFABBehavior extends CoordinatorLayout.Behavior {
- private static final String TAG = "ScrollingFABBehavior";
- Handler mHandler;
-
- public ScrollAwareFABBehavior(Context context, AttributeSet attrs) {
- super();
- }
-
- @Override
- public void onStopNestedScroll(@NonNull CoordinatorLayout coordinatorLayout,
- @NonNull FloatingActionButton child,
- @NonNull View target) {
- super.onStopNestedScroll(coordinatorLayout, child, target);
-
- if (mHandler == null)
- mHandler = new Handler();
-
-
- mHandler.postDelayed(() -> {
- child.animate().translationY(0).setInterpolator(new LinearInterpolator()).start();
- Log.d("FabAnim", "startHandler()");
- }, 1000);
-
- }
-
- @Override
- public void onNestedScroll(@NonNull CoordinatorLayout coordinatorLayout,
- @NonNull FloatingActionButton child,
- @NonNull View target,
- int dxConsumed,
- int dyConsumed,
- int dxUnconsumed,
- int dyUnconsumed) {
- super.onNestedScroll(coordinatorLayout, child, target, dxConsumed, dyConsumed, dxUnconsumed, dyUnconsumed);
-
- //child -> Floating Action Button
- if (dyConsumed > 0) {
- Log.d("Scrolling", "Up");
- CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) child.getLayoutParams();
- int fab_bottomMargin = layoutParams.bottomMargin;
- child.animate().translationY(child.getHeight() + fab_bottomMargin).setInterpolator(new LinearInterpolator()).start();
- } else if (dyConsumed < 0) {
- Log.d("Scrolling", "down");
- child.animate().translationY(0).setInterpolator(new LinearInterpolator()).start();
- }
- }
-
- @Override
- public boolean onStartNestedScroll(@NonNull CoordinatorLayout coordinatorLayout,
- @NonNull FloatingActionButton child,
- @NonNull View directTargetChild,
- @NonNull View target,
- int nestedScrollAxes) {
- if (mHandler != null) {
- mHandler.removeMessages(0);
- Log.d("Scrolling", "stopHandler()");
- }
- return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL;
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/code/name/monkey/retromusic/misc/SpacesItemDecoration.java b/app/src/main/java/code/name/monkey/retromusic/misc/SpacesItemDecoration.java
deleted file mode 100644
index 984bba15..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/misc/SpacesItemDecoration.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.misc;
-
-import android.graphics.Rect;
-import android.view.View;
-
-import androidx.recyclerview.widget.RecyclerView;
-
-public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
- private int space;
-
- public SpacesItemDecoration(int space) {
- this.space = space;
- }
-
- @Override
- public void getItemOffsets(Rect outRect, View view,
- RecyclerView parent, RecyclerView.State state) {
- outRect.right = space;
- outRect.bottom = space;
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/code/name/monkey/retromusic/preferences/AlbumCoverStylePreferenceDialog.kt b/app/src/main/java/code/name/monkey/retromusic/preferences/AlbumCoverStylePreferenceDialog.kt
index a39cc086..59e5c8e3 100644
--- a/app/src/main/java/code/name/monkey/retromusic/preferences/AlbumCoverStylePreferenceDialog.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/preferences/AlbumCoverStylePreferenceDialog.kt
@@ -69,7 +69,7 @@ class AlbumCoverStylePreferenceDialog : PreferenceDialogFragmentCompat(), ViewPa
viewPager.pageMargin = ViewUtil.convertDpToPixel(32f, resources).toInt()
viewPager.currentItem = PreferenceUtil.getInstance().albumCoverStyle.ordinal
- return MaterialDialog(activity!!, BottomSheet()).show {
+ return MaterialDialog(activity!!).show {
title(R.string.pref_title_album_cover_style)
positiveButton(R.string.set) {
val nowPlayingScreen = AlbumCoverStyle.values()[viewPagerPosition]
diff --git a/app/src/main/java/code/name/monkey/retromusic/preferences/BlacklistPreferenceDialog.kt b/app/src/main/java/code/name/monkey/retromusic/preferences/BlacklistPreferenceDialog.kt
index 4e55139e..31bcd508 100644
--- a/app/src/main/java/code/name/monkey/retromusic/preferences/BlacklistPreferenceDialog.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/preferences/BlacklistPreferenceDialog.kt
@@ -16,11 +16,13 @@ package code.name.monkey.retromusic.preferences
import android.app.Dialog
import android.content.Context
+import android.graphics.PorterDuff
import android.os.Bundle
import android.text.Html
import android.util.AttributeSet
import androidx.fragment.app.DialogFragment
-import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEDialogPreference
+import androidx.preference.DialogPreference
+import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.dialogs.BlacklistFolderChooserDialog
import code.name.monkey.retromusic.providers.BlacklistStore
@@ -30,7 +32,7 @@ import com.afollestad.materialdialogs.list.listItems
import java.io.File
import java.util.*
-class BlacklistPreference : ATEDialogPreference {
+class BlacklistPreference : DialogPreference {
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
@@ -38,6 +40,10 @@ class BlacklistPreference : ATEDialogPreference {
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes)
+
+ init {
+ icon?.setColorFilter(ThemeStore.textColorSecondary(context), PorterDuff.Mode.SRC_IN)
+ }
}
class BlacklistPreferenceDialog : DialogFragment(), BlacklistFolderChooserDialog.FolderCallback {
diff --git a/app/src/main/java/code/name/monkey/retromusic/preferences/MaterialListPreference.kt b/app/src/main/java/code/name/monkey/retromusic/preferences/MaterialListPreference.kt
index 31956372..cff272f2 100644
--- a/app/src/main/java/code/name/monkey/retromusic/preferences/MaterialListPreference.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/preferences/MaterialListPreference.kt
@@ -17,10 +17,12 @@ package code.name.monkey.retromusic.preferences
import android.app.Dialog
import android.content.Context
import android.content.res.TypedArray
+import android.graphics.PorterDuff
import android.os.Bundle
import android.util.AttributeSet
import androidx.preference.ListPreference
import androidx.preference.PreferenceDialogFragmentCompat
+import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.retromusic.R
import com.afollestad.materialdialogs.MaterialDialog
import com.afollestad.materialdialogs.bottomsheets.BottomSheet
@@ -30,13 +32,25 @@ import com.afollestad.materialdialogs.list.listItemsSingleChoice
class MaterialListPreference : ListPreference {
private val mLayoutRes = R.layout.ate_preference_list
- constructor(context: Context) : super(context)
+ constructor(context: Context) : super(context) {
+ init(context)
+ }
- constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
+ private fun init(context: Context) {
+ icon?.setColorFilter(ThemeStore.textColorSecondary(context), PorterDuff.Mode.SRC_IN)
+ }
- constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
+ constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
+ init(context)
+ }
- constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes)
+ constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
+ init(context)
+ }
+
+ constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {
+ init(context)
+ }
override fun getDialogLayoutResource(): Int {
return mLayoutRes
@@ -64,7 +78,7 @@ class MaterialListPreferenceDialog : PreferenceDialogFragmentCompat() {
val entries = arguments?.getStringArrayList(EXTRA_ENTRIES)
val entriesValues = arguments?.getStringArrayList(EXTRA_ENTRIES_VALUES)
- return MaterialDialog(activity!!, BottomSheet())
+ materialDialog = MaterialDialog(activity!!, BottomSheet())
.show {
title(text = materialListPreference.title.toString())
positiveButton(R.string.set)
@@ -75,11 +89,14 @@ class MaterialListPreferenceDialog : PreferenceDialogFragmentCompat() {
dismiss()
}
}
+ return materialDialog
}
+ private lateinit var materialDialog: MaterialDialog
+
override fun onDialogClosed(positiveResult: Boolean) {
if (positiveResult) {
- dismiss()
+ materialDialog.dismiss()
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/preferences/NowPlayingScreenPreferenceDialog.kt b/app/src/main/java/code/name/monkey/retromusic/preferences/NowPlayingScreenPreferenceDialog.kt
index 6a05afec..25d6c398 100644
--- a/app/src/main/java/code/name/monkey/retromusic/preferences/NowPlayingScreenPreferenceDialog.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/preferences/NowPlayingScreenPreferenceDialog.kt
@@ -84,10 +84,9 @@ class NowPlayingScreenPreferenceDialog : PreferenceDialogFragmentCompat(), ViewP
viewPager.currentItem = PreferenceUtil.getInstance().nowPlayingScreen.ordinal
- return MaterialDialog(activity!!, BottomSheet()).show {
+ return MaterialDialog(activity!!).show {
title(R.string.pref_title_album_cover_style)
positiveButton(R.string.set) {
-
val nowPlayingScreen = NowPlayingScreen.values()[viewPagerPosition]
if (isNowPlayingThemes(nowPlayingScreen)) {
val result = getString(nowPlayingScreen.titleRes) + " theme is Pro version feature."
diff --git a/app/src/main/java/code/name/monkey/retromusic/providers/NotPlayedStore.kt b/app/src/main/java/code/name/monkey/retromusic/providers/NotPlayedStore.kt
deleted file mode 100644
index 7d96e075..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/providers/NotPlayedStore.kt
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * 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.providers
-
-import android.content.ContentValues
-import android.content.Context
-import android.database.sqlite.SQLiteDatabase
-import android.database.sqlite.SQLiteOpenHelper
-import code.name.monkey.retromusic.loaders.SongLoader
-import code.name.monkey.retromusic.model.Song
-import io.reactivex.schedulers.Schedulers
-
-class NotPlayedStore(val context: Context) : SQLiteOpenHelper(context, DATABASE_NAME, null, VERSION) {
-
- private val dataBaseCreate = "CREATE TABLE IF NOT EXISTS $NAME ( $ID LONG PRIMARY KEY )"
-
- override fun onCreate(db: SQLiteDatabase) {
- db.execSQL(dataBaseCreate)
- }
-
- override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
- db.execSQL("DROP TABLE IF EXISTS $NAME")
- }
-
- fun removeSong(id: Long) {
- val db = writableDatabase
- db.apply {
- beginTransaction()
- delete(NAME, "$ID = $id", null)
- setTransactionSuccessful()
- endTransaction()
- close()
- }
- }
-
- fun addAllSongs(songs: ArrayList) {
- SongLoader.getAllSongs(context)
- .map {
- val database = writableDatabase;
- database.apply {
- val contentValues = ContentValues()
- for (song in songs) {
- contentValues.put(ID, song.id)
- insert(NAME, null, contentValues)
- }
- setTransactionSuccessful()
- endTransaction()
- }
- return@map true
- }
- .subscribeOn(Schedulers.io())
- .subscribe()
- }
-
- companion object {
- const val NAME = "not_played_songs"
- const val ID = "song_id"
- const val DATABASE_NAME = "not_played.db"
- private const val VERSION = 1
- private var sInstance: NotPlayedStore? = null
-
- @Synchronized
- fun getInstance(context: Context): NotPlayedStore {
- if (sInstance == null) {
- sInstance = NotPlayedStore(context.applicationContext)
- }
- return sInstance!!
- }
- }
-}
diff --git a/app/src/main/java/code/name/monkey/retromusic/rest/KogouClient.java b/app/src/main/java/code/name/monkey/retromusic/rest/KogouClient.java
deleted file mode 100644
index c2ca1d63..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/rest/KogouClient.java
+++ /dev/null
@@ -1,89 +0,0 @@
-
-/*
- * 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.rest;
-
-import android.content.Context;
-
-import java.io.File;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import code.name.monkey.retromusic.App;
-import code.name.monkey.retromusic.rest.service.KuGouApiService;
-import okhttp3.Cache;
-import okhttp3.Call;
-import okhttp3.Interceptor;
-import okhttp3.OkHttpClient;
-import okhttp3.Request;
-import retrofit2.Retrofit;
-import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
-import retrofit2.converter.gson.GsonConverterFactory;
-
-import static code.name.monkey.retromusic.Constants.BASE_API_URL_KUGOU;
-
-/**
- * Created by hemanths on 23/08/17.
- */
-
-public class KogouClient {
-
- private static final String BASE_URL = BASE_API_URL_KUGOU;
-
- private KuGouApiService apiService;
-
- public KogouClient() {
- this(createDefaultOkHttpClientBuilder().build());
- }
-
- private KogouClient(@NonNull Call.Factory client) {
- Retrofit restAdapter = new Retrofit.Builder()
- .baseUrl(BASE_URL)
- .callFactory(client)
- .addConverterFactory(GsonConverterFactory.create())
- .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
- .build();
-
- apiService = restAdapter.create(KuGouApiService.class);
- }
-
- @Nullable
- private static Cache createDefaultCache(Context context) {
- File cacheDir = new File(context.getCacheDir().getAbsolutePath(), "/okhttp-lastfm/");
- if (cacheDir.mkdirs() || cacheDir.isDirectory()) {
- return new Cache(cacheDir, 1024 * 1024 * 10);
- }
- return null;
- }
-
- private static Interceptor createCacheControlInterceptor() {
- return chain -> {
- Request modifiedRequest = chain.request().newBuilder()
- .addHeader("Cache-Control", String.format("max-age=%d, max-stale=%d", 31536000, 31536000))
- .build();
- return chain.proceed(modifiedRequest);
- };
- }
-
- private static OkHttpClient.Builder createDefaultOkHttpClientBuilder() {
- return new OkHttpClient.Builder()
- .cache(createDefaultCache(App.Companion.getInstance()))
- .addInterceptor(createCacheControlInterceptor());
- }
-
- public KuGouApiService getApiService() {
- return apiService;
- }
-}
diff --git a/app/src/main/java/code/name/monkey/retromusic/rest/model/KuGouRawLyric.java b/app/src/main/java/code/name/monkey/retromusic/rest/model/KuGouRawLyric.java
deleted file mode 100644
index e4e491f5..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/rest/model/KuGouRawLyric.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.rest.model;
-
-import com.google.gson.annotations.SerializedName;
-
-/**
- * Created by hefuyi on 2017/1/20.
- */
-
-public class KuGouRawLyric {
-
- private static final String CHARSET = "charset";
- private static final String CONTENT = "content";
- private static final String FMT = "fmt";
- private static final String INFO = "info";
- private static final String STATUS = "status";
-
- @SerializedName(CHARSET)
- public String charset;
-
- @SerializedName(CONTENT)
- public String content;
-
- @SerializedName(FMT)
- public String fmt;
- @SerializedName(INFO)
- public String info;
- @SerializedName(STATUS)
- public int status;
-
- @Override
- public String toString() {
- return "KuGouRawLyric{" +
- "charset='" + charset + '\'' +
- ", content='" + content + '\'' +
- ", fmt='" + fmt + '\'' +
- ", info='" + info + '\'' +
- ", status=" + status +
- '}';
- }
-
-}
diff --git a/app/src/main/java/code/name/monkey/retromusic/rest/model/KuGouSearchLyricResult.java b/app/src/main/java/code/name/monkey/retromusic/rest/model/KuGouSearchLyricResult.java
deleted file mode 100644
index 3667ac05..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/rest/model/KuGouSearchLyricResult.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * 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.rest.model;
-
-import com.google.gson.annotations.SerializedName;
-
-import java.util.List;
-
-import androidx.annotation.NonNull;
-
-/**
- * Created by hefuyi on 2017/1/20.
- */
-
-public class KuGouSearchLyricResult {
-
- private static final String INFO = "info";
- private static final String STATUS = "status";
- private static final String PROPOSAL = "proposal";
- private static final String KEYWORD = "keyword";
- private static final String CANDIDATES = "candidates";
-
- @NonNull
- @SerializedName(INFO)
- public String info;
-
- @SerializedName(STATUS)
- public int status;
-
- @NonNull
- @SerializedName(PROPOSAL)
- public String proposal;
-
- @NonNull
- @SerializedName(KEYWORD)
- public String keyword;
-
- @NonNull
- @SerializedName(CANDIDATES)
- public List candidates;
-
- @Override
- public String toString() {
- return "KuGouSearchLyricResult{" +
- "info='" + info + '\'' +
- ", status=" + status +
- ", proposal='" + proposal + '\'' +
- ", keyword='" + keyword + '\'' +
- ", candidates=" + candidates +
- '}';
- }
-
- public static class Candidates {
- private static final String NICKNAME = "nickname";
- private static final String ACCESSKEY = "accesskey";
- private static final String SCORE = "score";
- private static final String DURATION = "duration";
- private static final String UID = "uid";
- private static final String SONG = "song";
- private static final String ID = "id";
- private static final String SINGER = "singer";
- private static final String LANGUAGE = "language";
- @SerializedName(NICKNAME)
- public String nickname;
- @SerializedName(ACCESSKEY)
- public String accesskey;
- @SerializedName(SCORE)
- public int score;
- @SerializedName(DURATION)
- public long duration;
- @SerializedName(UID)
- public String uid;
- @SerializedName(SONG)
- public String songName;
- @SerializedName(ID)
- public String id;
- @SerializedName(SINGER)
- public String singer;
- @SerializedName(LANGUAGE)
- public String language;
-
- @Override
- public String toString() {
- return "Candidates{" +
- "nickname='" + nickname + '\'' +
- ", accesskey='" + accesskey + '\'' +
- ", score=" + score +
- ", duration=" + duration +
- ", uid='" + uid + '\'' +
- ", songName='" + songName + '\'' +
- ", id='" + id + '\'' +
- ", singer='" + singer + '\'' +
- ", language='" + language + '\'' +
- '}';
- }
-
- }
-}
diff --git a/app/src/main/java/code/name/monkey/retromusic/rest/service/KuGouApiService.java b/app/src/main/java/code/name/monkey/retromusic/rest/service/KuGouApiService.java
deleted file mode 100644
index ff82ecaa..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/rest/service/KuGouApiService.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.rest.service;
-
-import androidx.annotation.NonNull;
-import code.name.monkey.retromusic.rest.model.KuGouRawLyric;
-import code.name.monkey.retromusic.rest.model.KuGouSearchLyricResult;
-
-import io.reactivex.Observable;
-import retrofit2.http.GET;
-import retrofit2.http.Query;
-
-/**
- * Created by hemanths on 28/07/17.
- */
-
-public interface KuGouApiService {
-
- @NonNull
- @GET("search?ver=1&man=yes&client=pc")
- Observable searchLyric(@Query("keyword") @NonNull String songName, @Query("duration") @NonNull String duration);
-
- @NonNull
- @GET("download?ver=1&client=pc&fmt=lrc&charset=utf8")
- Observable getRawLyric(@Query("id") @NonNull String id, @Query("accesskey") @NonNull String accesskey);
-}
diff --git a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl.kt b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl.kt
index 7d1e08a0..e6d612f8 100644
--- a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl.kt
@@ -173,7 +173,7 @@ class PlayingNotificationImpl : PlayingNotification() {
if (isPlaying)
R.drawable.ic_pause_white_24dp
else
- R.drawable.ic_play_arrow_white_24dp, primary)!!, 1.5f)
+ R.drawable.ic_play_arrow_white_32dp, primary)!!, 1.5f)
notificationLayout.setTextColor(R.id.title, primary)
notificationLayout.setTextColor(R.id.text, secondary)
diff --git a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt
index 137d314a..3577b583 100644
--- a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt
@@ -52,7 +52,7 @@ class PlayingNotificationImpl24 : PlayingNotification() {
val playButtonResId = if (isPlaying)
R.drawable.ic_pause_white_24dp
else
- R.drawable.ic_play_arrow_white_24dp
+ R.drawable.ic_play_arrow_white_32dp
val action = Intent(service, MainActivity::class.java)
action.putExtra("expand", true)
diff --git a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationOreo.kt b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationOreo.kt
index 5d722e16..d57f5b44 100644
--- a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationOreo.kt
+++ b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationOreo.kt
@@ -163,7 +163,7 @@ class PlayingNotificationOreo : PlayingNotification() {
if (isPlaying)
R.drawable.ic_pause_white_24dp
else
- R.drawable.ic_play_arrow_white_24dp, primary)!!, PlayingNotification.NOTIFICATION_CONTROLS_SIZE_MULTIPLIER)
+ R.drawable.ic_play_arrow_white_32dp, primary)!!, PlayingNotification.NOTIFICATION_CONTROLS_SIZE_MULTIPLIER)
notificationLayout.setTextColor(R.id.title, primary)
notificationLayout.setTextColor(R.id.subtitle, secondary)
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
deleted file mode 100644
index abeb39e1..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/transform/RoundStackTransformer.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * 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
deleted file mode 100644
index 8215c423..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/transform/StackPagerTransformer.kt
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * 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.viewpager.widget.ViewPager
-
-class StackPagerTransformer : ViewPager.PageTransformer {
-
-
- override fun transformPage(view: View, position: Float) {
-
- if (position < -1f) {
- view.translationX = view.width * position
- }
-
- if (position < 0f) {
- view.translationX = 0f
- view.scaleX = 1f
- view.scaleY = 1f
-
- } else if (position <= 1f) {
-
- val scaleFactor = MIN_SCALE + (1 - MIN_SCALE) * (1 - Math.abs(position))
- view.pivotY = 0.5f * view.height
- view.translationX = view.width * -position
- view.scaleX = scaleFactor
- view.scaleY = scaleFactor
- }
- }
-
- companion object {
- private val MIN_SCALE = 0.75f
- }
-}
diff --git a/app/src/main/java/code/name/monkey/retromusic/util/NavigationUtil.java b/app/src/main/java/code/name/monkey/retromusic/util/NavigationUtil.java
index 2c39e534..4a4a3bc3 100755
--- a/app/src/main/java/code/name/monkey/retromusic/util/NavigationUtil.java
+++ b/app/src/main/java/code/name/monkey/retromusic/util/NavigationUtil.java
@@ -26,10 +26,8 @@ import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import androidx.core.app.ActivityOptionsCompat;
import androidx.core.util.Pair;
+
import code.name.monkey.retromusic.R;
-import code.name.monkey.retromusic.helper.MusicPlayerRemote;
-import code.name.monkey.retromusic.model.Genre;
-import code.name.monkey.retromusic.model.Playlist;
import code.name.monkey.retromusic.activities.AboutActivity;
import code.name.monkey.retromusic.activities.AlbumDetailsActivity;
import code.name.monkey.retromusic.activities.ArtistDetailActivity;
@@ -45,6 +43,9 @@ import code.name.monkey.retromusic.activities.SettingsActivity;
import code.name.monkey.retromusic.activities.SupportDevelopmentActivity;
import code.name.monkey.retromusic.activities.UserInfoActivity;
import code.name.monkey.retromusic.activities.WhatsNewActivity;
+import code.name.monkey.retromusic.helper.MusicPlayerRemote;
+import code.name.monkey.retromusic.model.Genre;
+import code.name.monkey.retromusic.model.Playlist;
import static code.name.monkey.retromusic.Constants.RATE_ON_GOOGLE_PLAY;
import static code.name.monkey.retromusic.util.RetroUtil.openUrl;
@@ -146,19 +147,28 @@ public class NavigationUtil {
ActivityCompat.startActivity(activity, new Intent(activity, LicenseActivity.class), null);
}
- public static void goToSearch(Activity activity) {
- ActivityCompat.startActivity(activity, new Intent(activity, SearchActivity.class), null);
+ public static void goToSearch(@NonNull Activity activity,
+ @Nullable Pair... sharedElements) {
+ ActivityCompat.startActivity(activity, new Intent(activity, SearchActivity.class),
+ ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements).toBundle());
}
- public static void goToSupportDevelopment(Activity activity) {
+ public static void goToSearch(@NonNull Activity activity, boolean isMicOpen,
+ @Nullable Pair... sharedElements) {
+ ActivityCompat.startActivity(activity, new Intent(activity, SearchActivity.class)
+ .putExtra(SearchActivity.EXTRA_SHOW_MIC, isMicOpen),
+ ActivityOptionsCompat.makeSceneTransitionAnimation(activity, sharedElements).toBundle());
+ }
+
+ public static void goToSupportDevelopment(@NonNull Activity activity) {
ActivityCompat.startActivity(activity, new Intent(activity, SupportDevelopmentActivity.class), null);
}
- public static void goToPlayStore(Activity activity) {
+ public static void goToPlayStore(@NonNull Activity activity) {
openUrl(activity, RATE_ON_GOOGLE_PLAY);
}
- public static void gotoWhatNews(Activity activity) {
+ public static void gotoWhatNews(@NonNull Activity activity) {
ActivityCompat.startActivity(activity, new Intent(activity, WhatsNewActivity.class), null);
}
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/util/RetroUtil.java b/app/src/main/java/code/name/monkey/retromusic/util/RetroUtil.java
index a292900e..c06c41a1 100755
--- a/app/src/main/java/code/name/monkey/retromusic/util/RetroUtil.java
+++ b/app/src/main/java/code/name/monkey/retromusic/util/RetroUtil.java
@@ -61,15 +61,26 @@ import java.util.Collections;
import java.util.List;
import code.name.monkey.appthemehelper.ThemeStore;
+import code.name.monkey.appthemehelper.util.ATHUtil;
import code.name.monkey.appthemehelper.util.TintHelper;
import code.name.monkey.retromusic.App;
+import code.name.monkey.retromusic.R;
public class RetroUtil {
private static final int[] TEMP_ARRAY = new int[1];
private static final String SHOW_NAV_BAR_RES_NAME = "config_showNavigationBar";
- public static int calculateNoOfColumns(Context context) {
+ public static int toolbarColor(@NonNull Context context) {
+ int color = ThemeStore.Companion.primaryColor(context);
+ if (ATHUtil.INSTANCE.isWindowBackgroundDark(context)) {
+ return ATHUtil.INSTANCE.resolveColor(context, R.attr.cardBackgroundColor);
+ } else {
+ return color;
+ }
+ }
+
+ public static int calculateNoOfColumns(@NonNull Context context) {
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
float dpWidth = displayMetrics.widthPixels / displayMetrics.density;
return (int) (dpWidth / 180);
diff --git a/app/src/main/java/code/name/monkey/retromusic/util/SystemUtils.java b/app/src/main/java/code/name/monkey/retromusic/util/SystemUtils.java
deleted file mode 100644
index ac7ebb68..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/util/SystemUtils.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * 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.util;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.res.Configuration;
-import android.content.res.Resources;
-import android.util.DisplayMetrics;
-import android.view.ViewGroup;
-
-import code.name.monkey.retromusic.App;
-
-public class SystemUtils {
-
- private static final String STATUS_BAR_HEIGHT_RES_NAME = "status_bar_height";
- private static final String NAV_BAR_HEIGHT_RES_NAME = "navigation_bar_height";
- private static final String NAV_BAR_HEIGHT_LANDSCAPE_RES_NAME = "navigation_bar_height_landscape";
- private static final String NAV_BAR_WIDTH_RES_NAME = "navigation_bar_width";
- private static final String SHOW_NAV_BAR_RES_NAME = "config_showNavigationBar";
- private final float mSmallestWidthDp;
- private final boolean mInPortrait;
-
- private Activity activity;
-
- public SystemUtils(Activity activity) {
- this.activity = activity;
- Resources resources = activity.getResources();
- mSmallestWidthDp = getSmallestWidthDp(activity);
- mInPortrait = (resources.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT);
- }
-
- private static boolean hasNavBar(Resources resources) {
- int id = resources.getIdentifier(SHOW_NAV_BAR_RES_NAME, "bool", "android");
- if (id > 0)
- return resources.getBoolean(id);
- else
- return false;
- }
-
- public static int getNavigationBarHeight() {
- int result = 0;
- int resourceId = App.Companion.getContext().getResources().getIdentifier("navigation_bar_height", "dimen", "android");
- if (resourceId > 0) {
- result = App.Companion.getContext().getResources().getDimensionPixelSize(resourceId);
- }
- return result;
- }
-
- public int getComboHeight() {
- if (isNavigationAtBottom()) {
- return getNavigationBarWidth();
- } else {
- return getNavigationBarHeight();
- }
- }
-
- public int getNavigationBarWidth() {
- Resources res = activity.getResources();
- int result = 0;
- if (hasNavBar(activity.getResources())) {
- if (!isNavigationAtBottom())
- return getInternalDimensionSize(res, NAV_BAR_WIDTH_RES_NAME);
- }
- return result;
- }
-
- public void addPadding(ViewGroup viewGroup) {
- Context context = viewGroup.getContext();
- Resources resources = context.getResources();
- ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) viewGroup.getLayoutParams();
- if (isNavigationAtBottom()) {
- params.leftMargin = getNavigationBarWidth();
- params.rightMargin = getNavigationBarWidth();
- } else {
- params.bottomMargin = getNavigationBarHeight();
- }
- }
-
- private int getInternalDimensionSize(Resources res, String key) {
- int result = 0;
- int resourceId = res.getIdentifier(key, "dimen", "android");
- if (resourceId > 0) {
- result = res.getDimensionPixelSize(resourceId);
- }
- return result;
- }
-
- private float getSmallestWidthDp(Activity activity) {
- DisplayMetrics metrics = new DisplayMetrics();
- activity.getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
- float widthDp = metrics.widthPixels / metrics.density;
- float heightDp = metrics.heightPixels / metrics.density;
- return Math.min(widthDp, heightDp);
- }
-
- boolean isNavigationAtBottom() {
- return (mSmallestWidthDp >= 600 || mInPortrait);
- }
-
-}
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 1d8ff139..5c7fe4e4 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
@@ -19,8 +19,6 @@ import android.content.res.ColorStateList
import android.graphics.Color
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatImageView
-import code.name.monkey.appthemehelper.ThemeStore
-import code.name.monkey.appthemehelper.util.ATHUtil
import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.retromusic.R
@@ -47,20 +45,8 @@ class ColorIconsImageView : AppCompatImageView {
private fun setIconBackgroundColor(color: Int) {
setBackgroundResource(R.drawable.color_circle_gradient)
-
- val alpha = if (ATHUtil.isWindowBackgroundDark(context)) {
- 1.0f
- } else {
- 0.12f
- }
- val filterColor = if (ATHUtil.isWindowBackgroundDark(context)) {
- ThemeStore.primaryColor(context)
- } else {
- color
- }
-
- backgroundTintList = ColorStateList.valueOf(ColorUtil.adjustAlpha(color, alpha))
- imageTintList = ColorStateList.valueOf(filterColor)
+ backgroundTintList = ColorStateList.valueOf(ColorUtil.adjustAlpha(color, 0.22f))
+ imageTintList = ColorStateList.valueOf(ColorUtil.withAlpha(color, 0.75f))
requestLayout()
invalidate()
}
diff --git a/app/src/main/java/code/name/monkey/retromusic/views/MaterialButtonTextColor.kt b/app/src/main/java/code/name/monkey/retromusic/views/MaterialButtonTextColor.kt
deleted file mode 100644
index 069b8b6c..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/views/MaterialButtonTextColor.kt
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * 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.content.res.ColorStateList
-import android.util.AttributeSet
-import code.name.monkey.appthemehelper.ThemeStore
-import code.name.monkey.appthemehelper.util.ATHUtil
-import code.name.monkey.appthemehelper.util.ColorUtil
-import code.name.monkey.appthemehelper.util.MaterialValueHelper
-import code.name.monkey.retromusic.R
-import code.name.monkey.retromusic.util.RetroUtil
-import com.google.android.material.button.MaterialButton
-
-class MaterialButtonTextColor @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = -1) : MaterialButton(context, attrs, defStyleAttr) {
-
- init {
- setTextColor(MaterialValueHelper.getPrimaryTextColor(getContext(), ColorUtil.isColorLight(ThemeStore.primaryColor(getContext()))))
- iconTint = ColorStateList.valueOf(ATHUtil.resolveColor(context, R.attr.iconColor))
- rippleColor = ColorStateList.valueOf(ColorUtil.withAlpha(ThemeStore.accentColor(context), 0.4f))
- //minHeight = RetroUtil.convertDpToPixel(42f, context).toInt()
- iconSize = RetroUtil.convertDpToPixel(20f, context).toInt()
- }
-}
diff --git a/app/src/main/java/code/name/monkey/retromusic/views/PlayPauseDrawable.java b/app/src/main/java/code/name/monkey/retromusic/views/PlayPauseDrawable.java
deleted file mode 100644
index 863e615f..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/views/PlayPauseDrawable.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * 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.animation.Animator;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.ObjectAnimator;
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.ColorFilter;
-import android.graphics.Paint;
-import android.graphics.Path;
-import android.graphics.PixelFormat;
-import android.graphics.Rect;
-import android.graphics.drawable.Drawable;
-import androidx.annotation.NonNull;
-import android.util.Property;
-import android.view.animation.DecelerateInterpolator;
-
-import code.name.monkey.retromusic.R;
-
-
-public class PlayPauseDrawable extends Drawable {
- private static final long PLAY_PAUSE_ANIMATION_DURATION = 250;
-
- private static final Property PROGRESS =
- new Property(Float.class, "progress") {
- @Override
- public Float get(@NonNull PlayPauseDrawable d) {
- return d.getProgress();
- }
-
- @Override
- public void set(@NonNull PlayPauseDrawable d, Float value) {
- d.setProgress(value);
- }
- };
-
- private final Path leftPauseBar = new Path();
- private final Path rightPauseBar = new Path();
- private final Paint paint = new Paint();
- private final float pauseBarWidth;
- private final float pauseBarHeight;
- private final float pauseBarDistance;
-
- private float width;
- private float height;
-
- private float progress;
- private boolean isPlay;
- private boolean isPlaySet;
-
- private Animator animator;
-
- public PlayPauseDrawable(@NonNull Context context) {
- final Resources res = context.getResources();
- paint.setAntiAlias(true);
- paint.setStyle(Paint.Style.FILL);
- paint.setColor(Color.WHITE);
-
- pauseBarWidth = res.getDimensionPixelSize(R.dimen.pause_bar_width);
- pauseBarHeight = res.getDimensionPixelSize(R.dimen.pause_bar_height);
- pauseBarDistance = res.getDimensionPixelSize(R.dimen.pause_bar_distance);
- }
-
- /**
- * Linear interpolate between a and b with parameter t.
- */
- private static float lerp(float a, float b, float t) {
- return a + (b - a) * t;
- }
-
- @Override
- protected void onBoundsChange(@NonNull final Rect bounds) {
- super.onBoundsChange(bounds);
- if (bounds.width() > 0 && bounds.height() > 0) {
- width = bounds.width();
- height = bounds.height();
- }
- }
-
- @Override
- public void draw(@NonNull Canvas canvas) {
- leftPauseBar.rewind();
- rightPauseBar.rewind();
-
- // The current distance between the two pause bars.
- final float barDist = lerp(pauseBarDistance, 0f, progress);
- // The current width of each pause bar.
- float rawBarWidth = lerp(pauseBarWidth, pauseBarHeight / 1.75f, progress);
- // We have to round the bar width when finishing the progress to prevent the gap
- // that might occur onDraw because of a pixel is lost when casting float to int instead of rounding it.
- final float barWidth = progress == 1f ? Math.round(rawBarWidth) : rawBarWidth;
- // The current position of the left pause bar's top left coordinate.
- final float firstBarTopLeft = lerp(0f, barWidth, progress);
- // The current position of the right pause bar's top right coordinate.
- final float secondBarTopRight = lerp(2f * barWidth + barDist, barWidth + barDist, progress);
-
- // Draw the left pause bar. The left pause bar transforms into the
- // top half of the play button triangle by animating the position of the
- // rectangle's top left coordinate and expanding its bottom width.
- leftPauseBar.moveTo(0f, 0f);
- leftPauseBar.lineTo(firstBarTopLeft, -pauseBarHeight);
- leftPauseBar.lineTo(barWidth, -pauseBarHeight);
- leftPauseBar.lineTo(barWidth, 0f);
- leftPauseBar.close();
-
- // Draw the right pause bar. The right pause bar transforms into the
- // bottom half of the play button triangle by animating the position of the
- // rectangle's top right coordinate and expanding its bottom width.
- rightPauseBar.moveTo(barWidth + barDist, 0f);
- rightPauseBar.lineTo(barWidth + barDist, -pauseBarHeight);
- rightPauseBar.lineTo(secondBarTopRight, -pauseBarHeight);
- rightPauseBar.lineTo(2 * barWidth + barDist, 0f);
- rightPauseBar.close();
-
- final int saveCount = canvas.save();
-
- // Translate the play button a tiny bit to the right so it looks more centered.
- canvas.translate(lerp(0f, pauseBarHeight / 8f, progress), 0f);
-
- // (1) Pause --> Play: rotate 0 to 90 degrees clockwise.
- // (2) Play --> Pause: rotate 90 to 180 degrees clockwise.
- final float rotationProgress = isPlay ? 1f - progress : progress;
- final float startingRotation = isPlay ? 90f : 0f;
- canvas.rotate(lerp(startingRotation, startingRotation + 90f, rotationProgress), width / 2f, height / 2f);
-
- // Position the pause/play button in the center of the drawable's bounds.
- canvas.translate(Math.round(width / 2f - ((2f * barWidth + barDist) / 2f)), Math.round(height / 2f + (pauseBarHeight / 2f)));
-
- // Draw the two bars that form the animated pause/play button.
- canvas.drawPath(leftPauseBar, paint);
- canvas.drawPath(rightPauseBar, paint);
-
- canvas.restoreToCount(saveCount);
- }
-
- @NonNull
- private Animator getPausePlayAnimator() {
- isPlaySet = !isPlaySet;
- final Animator anim = ObjectAnimator.ofFloat(this, PROGRESS, isPlay ? 1f : 0f, isPlay ? 0f : 1f);
- anim.addListener(new AnimatorListenerAdapter() {
- @Override
- public void onAnimationEnd(Animator animation) {
- isPlay = !isPlay;
- }
- });
- return anim;
- }
-
- private float getProgress() {
- return progress;
- }
-
- private void setProgress(float progress) {
- this.progress = progress;
- invalidateSelf();
- }
-
- @Override
- public void setAlpha(int alpha) {
- paint.setAlpha(alpha);
- invalidateSelf();
- }
-
- @Override
- public void setColorFilter(ColorFilter cf) {
- paint.setColorFilter(cf);
- invalidateSelf();
- }
-
- @Override
- public int getOpacity() {
- return PixelFormat.TRANSLUCENT;
- }
-
- public void setPlay(boolean animate) {
- if (animate) {
- if (!isPlaySet) {
- togglePlayPause();
- }
- } else {
- isPlaySet = true;
- isPlay = true;
- setProgress(1f);
- }
- }
-
- public void setPause(boolean animate) {
- if (animate) {
- if (isPlaySet) {
- togglePlayPause();
- }
- } else {
- isPlaySet = false;
- isPlay = false;
- setProgress(0f);
- }
- }
-
- public void togglePlayPause() {
- if (animator != null) {
- animator.cancel();
- }
-
- animator = getPausePlayAnimator();
- animator.setInterpolator(new DecelerateInterpolator());
- animator.setDuration(PLAY_PAUSE_ANIMATION_DURATION);
- animator.start();
- }
-}
diff --git a/app/src/main/java/code/name/monkey/retromusic/views/TintIconColorToolbar.kt b/app/src/main/java/code/name/monkey/retromusic/views/TintIconColorToolbar.kt
deleted file mode 100644
index 58f69863..00000000
--- a/app/src/main/java/code/name/monkey/retromusic/views/TintIconColorToolbar.kt
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.graphics.PorterDuff
-import android.graphics.drawable.Drawable
-import android.util.AttributeSet
-import androidx.appcompat.widget.Toolbar
-import code.name.monkey.appthemehelper.ThemeStore
-
-class TintIconColorToolbar : Toolbar {
- constructor(context: Context) : super(context)
-
- constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
-
- constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
-
-
- override fun setNavigationIcon(icon: Drawable?) {
- super.setNavigationIcon(icon)
- icon?.setColorFilter(ThemeStore.textColorSecondary(context), PorterDuff.Mode.SRC_IN)
- }
-}
diff --git a/app/src/main/res/drawable/ic_blur_on_white_24dp.xml b/app/src/main/res/drawable/ic_blur_on_white_24dp.xml
new file mode 100644
index 00000000..d7123060
--- /dev/null
+++ b/app/src/main/res/drawable/ic_blur_on_white_24dp.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_cellphone_lock_white_24dp.xml b/app/src/main/res/drawable/ic_cellphone_lock_white_24dp.xml
new file mode 100644
index 00000000..727f837d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cellphone_lock_white_24dp.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_cellphone_white_24dp.xml b/app/src/main/res/drawable/ic_cellphone_white_24dp.xml
new file mode 100644
index 00000000..af68ec02
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cellphone_white_24dp.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_color_lens_white_24dp.xml b/app/src/main/res/drawable/ic_color_lens_white_24dp.xml
new file mode 100644
index 00000000..31e47f8f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_color_lens_white_24dp.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_colorize_white_24dp.xml b/app/src/main/res/drawable/ic_colorize_white_24dp.xml
new file mode 100644
index 00000000..a2c2b5b6
--- /dev/null
+++ b/app/src/main/res/drawable/ic_colorize_white_24dp.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_diamond_stone_white_24dp.xml b/app/src/main/res/drawable/ic_diamond_stone_white_24dp.xml
new file mode 100644
index 00000000..7a27f671
--- /dev/null
+++ b/app/src/main/res/drawable/ic_diamond_stone_white_24dp.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_file_music_white_24dp.xml b/app/src/main/res/drawable/ic_file_music_white_24dp.xml
index efb25ba9..1cc66b8d 100644
--- a/app/src/main/res/drawable/ic_file_music_white_24dp.xml
+++ b/app/src/main/res/drawable/ic_file_music_white_24dp.xml
@@ -1,8 +1,22 @@
+
+
+ android:viewportWidth="24"
+ android:viewportHeight="24">
diff --git a/app/src/main/res/drawable/ic_filter_song_white_24dp.xml b/app/src/main/res/drawable/ic_filter_song_white_24dp.xml
new file mode 100644
index 00000000..a967acba
--- /dev/null
+++ b/app/src/main/res/drawable/ic_filter_song_white_24dp.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
\ No newline at end of file
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 832b5788..6f6136f0 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
@@ -4,8 +4,7 @@
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
-
+ android:pathData="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z" />
\ 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 b78bab9d..76f069b7 100644
--- a/app/src/main/res/drawable/ic_home_white_24dp.xml
+++ b/app/src/main/res/drawable/ic_home_white_24dp.xml
@@ -6,5 +6,5 @@
android:viewportHeight="24">
+ android:pathData="M12 5.69l5 4.5V18h-2v-6H9v6H7v-7.81l5-4.5M12 3L2 12h3v8h6v-6h2v6h6v-8h3L12 3z" />
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_music_note_off_white_24dp.xml b/app/src/main/res/drawable/ic_music_note_off_white_24dp.xml
new file mode 100644
index 00000000..7c7bf9bc
--- /dev/null
+++ b/app/src/main/res/drawable/ic_music_note_off_white_24dp.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_play_arrow_white_24dp.xml b/app/src/main/res/drawable/ic_play_arrow_white_24dp.xml
index 646e0113..8cfcca6d 100644
--- a/app/src/main/res/drawable/ic_play_arrow_white_24dp.xml
+++ b/app/src/main/res/drawable/ic_play_arrow_white_24dp.xml
@@ -1,7 +1,7 @@
diff --git a/app/src/main/res/drawable/ic_play_arrow_white_32dp.xml b/app/src/main/res/drawable/ic_play_arrow_white_32dp.xml
new file mode 100644
index 00000000..8ed511c7
--- /dev/null
+++ b/app/src/main/res/drawable/ic_play_arrow_white_32dp.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_play_arrow_white_big.xml b/app/src/main/res/drawable/ic_play_arrow_white_64dp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_play_arrow_white_big.xml
rename to app/src/main/res/drawable/ic_play_arrow_white_64dp.xml
diff --git a/app/src/main/res/drawable/ic_rounded_corner.xml b/app/src/main/res/drawable/ic_rounded_corner.xml
index 5c2c2437..aa36e0ce 100644
--- a/app/src/main/res/drawable/ic_rounded_corner.xml
+++ b/app/src/main/res/drawable/ic_rounded_corner.xml
@@ -2,8 +2,8 @@
+ android:viewportWidth="24"
+ android:viewportHeight="24">
diff --git a/app/src/main/res/drawable/ic_settings_brigntness_white_24dp.xml b/app/src/main/res/drawable/ic_settings_brigntness_white_24dp.xml
new file mode 100644
index 00000000..013be8c3
--- /dev/null
+++ b/app/src/main/res/drawable/ic_settings_brigntness_white_24dp.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/promotional.webp b/app/src/main/res/drawable/promotional.webp
new file mode 100644
index 00000000..321f68d9
Binary files /dev/null and b/app/src/main/res/drawable/promotional.webp differ
diff --git a/app/src/main/res/font/circular.xml b/app/src/main/res/font/circular.xml
index a1f9df1a..d5fabd61 100644
--- a/app/src/main/res/font/circular.xml
+++ b/app/src/main/res/font/circular.xml
@@ -7,7 +7,7 @@
+ android:fontWeight="600" />
-
-
-
-
diff --git a/app/src/main/res/layout-land/activity_album_tag_editor.xml b/app/src/main/res/layout-land/activity_album_tag_editor.xml
index 7459c3ec..072738af 100644
--- a/app/src/main/res/layout-land/activity_album_tag_editor.xml
+++ b/app/src/main/res/layout-land/activity_album_tag_editor.xml
@@ -21,14 +21,8 @@
android:id="@+id/toolbar"
style="@style/Toolbar"
app:navigationIcon="@drawable/ic_keyboard_backspace_black_24dp"
- tools:ignore="UnusedAttribute">
-
-
-
-
+ app:title="@string/action_tag_editor"
+ tools:ignore="UnusedAttribute" />
-
diff --git a/app/src/main/res/layout-land/fragment_banner_home.xml b/app/src/main/res/layout-land/fragment_banner_home.xml
index 894f7bd0..3bd0cf62 100644
--- a/app/src/main/res/layout-land/fragment_banner_home.xml
+++ b/app/src/main/res/layout-land/fragment_banner_home.xml
@@ -56,35 +56,25 @@
-
+
-
-
-
-
-
+
+
diff --git a/app/src/main/res/layout-land/fragment_home.xml b/app/src/main/res/layout-land/fragment_home.xml
index 61b51fd7..3586ddc3 100644
--- a/app/src/main/res/layout-land/fragment_home.xml
+++ b/app/src/main/res/layout-land/fragment_home.xml
@@ -26,35 +26,23 @@
android:elevation="0dp"
app:elevation="0dp">
-
-
+
-
-
-
-
+
+
diff --git a/app/src/main/res/layout-land/fragment_slide_player.xml b/app/src/main/res/layout-land/fragment_slide_player.xml
index bcf5c47f..2885e519 100644
--- a/app/src/main/res/layout-land/fragment_slide_player.xml
+++ b/app/src/main/res/layout-land/fragment_slide_player.xml
@@ -256,7 +256,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/previousButton"
app:layout_constraintTop_toTopOf="parent"
- app:srcCompat="@drawable/ic_play_arrow_white_24dp"
+ app:srcCompat="@drawable/ic_play_arrow_white_32dp"
tools:layout_editor_absoluteY="0dp"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout-land/pager_item.xml b/app/src/main/res/layout-land/pager_item.xml
index 920de1e1..01ba6aa4 100644
--- a/app/src/main/res/layout-land/pager_item.xml
+++ b/app/src/main/res/layout-land/pager_item.xml
@@ -29,7 +29,7 @@
android:background="@drawable/color_circle_gradient"
android:backgroundTint="@color/eighty_percent_black_overlay"
android:padding="8dp"
- app:srcCompat="@drawable/ic_play_arrow_white_24dp" />
+ app:srcCompat="@drawable/ic_play_arrow_white_32dp" />
-
-
-
-
-
-
diff --git a/app/src/main/res/layout-xlarge-land/fragment_banner_home.xml b/app/src/main/res/layout-xlarge-land/fragment_banner_home.xml
index 65af5326..2955e154 100644
--- a/app/src/main/res/layout-xlarge-land/fragment_banner_home.xml
+++ b/app/src/main/res/layout-xlarge-land/fragment_banner_home.xml
@@ -12,7 +12,6 @@
android:layout_height="match_parent">
-
+
-
-
-
-
-
-
+
+
diff --git a/app/src/main/res/layout-xlarge-land/fragment_home.xml b/app/src/main/res/layout-xlarge-land/fragment_home.xml
index c332b986..7da43fdf 100644
--- a/app/src/main/res/layout-xlarge-land/fragment_home.xml
+++ b/app/src/main/res/layout-xlarge-land/fragment_home.xml
@@ -27,36 +27,23 @@
android:elevation="0dp"
app:elevation="0dp">
-
-
-
-
-
-
-
+
+
+
+ app:srcCompat="@drawable/ic_play_arrow_white_32dp" />
+ android:layout_gravity="center_vertical"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:paddingStart="24dp"
+ android:paddingTop="10dp"
+ android:paddingEnd="24dp"
+ android:paddingBottom="10dp">
-
+
+
+ android:orientation="vertical"
+ android:paddingStart="16dp"
+ android:paddingEnd="0dp">
-
+
+
+
+
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout-xlarge/activity_artist_content.xml b/app/src/main/res/layout-xlarge/activity_artist_content.xml
index c56b8a3c..ed4a24ab 100644
--- a/app/src/main/res/layout-xlarge/activity_artist_content.xml
+++ b/app/src/main/res/layout-xlarge/activity_artist_content.xml
@@ -1,10 +1,50 @@
+
+
+
+
+
+
+
+
-
-
diff --git a/app/src/main/res/layout-xlarge/fragment_banner_home.xml b/app/src/main/res/layout-xlarge/fragment_banner_home.xml
index b5812812..bf1489e4 100644
--- a/app/src/main/res/layout-xlarge/fragment_banner_home.xml
+++ b/app/src/main/res/layout-xlarge/fragment_banner_home.xml
@@ -57,34 +57,23 @@
-
-
+
-
-
-
+
+
diff --git a/app/src/main/res/layout-xlarge/fragment_home.xml b/app/src/main/res/layout-xlarge/fragment_home.xml
index 560c9f10..79d4afd1 100644
--- a/app/src/main/res/layout-xlarge/fragment_home.xml
+++ b/app/src/main/res/layout-xlarge/fragment_home.xml
@@ -28,35 +28,23 @@
android:elevation="0dp"
app:elevation="0dp">
-
+
-
-
-
-
-
+
+
+ app:srcCompat="@drawable/ic_play_arrow_white_32dp" />
+ android:orientation="vertical"
+ android:paddingBottom="12dp">
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:text="@string/history"
+ app:fontFamily="@font/circular" />
@@ -76,8 +121,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
- android:padding="12dp"
- app:iconBackgroundColor="@color/md_red_A700"
+ android:padding="16dp"
+ app:iconBackgroundColor="@color/md_red_500"
app:srcCompat="@drawable/ic_library_add_white_24dp" />
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_album_content.xml b/app/src/main/res/layout/activity_album_content.xml
index 18700f8f..8d17a7be 100644
--- a/app/src/main/res/layout/activity_album_content.xml
+++ b/app/src/main/res/layout/activity_album_content.xml
@@ -1,9 +1,50 @@
+
+
+
+
+
+
+
+
-
-
-
-
-
+ app:title="@string/action_tag_editor"
+ tools:ignore="UnusedAttribute" />
@@ -102,9 +95,9 @@
-
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp">
-
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_artist_details.xml b/app/src/main/res/layout/activity_artist_details.xml
index 17ba178a..98597a92 100755
--- a/app/src/main/res/layout/activity_artist_details.xml
+++ b/app/src/main/res/layout/activity_artist_details.xml
@@ -97,14 +97,4 @@
-
-
-
diff --git a/app/src/main/res/layout/activity_playlist_detail.xml b/app/src/main/res/layout/activity_playlist_detail.xml
index 84cc05c9..f2426076 100644
--- a/app/src/main/res/layout/activity_playlist_detail.xml
+++ b/app/src/main/res/layout/activity_playlist_detail.xml
@@ -84,14 +84,5 @@
android:visibility="gone"
tools:visibility="visible" />
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_search.xml b/app/src/main/res/layout/activity_search.xml
index f42abb7e..cb0e1a8a 100755
--- a/app/src/main/res/layout/activity_search.xml
+++ b/app/src/main/res/layout/activity_search.xml
@@ -15,30 +15,32 @@
android:fitsSystemWindows="true"
app:elevation="0dp">
-
+ app:cardCornerRadius="8dp"
+ app:cardElevation="6dp"
+ app:cardUseCompatPadding="true">
-
-
-
+ android:layout_height="50dp"
+ android:gravity="center_vertical">
+
+
+
-
-
-
-
+
+
+
-
-
-
-
-
-
+ app:title="@string/action_tag_editor"
+ tools:ignore="UnusedAttribute" />
diff --git a/app/src/main/res/layout/activity_user_info.xml b/app/src/main/res/layout/activity_user_info.xml
index a3c164ff..708ed465 100644
--- a/app/src/main/res/layout/activity_user_info.xml
+++ b/app/src/main/res/layout/activity_user_info.xml
@@ -109,7 +109,9 @@
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:autofillHints="name"
android:hint="@string/my_name"
+ android:importantForAutofill="yes"
android:inputType="textPersonName|textCapWords|text"
android:textAppearance="@style/TextAppearance.AppCompat.Subhead"
tools:text="@string/song" />
@@ -123,6 +125,7 @@
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="16dp"
+ android:visibility="gone"
app:hintAnimationEnabled="true">
diff --git a/app/src/main/res/layout/app_widget_big.xml b/app/src/main/res/layout/app_widget_big.xml
index 94c08d16..c20cfe96 100755
--- a/app/src/main/res/layout/app_widget_big.xml
+++ b/app/src/main/res/layout/app_widget_big.xml
@@ -41,7 +41,7 @@
android:padding="22dp"
android:background="@drawable/widget_selector_dark"
tools:ignore="ContentDescription"
- tools:src="@drawable/ic_play_arrow_white_24dp"
+ tools:src="@drawable/ic_play_arrow_white_32dp"
tools:tint="@color/ate_primary_text_dark"/>
+ app:srcCompat="@drawable/ic_play_arrow_white_32dp" />
diff --git a/app/src/main/res/layout/fragment_banner_home.xml b/app/src/main/res/layout/fragment_banner_home.xml
index a34085c8..65a8a0ad 100644
--- a/app/src/main/res/layout/fragment_banner_home.xml
+++ b/app/src/main/res/layout/fragment_banner_home.xml
@@ -52,36 +52,23 @@
-
+
-
-
-
-
-
-
+
+
@@ -104,7 +91,8 @@
android:descendantFocusability="blocksDescendants"
android:focusable="true"
android:focusableInTouchMode="true"
- android:orientation="vertical">
+ android:orientation="vertical"
+ android:paddingTop="8dp">
diff --git a/app/src/main/res/layout/fragment_blur_playback_controls.xml b/app/src/main/res/layout/fragment_blur_playback_controls.xml
index 1f676fc2..b32c4d30 100644
--- a/app/src/main/res/layout/fragment_blur_playback_controls.xml
+++ b/app/src/main/res/layout/fragment_blur_playback_controls.xml
@@ -171,7 +171,7 @@
android:background="@drawable/color_circle_gradient"
android:elevation="4dp"
android:padding="16dp"
- app:srcCompat="@drawable/ic_play_arrow_white_24dp" />
+ app:srcCompat="@drawable/ic_play_arrow_white_32dp" />
diff --git a/app/src/main/res/layout/fragment_folder.xml b/app/src/main/res/layout/fragment_folder.xml
index 3ce0b73a..750b8076 100644
--- a/app/src/main/res/layout/fragment_folder.xml
+++ b/app/src/main/res/layout/fragment_folder.xml
@@ -30,46 +30,33 @@
android:elevation="0dp"
app:elevation="0dp">
-
+ app:cardCornerRadius="8dp"
+ app:cardElevation="6dp"
+ app:cardUseCompatPadding="true">
-
-
-
-
-
-
-
-
-
-
+ android:layout_height="wrap_content"
+ app:layout_scrollFlags="scroll|enterAlways">
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_height="wrap_content">
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+ app:cardCornerRadius="8dp"
+ app:cardElevation="6dp"
+ app:cardUseCompatPadding="true">
-
-
-
-
+ android:orientation="vertical">
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+ android:layout_marginStart="16dp"
+ android:layout_marginTop="8dp"
+ android:layout_marginBottom="8dp"
+ android:text="@string/premium"
+ app:icon="@drawable/ic_diamond_stone_white_24dp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@id/titleContainer" />
+
+
diff --git a/app/src/main/res/layout/item_list.xml b/app/src/main/res/layout/item_list.xml
index 1eda75c1..867d4377 100755
--- a/app/src/main/res/layout/item_list.xml
+++ b/app/src/main/res/layout/item_list.xml
@@ -81,7 +81,6 @@
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
- app:fontFamily="@font/circular_std_medium"
android:textSize="16sp" />
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_list_single_row.xml b/app/src/main/res/layout/item_list_single_row.xml
index 650a5938..3e86e5af 100644
--- a/app/src/main/res/layout/item_list_single_row.xml
+++ b/app/src/main/res/layout/item_list_single_row.xml
@@ -12,8 +12,8 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical|start"
- android:layout_marginLeft="-8dp"
android:layout_marginStart="-8dp"
+ android:layout_marginLeft="-8dp"
android:visibility="gone"
app:srcCompat="@drawable/ic_drag_vertical_white_24dp"
tools:ignore="ContentDescription" />
@@ -28,10 +28,10 @@
android:id="@+id/image_container"
android:layout_width="wrap_content"
android:layout_height="match_parent"
- android:paddingEnd="0dp"
+ android:paddingStart="16dp"
android:paddingLeft="16dp"
- android:paddingRight="0dp"
- android:paddingStart="16dp">
+ android:paddingEnd="0dp"
+ android:paddingRight="0dp">
@@ -88,8 +88,8 @@
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_gravity="bottom"
- android:layout_marginLeft="72dp"
android:layout_marginStart="72dp"
+ android:layout_marginLeft="72dp"
android:background="?attr/dividerColor" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/media_button.xml b/app/src/main/res/layout/media_button.xml
index 668414ea..e2907bfc 100644
--- a/app/src/main/res/layout/media_button.xml
+++ b/app/src/main/res/layout/media_button.xml
@@ -81,6 +81,6 @@
android:background="@drawable/color_circle_gradient"
android:elevation="4dp"
android:padding="16dp"
- app:srcCompat="@drawable/ic_play_arrow_white_24dp" />
+ app:srcCompat="@drawable/ic_play_arrow_white_32dp" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/pager_item.xml b/app/src/main/res/layout/pager_item.xml
index 25f8719d..55184962 100644
--- a/app/src/main/res/layout/pager_item.xml
+++ b/app/src/main/res/layout/pager_item.xml
@@ -29,7 +29,7 @@
android:background="@drawable/color_circle_gradient"
android:backgroundTint="@color/eighty_percent_black_overlay"
android:padding="8dp"
- app:srcCompat="@drawable/ic_play_arrow_white_24dp" />
+ app:srcCompat="@drawable/ic_play_arrow_white_32dp" />
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_search.xml b/app/src/main/res/menu/menu_search.xml
index a1a3e0a0..a6855ef2 100644
--- a/app/src/main/res/menu/menu_search.xml
+++ b/app/src/main/res/menu/menu_search.xml
@@ -17,6 +17,6 @@
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 1df4872a..bca60909 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -5,5 +5,8 @@
#607d8b
#f5f5f5
#3D5AFE
-
+ #202124
+ #2C2D30
+ #121212
+ #1E1E1E
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 96f6d738..995f1e83 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -244,7 +244,7 @@
Material
- My Name
+ Name
Most played
Never
@@ -548,7 +548,7 @@
Vertical flip
Hinge
Horizontal flip
- Pause playing on zero and plays after raise volume. Warning when you increase the volume it starts playing even your outside the app
+ Pauses the song when the volume decreases to zero and starts playing back when the volume level rises. Also works outside the app
Pause on zero
What\'s New
@@ -621,4 +621,9 @@
Gradient image
Stack
+
+ Welcome,
+ Get Premium
+ Now playing themes, Carousel effect, Color theme and more..
+ Play all
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 7c84c5ac..7cd659e7 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -28,7 +28,7 @@
diff --git a/app/src/main/res/values/styles_parents.xml b/app/src/main/res/values/styles_parents.xml
index caf32804..3160afbd 100644
--- a/app/src/main/res/values/styles_parents.xml
+++ b/app/src/main/res/values/styles_parents.xml
@@ -65,27 +65,24 @@
- @drawable/rect_selector_dark
- @drawable/rect_selector_strong_dark
- - @color/md_grey_800
+ - @color/card_dark_color
+ - @color/dark_color
+ - @color/dark_color
- - @color/md_grey_800
-
- - @color/md_grey_800
- @color/ate_secondary_text_dark
- @style/ThemeOverlay.AppCompat
- - @color/md_grey_900
+ - @color/dark_color
- @android:color/white
- - @color/md_grey_900
+ - @color/dark_color
- @style/Widget.ActionButton.Overflow
- @style/PreferenceThemeOverlay.v14.Material
- - @style/BottomSheetDialog
-
- true
- @transition/grid_exit
- @transition/grid_exit
@@ -95,6 +92,8 @@
- @font/circular
- @color/md_white_1000
+ - false
+
diff --git a/app/src/main/res/values/values.xml b/app/src/main/res/values/values.xml
index 28555eca..7c4640f9 100755
--- a/app/src/main/res/values/values.xml
+++ b/app/src/main/res/values/values.xml
@@ -7,4 +7,5 @@
artist_image_transition
artist_image_transition
mini_player_transition
+ toolbar_transition
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_advanced.xml b/app/src/main/res/xml/pref_advanced.xml
index 333163cd..57fbf59c 100755
--- a/app/src/main/res/xml/pref_advanced.xml
+++ b/app/src/main/res/xml/pref_advanced.xml
@@ -9,17 +9,16 @@
android:max="60"
android:title="@string/pref_filter_song_title"
app:enableCopying="true"
- app:iconSpaceReserved="false"
+ app:icon="@drawable/ic_filter_song_white_24dp"
app:showSeekBarValue="true" />
-
+ app:icon="@drawable/ic_pause_white_24dp" />
-
-
+ app:icon="@drawable/ic_settings_brigntness_white_24dp" />
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_audio.xml b/app/src/main/res/xml/pref_audio.xml
index 6595edac..a81f3d75 100755
--- a/app/src/main/res/xml/pref_audio.xml
+++ b/app/src/main/res/xml/pref_audio.xml
@@ -5,45 +5,48 @@
+ android:title="@string/pref_title_audio_ducking"
+ app:enableCopying="true"
+ app:icon="@drawable/ic_volume_down_white_24dp" />
+ android:title="@string/pref_title_gapless_playback"
+ app:enableCopying="true" />
+ android:title="@string/pref_title_choose_equalizer"
+ app:enableCopying="true"
+ app:icon="@drawable/ic_equalizer_white_24dp" />
-
+ android:title="@string/equalizer"
+ app:enableCopying="true" />
+ app:enableCopying="true"
+ app:icon="@drawable/ic_play_arrow_white_32dp" />
+ app:enableCopying="true"
+ app:icon="@drawable/ic_shuffle_white_24dp" />
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_blacklist.xml b/app/src/main/res/xml/pref_blacklist.xml
index 865ce948..09ed2298 100644
--- a/app/src/main/res/xml/pref_blacklist.xml
+++ b/app/src/main/res/xml/pref_blacklist.xml
@@ -7,7 +7,8 @@
android:key="blacklist"
android:summary="@string/pref_summary_blacklist"
android:title="@string/pref_title_blacklist"
- app:iconSpaceReserved="false" />
+ app:enableCopying="true"
+ app:icon="@drawable/ic_music_note_off_white_24dp" />
diff --git a/app/src/main/res/xml/pref_extras.xml b/app/src/main/res/xml/pref_extras.xml
deleted file mode 100644
index 50612d1d..00000000
--- a/app/src/main/res/xml/pref_extras.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_general.xml b/app/src/main/res/xml/pref_general.xml
index 373f5475..e0d667c9 100755
--- a/app/src/main/res/xml/pref_general.xml
+++ b/app/src/main/res/xml/pref_general.xml
@@ -10,7 +10,8 @@
android:negativeButtonText="@null"
android:positiveButtonText="@null"
android:title="@string/pref_title_general_theme"
- app:iconSpaceReserved="false" />
+ app:enableCopying="true"
+ app:icon="@drawable/ic_color_lens_white_24dp" />
@@ -19,35 +20,36 @@
android:persistent="false"
android:summary="@string/primary_color_desc"
android:title="@string/primary_color"
- app:iconSpaceReserved="false"
- app:isPreferenceVisible="false" />
+ app:enableCopying="true"
+ app:icon="@drawable/ic_colorize_white_24dp" />
+ app:enableCopying="true"
+ app:icon="@drawable/ic_colorize_white_24dp" />
+ app:enableCopying="true" />
+ app:enableCopying="true" />
+ app:enableCopying="true" />
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_images.xml b/app/src/main/res/xml/pref_images.xml
index fdd4ae37..75d025e9 100755
--- a/app/src/main/res/xml/pref_images.xml
+++ b/app/src/main/res/xml/pref_images.xml
@@ -4,16 +4,17 @@
+ android:title="@string/pref_title_ignore_media_store_artwork"
+ app:enableCopying="true" />
+ android:title="@string/pref_title_auto_download_artist_images"
+ app:enableCopying="true" />
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_lockscreen.xml b/app/src/main/res/xml/pref_lockscreen.xml
index af17bee6..2d95e375 100755
--- a/app/src/main/res/xml/pref_lockscreen.xml
+++ b/app/src/main/res/xml/pref_lockscreen.xml
@@ -4,24 +4,24 @@
+ android:title="@string/pref_title_album_art_on_lockscreen"
+ app:enableCopying="true" />
+ android:title="@string/pref_title_blurred_album_art"
+ app:enableCopying="true" />
+ android:title="@string/pref_title_lock_screen"
+ app:enableCopying="true" />
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_notification.xml b/app/src/main/res/xml/pref_notification.xml
index 64e24946..438311b9 100755
--- a/app/src/main/res/xml/pref_notification.xml
+++ b/app/src/main/res/xml/pref_notification.xml
@@ -4,15 +4,16 @@
+ android:title="@string/pref_title_colored_notification"
+ app:enableCopying="true"
+ app:icon="@drawable/ic_cellphone_lock_white_24dp" />
+ android:title="@string/pref_title_classic_notification"
+ app:enableCopying="true" />
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_now_playing_screen.xml b/app/src/main/res/xml/pref_now_playing_screen.xml
index 3f9ad320..15227f3b 100644
--- a/app/src/main/res/xml/pref_now_playing_screen.xml
+++ b/app/src/main/res/xml/pref_now_playing_screen.xml
@@ -5,12 +5,13 @@
+ app:enableCopying="true"
+ app:icon="@drawable/ic_play_circle_filled_white_24dp" />
+ app:enableCopying="true" />
+ app:enableCopying="true" />
@@ -30,14 +32,16 @@
@@ -48,7 +52,8 @@
android:max="25"
android:summary="@string/pref_blur_amount_summary"
android:title="@string/pref_blur_amount_title"
- app:iconSpaceReserved="false"
+ app:enableCopying="true"
+ app:icon="@drawable/ic_blur_on_white_24dp"
app:showSeekBarValue="true" />
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_playlists.xml b/app/src/main/res/xml/pref_playlists.xml
index 84979a45..b94c67ce 100644
--- a/app/src/main/res/xml/pref_playlists.xml
+++ b/app/src/main/res/xml/pref_playlists.xml
@@ -8,10 +8,11 @@
android:entries="@array/pref_playlists_last_added_interval_titles"
android:entryValues="@array/pref_playlists_last_added_interval_values"
android:key="last_added_interval"
- app:iconSpaceReserved="false"
android:negativeButtonText="@null"
android:positiveButtonText="@null"
- android:title="@string/pref_title_last_added_interval" />
+ android:title="@string/pref_title_last_added_interval"
+ app:enableCopying="true"
+ app:icon="@drawable/ic_playlist_add_white_24dp" />
diff --git a/app/src/main/res/xml/pref_ui.xml b/app/src/main/res/xml/pref_ui.xml
index abe21437..11247eaf 100644
--- a/app/src/main/res/xml/pref_ui.xml
+++ b/app/src/main/res/xml/pref_ui.xml
@@ -2,69 +2,63 @@
-
+
+
-
+
-
-
+
-
+
-
-
-
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/pref_window.xml b/app/src/main/res/xml/pref_window.xml
index 7f743ade..676d1046 100644
--- a/app/src/main/res/xml/pref_window.xml
+++ b/app/src/main/res/xml/pref_window.xml
@@ -1,19 +1,24 @@
-
+
+
+ app:enableCopying="true"
+ app:icon="@drawable/ic_rounded_corner" />
+ app:icon="@drawable/ic_cellphone_white_24dp" />
\ No newline at end of file
diff --git a/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/prefs/supportv7/ATEColorPreference.kt b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/prefs/supportv7/ATEColorPreference.kt
index c30a6816..3909961b 100755
--- a/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/prefs/supportv7/ATEColorPreference.kt
+++ b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/prefs/supportv7/ATEColorPreference.kt
@@ -1,12 +1,13 @@
package code.name.monkey.appthemehelper.common.prefs.supportv7
import android.content.Context
-import androidx.preference.Preference
-import androidx.preference.PreferenceViewHolder
+import android.graphics.PorterDuff
import android.util.AttributeSet
import android.view.View
-
+import androidx.preference.Preference
+import androidx.preference.PreferenceViewHolder
import code.name.monkey.appthemehelper.R
+import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.common.prefs.BorderCircleView
/**
@@ -35,6 +36,9 @@ class ATEColorPreference(context: Context, attrs: AttributeSet?, defStyleAttr: I
layoutResource = R.layout.ate_preference_custom_support
widgetLayoutResource = R.layout.ate_preference_color
isPersistent = false
+
+
+ icon?.setColorFilter(ThemeStore.textColorSecondary(context), PorterDuff.Mode.SRC_IN)
}
override fun onBindViewHolder(holder: PreferenceViewHolder) {
diff --git a/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/prefs/supportv7/ATESeekBarPreference.kt b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/prefs/supportv7/ATESeekBarPreference.kt
index 34fa7cbb..3cd3db72 100644
--- a/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/prefs/supportv7/ATESeekBarPreference.kt
+++ b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/prefs/supportv7/ATESeekBarPreference.kt
@@ -1,10 +1,9 @@
package code.name.monkey.appthemehelper.common.prefs.supportv7
import android.content.Context
-import android.content.res.ColorStateList
+import android.graphics.PorterDuff
import android.util.AttributeSet
import android.widget.SeekBar
-import android.widget.TextView
import androidx.preference.PreferenceViewHolder
import androidx.preference.SeekBarPreference
import code.name.monkey.appthemehelper.R
@@ -29,7 +28,7 @@ class ATESeekBarPreference : SeekBarPreference {
}
private fun init() {
-
+ icon?.setColorFilter(ThemeStore.textColorSecondary(context), PorterDuff.Mode.SRC_IN)
}
override fun onBindViewHolder(view: PreferenceViewHolder) {
diff --git a/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/prefs/supportv7/ATESwitchPreference.kt b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/prefs/supportv7/ATESwitchPreference.kt
index 589d1cae..eda097f1 100755
--- a/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/prefs/supportv7/ATESwitchPreference.kt
+++ b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/common/prefs/supportv7/ATESwitchPreference.kt
@@ -2,10 +2,12 @@ package code.name.monkey.appthemehelper.common.prefs.supportv7
import android.annotation.TargetApi
import android.content.Context
+import android.graphics.PorterDuff
import android.os.Build
import android.util.AttributeSet
import androidx.preference.CheckBoxPreference
import code.name.monkey.appthemehelper.R
+import code.name.monkey.appthemehelper.ThemeStore
/**
* @author Aidan Follestad (afollestad)
@@ -31,5 +33,6 @@ class ATESwitchPreference : CheckBoxPreference {
private fun init() {
widgetLayoutResource = R.layout.ate_preference_switch_support
+ icon?.setColorFilter(ThemeStore.textColorSecondary(context), PorterDuff.Mode.SRC_IN)
}
}
\ No newline at end of file
diff --git a/appthemehelper/src/main/java/code/name/monkey/appthemehelper/util/ToolbarContentTintHelper.java b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/util/ToolbarContentTintHelper.java
index 70d27ae2..fa73ab93 100755
--- a/appthemehelper/src/main/java/code/name/monkey/appthemehelper/util/ToolbarContentTintHelper.java
+++ b/appthemehelper/src/main/java/code/name/monkey/appthemehelper/util/ToolbarContentTintHelper.java
@@ -17,9 +17,7 @@ import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.RadioButton;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
+import android.widget.TextView;
import androidx.annotation.CheckResult;
import androidx.annotation.ColorInt;
@@ -39,6 +37,10 @@ import androidx.appcompat.widget.AppCompatImageView;
import androidx.appcompat.widget.Toolbar;
import androidx.appcompat.widget.ToolbarWidgetWrapper;
import androidx.core.graphics.drawable.DrawableCompat;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+
import code.name.monkey.appthemehelper.R;
import code.name.monkey.appthemehelper.ThemeStore;
@@ -82,12 +84,14 @@ public final class ToolbarContentTintHelper {
}
}
- public static void colorBackButton(Toolbar toolbar, @ColorInt int color) {
+ public static void colorBackButton(@NonNull Toolbar toolbar, @ColorInt int color) {
final PorterDuffColorFilter colorFilter = new PorterDuffColorFilter(color, PorterDuff.Mode.MULTIPLY);
for (int i = 0; i < toolbar.getChildCount(); i++) {
final View backButton = toolbar.getChildAt(i);
if (backButton instanceof ImageView) {
((ImageView) backButton).getDrawable().setColorFilter(colorFilter);
+ } else if (backButton instanceof TextView) {
+ // ((TextView) backButton).setTextColor(color);
}
}
}
diff --git a/appthemehelper/src/main/res/layout/ate_preference_category.xml b/appthemehelper/src/main/res/layout/ate_preference_category.xml
index 5b55b1a6..4a1d894a 100755
--- a/appthemehelper/src/main/res/layout/ate_preference_category.xml
+++ b/appthemehelper/src/main/res/layout/ate_preference_category.xml
@@ -5,7 +5,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
- android:paddingStart="16dp"
+ android:paddingStart="72dp"
android:paddingLeft="16dp"
android:paddingTop="16dp"
android:textAppearance="@style/TextAppearance.MaterialComponents.Body2"
diff --git a/appthemehelper/src/main/res/layout/ate_preference_custom_support.xml b/appthemehelper/src/main/res/layout/ate_preference_custom_support.xml
index e53f3a08..0bd3d0e2 100755
--- a/appthemehelper/src/main/res/layout/ate_preference_custom_support.xml
+++ b/appthemehelper/src/main/res/layout/ate_preference_custom_support.xml
@@ -25,7 +25,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
- android:layout_marginStart="@dimen/ate_preference_inset"
+ android:layout_marginStart="32dp"
android:layout_marginLeft="@dimen/ate_preference_inset"
android:layout_marginTop="12dip"
android:layout_marginEnd="6dip"
diff --git a/appthemehelper/src/main/res/values/colors_material_design.xml b/appthemehelper/src/main/res/values/colors_material_design.xml
index 4084a5e2..3fd119ce 100755
--- a/appthemehelper/src/main/res/values/colors_material_design.xml
+++ b/appthemehelper/src/main/res/values/colors_material_design.xml
@@ -21,6 +21,7 @@
#651FFF
#30673AB7
+ #673AB7
#6200EA
@@ -36,6 +37,7 @@
#69F0AE
#00C853
+ #4CAF50
#304CAF50