diff --git a/app/build.gradle b/app/build.gradle
index 6cf25781f..6383d3739 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -41,15 +41,6 @@ android {
}
}
-
- flavorDimensions "default"
-
- productFlavors {
- normal {
- dimension "default"
- }
- }
-
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
@@ -87,17 +78,15 @@ dependencies {
implementation "androidx.gridlayout:gridlayout:1.0.0"
implementation "androidx.cardview:cardview:1.0.0"
- implementation "androidx.palette:palette:1.0.0"
implementation "androidx.viewpager2:viewpager2:1.1.0-alpha01"
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.annotation:annotation:1.1.0'
- implementation 'androidx.preference:preference:1.1.1'
-
+ implementation 'androidx.preference:preference-ktx:1.1.1'
implementation 'androidx.core:core-ktx:1.3.0'
implementation 'androidx.fragment:fragment-ktx:1.2.5'
implementation 'androidx.palette:palette-ktx:1.0.0'
- implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+ implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta8'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
implementation 'com.google.android.material:material:1.3.0-alpha01'
@@ -118,11 +107,8 @@ dependencies {
implementation('com.h6ah4i.android.widget.advrecyclerview:advrecyclerview:0.11.0@aar') {
transitive = true
}
- /*UI Library*/
- implementation 'me.zhanghai.android.materialprogressbar:library:1.6.1'
-
+ def kotlin_coroutines_version = "1.3.8"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
- def kotlin_coroutines_version = "1.3.3"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlin_coroutines_version"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlin_coroutines_version"
@@ -141,9 +127,13 @@ dependencies {
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
- kapt "androidx.lifecycle:lifecycle-compiler:$lifecycle_version"
implementation 'me.jorgecastillo:androidcolorx:0.2.0'
debugImplementation 'com.amitshekhar.android:debug-db:1.0.4'
implementation 'com.github.dhaval2404:imagepicker:1.7.1'
+
+ def koin_version = "2.1.5"
+ implementation "org.koin:koin-core:$koin_version"
+ implementation "org.koin:koin-android:$koin_version"
+ implementation "org.koin:koin-android-viewmodel:$koin_version"
}
\ No newline at end of file
diff --git a/app/release/output.json b/app/release/output.json
new file mode 100644
index 000000000..758f3ea4a
--- /dev/null
+++ b/app/release/output.json
@@ -0,0 +1,20 @@
+{
+ "version": 1,
+ "artifactType": {
+ "type": "APK",
+ "kind": "Directory"
+ },
+ "applicationId": "code.name.monkey.retromusic",
+ "variantName": "release",
+ "elements": [
+ {
+ "type": "SINGLE",
+ "filters": [],
+ "properties": [],
+ "versionCode": 10438,
+ "versionName": "10438",
+ "enabled": true,
+ "outputFile": "app-release.apk"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 98cf057d0..30cf2312c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -106,7 +106,7 @@
-
+
@@ -121,7 +121,7 @@
+ AlbumDetailsViewModel(get(), albumId)
+ }
+
+ viewModel { (artistId: Int) ->
+ ArtistDetailsViewModel(get(), artistId)
+ }
+
+ viewModel { (playlist: Playlist) ->
+ PlaylistDetailsViewModel(get(), playlist)
+ }
+
+ viewModel { (genre: Genre) ->
+ GenreDetailsViewModel(get(), genre)
+ }
+
+ viewModel {
+ SearchViewModel(get())
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/PeekingLinearLayoutManager.kt b/app/src/main/java/io/github/muntashirakon/music/PeekingLinearLayoutManager.kt
new file mode 100644
index 000000000..a7961ffd3
--- /dev/null
+++ b/app/src/main/java/io/github/muntashirakon/music/PeekingLinearLayoutManager.kt
@@ -0,0 +1,46 @@
+package code.name.monkey.retromusic
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.ViewGroup
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+
+class PeekingLinearLayoutManager : LinearLayoutManager {
+ @JvmOverloads
+ constructor(
+ context: Context?,
+ @RecyclerView.Orientation orientation: Int = RecyclerView.VERTICAL,
+ reverseLayout: Boolean = false
+ ) : super(context, orientation, reverseLayout)
+
+ constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(
+ context,
+ attrs,
+ defStyleAttr,
+ defStyleRes
+ )
+
+ override fun generateDefaultLayoutParams() =
+ scaledLayoutParams(super.generateDefaultLayoutParams())
+
+ override fun generateLayoutParams(lp: ViewGroup.LayoutParams?) =
+ scaledLayoutParams(super.generateLayoutParams(lp))
+
+ override fun generateLayoutParams(c: Context?, attrs: AttributeSet?) =
+ scaledLayoutParams(super.generateLayoutParams(c, attrs))
+
+ private fun scaledLayoutParams(layoutParams: RecyclerView.LayoutParams) =
+ layoutParams.apply {
+ when (orientation) {
+ HORIZONTAL -> width = (horizontalSpace * ratio).toInt()
+ VERTICAL -> height = (verticalSpace * ratio).toInt()
+ }
+ }
+
+ private val horizontalSpace get() = width - paddingStart - paddingEnd
+
+ private val verticalSpace get() = height - paddingTop - paddingBottom
+
+ private val ratio = 0.8f // change to 0.7f for 70%
+}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/Result.kt b/app/src/main/java/io/github/muntashirakon/music/Result.kt
deleted file mode 100644
index 4a6cecbb1..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/Result.kt
+++ /dev/null
@@ -1,26 +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 io.github.muntashirakon.music
-
-/**
- * Created by hemanths on 2019-10-23.
- */
-
-sealed class Result {
-
- class Success(val data: T) : Result()
-
- class Error(val exception: Throwable) : Result()
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/DriveModeActivity.kt b/app/src/main/java/io/github/muntashirakon/music/activities/DriveModeActivity.kt
index 6f78e992e..51c17e796 100644
--- a/app/src/main/java/io/github/muntashirakon/music/activities/DriveModeActivity.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/activities/DriveModeActivity.kt
@@ -88,7 +88,7 @@ class DriveModeActivity : AbsMusicServiceActivity(), Callback {
val isFavourite =
MusicUtil.isFavorite(this@DriveModeActivity, MusicPlayerRemote.currentSong)
withContext(Dispatchers.Main) {
- songFavourite.setImageResource(if (isFavourite) R.drawable.ic_favorite_white_24dp else R.drawable.ic_favorite_border_white_24dp)
+ songFavourite.setImageResource(if (isFavourite) R.drawable.ic_favorite else R.drawable.ic_favorite_border)
}
}
}
@@ -161,9 +161,9 @@ class DriveModeActivity : AbsMusicServiceActivity(), Callback {
private fun updatePlayPauseDrawableState() {
if (MusicPlayerRemote.isPlaying) {
- playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_pause)
} else {
- playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_play_arrow)
}
}
@@ -183,18 +183,18 @@ class DriveModeActivity : AbsMusicServiceActivity(), Callback {
private fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/MainActivity.kt b/app/src/main/java/io/github/muntashirakon/music/activities/MainActivity.kt
index 41c622902..f8ba8137d 100644
--- a/app/src/main/java/io/github/muntashirakon/music/activities/MainActivity.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/activities/MainActivity.kt
@@ -12,7 +12,6 @@ import android.view.View
import androidx.core.app.ActivityCompat
import androidx.fragment.app.Fragment
import androidx.fragment.app.commit
-import androidx.lifecycle.ViewModelProvider
import code.name.monkey.appthemehelper.util.ATHUtil.resolveColor
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
import io.github.muntashirakon.music.R
@@ -51,6 +50,7 @@ import com.afollestad.materialcab.MaterialCab
import com.google.android.material.appbar.AppBarLayout
import io.github.muntashirakon.music.*
import kotlinx.android.synthetic.main.activity_main_content.*
+import org.koin.android.ext.android.inject
import java.util.*
class MainActivity : AbsSlidingMusicPanelActivity(),
@@ -60,7 +60,7 @@ class MainActivity : AbsSlidingMusicPanelActivity(),
const val EXPAND_PANEL = "expand_panel"
}
- lateinit var libraryViewModel: LibraryViewModel
+ val libraryViewModel: LibraryViewModel by inject()
private var cab: MaterialCab? = null
private val intentFilter = IntentFilter(Intent.ACTION_SCREEN_OFF)
private lateinit var currentFragment: MainActivityFragmentCallbacks
@@ -93,9 +93,7 @@ class MainActivity : AbsSlidingMusicPanelActivity(),
hideStatusBar()
setBottomBarVisibility(View.VISIBLE)
- libraryViewModel = ViewModelProvider(this).get(LibraryViewModel::class.java)
addMusicServiceEventListener(libraryViewModel)
-
if (savedInstanceState == null) {
selectedFragment(PreferenceUtil.lastPage)
} else {
@@ -142,20 +140,20 @@ class MainActivity : AbsSlidingMusicPanelActivity(),
menu ?: return super.onCreateOptionsMenu(menu)
if (isPlaylistPage()) {
menu.add(0, R.id.action_new_playlist, 1, R.string.new_playlist_title)
- .setIcon(R.drawable.ic_playlist_add_white_24dp)
+ .setIcon(R.drawable.ic_playlist_add)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM)
}
if (isHomePage()) {
menu.add(0, R.id.action_mic, 1, getString(R.string.action_search))
- .setIcon(R.drawable.ic_mic_white_24dp)
+ .setIcon(R.drawable.ic_mic)
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
}
if (isFolderPage()) {
menu.add(0, R.id.action_scan, 0, R.string.scan_media)
- .setIcon(R.drawable.ic_scanner_white_24dp)
+ .setIcon(R.drawable.ic_scanner)
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
menu.add(0, R.id.action_go_to_start_directory, 1, R.string.action_go_to_start_directory)
- .setIcon(R.drawable.ic_bookmark_music_white_24dp)
+ .setIcon(R.drawable.ic_bookmark_music)
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
}
val fragment: Fragment? = getCurrentFragment()
@@ -173,10 +171,10 @@ class MainActivity : AbsSlidingMusicPanelActivity(),
menu.removeItem(R.id.action_sort_order)
}
menu.add(0, R.id.action_settings, 6, getString(R.string.action_settings))
- .setIcon(R.drawable.ic_settings_white_24dp)
+ .setIcon(R.drawable.ic_settings)
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
menu.add(0, R.id.action_search, 0, getString(R.string.action_search))
- .setIcon(R.drawable.ic_search_white_24dp)
+ .setIcon(R.drawable.ic_search)
.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS)
ToolbarContentTintHelper.handleOnCreateOptionsMenu(
this,
@@ -534,6 +532,7 @@ class MainActivity : AbsSlidingMusicPanelActivity(),
fragment: Fragment,
tag: String
) {
+
supportFragmentManager.commit {
replace(R.id.fragment_container, fragment, tag)
}
@@ -682,7 +681,7 @@ class MainActivity : AbsSlidingMusicPanelActivity(),
}
cab = MaterialCab(this, R.id.cab_stub)
.setMenu(menuRes)
- .setCloseDrawableRes(R.drawable.ic_close_white_24dp)
+ .setCloseDrawableRes(R.drawable.ic_close)
.setBackgroundColor(
RetroColorUtil.shiftBackgroundColorForLightText(
resolveColor(
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/albums/AlbumDetailsActivity.kt b/app/src/main/java/io/github/muntashirakon/music/activities/albums/AlbumDetailsActivity.kt
index d82ac8de0..7bf653c3d 100644
--- a/app/src/main/java/io/github/muntashirakon/music/activities/albums/AlbumDetailsActivity.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/activities/albums/AlbumDetailsActivity.kt
@@ -10,13 +10,13 @@ import android.view.SubMenu
import android.view.View
import android.widget.ImageView
import androidx.core.app.ActivityCompat
-import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import code.name.monkey.appthemehelper.util.ATHUtil
import code.name.monkey.appthemehelper.util.MaterialUtil
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
+import io.github.muntashirakon.music.R
import io.github.muntashirakon.music.activities.base.AbsSlidingMusicPanelActivity
import io.github.muntashirakon.music.activities.tageditor.AbsTagEditorActivity
import io.github.muntashirakon.music.activities.tageditor.AlbumTagEditorActivity
@@ -36,26 +36,26 @@ import io.github.muntashirakon.music.helper.SortOrder.AlbumSongSortOrder
import io.github.muntashirakon.music.interfaces.CabHolder
import io.github.muntashirakon.music.model.Album
import io.github.muntashirakon.music.model.Artist
-import io.github.muntashirakon.music.mvp.presenter.AlbumDetailsView
-import io.github.muntashirakon.music.rest.model.LastFmAlbum
+import io.github.muntashirakon.music.network.model.LastFmAlbum
import io.github.muntashirakon.music.util.*
import io.github.muntashirakon.music.util.color.MediaNotificationProcessor
import com.afollestad.materialcab.MaterialCab
import com.bumptech.glide.Glide
-import io.github.muntashirakon.music.R
import kotlinx.android.synthetic.main.activity_album.*
import kotlinx.android.synthetic.main.activity_album_content.*
+import org.koin.android.viewmodel.ext.android.viewModel
+import org.koin.core.parameter.parametersOf
import java.util.*
import android.util.Pair as UtilPair
-class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsView, CabHolder {
+class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), CabHolder {
override fun openCab(menuRes: Int, callback: MaterialCab.Callback): MaterialCab {
cab?.let {
if (it.isActive) it.finish()
}
cab = MaterialCab(this, R.id.cab_stub)
.setMenu(menuRes)
- .setCloseDrawableRes(R.drawable.ic_close_white_24dp)
+ .setCloseDrawableRes(R.drawable.ic_close)
.setBackgroundColor(
RetroColorUtil.shiftBackgroundColorForLightText(
ATHUtil.resolveColor(
@@ -68,7 +68,9 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsView, C
return cab as MaterialCab
}
- private lateinit var viewModel: AlbumDetailsViewModel
+ private val detailsViewModel: AlbumDetailsViewModel by viewModel {
+ parametersOf(extraNotNull(EXTRA_ALBUM_ID).value)
+ }
private lateinit var simpleSongAdapter: SimpleSongAdapter
private lateinit var album: Album
private lateinit var artistImage: ImageView
@@ -100,19 +102,19 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsView, C
window.sharedElementsUseOverlay = true
windowEnterTransition()
- val albumId = extraNotNull(EXTRA_ALBUM_ID).value
+ addMusicServiceEventListener(detailsViewModel)
ActivityCompat.postponeEnterTransition(this)
- val viewModelFactory = AlbumDetailsViewModelFactory(application, albumId)
- viewModel = ViewModelProvider(this, viewModelFactory).get(AlbumDetailsViewModel::class.java)
- addMusicServiceEventListener(viewModel)
- viewModel.getAlbum().observe(this, androidx.lifecycle.Observer {
+ //val viewModelFactory = AlbumDetailsViewModelFactory(application, albumId)
+ //viewModel = ViewModelProvider(this, viewModelFactory).get(AlbumDetailsViewModel::class.java)
+
+ detailsViewModel.getAlbum().observe(this, androidx.lifecycle.Observer {
ActivityCompat.startPostponedEnterTransition(this@AlbumDetailsActivity)
album(it)
})
- viewModel.getArtist().observe(this, androidx.lifecycle.Observer {
+ detailsViewModel.getArtist().observe(this, androidx.lifecycle.Observer {
loadArtistImage(it)
})
- viewModel.getAlbumInfo().observe(this, androidx.lifecycle.Observer {
+ detailsViewModel.getAlbumInfo().observe(this, androidx.lifecycle.Observer {
aboutAlbum(it)
})
setupRecyclerView()
@@ -153,11 +155,11 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsView, C
}
}
- override fun complete() {
+ fun complete() {
ActivityCompat.startPostponedEnterTransition(this)
}
- override fun album(album: Album) {
+ fun album(album: Album) {
complete()
if (album.songs!!.isEmpty()) {
finish()
@@ -190,11 +192,11 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsView, C
}
loadAlbumCover()
simpleSongAdapter.swapDataSet(album.songs)
- viewModel.loadArtist(album.artistId)
- viewModel.loadAlbumInfo(album)
+ detailsViewModel.loadArtist(album.artistId)
+ detailsViewModel.loadAlbumInfo(album)
}
- override fun moreAlbums(albums: List) {
+ fun moreAlbums(albums: List) {
moreTitle.show()
moreRecyclerView.show()
moreTitle.text = String.format(getString(R.string.label_more_from), album.artistName)
@@ -209,7 +211,7 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsView, C
moreRecyclerView.adapter = albumAdapter
}
- override fun aboutAlbum(lastFmAlbum: LastFmAlbum) {
+ fun aboutAlbum(lastFmAlbum: LastFmAlbum) {
if (lastFmAlbum.album != null) {
if (lastFmAlbum.album.wiki != null) {
aboutAlbumText.show()
@@ -230,7 +232,7 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsView, C
}
}
- override fun loadArtistImage(artist: Artist) {
+ fun loadArtistImage(artist: Artist) {
ArtistGlideRequest.Builder.from(Glide.with(this), artist)
.generatePalette(this)
.build()
@@ -391,8 +393,9 @@ class AlbumDetailsActivity : AbsSlidingMusicPanelActivity(), AlbumDetailsView, C
override fun onDestroy() {
super.onDestroy()
- removeMusicServiceEventListener(viewModel)
+ removeMusicServiceEventListener(detailsViewModel)
}
+
companion object {
const val EXTRA_ALBUM_ID = "extra_album_id"
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/albums/AlbumDetailsViewModel.kt b/app/src/main/java/io/github/muntashirakon/music/activities/albums/AlbumDetailsViewModel.kt
index 3add1f2ab..9f584605c 100644
--- a/app/src/main/java/io/github/muntashirakon/music/activities/albums/AlbumDetailsViewModel.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/activities/albums/AlbumDetailsViewModel.kt
@@ -1,25 +1,24 @@
package io.github.muntashirakon.music.activities.albums
-import android.app.Application
-import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import io.github.muntashirakon.music.interfaces.MusicServiceEventListener
import io.github.muntashirakon.music.model.Album
import io.github.muntashirakon.music.model.Artist
import io.github.muntashirakon.music.providers.RepositoryImpl
-import io.github.muntashirakon.music.rest.model.LastFmAlbum
+import io.github.muntashirakon.music.network.model.LastFmAlbum
import kotlinx.coroutines.Deferred
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.async
import kotlinx.coroutines.launch
class AlbumDetailsViewModel(
- application: Application,
+ private val repository: RepositoryImpl,
private val albumId: Int
-) : AndroidViewModel(application), MusicServiceEventListener {
- private val _repository = RepositoryImpl(application.applicationContext)
+) : ViewModel(), MusicServiceEventListener {
+
private val _album = MutableLiveData()
private val _artist = MutableLiveData()
private val _lastFmAlbum = MutableLiveData()
@@ -38,20 +37,18 @@ class AlbumDetailsViewModel(
}
fun loadAlbumInfo(album: Album) = viewModelScope.launch(Dispatchers.IO) {
- try {
- val lastFmAlbum = _repository.albumInfo(album.artistName ?: "-", album.title ?: "-")
- _lastFmAlbum.postValue(lastFmAlbum)
- } catch (ignored: Exception) {}
+ val lastFmAlbum = repository.albumInfo(album.artistName ?: "-", album.title ?: "-")
+ _lastFmAlbum.postValue(lastFmAlbum)
}
fun loadArtist(artistId: Int) = viewModelScope.launch(Dispatchers.IO) {
- val artist = _repository.artistById(artistId)
+ val artist = repository.artistById(artistId)
_artist.postValue(artist)
}
private val loadAlbumAsync: Deferred
get() = viewModelScope.async(Dispatchers.IO) {
- _repository.albumById(albumId)
+ repository.albumById(albumId)
}
override fun onMediaStoreChanged() {
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/albums/AlbumDetailsViewModelFactory.kt b/app/src/main/java/io/github/muntashirakon/music/activities/albums/AlbumDetailsViewModelFactory.kt
deleted file mode 100644
index 01182c67a..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/activities/albums/AlbumDetailsViewModelFactory.kt
+++ /dev/null
@@ -1,19 +0,0 @@
-package io.github.muntashirakon.music.activities.albums
-
-import android.app.Application
-import androidx.lifecycle.ViewModel
-import androidx.lifecycle.ViewModelProvider
-
-class AlbumDetailsViewModelFactory(
- private val application: Application,
- private val albumId: Int
-) :
- ViewModelProvider.AndroidViewModelFactory(application) {
- override fun create(modelClass: Class): T {
- return if (modelClass.isAssignableFrom(AlbumDetailsViewModel::class.java)) {
- AlbumDetailsViewModel(application, albumId) as T
- } else {
- throw IllegalArgumentException("ViewModel Not Found")
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/artists/ArtistDetailActivity.kt b/app/src/main/java/io/github/muntashirakon/music/activities/artists/ArtistDetailActivity.kt
index 01f00872d..9edd77651 100755
--- a/app/src/main/java/io/github/muntashirakon/music/activities/artists/ArtistDetailActivity.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/activities/artists/ArtistDetailActivity.kt
@@ -11,12 +11,12 @@ import android.view.View
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.core.text.HtmlCompat
-import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DefaultItemAnimator
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import code.name.monkey.appthemehelper.util.ATHUtil
import code.name.monkey.appthemehelper.util.MaterialUtil
+import io.github.muntashirakon.music.R
import io.github.muntashirakon.music.activities.base.AbsSlidingMusicPanelActivity
import io.github.muntashirakon.music.adapter.album.HorizontalAlbumAdapter
import io.github.muntashirakon.music.adapter.song.SimpleSongAdapter
@@ -30,26 +30,26 @@ import io.github.muntashirakon.music.glide.RetroMusicColoredTarget
import io.github.muntashirakon.music.helper.MusicPlayerRemote
import io.github.muntashirakon.music.interfaces.CabHolder
import io.github.muntashirakon.music.model.Artist
-import io.github.muntashirakon.music.mvp.presenter.ArtistDetailsView
-import io.github.muntashirakon.music.rest.model.LastFmArtist
+import io.github.muntashirakon.music.network.model.LastFmArtist
import io.github.muntashirakon.music.util.*
import io.github.muntashirakon.music.util.color.MediaNotificationProcessor
import com.afollestad.materialcab.MaterialCab
import com.bumptech.glide.Glide
-import io.github.muntashirakon.music.R
import kotlinx.android.synthetic.main.activity_artist_content.*
import kotlinx.android.synthetic.main.activity_artist_details.*
+import org.koin.android.viewmodel.ext.android.viewModel
+import org.koin.core.parameter.parametersOf
import java.util.*
import kotlin.collections.ArrayList
-class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailsView, CabHolder {
+class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), CabHolder {
override fun openCab(menuRes: Int, callback: MaterialCab.Callback): MaterialCab {
cab?.let {
if (it.isActive) it.finish()
}
cab = MaterialCab(this, R.id.cab_stub)
.setMenu(menuRes)
- .setCloseDrawableRes(R.drawable.ic_close_white_24dp)
+ .setCloseDrawableRes(R.drawable.ic_close)
.setBackgroundColor(
RetroColorUtil.shiftBackgroundColorForLightText(
ATHUtil.resolveColor(
@@ -68,7 +68,9 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailsView,
private lateinit var songAdapter: SimpleSongAdapter
private lateinit var albumAdapter: HorizontalAlbumAdapter
private var forceDownload: Boolean = false
- private lateinit var viewModel: ArtistDetailsViewModel
+ private val detailsViewModel: ArtistDetailsViewModel by viewModel {
+ parametersOf(extraNotNull(EXTRA_ARTIST_ID).value)
+ }
override fun createContentView(): View {
return wrapSlidingMusicPanel(R.layout.activity_artist_details)
@@ -93,23 +95,16 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailsView,
setBottomBarVisibility(View.GONE)
window.sharedElementsUseOverlay = true
windowEnterTransition()
-
- val artistId = extraNotNull(EXTRA_ARTIST_ID).value
- val viewModelFactory = ArtistDetailsViewModelFactory(application, artistId)
- viewModel =
- ViewModelProvider(this, viewModelFactory).get(ArtistDetailsViewModel::class.java)
- addMusicServiceEventListener(viewModel)
- viewModel.getArtist().observe(this, androidx.lifecycle.Observer {
+ ActivityCompat.postponeEnterTransition(this)
+ addMusicServiceEventListener(detailsViewModel)
+ detailsViewModel.getArtist().observe(this, androidx.lifecycle.Observer {
ActivityCompat.startPostponedEnterTransition(this@ArtistDetailActivity)
artist(it)
})
- viewModel.getArtistInfo().observe(this, androidx.lifecycle.Observer {
+ detailsViewModel.getArtistInfo().observe(this, androidx.lifecycle.Observer {
artistInfo(it)
})
- ActivityCompat.postponeEnterTransition(this)
-
setupRecyclerView()
-
playAction.apply {
setOnClickListener { MusicPlayerRemote.openQueue(artist.songs, 0, true) }
}
@@ -155,14 +150,11 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailsView,
}
}
- override fun showEmptyView() {
- }
-
- override fun complete() {
+ fun complete() {
ActivityCompat.startPostponedEnterTransition(this)
}
- override fun artist(artist: Artist) {
+ fun artist(artist: Artist) {
complete()
if (artist.songCount <= 0) {
finish()
@@ -203,10 +195,10 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailsView,
) {
biography = null
this.lang = lang
- viewModel.loadBiography(name, lang, null)
+ detailsViewModel.loadBiography(name, lang, null)
}
- override fun artistInfo(lastFmArtist: LastFmArtist?) {
+ fun artistInfo(lastFmArtist: LastFmArtist?) {
if (lastFmArtist != null && lastFmArtist.artist != null) {
val bioContent = lastFmArtist.artist.bio.content
if (bioContent != null && bioContent.trim { it <= ' ' }.isNotEmpty()) {
@@ -323,7 +315,7 @@ class ArtistDetailActivity : AbsSlidingMusicPanelActivity(), ArtistDetailsView,
override fun onDestroy() {
super.onDestroy()
- removeMusicServiceEventListener(viewModel)
+ removeMusicServiceEventListener(detailsViewModel)
}
companion object {
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/artists/ArtistDetailsViewModel.kt b/app/src/main/java/io/github/muntashirakon/music/activities/artists/ArtistDetailsViewModel.kt
index 2a7fc1181..e088921cf 100644
--- a/app/src/main/java/io/github/muntashirakon/music/activities/artists/ArtistDetailsViewModel.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/activities/artists/ArtistDetailsViewModel.kt
@@ -1,29 +1,28 @@
package io.github.muntashirakon.music.activities.artists
-import android.app.Application
-import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import io.github.muntashirakon.music.interfaces.MusicServiceEventListener
import io.github.muntashirakon.music.model.Artist
import io.github.muntashirakon.music.providers.RepositoryImpl
-import io.github.muntashirakon.music.rest.model.LastFmArtist
+import io.github.muntashirakon.music.network.model.LastFmArtist
import kotlinx.coroutines.Deferred
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.async
import kotlinx.coroutines.launch
class ArtistDetailsViewModel(
- application: Application,
+ private val repository: RepositoryImpl,
private val artistId: Int
-) : AndroidViewModel(application), MusicServiceEventListener {
+) : ViewModel(), MusicServiceEventListener {
private val loadArtistDetailsAsync: Deferred
get() = viewModelScope.async(Dispatchers.IO) {
- _repository.artistById(artistId)
+ repository.artistById(artistId)
}
- private val _repository = RepositoryImpl(application.applicationContext)
+
private val _artist = MutableLiveData()
private val _lastFmArtist = MutableLiveData()
@@ -41,7 +40,7 @@ class ArtistDetailsViewModel(
}
fun loadBiography(name: String, lang: String?, cache: String?) = viewModelScope.launch {
- val info = _repository.artistInfo(name, lang, cache)
+ val info = repository.artistInfo(name, lang, cache)
_lastFmArtist.postValue(info)
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/artists/ArtistDetailsViewModelFactory.kt b/app/src/main/java/io/github/muntashirakon/music/activities/artists/ArtistDetailsViewModelFactory.kt
deleted file mode 100644
index 4dc94f73c..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/activities/artists/ArtistDetailsViewModelFactory.kt
+++ /dev/null
@@ -1,19 +0,0 @@
-package io.github.muntashirakon.music.activities.artists
-
-import android.app.Application
-import androidx.lifecycle.ViewModel
-import androidx.lifecycle.ViewModelProvider
-
-class ArtistDetailsViewModelFactory(
- private val application: Application,
- private val artistId: Int
-) :
- ViewModelProvider.AndroidViewModelFactory(application) {
- override fun create(modelClass: Class): T {
- return if (modelClass.isAssignableFrom(ArtistDetailsViewModel::class.java)) {
- ArtistDetailsViewModel(application, artistId) as T
- } else {
- throw IllegalArgumentException("ViewModel Not Found")
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/bugreport/BugReportActivity.kt b/app/src/main/java/io/github/muntashirakon/music/activities/bugreport/BugReportActivity.kt
index 68b9138d9..1c208803e 100644
--- a/app/src/main/java/io/github/muntashirakon/music/activities/bugreport/BugReportActivity.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/activities/bugreport/BugReportActivity.kt
@@ -94,7 +94,7 @@ open class BugReportActivity : AbsThemeActivity() {
sendFab.hide(object : FloatingActionButton.OnVisibilityChangedListener() {
override fun onHidden(fab: FloatingActionButton?) {
super.onHidden(fab)
- sendFab.setImageResource(R.drawable.ic_send_white_24dp)
+ sendFab.setImageResource(R.drawable.ic_send)
sendFab.show()
}
})
@@ -110,7 +110,7 @@ open class BugReportActivity : AbsThemeActivity() {
sendFab.hide(object : FloatingActionButton.OnVisibilityChangedListener() {
override fun onHidden(fab: FloatingActionButton?) {
super.onHidden(fab)
- sendFab.setImageResource(R.drawable.ic_open_in_browser_white_24dp)
+ sendFab.setImageResource(R.drawable.ic_open_in_browser)
sendFab.show()
}
})
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/GenreDetailsActivity.kt b/app/src/main/java/io/github/muntashirakon/music/activities/genre/GenreDetailsActivity.kt
similarity index 76%
rename from app/src/main/java/io/github/muntashirakon/music/activities/GenreDetailsActivity.kt
rename to app/src/main/java/io/github/muntashirakon/music/activities/genre/GenreDetailsActivity.kt
index c7c2fad6a..33ca04ad0 100644
--- a/app/src/main/java/io/github/muntashirakon/music/activities/GenreDetailsActivity.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/activities/genre/GenreDetailsActivity.kt
@@ -1,4 +1,4 @@
-package io.github.muntashirakon.music.activities
+package io.github.muntashirakon.music.activities.genre
import android.os.Bundle
import android.view.Menu
@@ -17,24 +17,25 @@ import io.github.muntashirakon.music.helper.menu.GenreMenuHelper
import io.github.muntashirakon.music.interfaces.CabHolder
import io.github.muntashirakon.music.model.Genre
import io.github.muntashirakon.music.model.Song
-import io.github.muntashirakon.music.mvp.presenter.GenreDetailsPresenter
-import io.github.muntashirakon.music.mvp.presenter.GenreDetailsPresenter.GenreDetailsPresenterImpl
-import io.github.muntashirakon.music.mvp.presenter.GenreDetailsView
-import io.github.muntashirakon.music.providers.RepositoryImpl
import io.github.muntashirakon.music.util.DensityUtil
import io.github.muntashirakon.music.util.RetroColorUtil
import com.afollestad.materialcab.MaterialCab
import kotlinx.android.synthetic.main.activity_playlist_detail.*
+import org.koin.android.viewmodel.ext.android.viewModel
+import org.koin.core.parameter.parametersOf
import java.util.*
/**
* @author Hemanth S (h4h13).
*/
-class GenreDetailsActivity : AbsSlidingMusicPanelActivity(), CabHolder, GenreDetailsView {
+class GenreDetailsActivity : AbsSlidingMusicPanelActivity(), CabHolder {
- private lateinit var genreDetailsPresenter: GenreDetailsPresenter
+ private val detailsViewModel: GenreDetailsViewModel by viewModel {
+ parametersOf(extraNotNull(EXTRA_GENRE_ID).value)
+ }
+
private lateinit var genre: Genre
private lateinit var songAdapter: ShuffleButtonSongAdapter
private var cab: MaterialCab? = null
@@ -62,38 +63,25 @@ class GenreDetailsActivity : AbsSlidingMusicPanelActivity(), CabHolder, GenreDet
setTaskDescriptionColorAuto()
setLightNavigationBar(true)
setBottomBarVisibility(View.GONE)
-
- genre = extraNotNull(EXTRA_GENRE_ID).value
-
- setUpToolBar()
+ applyToolbar(toolbar)
setupRecyclerView()
- genreDetailsPresenter =
- GenreDetailsPresenterImpl(RepositoryImpl(this))
- genreDetailsPresenter.attachView(this)
- }
+ detailsViewModel.getSongs().observe(this, androidx.lifecycle.Observer {
+ songs(it)
+ })
- private fun setUpToolBar() {
- applyToolbar(toolbar)
- title = genre.name
- }
+ detailsViewModel.getGenre().observe(this, androidx.lifecycle.Observer {
+ genre = it
+ supportActionBar?.title = it.name
+ })
- override fun onResume() {
- super.onResume()
- genreDetailsPresenter.loadGenreSongs(genre.id)
- }
-
- override fun onDestroy() {
- super.onDestroy()
- genreDetailsPresenter.detachView()
+ addMusicServiceEventListener(detailsViewModel)
}
override fun createContentView(): View {
return wrapSlidingMusicPanel(R.layout.activity_playlist_detail)
}
- override fun showEmptyView() {
- }
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.menu_genre_detail, menu)
@@ -122,14 +110,14 @@ class GenreDetailsActivity : AbsSlidingMusicPanelActivity(), CabHolder, GenreDet
})
}
- override fun songs(songs: List) {
+ fun songs(songs: List) {
songAdapter.swapDataSet(songs)
}
override fun openCab(menuRes: Int, callback: MaterialCab.Callback): MaterialCab {
if (cab != null && cab!!.isActive) cab?.finish()
cab = MaterialCab(this, R.id.cab_stub).setMenu(menuRes)
- .setCloseDrawableRes(R.drawable.ic_close_white_24dp)
+ .setCloseDrawableRes(R.drawable.ic_close)
.setBackgroundColor(
RetroColorUtil.shiftBackgroundColorForLightText(
ATHUtil.resolveColor(
@@ -149,11 +137,6 @@ class GenreDetailsActivity : AbsSlidingMusicPanelActivity(), CabHolder, GenreDet
}
}
- override fun onMediaStoreChanged() {
- super.onMediaStoreChanged()
- genreDetailsPresenter.loadGenreSongs(genre.id)
- }
-
companion object {
const val EXTRA_GENRE_ID = "extra_genre_id"
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/genre/GenreDetailsViewModel.kt b/app/src/main/java/io/github/muntashirakon/music/activities/genre/GenreDetailsViewModel.kt
new file mode 100644
index 000000000..03aba809a
--- /dev/null
+++ b/app/src/main/java/io/github/muntashirakon/music/activities/genre/GenreDetailsViewModel.kt
@@ -0,0 +1,49 @@
+package code.name.monkey.retromusic.activities.genre
+
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.viewModelScope
+import code.name.monkey.retromusic.interfaces.MusicServiceEventListener
+import code.name.monkey.retromusic.model.Genre
+import code.name.monkey.retromusic.model.Song
+import code.name.monkey.retromusic.providers.RepositoryImpl
+import kotlinx.coroutines.Dispatchers.Main
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+class GenreDetailsViewModel(
+ private val repository: RepositoryImpl,
+ private val genre: Genre
+) : ViewModel(), MusicServiceEventListener {
+
+ private val _playListSongs = MutableLiveData>()
+ private val _genre = MutableLiveData().apply {
+ postValue(genre)
+ }
+
+ fun getSongs(): LiveData> = _playListSongs
+
+ fun getGenre(): LiveData = _genre
+
+ init {
+ loadGenreSongs(genre)
+ }
+
+ private fun loadGenreSongs(genre: Genre) = viewModelScope.launch {
+ val songs = repository.getGenre(genre.id)
+ withContext(Main) { _playListSongs.postValue(songs) }
+ }
+
+ override fun onMediaStoreChanged() {
+ loadGenreSongs(genre)
+ }
+
+ override fun onServiceConnected() {}
+ override fun onServiceDisconnected() {}
+ override fun onQueueChanged() {}
+ override fun onPlayingMetaChanged() {}
+ override fun onPlayStateChanged() {}
+ override fun onRepeatModeChanged() {}
+ override fun onShuffleModeChanged() {}
+}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/PlaylistDetailActivity.kt b/app/src/main/java/io/github/muntashirakon/music/activities/playlist/PlaylistDetailActivity.kt
similarity index 81%
rename from app/src/main/java/io/github/muntashirakon/music/activities/PlaylistDetailActivity.kt
rename to app/src/main/java/io/github/muntashirakon/music/activities/playlist/PlaylistDetailActivity.kt
index d8a515ff7..888ffc953 100644
--- a/app/src/main/java/io/github/muntashirakon/music/activities/PlaylistDetailActivity.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/activities/playlist/PlaylistDetailActivity.kt
@@ -1,12 +1,14 @@
-package io.github.muntashirakon.music.activities
+package io.github.muntashirakon.music.activities.playlist
import android.os.Bundle
import android.view.Menu
import android.view.MenuItem
import android.view.View
+import androidx.lifecycle.Observer
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import code.name.monkey.appthemehelper.util.ATHUtil
+
import io.github.muntashirakon.music.R
import io.github.muntashirakon.music.activities.base.AbsSlidingMusicPanelActivity
import io.github.muntashirakon.music.adapter.song.OrderablePlaylistSongAdapter
@@ -16,14 +18,9 @@ import io.github.muntashirakon.music.extensions.applyToolbar
import io.github.muntashirakon.music.extensions.extraNotNull
import io.github.muntashirakon.music.helper.menu.PlaylistMenuHelper
import io.github.muntashirakon.music.interfaces.CabHolder
-import io.github.muntashirakon.music.loaders.PlaylistLoader
import io.github.muntashirakon.music.model.AbsCustomPlaylist
import io.github.muntashirakon.music.model.Playlist
import io.github.muntashirakon.music.model.Song
-import io.github.muntashirakon.music.mvp.presenter.PlaylistSongsPresenter
-import io.github.muntashirakon.music.mvp.presenter.PlaylistSongsPresenter.PlaylistSongsPresenterImpl
-import io.github.muntashirakon.music.mvp.presenter.PlaylistSongsView
-import io.github.muntashirakon.music.providers.RepositoryImpl
import io.github.muntashirakon.music.util.DensityUtil
import io.github.muntashirakon.music.util.PlaylistsUtil
import io.github.muntashirakon.music.util.RetroColorUtil
@@ -32,11 +29,16 @@ import com.h6ah4i.android.widget.advrecyclerview.animator.RefactoredDefaultItemA
import com.h6ah4i.android.widget.advrecyclerview.draggable.RecyclerViewDragDropManager
import com.h6ah4i.android.widget.advrecyclerview.utils.WrapperAdapterUtils
import kotlinx.android.synthetic.main.activity_playlist_detail.*
-
-class PlaylistDetailActivity : AbsSlidingMusicPanelActivity(), CabHolder, PlaylistSongsView {
+import org.koin.android.viewmodel.ext.android.viewModel
+import org.koin.core.parameter.parametersOf
- private lateinit var presenter: PlaylistSongsPresenter
+class PlaylistDetailActivity : AbsSlidingMusicPanelActivity(), CabHolder {
+
+
+ private val viewModel: PlaylistDetailsViewModel by viewModel {
+ parametersOf(extraNotNull(EXTRA_PLAYLIST).value)
+ }
private lateinit var playlist: Playlist
private var cab: MaterialCab? = null
private lateinit var adapter: SongAdapter
@@ -52,13 +54,20 @@ class PlaylistDetailActivity : AbsSlidingMusicPanelActivity(), CabHolder, Playli
setLightNavigationBar(true)
setBottomBarVisibility(View.GONE)
- presenter = PlaylistSongsPresenterImpl(RepositoryImpl(this))
- presenter.attachView(this)
-
playlist = extraNotNull(EXTRA_PLAYLIST).value
setUpToolBar()
setUpRecyclerView()
+
+ viewModel.getSongs().observe(this, Observer {
+ songs(it)
+ })
+
+ viewModel.getPlaylist().observe(this, Observer {
+ playlist = it
+ supportActionBar?.title = it.name
+ })
+ addMusicServiceEventListener(viewModel)
}
override fun createContentView(): View {
@@ -66,7 +75,6 @@ class PlaylistDetailActivity : AbsSlidingMusicPanelActivity(), CabHolder, Playli
}
private fun setUpRecyclerView() {
-
recyclerView.layoutManager = LinearLayoutManager(this)
if (playlist is AbsCustomPlaylist) {
adapter = PlaylistSongAdapter(this, ArrayList(), R.layout.item_list, this)
@@ -108,11 +116,6 @@ class PlaylistDetailActivity : AbsSlidingMusicPanelActivity(), CabHolder, Playli
})
}
- override fun onResume() {
- super.onResume()
- presenter.loadPlaylistSongs(playlist)
- }
-
private fun setUpToolBar() {
applyToolbar(toolbar)
title = playlist.name
@@ -141,7 +144,7 @@ class PlaylistDetailActivity : AbsSlidingMusicPanelActivity(), CabHolder, Playli
cab!!.finish()
}
cab = MaterialCab(this, R.id.cab_stub).setMenu(menuRes)
- .setCloseDrawableRes(R.drawable.ic_close_white_24dp)
+ .setCloseDrawableRes(R.drawable.ic_close)
.setBackgroundColor(
RetroColorUtil.shiftBackgroundColorForLightText(
ATHUtil.resolveColor(
@@ -162,28 +165,6 @@ class PlaylistDetailActivity : AbsSlidingMusicPanelActivity(), CabHolder, Playli
}
}
- override fun onMediaStoreChanged() {
- super.onMediaStoreChanged()
- if (playlist !is AbsCustomPlaylist) {
- // Playlist deleted
- if (!PlaylistsUtil.doesPlaylistExist(this, playlist.id)) {
- finish()
- return
- }
- // Playlist renamed
- val playlistName = PlaylistsUtil.getNameForPlaylist(this, playlist.id.toLong())
- if (playlistName != playlist.name) {
- playlist = PlaylistLoader.getPlaylist(this, playlist.id)
- setToolbarTitle(playlist.name)
- }
- }
- presenter.loadPlaylistSongs(playlist)
- }
-
- private fun setToolbarTitle(title: String) {
- supportActionBar?.title = title
- }
-
private fun checkForPadding() {
val height = DensityUtil.dip2px(this, 52f)
recyclerView.setPadding(0, 0, 0, (height))
@@ -223,19 +204,22 @@ class PlaylistDetailActivity : AbsSlidingMusicPanelActivity(), CabHolder, Playli
wrappedAdapter = null
}
super.onDestroy()
- presenter.detachView()
}
- override fun showEmptyView() {
+ fun showEmptyView() {
empty.visibility = View.VISIBLE
emptyText.visibility = View.VISIBLE
}
- override fun songs(songs: List) {
- adapter.swapDataSet(songs)
+ fun songs(songs: List) {
+ if (songs.isNotEmpty()) {
+ adapter.swapDataSet(songs)
+ } else {
+ showEmptyView()
+ }
}
companion object {
var EXTRA_PLAYLIST = "extra_playlist"
}
-}
+}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/playlist/PlaylistDetailsViewModel.kt b/app/src/main/java/io/github/muntashirakon/music/activities/playlist/PlaylistDetailsViewModel.kt
new file mode 100644
index 000000000..0ea4bc037
--- /dev/null
+++ b/app/src/main/java/io/github/muntashirakon/music/activities/playlist/PlaylistDetailsViewModel.kt
@@ -0,0 +1,67 @@
+package code.name.monkey.retromusic.activities.playlist
+
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.viewModelScope
+import code.name.monkey.retromusic.App
+import code.name.monkey.retromusic.interfaces.MusicServiceEventListener
+import code.name.monkey.retromusic.loaders.PlaylistLoader
+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.providers.RepositoryImpl
+import code.name.monkey.retromusic.util.PlaylistsUtil
+import kotlinx.coroutines.Dispatchers.Main
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+class PlaylistDetailsViewModel(
+ private val repository: RepositoryImpl,
+ private var playlist: Playlist
+) : ViewModel(), MusicServiceEventListener {
+ private val _playListSongs = MutableLiveData>()
+
+ private val _playlist = MutableLiveData().apply {
+ postValue(playlist)
+ }
+
+ fun getPlaylist(): LiveData = _playlist
+
+ fun getSongs(): LiveData> = _playListSongs
+
+ init {
+ loadPlaylistSongs(playlist)
+ }
+
+ private fun loadPlaylistSongs(playlist: Playlist) = viewModelScope.launch {
+ val songs = repository.getPlaylistSongs(playlist)
+ withContext(Main) { _playListSongs.postValue(songs) }
+ }
+
+ override fun onMediaStoreChanged() {
+ if (playlist !is AbsCustomPlaylist) {
+ // Playlist deleted
+ if (!PlaylistsUtil.doesPlaylistExist(App.getContext(), playlist.id)) {
+ //TODO Finish the page
+ return
+ }
+ // Playlist renamed
+ val playlistName =
+ PlaylistsUtil.getNameForPlaylist(App.getContext(), playlist.id.toLong())
+ if (playlistName != playlist.name) {
+ playlist = PlaylistLoader.getPlaylist(App.getContext(), playlist.id)
+ _playlist.postValue(playlist)
+ }
+ }
+ loadPlaylistSongs(playlist)
+ }
+
+ override fun onServiceConnected() {}
+ override fun onServiceDisconnected() {}
+ override fun onQueueChanged() {}
+ override fun onPlayingMetaChanged() {}
+ override fun onPlayStateChanged() {}
+ override fun onRepeatModeChanged() {}
+ override fun onShuffleModeChanged() {}
+}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/SearchActivity.kt b/app/src/main/java/io/github/muntashirakon/music/activities/search/SearchActivity.kt
similarity index 88%
rename from app/src/main/java/io/github/muntashirakon/music/activities/SearchActivity.kt
rename to app/src/main/java/io/github/muntashirakon/music/activities/search/SearchActivity.kt
index dd28491c4..8eebd95eb 100644
--- a/app/src/main/java/io/github/muntashirakon/music/activities/SearchActivity.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/activities/search/SearchActivity.kt
@@ -1,4 +1,4 @@
-package io.github.muntashirakon.music.activities
+package io.github.muntashirakon.music.activities.search
import android.app.Activity
import android.app.Service
@@ -24,19 +24,17 @@ import code.name.monkey.appthemehelper.util.MaterialValueHelper
import io.github.muntashirakon.music.R
import io.github.muntashirakon.music.activities.base.AbsMusicServiceActivity
import io.github.muntashirakon.music.adapter.SearchAdapter
-import io.github.muntashirakon.music.mvp.presenter.SearchPresenter
-import io.github.muntashirakon.music.mvp.presenter.SearchPresenter.SearchPresenterImpl
-import io.github.muntashirakon.music.mvp.presenter.SearchView
-import io.github.muntashirakon.music.providers.RepositoryImpl
+import io.github.muntashirakon.music.extensions.extra
import io.github.muntashirakon.music.util.RetroUtil
import com.google.android.material.textfield.TextInputEditText
import kotlinx.android.synthetic.main.activity_search.*
+import org.koin.android.ext.android.inject
import java.util.*
import kotlin.collections.ArrayList
-class SearchActivity : AbsMusicServiceActivity(), OnQueryTextListener, TextWatcher, SearchView {
+class SearchActivity : AbsMusicServiceActivity(), OnQueryTextListener, TextWatcher {
- private lateinit var presenter: SearchPresenter
+ private val viewModel: SearchViewModel by inject()
private var searchAdapter: SearchAdapter? = null
private var query: String? = null
@@ -49,14 +47,11 @@ class SearchActivity : AbsMusicServiceActivity(), OnQueryTextListener, TextWatch
setTaskDescriptionColorAuto()
setLightNavigationBar(true)
- presenter = SearchPresenterImpl(RepositoryImpl(this))
- presenter.attachView(this)
-
setupRecyclerView()
setUpToolBar()
setupSearchView()
- if (intent.getBooleanExtra(EXTRA_SHOW_MIC, false)) {
+ if (extra(EXTRA_SHOW_MIC).value == true) {
startMicSearch()
}
@@ -84,6 +79,10 @@ class SearchActivity : AbsMusicServiceActivity(), OnQueryTextListener, TextWatch
if (savedInstanceState != null) {
query = savedInstanceState.getString(QUERY)
}
+
+ viewModel.getSearchResult().observe(this, androidx.lifecycle.Observer {
+ showData(it)
+ })
}
private fun setupRecyclerView() {
@@ -114,11 +113,6 @@ class SearchActivity : AbsMusicServiceActivity(), OnQueryTextListener, TextWatch
searchView.addTextChangedListener(this)
}
- override fun onDestroy() {
- super.onDestroy()
- presenter.detachView()
- }
-
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putString(QUERY, query)
@@ -133,7 +127,7 @@ class SearchActivity : AbsMusicServiceActivity(), OnQueryTextListener, TextWatch
TransitionManager.beginDelayedTransition(appBarLayout)
voiceSearch.visibility = if (query.isNotEmpty()) View.GONE else View.VISIBLE
clearText.visibility = if (query.isNotEmpty()) View.VISIBLE else View.GONE
- presenter.search(query)
+ viewModel.search(query)
}
override fun onMediaStoreChanged() {
@@ -158,12 +152,16 @@ class SearchActivity : AbsMusicServiceActivity(), OnQueryTextListener, TextWatch
}
}
- override fun showEmptyView() {
+ private fun showEmptyView() {
searchAdapter?.swapDataSet(ArrayList())
}
- override fun showData(data: MutableList) {
- searchAdapter?.swapDataSet(data)
+ private fun showData(data: MutableList) {
+ if (data.isNotEmpty()) {
+ searchAdapter?.swapDataSet(data)
+ } else {
+ showEmptyView()
+ }
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
@@ -175,7 +173,7 @@ class SearchActivity : AbsMusicServiceActivity(), OnQueryTextListener, TextWatch
data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)
query = result?.get(0)
searchView.setText(query, BufferType.EDITABLE)
- presenter.search(query!!)
+ viewModel.search(query!!)
}
}
}
@@ -190,7 +188,10 @@ class SearchActivity : AbsMusicServiceActivity(), OnQueryTextListener, TextWatch
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault())
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, getString(R.string.speech_prompt))
try {
- startActivityForResult(intent, REQ_CODE_SPEECH_INPUT)
+ startActivityForResult(
+ intent,
+ REQ_CODE_SPEECH_INPUT
+ )
} catch (e: ActivityNotFoundException) {
e.printStackTrace()
Toast.makeText(this, getString(R.string.speech_not_supported), Toast.LENGTH_SHORT)
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/search/SearchViewModel.kt b/app/src/main/java/io/github/muntashirakon/music/activities/search/SearchViewModel.kt
new file mode 100644
index 000000000..550a8d237
--- /dev/null
+++ b/app/src/main/java/io/github/muntashirakon/music/activities/search/SearchViewModel.kt
@@ -0,0 +1,22 @@
+package code.name.monkey.retromusic.activities.search
+
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.viewModelScope
+import code.name.monkey.retromusic.providers.RepositoryImpl
+import kotlinx.coroutines.Dispatchers.IO
+import kotlinx.coroutines.Dispatchers.Main
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+
+class SearchViewModel(private val repository: RepositoryImpl) : ViewModel() {
+ private val results = MutableLiveData>()
+
+ fun getSearchResult(): LiveData> = results
+
+ fun search(query: String?) = viewModelScope.launch(IO) {
+ val result = repository.search(query)
+ withContext(Main) { results.postValue(result) }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/activities/tageditor/WriteTagsAsyncTask.java b/app/src/main/java/io/github/muntashirakon/music/activities/tageditor/WriteTagsAsyncTask.java
index 776cddab1..25cb35cf6 100644
--- a/app/src/main/java/io/github/muntashirakon/music/activities/tageditor/WriteTagsAsyncTask.java
+++ b/app/src/main/java/io/github/muntashirakon/music/activities/tageditor/WriteTagsAsyncTask.java
@@ -34,8 +34,7 @@ import io.github.muntashirakon.music.misc.UpdateToastMediaScannerCompletionListe
import io.github.muntashirakon.music.util.MusicUtil;
import io.github.muntashirakon.music.util.SAFUtil;
-public class WriteTagsAsyncTask extends
- DialogAsyncTask {
+public class WriteTagsAsyncTask extends DialogAsyncTask {
private WeakReference activity;
diff --git a/app/src/main/java/io/github/muntashirakon/music/adapter/ContributorAdapter.kt b/app/src/main/java/io/github/muntashirakon/music/adapter/ContributorAdapter.kt
index c36fff034..7b781a1d0 100644
--- a/app/src/main/java/io/github/muntashirakon/music/adapter/ContributorAdapter.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/adapter/ContributorAdapter.kt
@@ -69,8 +69,8 @@ class ContributorAdapter(
text.text = contributor.summary
Glide.with(image.context)
.load(contributor.profileImage)
- .error(R.drawable.ic_account_white_24dp)
- .placeholder(R.drawable.ic_account_white_24dp)
+ .error(R.drawable.ic_account)
+ .placeholder(R.drawable.ic_account)
.dontAnimate()
.into(image)
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/adapter/HomeAdapter.kt b/app/src/main/java/io/github/muntashirakon/music/adapter/HomeAdapter.kt
index 29a25547a..d8972d1c5 100644
--- a/app/src/main/java/io/github/muntashirakon/music/adapter/HomeAdapter.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/adapter/HomeAdapter.kt
@@ -11,9 +11,12 @@ import androidx.appcompat.widget.AppCompatTextView
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
+import androidx.recyclerview.widget.RecyclerView.HORIZONTAL
import code.name.monkey.appthemehelper.ThemeStore
+import code.name.monkey.appthemehelper.util.ColorUtil
+import io.github.muntashirakon.music.PeekingLinearLayoutManager
import io.github.muntashirakon.music.R
-import io.github.muntashirakon.music.adapter.album.AlbumFullWidthAdapter
+import io.github.muntashirakon.music.adapter.album.AlbumAdapter
import io.github.muntashirakon.music.adapter.artist.ArtistAdapter
import io.github.muntashirakon.music.adapter.song.SongAdapter
import io.github.muntashirakon.music.extensions.show
@@ -24,6 +27,7 @@ import io.github.muntashirakon.music.model.*
import io.github.muntashirakon.music.model.Playlist
import io.github.muntashirakon.music.util.PreferenceUtil
import com.bumptech.glide.Glide
+import com.google.android.material.card.MaterialCardView
class HomeAdapter(
private val activity: AppCompatActivity,
@@ -41,8 +45,14 @@ class HomeAdapter(
.inflate(R.layout.section_recycler_view, parent, false)
return when (viewType) {
RECENT_ARTISTS, TOP_ARTISTS -> ArtistViewHolder(layout)
- PLAYLISTS -> PlaylistViewHolder(layout)
- SUGGESTIONS -> {
+ TOP_ALBUMS, RECENT_ALBUMS -> {
+ AlbumViewHolder(
+ LayoutInflater.from(activity)
+ .inflate(R.layout.metal_section_recycler_view, parent, false)
+ )
+ }
+ FAVOURITES -> PlaylistViewHolder(layout)
+ else -> {
SuggestionsViewHolder(
LayoutInflater.from(activity).inflate(
R.layout.item_suggestions,
@@ -51,15 +61,6 @@ class HomeAdapter(
)
)
}
- else -> {
- AlbumViewHolder(
- LayoutInflater.from(activity).inflate(
- R.layout.metal_section_recycler_view,
- parent,
- false
- )
- )
- }
}
}
@@ -90,19 +91,19 @@ class HomeAdapter(
val viewHolder = holder as ArtistViewHolder
viewHolder.bindView(list[position].arrayList as List, R.string.top_artists)
}
- PLAYLISTS -> {
- val viewHolder = holder as PlaylistViewHolder
- viewHolder.bindView(
- list[position].arrayList as List,
- R.string.favorites
- )
- }
SUGGESTIONS -> {
val viewHolder = holder as SuggestionsViewHolder
viewHolder.bindView(
list[position].arrayList as List
)
}
+ FAVOURITES -> {
+ val viewHolder = holder as PlaylistViewHolder
+ viewHolder.bindView(
+ list[position].arrayList as List,
+ R.string.favorites
+ )
+ }
}
}
@@ -117,7 +118,7 @@ class HomeAdapter(
companion object {
- @IntDef(RECENT_ALBUMS, TOP_ALBUMS, RECENT_ARTISTS, TOP_ARTISTS, PLAYLISTS, SUGGESTIONS)
+ @IntDef(RECENT_ALBUMS, TOP_ALBUMS, RECENT_ARTISTS, TOP_ARTISTS, SUGGESTIONS, FAVOURITES)
@Retention(AnnotationRetention.SOURCE)
annotation class HomeSection
@@ -125,8 +126,8 @@ class HomeAdapter(
const val TOP_ALBUMS = 1
const val RECENT_ARTISTS = 2
const val TOP_ARTISTS = 0
- const val SUGGESTIONS = 4
- const val PLAYLISTS = 5
+ const val SUGGESTIONS = 5
+ const val FAVOURITES = 4
}
private inner class AlbumViewHolder(view: View) : AbsHomeViewItem(view) {
@@ -134,7 +135,9 @@ class HomeAdapter(
if (list.isNotEmpty()) {
recyclerView.apply {
show()
- adapter = AlbumFullWidthAdapter(activity, list, displayMetrics)
+ adapter = AlbumAdapter(activity, list, R.layout.pager_item, null)
+ layoutManager =
+ PeekingLinearLayoutManager(activity, HORIZONTAL, false)
}
title.text = activity.getString(titleRes)
}
@@ -176,17 +179,20 @@ class HomeAdapter(
fun bindView(arrayList: List) {
val color = ThemeStore.accentColor(activity)
itemView.findViewById(R.id.text).setTextColor(color)
-
- images.forEachIndexed { index, i ->
- itemView.findViewById(i).setOnClickListener {
- MusicPlayerRemote.playNext(arrayList[index])
- }
- SongGlideRequest.Builder.from(Glide.with(activity), arrayList[index])
- .asBitmap()
- .build()
- .into(itemView.findViewById(i))
-
+ itemView.findViewById(R.id.card6).apply {
+ setCardBackgroundColor(ColorUtil.withAlpha(color, 0.2f))
}
+ if (arrayList.size > 9)
+ images.forEachIndexed { index, i ->
+ itemView.findViewById(i).setOnClickListener {
+ MusicPlayerRemote.playNext(arrayList[index])
+ }
+ SongGlideRequest.Builder.from(Glide.with(activity), arrayList[index])
+ .asBitmap()
+ .build()
+ .into(itemView.findViewById(i))
+
+ }
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/adapter/SongFileAdapter.kt b/app/src/main/java/io/github/muntashirakon/music/adapter/SongFileAdapter.kt
index b6a317bda..a7fd9e87c 100644
--- a/app/src/main/java/io/github/muntashirakon/music/adapter/SongFileAdapter.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/adapter/SongFileAdapter.kt
@@ -100,7 +100,7 @@ class SongFileAdapter(
if (file.isDirectory) {
holder.image?.let {
it.setColorFilter(iconColor, PorterDuff.Mode.SRC_IN)
- it.setImageResource(R.drawable.ic_folder_white_24dp)
+ it.setImageResource(R.drawable.ic_folder)
}
holder.imageTextContainer?.setCardBackgroundColor(
ATHUtil.resolveColor(
@@ -110,7 +110,7 @@ class SongFileAdapter(
)
} else {
val error = RetroUtil.getTintedVectorDrawable(
- activity, R.drawable.ic_file_music_white_24dp, iconColor
+ activity, R.drawable.ic_file_music, iconColor
)
Glide.with(activity)
.load(AudioFileCover(file.path))
diff --git a/app/src/main/java/io/github/muntashirakon/music/adapter/album/AlbumFullWidthAdapter.kt b/app/src/main/java/io/github/muntashirakon/music/adapter/album/AlbumFullWidthAdapter.kt
deleted file mode 100644
index a734417cb..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/adapter/album/AlbumFullWidthAdapter.kt
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (C) 2017. Alexander Bilchuk
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package io.github.muntashirakon.music.adapter.album
-
-import android.app.Activity
-import android.app.ActivityOptions
-import android.util.DisplayMetrics
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import io.github.muntashirakon.music.R
-import io.github.muntashirakon.music.glide.AlbumGlideRequest
-import io.github.muntashirakon.music.glide.RetroMusicColoredTarget
-import io.github.muntashirakon.music.helper.MusicPlayerRemote
-import io.github.muntashirakon.music.model.Album
-import io.github.muntashirakon.music.util.NavigationUtil
-import io.github.muntashirakon.music.util.color.MediaNotificationProcessor
-import io.github.muntashirakon.music.views.MetalRecyclerViewPager
-import com.bumptech.glide.Glide
-
-class AlbumFullWidthAdapter(
- private val activity: Activity,
- private val dataSet: List,
- metrics: DisplayMetrics
-) : MetalRecyclerViewPager.MetalAdapter(metrics) {
-
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): FullMetalViewHolder {
- return FullMetalViewHolder(
- LayoutInflater.from(parent.context).inflate(
- R.layout.pager_item,
- parent,
- false
- )
- )
- }
-
- override fun onBindViewHolder(holder: FullMetalViewHolder, position: Int) {
- // don't forget about calling supper.onBindViewHolder!
- super.onBindViewHolder(holder, position)
- val album = dataSet[position]
- holder.title?.text = getAlbumTitle(album)
- holder.text?.text = getAlbumText(album)
- holder.playSongs?.setOnClickListener {
- album.songs?.let { songs ->
- MusicPlayerRemote.openQueue(
- songs,
- 0,
- true
- )
- }
- }
- loadAlbumCover(album, holder)
- }
-
- private fun getAlbumTitle(album: Album): String? {
- return album.title
- }
-
- private fun getAlbumText(album: Album): String? {
- return album.artistName
- }
-
- private fun loadAlbumCover(album: Album, holder: FullMetalViewHolder) {
- if (holder.image == null) {
- return
- }
-
- AlbumGlideRequest.Builder.from(Glide.with(activity), album.safeGetFirstSong())
- .checkIgnoreMediaStore(activity)
- .generatePalette(activity)
- .build()
- .into(object : RetroMusicColoredTarget(holder.image!!) {
- override fun onColorReady(colors: MediaNotificationProcessor) {
-
- }
- })
- }
-
- override fun getItemCount(): Int {
- return dataSet.size
- }
-
- inner class FullMetalViewHolder(itemView: View) :
- MetalRecyclerViewPager.MetalViewHolder(itemView) {
-
- override fun onClick(v: View?) {
- val activityOptions = ActivityOptions.makeSceneTransitionAnimation(
- activity,
- imageContainerCard ?: image,
- activity.getString(R.string.transition_album_art)
- )
- NavigationUtil.goToAlbumOptions(activity, dataSet[layoutPosition].id, activityOptions)
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/adapter/playlist/PlaylistAdapter.kt b/app/src/main/java/io/github/muntashirakon/music/adapter/playlist/PlaylistAdapter.kt
index dfd7151fe..165351398 100755
--- a/app/src/main/java/io/github/muntashirakon/music/adapter/playlist/PlaylistAdapter.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/adapter/playlist/PlaylistAdapter.kt
@@ -94,12 +94,12 @@ class PlaylistAdapter(
return if (MusicUtil.isFavoritePlaylist(activity, playlist))
TintHelper.createTintedDrawable(
activity,
- R.drawable.ic_favorite_white_24dp,
+ R.drawable.ic_favorite,
ThemeStore.accentColor(activity)
)
else TintHelper.createTintedDrawable(
activity,
- R.drawable.ic_playlist_play_white_24dp,
+ R.drawable.ic_playlist_play,
ATHUtil.resolveColor(activity, R.attr.colorControlNormal)
)
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/adapter/song/SongAdapter.kt b/app/src/main/java/io/github/muntashirakon/music/adapter/song/SongAdapter.kt
index 1413e695b..42d260b4b 100644
--- a/app/src/main/java/io/github/muntashirakon/music/adapter/song/SongAdapter.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/adapter/song/SongAdapter.kt
@@ -3,7 +3,6 @@ package io.github.muntashirakon.music.adapter.song
import android.app.ActivityOptions
import android.content.res.ColorStateList
import android.content.res.Resources
-import android.graphics.drawable.Drawable
import android.view.LayoutInflater
import android.view.MenuItem
import android.view.View
@@ -25,12 +24,10 @@ import io.github.muntashirakon.music.model.Song
import io.github.muntashirakon.music.util.MusicUtil
import io.github.muntashirakon.music.util.NavigationUtil
import io.github.muntashirakon.music.util.PreferenceUtil
-
import io.github.muntashirakon.music.util.color.MediaNotificationProcessor
import com.afollestad.materialcab.MaterialCab
import com.bumptech.glide.Glide
import me.zhanghai.android.fastscroll.PopupTextProvider
-import java.util.*
/**
* Created by hemanths on 13/08/17.
@@ -56,7 +53,7 @@ open class SongAdapter(
}
open fun swapDataSet(dataSet: List) {
- this.dataSet = dataSet.toMutableList()
+ this.dataSet = ArrayList(dataSet)
notifyDataSetChanged()
}
@@ -109,11 +106,6 @@ open class SongAdapter(
.checkIgnoreMediaStore(activity)
.generatePalette(activity).build()
.into(object : RetroMusicColoredTarget(holder.image!!) {
- override fun onLoadCleared(placeholder: Drawable?) {
- super.onLoadCleared(placeholder)
-
- }
-
override fun onColorReady(colors: MediaNotificationProcessor) {
setColors(colors, holder)
}
@@ -210,7 +202,6 @@ open class SongAdapter(
}
companion object {
-
val TAG: String = SongAdapter::class.java.simpleName
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/appshortcuts/AppShortcutLauncherActivity.kt b/app/src/main/java/io/github/muntashirakon/music/appshortcuts/AppShortcutLauncherActivity.kt
index 14e742791..fc5417778 100644
--- a/app/src/main/java/io/github/muntashirakon/music/appshortcuts/AppShortcutLauncherActivity.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/appshortcuts/AppShortcutLauncherActivity.kt
@@ -17,7 +17,7 @@ package io.github.muntashirakon.music.appshortcuts
import android.app.Activity
import android.content.Intent
import android.os.Bundle
-import io.github.muntashirakon.music.activities.SearchActivity
+import io.github.muntashirakon.music.activities.search.SearchActivity
import io.github.muntashirakon.music.appshortcuts.shortcuttype.LastAddedShortcutType
import io.github.muntashirakon.music.appshortcuts.shortcuttype.SearchShortCutType
import io.github.muntashirakon.music.appshortcuts.shortcuttype.ShuffleAllShortcutType
diff --git a/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetBig.kt b/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetBig.kt
index fcf4f3b78..0d2995b4f 100644
--- a/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetBig.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetBig.kt
@@ -57,7 +57,7 @@ class AppWidgetBig : BaseAppWidget() {
R.id.button_next, createBitmap(
RetroUtil.getTintedVectorDrawable(
context,
- R.drawable.ic_skip_next_white_24dp,
+ R.drawable.ic_skip_next,
MaterialValueHelper.getPrimaryTextColor(context, false)
)!!, 1f
)
@@ -66,7 +66,7 @@ class AppWidgetBig : BaseAppWidget() {
R.id.button_prev, createBitmap(
RetroUtil.getTintedVectorDrawable(
context,
- R.drawable.ic_skip_previous_white_24dp,
+ R.drawable.ic_skip_previous,
MaterialValueHelper.getPrimaryTextColor(context, false)
)!!, 1f
)
@@ -117,7 +117,7 @@ class AppWidgetBig : BaseAppWidget() {
val primaryColor = MaterialValueHelper.getPrimaryTextColor(service, false)
// Set correct drawable for pause state
val playPauseRes =
- if (isPlaying) R.drawable.ic_pause_white_24dp else R.drawable.ic_play_arrow_white_32dp
+ if (isPlaying) R.drawable.ic_pause else R.drawable.ic_play_arrow_white_32dp
appWidgetView.setImageViewBitmap(
R.id.button_toggle_play_pause, createBitmap(
RetroUtil.getTintedVectorDrawable(
@@ -133,7 +133,7 @@ class AppWidgetBig : BaseAppWidget() {
R.id.button_next, createBitmap(
RetroUtil.getTintedVectorDrawable(
service,
- R.drawable.ic_skip_next_white_24dp,
+ R.drawable.ic_skip_next,
primaryColor
)!!, 1f
)
@@ -142,7 +142,7 @@ class AppWidgetBig : BaseAppWidget() {
R.id.button_prev, createBitmap(
RetroUtil.getTintedVectorDrawable(
service,
- R.drawable.ic_skip_previous_white_24dp,
+ R.drawable.ic_skip_previous,
primaryColor
)!!, 1f
)
diff --git a/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetCard.kt b/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetCard.kt
index a84c66421..056da1874 100644
--- a/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetCard.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetCard.kt
@@ -55,7 +55,7 @@ class AppWidgetCard : BaseAppWidget() {
R.id.button_next, createBitmap(
RetroUtil.getTintedVectorDrawable(
context,
- R.drawable.ic_skip_next_white_24dp,
+ R.drawable.ic_skip_next,
secondaryColor
)!!, 1f
)
@@ -64,7 +64,7 @@ class AppWidgetCard : BaseAppWidget() {
R.id.button_prev, createBitmap(
RetroUtil.getTintedVectorDrawable(
context,
- R.drawable.ic_skip_previous_white_24dp,
+ R.drawable.ic_skip_previous,
secondaryColor
)!!, 1f
)
@@ -103,7 +103,7 @@ class AppWidgetCard : BaseAppWidget() {
// Set correct drawable for pause state
val playPauseRes =
- if (isPlaying) R.drawable.ic_pause_white_24dp else R.drawable.ic_play_arrow_white_32dp
+ if (isPlaying) R.drawable.ic_pause else R.drawable.ic_play_arrow_white_32dp
appWidgetView.setImageViewBitmap(
R.id.button_toggle_play_pause, createBitmap(
RetroUtil.getTintedVectorDrawable(
@@ -119,7 +119,7 @@ class AppWidgetCard : BaseAppWidget() {
R.id.button_next, createBitmap(
RetroUtil.getTintedVectorDrawable(
service,
- R.drawable.ic_skip_next_white_24dp,
+ R.drawable.ic_skip_next,
MaterialValueHelper.getSecondaryTextColor(service, true)
)!!, 1f
)
@@ -128,7 +128,7 @@ class AppWidgetCard : BaseAppWidget() {
R.id.button_prev, createBitmap(
RetroUtil.getTintedVectorDrawable(
service,
- R.drawable.ic_skip_previous_white_24dp,
+ R.drawable.ic_skip_previous,
MaterialValueHelper.getSecondaryTextColor(service, true)
)!!, 1f
)
@@ -189,14 +189,14 @@ class AppWidgetCard : BaseAppWidget() {
appWidgetView.setImageViewBitmap(
R.id.button_next, ImageUtil.createBitmap(
ImageUtil.getTintedVectorDrawable(
- service, R.drawable.ic_skip_next_white_24dp, color
+ service, R.drawable.ic_skip_next, color
)
)
)
appWidgetView.setImageViewBitmap(
R.id.button_prev, ImageUtil.createBitmap(
ImageUtil.getTintedVectorDrawable(
- service, R.drawable.ic_skip_previous_white_24dp, color
+ service, R.drawable.ic_skip_previous, color
)
)
)
diff --git a/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetClassic.kt b/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetClassic.kt
index a95e20270..9012c7be9 100644
--- a/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetClassic.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetClassic.kt
@@ -57,7 +57,7 @@ class AppWidgetClassic : BaseAppWidget() {
createBitmap(
RetroUtil.getTintedVectorDrawable(
context,
- R.drawable.ic_skip_next_white_24dp,
+ R.drawable.ic_skip_next,
MaterialValueHelper.getSecondaryTextColor(context, true)
)!!, 1f
)
@@ -67,7 +67,7 @@ class AppWidgetClassic : BaseAppWidget() {
createBitmap(
RetroUtil.getTintedVectorDrawable(
context,
- R.drawable.ic_skip_previous_white_24dp,
+ R.drawable.ic_skip_previous,
MaterialValueHelper.getSecondaryTextColor(context, true)
)!!, 1f
)
@@ -151,7 +151,7 @@ class AppWidgetClassic : BaseAppWidget() {
private fun update(bitmap: Bitmap?, color: Int) {
// Set correct drawable for pause state
val playPauseRes =
- if (isPlaying) R.drawable.ic_pause_white_24dp else R.drawable.ic_play_arrow_white_24dp
+ if (isPlaying) R.drawable.ic_pause else R.drawable.ic_play_arrow
appWidgetView.setImageViewBitmap(
R.id.button_toggle_play_pause,
ImageUtil.createBitmap(
@@ -169,7 +169,7 @@ class AppWidgetClassic : BaseAppWidget() {
ImageUtil.createBitmap(
ImageUtil.getTintedVectorDrawable(
service,
- R.drawable.ic_skip_next_white_24dp,
+ R.drawable.ic_skip_next,
color
)
)
@@ -179,7 +179,7 @@ class AppWidgetClassic : BaseAppWidget() {
ImageUtil.createBitmap(
ImageUtil.getTintedVectorDrawable(
service,
- R.drawable.ic_skip_previous_white_24dp,
+ R.drawable.ic_skip_previous,
color
)
)
diff --git a/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetSmall.kt b/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetSmall.kt
index 647e62373..848d3cbdc 100644
--- a/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetSmall.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetSmall.kt
@@ -54,7 +54,7 @@ class AppWidgetSmall : BaseAppWidget() {
createBitmap(
RetroUtil.getTintedVectorDrawable(
context,
- R.drawable.ic_skip_next_white_24dp,
+ R.drawable.ic_skip_next,
MaterialValueHelper.getSecondaryTextColor(context, true)
)!!, 1f
)
@@ -64,7 +64,7 @@ class AppWidgetSmall : BaseAppWidget() {
createBitmap(
RetroUtil.getTintedVectorDrawable(
context,
- R.drawable.ic_skip_previous_white_24dp,
+ R.drawable.ic_skip_previous,
MaterialValueHelper.getSecondaryTextColor(context, true)
)!!, 1f
)
@@ -150,7 +150,7 @@ class AppWidgetSmall : BaseAppWidget() {
private fun update(bitmap: Bitmap?, color: Int) {
// Set correct drawable for pause state
- val playPauseRes = if (isPlaying) R.drawable.ic_pause_white_24dp
+ val playPauseRes = if (isPlaying) R.drawable.ic_pause
else R.drawable.ic_play_arrow_white_32dp
appWidgetView.setImageViewBitmap(
R.id.button_toggle_play_pause, createBitmap(
@@ -164,14 +164,14 @@ class AppWidgetSmall : BaseAppWidget() {
appWidgetView.setImageViewBitmap(
R.id.button_next, createBitmap(
RetroUtil.getTintedVectorDrawable(
- service, R.drawable.ic_skip_next_white_24dp, color
+ service, R.drawable.ic_skip_next, color
)!!, 1f
)
)
appWidgetView.setImageViewBitmap(
R.id.button_prev, createBitmap(
RetroUtil.getTintedVectorDrawable(
- service, R.drawable.ic_skip_previous_white_24dp, color
+ service, R.drawable.ic_skip_previous, color
)!!, 1f
)
)
diff --git a/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetText.kt b/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetText.kt
index b41b73962..db28445e8 100644
--- a/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetText.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/appwidgets/AppWidgetText.kt
@@ -37,7 +37,7 @@ class AppWidgetText : BaseAppWidget() {
appWidgetView.setImageViewBitmap(
R.id.button_next, createBitmap(
RetroUtil.getTintedVectorDrawable(
- context, R.drawable.ic_skip_next_white_24dp, ContextCompat.getColor(
+ context, R.drawable.ic_skip_next, ContextCompat.getColor(
context, R.color.md_white_1000
)
)!!, 1f
@@ -46,7 +46,7 @@ class AppWidgetText : BaseAppWidget() {
appWidgetView.setImageViewBitmap(
R.id.button_prev, createBitmap(
RetroUtil.getTintedVectorDrawable(
- context, R.drawable.ic_skip_previous_white_24dp, ContextCompat.getColor(
+ context, R.drawable.ic_skip_previous, ContextCompat.getColor(
context, R.color.md_white_1000
)
)!!, 1f
@@ -119,7 +119,7 @@ class AppWidgetText : BaseAppWidget() {
linkButtons(service, appWidgetView)
// Set correct drawable for pause state
- val playPauseRes = if (isPlaying) R.drawable.ic_pause_white_24dp
+ val playPauseRes = if (isPlaying) R.drawable.ic_pause
else R.drawable.ic_play_arrow_white_32dp
appWidgetView.setImageViewBitmap(
R.id.button_toggle_play_pause, createBitmap(
@@ -134,7 +134,7 @@ class AppWidgetText : BaseAppWidget() {
R.id.button_next, createBitmap(
RetroUtil.getTintedVectorDrawable(
App.getContext(),
- R.drawable.ic_skip_next_white_24dp,
+ R.drawable.ic_skip_next,
ContextCompat.getColor(
App.getContext(), R.color.md_white_1000
)
@@ -145,7 +145,7 @@ class AppWidgetText : BaseAppWidget() {
R.id.button_prev, createBitmap(
RetroUtil.getTintedVectorDrawable(
App.getContext(),
- R.drawable.ic_skip_previous_white_24dp,
+ R.drawable.ic_skip_previous,
ContextCompat.getColor(
App.getContext(), R.color.md_white_1000
)
diff --git a/app/src/main/java/io/github/muntashirakon/music/dialogs/AddToPlaylistDialog.kt b/app/src/main/java/io/github/muntashirakon/music/dialogs/AddToPlaylistDialog.kt
index 01cdaa1fb..70779a683 100644
--- a/app/src/main/java/io/github/muntashirakon/music/dialogs/AddToPlaylistDialog.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/dialogs/AddToPlaylistDialog.kt
@@ -19,11 +19,12 @@ import android.os.Bundle
import androidx.fragment.app.DialogFragment
import io.github.muntashirakon.music.EXTRA_SONG
import io.github.muntashirakon.music.R
+import io.github.muntashirakon.music.extensions.colorButtons
import io.github.muntashirakon.music.extensions.extraNotNull
+import io.github.muntashirakon.music.extensions.materialDialog
import io.github.muntashirakon.music.loaders.PlaylistLoader
import io.github.muntashirakon.music.model.Song
import io.github.muntashirakon.music.util.PlaylistsUtil
-import com.google.android.material.dialog.MaterialAlertDialogBuilder
class AddToPlaylistDialog : DialogFragment() {
@@ -31,17 +32,13 @@ class AddToPlaylistDialog : DialogFragment() {
savedInstanceState: Bundle?
): Dialog {
val playlists = PlaylistLoader.getAllPlaylists(requireContext())
- val playlistNames = mutableListOf()
+ val playlistNames = mutableListOf()
playlistNames.add(requireContext().resources.getString(R.string.action_new_playlist))
for (p in playlists) {
playlistNames.add(p.name)
}
- return MaterialAlertDialogBuilder(
- requireContext(),
- R.style.ThemeOverlay_MaterialComponents_Dialog_Alert
- )
- .setTitle(R.string.add_playlist_title)
+ return materialDialog(R.string.add_playlist_title)
.setItems(playlistNames.toTypedArray()) { _, which ->
val songs = extraNotNull>(EXTRA_SONG).value
if (which == 0) {
@@ -57,7 +54,7 @@ class AddToPlaylistDialog : DialogFragment() {
}
dismiss()
}
- .create()
+ .create().colorButtons()
}
companion object {
diff --git a/app/src/main/java/io/github/muntashirakon/music/dialogs/BlacklistFolderChooserDialog.java b/app/src/main/java/io/github/muntashirakon/music/dialogs/BlacklistFolderChooserDialog.java
index da0f29d32..dff08cc8a 100644
--- a/app/src/main/java/io/github/muntashirakon/music/dialogs/BlacklistFolderChooserDialog.java
+++ b/app/src/main/java/io/github/muntashirakon/music/dialogs/BlacklistFolderChooserDialog.java
@@ -71,9 +71,9 @@ public class BlacklistFolderChooserDialog extends DialogFragment implements Mate
public Dialog onCreateDialog(Bundle savedInstanceState) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& ActivityCompat.checkSelfPermission(
- getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE)
+ requireActivity(), Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
- return new MaterialDialog.Builder(getActivity())
+ return new MaterialDialog.Builder(requireActivity())
.title(R.string.md_error_label)
.content(R.string.md_storage_perm_error)
.positiveText(android.R.string.ok)
@@ -89,7 +89,7 @@ public class BlacklistFolderChooserDialog extends DialogFragment implements Mate
checkIfCanGoUp();
parentContents = listFiles();
MaterialDialog.Builder builder =
- new MaterialDialog.Builder(getActivity())
+ new MaterialDialog.Builder(requireActivity())
.title(parentFolder.getAbsolutePath())
.items((CharSequence[]) getContentsArray())
.itemsCallback(this)
diff --git a/app/src/main/java/io/github/muntashirakon/music/dialogs/CreatePlaylistDialog.kt b/app/src/main/java/io/github/muntashirakon/music/dialogs/CreatePlaylistDialog.kt
index d22fa4234..088fe7d38 100644
--- a/app/src/main/java/io/github/muntashirakon/music/dialogs/CreatePlaylistDialog.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/dialogs/CreatePlaylistDialog.kt
@@ -23,10 +23,11 @@ import androidx.fragment.app.DialogFragment
import code.name.monkey.appthemehelper.util.MaterialUtil
import io.github.muntashirakon.music.EXTRA_SONG
import io.github.muntashirakon.music.R
+import io.github.muntashirakon.music.extensions.colorButtons
import io.github.muntashirakon.music.extensions.extraNotNull
+import io.github.muntashirakon.music.extensions.materialDialog
import io.github.muntashirakon.music.model.Song
import io.github.muntashirakon.music.util.PlaylistsUtil
-import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
import kotlinx.android.synthetic.main.dialog_playlist.view.*
@@ -42,11 +43,7 @@ class CreatePlaylistDialog : DialogFragment() {
val playlistContainer: TextInputLayout = view.actionNewPlaylistContainer
MaterialUtil.setTint(playlistContainer, false)
- return MaterialAlertDialogBuilder(
- requireActivity(),
- R.style.ThemeOverlay_MaterialComponents_Dialog_Alert
- )
- .setTitle(R.string.new_playlist_title)
+ return materialDialog(R.string.new_playlist_title)
.setView(view)
.setNegativeButton(android.R.string.cancel, null)
.setPositiveButton(
@@ -65,6 +62,7 @@ class CreatePlaylistDialog : DialogFragment() {
}
}
.create()
+ .colorButtons()
}
companion object {
diff --git a/app/src/main/java/io/github/muntashirakon/music/dialogs/DeletePlaylistDialog.kt b/app/src/main/java/io/github/muntashirakon/music/dialogs/DeletePlaylistDialog.kt
index 741301a1d..6f416a585 100644
--- a/app/src/main/java/io/github/muntashirakon/music/dialogs/DeletePlaylistDialog.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/dialogs/DeletePlaylistDialog.kt
@@ -20,10 +20,11 @@ import androidx.core.text.HtmlCompat
import androidx.fragment.app.DialogFragment
import io.github.muntashirakon.music.EXTRA_PLAYLIST
import io.github.muntashirakon.music.R
+import io.github.muntashirakon.music.extensions.colorButtons
import io.github.muntashirakon.music.extensions.extraNotNull
+import io.github.muntashirakon.music.extensions.materialDialog
import io.github.muntashirakon.music.model.Playlist
import io.github.muntashirakon.music.util.PlaylistsUtil
-import com.google.android.material.dialog.MaterialAlertDialogBuilder
class DeletePlaylistDialog : DialogFragment() {
@@ -46,10 +47,7 @@ class DeletePlaylistDialog : DialogFragment() {
)
}
- return MaterialAlertDialogBuilder(
- requireContext(),
- R.style.ThemeOverlay_MaterialComponents_Dialog_Alert
- )
+ return materialDialog(title)
.setTitle(title)
.setMessage(message)
.setNegativeButton(android.R.string.cancel, null)
@@ -57,6 +55,7 @@ class DeletePlaylistDialog : DialogFragment() {
PlaylistsUtil.deletePlaylists(requireContext(), playlists)
}
.create()
+ .colorButtons()
}
companion object {
diff --git a/app/src/main/java/io/github/muntashirakon/music/dialogs/DeleteSongsDialog.kt b/app/src/main/java/io/github/muntashirakon/music/dialogs/DeleteSongsDialog.kt
index 695ca2931..17ae9b1dc 100644
--- a/app/src/main/java/io/github/muntashirakon/music/dialogs/DeleteSongsDialog.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/dialogs/DeleteSongsDialog.kt
@@ -23,12 +23,13 @@ import androidx.fragment.app.DialogFragment
import io.github.muntashirakon.music.EXTRA_SONG
import io.github.muntashirakon.music.R
import io.github.muntashirakon.music.activities.saf.SAFGuideActivity
+import io.github.muntashirakon.music.extensions.colorButtons
import io.github.muntashirakon.music.extensions.extraNotNull
+import io.github.muntashirakon.music.extensions.materialDialog
import io.github.muntashirakon.music.helper.MusicPlayerRemote
import io.github.muntashirakon.music.model.Song
import io.github.muntashirakon.music.util.MusicUtil
import io.github.muntashirakon.music.util.SAFUtil
-import com.google.android.material.dialog.MaterialAlertDialogBuilder
class DeleteSongsDialog : DialogFragment() {
@JvmField
@@ -57,11 +58,7 @@ class DeleteSongsDialog : DialogFragment() {
)
}
- return MaterialAlertDialogBuilder(
- requireContext(),
- R.style.ThemeOverlay_MaterialComponents_Dialog_Alert
- )
- .setTitle(title)
+ return materialDialog(title)
.setMessage(message)
.setCancelable(false)
.setNegativeButton(android.R.string.cancel, null)
@@ -74,6 +71,7 @@ class DeleteSongsDialog : DialogFragment() {
deleteSongsAsyncTask?.execute(DeleteSongsAsyncTask.LoadingInfo(songs, null))
}
.create()
+ .colorButtons()
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
diff --git a/app/src/main/java/io/github/muntashirakon/music/dialogs/RemoveFromPlaylistDialog.kt b/app/src/main/java/io/github/muntashirakon/music/dialogs/RemoveFromPlaylistDialog.kt
index d0d783f0b..8c0a3d352 100644
--- a/app/src/main/java/io/github/muntashirakon/music/dialogs/RemoveFromPlaylistDialog.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/dialogs/RemoveFromPlaylistDialog.kt
@@ -20,9 +20,10 @@ import androidx.core.text.HtmlCompat
import androidx.fragment.app.DialogFragment
import io.github.muntashirakon.music.EXTRA_SONG
import io.github.muntashirakon.music.R
+import io.github.muntashirakon.music.extensions.colorButtons
+import io.github.muntashirakon.music.extensions.materialDialog
import io.github.muntashirakon.music.model.PlaylistSong
import io.github.muntashirakon.music.util.PlaylistsUtil
-import com.google.android.material.dialog.MaterialAlertDialogBuilder
class RemoveFromPlaylistDialog : DialogFragment() {
@@ -50,11 +51,7 @@ class RemoveFromPlaylistDialog : DialogFragment() {
}
}
- return MaterialAlertDialogBuilder(
- requireContext(),
- R.style.ThemeOverlay_MaterialComponents_Dialog_Alert
- )
- .setTitle(title)
+ return materialDialog(title)
.setMessage(message)
.setPositiveButton(R.string.remove_action) { _, _ ->
PlaylistsUtil.removeFromPlaylist(
@@ -64,6 +61,7 @@ class RemoveFromPlaylistDialog : DialogFragment() {
}
.setNegativeButton(android.R.string.cancel, null)
.create()
+ .colorButtons()
}
companion object {
diff --git a/app/src/main/java/io/github/muntashirakon/music/dialogs/RenamePlaylistDialog.kt b/app/src/main/java/io/github/muntashirakon/music/dialogs/RenamePlaylistDialog.kt
index 2e8f4f911..466f08916 100644
--- a/app/src/main/java/io/github/muntashirakon/music/dialogs/RenamePlaylistDialog.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/dialogs/RenamePlaylistDialog.kt
@@ -22,9 +22,10 @@ import android.view.LayoutInflater
import androidx.fragment.app.DialogFragment
import code.name.monkey.appthemehelper.util.MaterialUtil
import io.github.muntashirakon.music.R
+import io.github.muntashirakon.music.extensions.colorButtons
import io.github.muntashirakon.music.extensions.extraNotNull
+import io.github.muntashirakon.music.extensions.materialDialog
import io.github.muntashirakon.music.util.PlaylistsUtil
-import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
@@ -42,11 +43,7 @@ class RenamePlaylistDialog : DialogFragment() {
layout.findViewById(R.id.actionNewPlaylistContainer)
MaterialUtil.setTint(nameContainer, false)
- return MaterialAlertDialogBuilder(
- requireContext(),
- R.style.ThemeOverlay_MaterialComponents_Dialog_Alert
- )
- .setTitle(R.string.rename_playlist_title)
+ return materialDialog(R.string.rename_playlist_title)
.setView(layout)
.setNegativeButton(android.R.string.cancel, null)
.setPositiveButton(R.string.action_rename) { _, _ ->
@@ -60,6 +57,7 @@ class RenamePlaylistDialog : DialogFragment() {
}
}
.create()
+ .colorButtons()
}
companion object {
diff --git a/app/src/main/java/io/github/muntashirakon/music/dialogs/RetroSingleCheckedListAdapter.kt b/app/src/main/java/io/github/muntashirakon/music/dialogs/RetroSingleCheckedListAdapter.kt
new file mode 100644
index 000000000..c8fa03cdd
--- /dev/null
+++ b/app/src/main/java/io/github/muntashirakon/music/dialogs/RetroSingleCheckedListAdapter.kt
@@ -0,0 +1,13 @@
+package code.name.monkey.retromusic.dialogs
+
+import android.content.Context
+import android.widget.ArrayAdapter
+import code.name.monkey.retromusic.R
+
+class RetroSingleCheckedListAdapter(
+ context: Context,
+ resource: Int = R.layout.dialog_list_item,
+ objects: MutableList
+) : ArrayAdapter(context, resource, objects) {
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/dialogs/SleepTimerDialog.kt b/app/src/main/java/io/github/muntashirakon/music/dialogs/SleepTimerDialog.kt
index 89bb05243..e5f0d6039 100755
--- a/app/src/main/java/io/github/muntashirakon/music/dialogs/SleepTimerDialog.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/dialogs/SleepTimerDialog.kt
@@ -31,6 +31,8 @@ import android.widget.Toast
import androidx.fragment.app.DialogFragment
import io.github.muntashirakon.music.R
import io.github.muntashirakon.music.extensions.addAccentColor
+import io.github.muntashirakon.music.extensions.colorButtons
+import io.github.muntashirakon.music.extensions.materialDialog
import io.github.muntashirakon.music.helper.MusicPlayerRemote
import io.github.muntashirakon.music.service.MusicService
import io.github.muntashirakon.music.service.MusicService.ACTION_PENDING_QUIT
@@ -38,13 +40,12 @@ import io.github.muntashirakon.music.service.MusicService.ACTION_QUIT
import io.github.muntashirakon.music.util.PreferenceUtil
import com.afollestad.materialdialogs.DialogAction
import com.afollestad.materialdialogs.MaterialDialog
-import com.google.android.material.dialog.MaterialAlertDialogBuilder
class SleepTimerDialog : DialogFragment() {
private var seekArcProgress: Int = 0
private lateinit var timerUpdater: TimerUpdater
- private lateinit var materialDialog: MaterialDialog
+ private lateinit var dialog: MaterialDialog
private lateinit var shouldFinishLastSong: CheckBox
private lateinit var seekBar: SeekBar
private lateinit var timerDisplay: TextView
@@ -87,11 +88,7 @@ class SleepTimerDialog : DialogFragment() {
PreferenceUtil.lastSleepTimerValue = seekArcProgress
}
})
- return MaterialAlertDialogBuilder(
- requireContext(),
- R.style.ThemeOverlay_MaterialComponents_Dialog_Alert
- )
- .setTitle(R.string.action_sleep_timer)
+ return materialDialog(R.string.action_sleep_timer)
.setView(layout)
.setPositiveButton(R.string.action_set) { _, _ ->
PreferenceUtil.isSleepTimerFinishMusic = shouldFinishLastSong.isChecked
@@ -132,6 +129,8 @@ class SleepTimerDialog : DialogFragment() {
}
}
.create()
+ .colorButtons()
+
}
private fun updateTimeDisplayTime() {
@@ -152,10 +151,10 @@ class SleepTimerDialog : DialogFragment() {
private fun updateCancelButton() {
val musicService = MusicPlayerRemote.musicService
if (musicService != null && musicService.pendingQuit) {
- materialDialog.getActionButton(DialogAction.NEUTRAL).text =
- materialDialog.context.getString(R.string.cancel_current_timer)
+ dialog.getActionButton(DialogAction.NEUTRAL).text =
+ dialog.context.getString(R.string.cancel_current_timer)
} else {
- materialDialog.getActionButton(DialogAction.NEUTRAL).text = null
+ dialog.getActionButton(DialogAction.NEUTRAL).text = null
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/dialogs/SongDetailDialog.kt b/app/src/main/java/io/github/muntashirakon/music/dialogs/SongDetailDialog.kt
index 9daf28308..e03540c8a 100644
--- a/app/src/main/java/io/github/muntashirakon/music/dialogs/SongDetailDialog.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/dialogs/SongDetailDialog.kt
@@ -29,9 +29,10 @@ import androidx.core.text.HtmlCompat
import androidx.fragment.app.DialogFragment
import io.github.muntashirakon.music.EXTRA_SONG
import io.github.muntashirakon.music.R
+import io.github.muntashirakon.music.extensions.colorButtons
+import io.github.muntashirakon.music.extensions.materialDialog
import io.github.muntashirakon.music.model.Song
import io.github.muntashirakon.music.util.MusicUtil
-import com.google.android.material.dialog.MaterialAlertDialogBuilder
import org.jaudiotagger.audio.AudioFileIO
import org.jaudiotagger.audio.exceptions.CannotReadException
import org.jaudiotagger.audio.exceptions.InvalidAudioFrameException
@@ -150,13 +151,11 @@ class SongDetailDialog : DialogFragment() {
)
}
}
- return MaterialAlertDialogBuilder(
- requireContext(),
- R.style.ThemeOverlay_MaterialComponents_Dialog_Alert
- ).setTitle(R.string.action_details)
+ return materialDialog(R.string.action_details)
.setPositiveButton(android.R.string.ok, null)
.setView(dialogView)
.create()
+ .colorButtons()
}
companion object {
diff --git a/app/src/main/java/io/github/muntashirakon/music/dialogs/SongShareDialog.kt b/app/src/main/java/io/github/muntashirakon/music/dialogs/SongShareDialog.kt
index 5e245971c..20e063f7d 100644
--- a/app/src/main/java/io/github/muntashirakon/music/dialogs/SongShareDialog.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/dialogs/SongShareDialog.kt
@@ -21,9 +21,10 @@ import androidx.fragment.app.DialogFragment
import io.github.muntashirakon.music.EXTRA_SONG
import io.github.muntashirakon.music.R
import io.github.muntashirakon.music.activities.ShareInstagramStory
+import io.github.muntashirakon.music.extensions.colorButtons
+import io.github.muntashirakon.music.extensions.materialDialog
import io.github.muntashirakon.music.model.Song
import io.github.muntashirakon.music.util.MusicUtil
-import com.google.android.material.dialog.MaterialAlertDialogBuilder
class SongShareDialog : DialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
@@ -34,10 +35,7 @@ class SongShareDialog : DialogFragment() {
song?.title,
song?.artistName
)
- return MaterialAlertDialogBuilder(
- requireContext(),
- R.style.ThemeOverlay_MaterialComponents_Dialog_Alert
- ).setTitle(R.string.what_do_you_want_to_share)
+ return materialDialog(R.string.what_do_you_want_to_share)
.setItems(
arrayOf(
getString(R.string.the_audio_file),
@@ -48,6 +46,7 @@ class SongShareDialog : DialogFragment() {
withAction(which, song, listening)
}
.create()
+ .colorButtons()
}
private fun withAction(
diff --git a/app/src/main/java/io/github/muntashirakon/music/extensions/ColorExt.kt b/app/src/main/java/io/github/muntashirakon/music/extensions/ColorExt.kt
index d8dff1475..7e9c60bcb 100644
--- a/app/src/main/java/io/github/muntashirakon/music/extensions/ColorExt.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/extensions/ColorExt.kt
@@ -18,6 +18,7 @@ import android.app.Dialog
import android.content.Context
import android.content.res.ColorStateList
import android.graphics.Color
+import android.widget.Button
import android.widget.CheckBox
import android.widget.SeekBar
import androidx.annotation.AttrRes
@@ -26,6 +27,7 @@ import androidx.fragment.app.Fragment
import code.name.monkey.appthemehelper.ThemeStore
import code.name.monkey.appthemehelper.util.ATHUtil
import code.name.monkey.appthemehelper.util.ColorUtil
+import io.github.muntashirakon.music.App
import io.github.muntashirakon.music.R
fun Int.ripAlpha(): Int {
@@ -77,4 +79,8 @@ fun SeekBar.addAccentColor() {
val colorState = ColorStateList.valueOf(ThemeStore.accentColor(context))
progressTintList = colorState
thumbTintList = colorState
+}
+
+fun Button.accentTextColor() {
+ setTextColor(ThemeStore.accentColor(App.getContext()))
}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/extensions/DialogExtension.kt b/app/src/main/java/io/github/muntashirakon/music/extensions/DialogExtension.kt
new file mode 100644
index 000000000..d2c383101
--- /dev/null
+++ b/app/src/main/java/io/github/muntashirakon/music/extensions/DialogExtension.kt
@@ -0,0 +1,22 @@
+package code.name.monkey.retromusic.extensions
+
+import androidx.appcompat.app.AlertDialog
+import androidx.fragment.app.DialogFragment
+import code.name.monkey.retromusic.R
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
+
+fun DialogFragment.materialDialog(title: Int): MaterialAlertDialogBuilder {
+ return MaterialAlertDialogBuilder(
+ requireContext(),
+ R.style.ThemeOverlay_MaterialComponents_Dialog_Alert
+ ).setTitle(title)
+}
+
+fun AlertDialog.colorButtons(): AlertDialog {
+ setOnShowListener {
+ getButton(AlertDialog.BUTTON_POSITIVE).accentTextColor()
+ getButton(AlertDialog.BUTTON_NEGATIVE).accentTextColor()
+ getButton(AlertDialog.BUTTON_NEUTRAL).accentTextColor()
+ }
+ return this
+}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/LibraryViewModel.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/LibraryViewModel.kt
index 8b5ee196d..46bb7d30c 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/LibraryViewModel.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/LibraryViewModel.kt
@@ -1,24 +1,23 @@
package io.github.muntashirakon.music.fragments
-import android.app.Application
-import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
+import io.github.muntashirakon.music.adapter.HomeAdapter
import io.github.muntashirakon.music.fragments.ReloadType.*
import io.github.muntashirakon.music.interfaces.MusicServiceEventListener
import io.github.muntashirakon.music.model.*
import io.github.muntashirakon.music.providers.RepositoryImpl
-import io.github.muntashirakon.music.providers.interfaces.Repository
import kotlinx.coroutines.Deferred
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.async
import kotlinx.coroutines.launch
-class LibraryViewModel(application: Application) :
- AndroidViewModel(application), MusicServiceEventListener {
+class LibraryViewModel(
+ private val repository: RepositoryImpl
+) : ViewModel(), MusicServiceEventListener {
- private val _repository: Repository = RepositoryImpl(application.applicationContext)
private val _albums = MutableLiveData>()
private val _songs = MutableLiveData>()
private val _artists = MutableLiveData>()
@@ -51,16 +50,22 @@ class LibraryViewModel(application: Application) :
private fun loadHomeSections() = viewModelScope.launch {
val list = mutableListOf()
val result = listOf(
- _repository.topArtists(),
- _repository.topAlbums(),
- _repository.recentArtists(),
- _repository.recentAlbums(),
- _repository.favoritePlaylist(),
- _repository.suggestions()
+ repository.topArtists(),
+ repository.topAlbums(),
+ repository.recentArtists(),
+ repository.recentAlbums(),
+ repository.suggestions(),
+ repository.favoritePlaylist()
)
- for (r in result) {
- if (r != null) {
- list.add(r)
+ result.forEach {
+ if (it != null && it.arrayList.isNotEmpty()) {
+ if (it.homeSection == HomeAdapter.SUGGESTIONS) {
+ if (it.arrayList.size > 9) {
+ list.add(it)
+ }
+ } else {
+ list.add(it)
+ }
}
}
_homeSections.value = list
@@ -68,27 +73,27 @@ class LibraryViewModel(application: Application) :
private val loadSongs: Deferred>
get() = viewModelScope.async(IO) {
- _repository.allSongs()
+ repository.allSongs()
}
private val loadAlbums: Deferred>
get() = viewModelScope.async(IO) {
- _repository.allAlbums()
+ repository.allAlbums()
}
private val loadArtists: Deferred>
get() = viewModelScope.async(IO) {
- _repository.allArtists()
+ repository.allArtists()
}
private val loadPlaylists: Deferred>
get() = viewModelScope.async(IO) {
- _repository.allPlaylists()
+ repository.allPlaylists()
}
private val loadGenres: Deferred>
get() = viewModelScope.async(IO) {
- _repository.allGenres()
+ repository.allGenres()
}
fun forceReload(reloadType: ReloadType) = viewModelScope.launch {
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/MiniPlayerFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/MiniPlayerFragment.kt
index 5d2e2973a..a95cb37ec 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/MiniPlayerFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/MiniPlayerFragment.kt
@@ -15,14 +15,12 @@ import io.github.muntashirakon.music.extensions.show
import io.github.muntashirakon.music.extensions.textColorPrimary
import io.github.muntashirakon.music.extensions.textColorSecondary
import io.github.muntashirakon.music.fragments.base.AbsMusicServiceFragment
-import io.github.muntashirakon.music.glide.SongGlideRequest
import io.github.muntashirakon.music.helper.MusicPlayerRemote
import io.github.muntashirakon.music.helper.MusicProgressViewUpdateHelper
import io.github.muntashirakon.music.helper.PlayPauseButtonOnClickHandler
import io.github.muntashirakon.music.util.PreferenceUtil
import io.github.muntashirakon.music.util.RetroUtil
import io.github.muntashirakon.music.util.ViewUtil
-import com.bumptech.glide.Glide
import kotlinx.android.synthetic.main.fragment_mini_player.*
import kotlin.math.abs
@@ -63,8 +61,7 @@ open class MiniPlayerFragment : AbsMusicServiceFragment(), MusicProgressViewUpda
actionPrevious?.show()
} else {
- actionNext.visibility =
- if (PreferenceUtil.isExtraControls) View.VISIBLE else View.GONE
+ actionNext.visibility = if (PreferenceUtil.isExtraControls) View.VISIBLE else View.GONE
actionPrevious.visibility =
if (PreferenceUtil.isExtraControls) View.VISIBLE else View.GONE
}
@@ -97,19 +94,6 @@ open class MiniPlayerFragment : AbsMusicServiceFragment(), MusicProgressViewUpda
miniPlayerTitle.isSelected = true
miniPlayerTitle.text = builder
-
- if (RetroUtil.isTablet()) {
- image?.let {
- SongGlideRequest.Builder.from(
- Glide.with(requireContext()),
- MusicPlayerRemote.currentSong
- ).checkIgnoreMediaStore(requireContext())
- .ignoreMediaStore(PreferenceUtil.isAllowedToDownloadMetadata())
- .asBitmap()
- .build()
- .into(it)
- }
- }
}
override fun onServiceConnected() {
@@ -145,9 +129,9 @@ open class MiniPlayerFragment : AbsMusicServiceFragment(), MusicProgressViewUpda
protected fun updatePlayPauseDrawableState() {
if (MusicPlayerRemote.isPlaying) {
- miniPlayerPlayPauseButton!!.setImageResource(R.drawable.ic_pause_white_24dp)
+ miniPlayerPlayPauseButton.setImageResource(R.drawable.ic_pause)
} else {
- miniPlayerPlayPauseButton!!.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ miniPlayerPlayPauseButton.setImageResource(R.drawable.ic_play_arrow)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/VolumeFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/VolumeFragment.kt
index 24c568b75..4677186b4 100755
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/VolumeFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/VolumeFragment.kt
@@ -62,7 +62,7 @@ class VolumeFragment : Fragment(), SeekBar.OnSeekBarChangeListener, OnAudioVolum
volumeSeekBar.max = maxVolume
volumeSeekBar.progress = currentVolume
- volumeDown.setImageResource(if (currentVolume == 0) R.drawable.ic_volume_off_white_24dp else R.drawable.ic_volume_down_white_24dp)
+ volumeDown.setImageResource(if (currentVolume == 0) R.drawable.ic_volume_off else R.drawable.ic_volume_down)
}
override fun onDestroyView() {
@@ -74,7 +74,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 else R.drawable.ic_volume_down)
}
override fun onStartTrackingTouch(seekBar: SeekBar) {
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/albums/AlbumsFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/albums/AlbumsFragment.kt
index 90f8fa99b..1f893f286 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/albums/AlbumsFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/albums/AlbumsFragment.kt
@@ -15,7 +15,6 @@ class AlbumsFragment :
AbsLibraryPagerRecyclerViewCustomGridSizeFragment(),
MainActivityFragmentCallbacks {
-
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
mainActivity.libraryViewModel.allAlbums()
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/base/AbsPlayerFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/base/AbsPlayerFragment.kt
index 3780bc10e..82a64e2bd 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/base/AbsPlayerFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/base/AbsPlayerFragment.kt
@@ -197,9 +197,9 @@ abstract class AbsPlayerFragment : AbsMusicServiceFragment(),
override fun onPostExecute(isFavorite: Boolean) {
val res = if (isFavorite)
- R.drawable.ic_favorite_white_24dp
+ R.drawable.ic_favorite
else
- R.drawable.ic_favorite_border_white_24dp
+ R.drawable.ic_favorite_border
val drawable =
RetroUtil.getTintedVectorDrawable(requireContext(), res, toolbarIconColor())
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/mainactivity/FoldersFragment.java b/app/src/main/java/io/github/muntashirakon/music/fragments/mainactivity/FoldersFragment.java
index 168c8f16c..049aae452 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/mainactivity/FoldersFragment.java
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/mainactivity/FoldersFragment.java
@@ -375,7 +375,7 @@ public class FoldersFragment extends AbsMainActivityFragment implements
}
cab = new MaterialCab(getMainActivity(), R.id.cab_stub)
.setMenu(menuRes)
- .setCloseDrawableRes(R.drawable.ic_close_white_24dp)
+ .setCloseDrawableRes(R.drawable.ic_close)
.setBackgroundColor(RetroColorUtil.shiftBackgroundColorForLightText(
ATHUtil.INSTANCE.resolveColor(requireContext(), R.attr.colorSurface)))
.start(callback);
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt
index 75ccb1b06..a6bbd86e7 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt
@@ -157,7 +157,7 @@ class AdaptivePlaybackControlsFragment : AbsPlayerControlsFragment() {
private fun updatePlayPauseDrawableState() {
if (MusicPlayerRemote.isPlaying) {
- playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_pause)
} else {
playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
@@ -214,18 +214,18 @@ class AdaptivePlaybackControlsFragment : AbsPlayerControlsFragment() {
override fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/blur/BlurPlaybackControlsFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/blur/BlurPlaybackControlsFragment.kt
index f6b705488..cdf842629 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/blur/BlurPlaybackControlsFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/blur/BlurPlaybackControlsFragment.kt
@@ -148,7 +148,7 @@ class BlurPlaybackControlsFragment : AbsPlayerControlsFragment() {
private fun updatePlayPauseDrawableState() {
if (MusicPlayerRemote.isPlaying) {
- playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_pause)
} else {
playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
@@ -197,18 +197,18 @@ class BlurPlaybackControlsFragment : AbsPlayerControlsFragment() {
override fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/card/CardPlaybackControlsFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/card/CardPlaybackControlsFragment.kt
index 1c3aa3184..42df169e3 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/card/CardPlaybackControlsFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/card/CardPlaybackControlsFragment.kt
@@ -155,7 +155,7 @@ class CardPlaybackControlsFragment : AbsPlayerControlsFragment() {
private fun updatePlayPauseDrawableState() {
if (MusicPlayerRemote.isPlaying) {
- playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_pause)
} else {
playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
@@ -204,18 +204,18 @@ class CardPlaybackControlsFragment : AbsPlayerControlsFragment() {
override fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/cardblur/CardBlurPlaybackControlsFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/cardblur/CardBlurPlaybackControlsFragment.kt
index bd18f0d50..20a8da5e6 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/cardblur/CardBlurPlaybackControlsFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/cardblur/CardBlurPlaybackControlsFragment.kt
@@ -79,7 +79,7 @@ class CardBlurPlaybackControlsFragment : AbsPlayerControlsFragment() {
private fun updatePlayPauseDrawableState() {
when {
- MusicPlayerRemote.isPlaying -> playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
+ MusicPlayerRemote.isPlaying -> playPauseButton.setImageResource(R.drawable.ic_pause)
else -> playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
}
@@ -177,18 +177,18 @@ class CardBlurPlaybackControlsFragment : AbsPlayerControlsFragment() {
override fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/circle/CirclePlayerFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/circle/CirclePlayerFragment.kt
index ea9e9e016..24235cbbd 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/circle/CirclePlayerFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/circle/CirclePlayerFragment.kt
@@ -206,8 +206,8 @@ class CirclePlayerFragment : AbsPlayerFragment(), Callback, OnAudioVolumeChanged
private fun updatePlayPauseDrawableState() {
when {
- MusicPlayerRemote.isPlaying -> playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
- else -> playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ MusicPlayerRemote.isPlaying -> playPauseButton.setImageResource(R.drawable.ic_pause)
+ else -> playPauseButton.setImageResource(R.drawable.ic_play_arrow)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/classic/ClassicPlayerFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/classic/ClassicPlayerFragment.kt
index 187969900..405f7e598 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/classic/ClassicPlayerFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/classic/ClassicPlayerFragment.kt
@@ -415,9 +415,9 @@ class ClassicPlayerFragment : AbsPlayerFragment(), View.OnLayoutChangeListener,
private fun updatePlayPauseDrawableState() {
if (MusicPlayerRemote.isPlaying) {
- playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_pause)
} else {
- playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_play_arrow)
}
}
@@ -466,18 +466,18 @@ class ClassicPlayerFragment : AbsPlayerFragment(), View.OnLayoutChangeListener,
fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/color/ColorPlaybackControlsFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/color/ColorPlaybackControlsFragment.kt
index e19283ed9..4824e98b1 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/color/ColorPlaybackControlsFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/color/ColorPlaybackControlsFragment.kt
@@ -129,8 +129,8 @@ 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)
+ MusicPlayerRemote.isPlaying -> playPauseButton.setImageResource(R.drawable.ic_pause)
+ else -> playPauseButton.setImageResource(R.drawable.ic_play_arrow)
}
}
@@ -177,18 +177,18 @@ class ColorPlaybackControlsFragment : AbsPlayerControlsFragment() {
override fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/fit/FitPlaybackControlsFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/fit/FitPlaybackControlsFragment.kt
index d340e94dd..b1e3c391e 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/fit/FitPlaybackControlsFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/fit/FitPlaybackControlsFragment.kt
@@ -156,7 +156,7 @@ class FitPlaybackControlsFragment : AbsPlayerControlsFragment() {
private fun updatePlayPauseDrawableState() {
if (MusicPlayerRemote.isPlaying) {
- playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_pause)
} else {
playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
@@ -205,18 +205,18 @@ class FitPlaybackControlsFragment : AbsPlayerControlsFragment() {
override fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/flat/FlatPlaybackControlsFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/flat/FlatPlaybackControlsFragment.kt
index fa3ab6000..61af73dae 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/flat/FlatPlaybackControlsFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/flat/FlatPlaybackControlsFragment.kt
@@ -149,7 +149,7 @@ class FlatPlaybackControlsFragment : AbsPlayerControlsFragment(), Callback {
private fun updatePlayPauseDrawableState() {
if (MusicPlayerRemote.isPlaying) {
- playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_pause)
} else {
playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
@@ -189,18 +189,18 @@ class FlatPlaybackControlsFragment : AbsPlayerControlsFragment(), Callback {
override fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/full/FullPlaybackControlsFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/full/FullPlaybackControlsFragment.kt
index d66a2eaf1..450d090bc 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/full/FullPlaybackControlsFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/full/FullPlaybackControlsFragment.kt
@@ -148,7 +148,7 @@ class FullPlaybackControlsFragment : AbsPlayerControlsFragment(),
private fun updatePlayPauseDrawableState() {
if (MusicPlayerRemote.isPlaying) {
- playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_pause)
} else {
playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
@@ -257,18 +257,18 @@ class FullPlaybackControlsFragment : AbsPlayerControlsFragment(),
override fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
@@ -309,9 +309,9 @@ class FullPlaybackControlsFragment : AbsPlayerControlsFragment(),
val activity = activity
if (activity != null) {
val res = if (isFavorite!!)
- R.drawable.ic_favorite_white_24dp
+ R.drawable.ic_favorite
else
- R.drawable.ic_favorite_border_white_24dp
+ R.drawable.ic_favorite_border
val drawable = TintHelper.createTintedDrawable(activity, res, Color.WHITE)
songFavourite?.setImageDrawable(drawable)
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/gradient/GradientPlayerFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/gradient/GradientPlayerFragment.kt
index 3d11e637c..823f3f064 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/gradient/GradientPlayerFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/gradient/GradientPlayerFragment.kt
@@ -355,18 +355,18 @@ class GradientPlayerFragment : AbsPlayerFragment(), MusicProgressViewUpdateHelpe
fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
@@ -506,9 +506,9 @@ class GradientPlayerFragment : AbsPlayerFragment(), MusicProgressViewUpdateHelpe
val activity = activity
if (activity != null) {
val res = if (isFavorite!!)
- R.drawable.ic_favorite_white_24dp
+ R.drawable.ic_favorite
else
- R.drawable.ic_favorite_border_white_24dp
+ R.drawable.ic_favorite_border
val drawable = TintHelper.createTintedDrawable(activity, res, Color.WHITE)
songFavourite?.setImageDrawable(drawable)
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt
index e65561738..44c80d1fc 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt
@@ -156,7 +156,7 @@ class LockScreenPlayerControlsFragment : AbsPlayerControlsFragment() {
private fun updatePlayPauseDrawableState() {
if (MusicPlayerRemote.isPlaying) {
- playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_pause)
} else {
playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
@@ -205,18 +205,18 @@ class LockScreenPlayerControlsFragment : AbsPlayerControlsFragment() {
override fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/material/MaterialControlsFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/material/MaterialControlsFragment.kt
index 47b3c188d..10d01a6e2 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/material/MaterialControlsFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/material/MaterialControlsFragment.kt
@@ -190,18 +190,18 @@ class MaterialControlsFragment : AbsPlayerControlsFragment() {
override fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_sharp_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_sharp)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_sharp_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_sharp)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_sharp_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one_sharp)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/normal/PlayerPlaybackControlsFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/normal/PlayerPlaybackControlsFragment.kt
index 10a143c8b..2978168dc 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/normal/PlayerPlaybackControlsFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/normal/PlayerPlaybackControlsFragment.kt
@@ -153,9 +153,9 @@ class PlayerPlaybackControlsFragment : AbsPlayerControlsFragment() {
private fun updatePlayPauseDrawableState() {
if (MusicPlayerRemote.isPlaying) {
- playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_pause)
} else {
- playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_play_arrow)
}
}
@@ -202,18 +202,18 @@ class PlayerPlaybackControlsFragment : AbsPlayerControlsFragment() {
override fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/peak/PeakPlayerControlFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/peak/PeakPlayerControlFragment.kt
index 035730310..cff152203 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/peak/PeakPlayerControlFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/peak/PeakPlayerControlFragment.kt
@@ -118,7 +118,7 @@ class PeakPlayerControlFragment : AbsPlayerControlsFragment() {
private fun updatePlayPauseDrawableState() {
if (MusicPlayerRemote.isPlaying) {
- playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_pause)
} else {
playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
@@ -203,18 +203,18 @@ class PeakPlayerControlFragment : AbsPlayerControlsFragment() {
override fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/plain/PlainPlaybackControlsFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/plain/PlainPlaybackControlsFragment.kt
index 94f310726..225418867 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/plain/PlainPlaybackControlsFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/plain/PlainPlaybackControlsFragment.kt
@@ -204,18 +204,18 @@ class PlainPlaybackControlsFragment : AbsPlayerControlsFragment() {
override fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
@@ -265,7 +265,7 @@ class PlainPlaybackControlsFragment : AbsPlayerControlsFragment() {
private fun updatePlayPauseDrawableState() {
if (MusicPlayerRemote.isPlaying) {
- playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_pause)
} else {
playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/simple/SimplePlaybackControlsFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/simple/SimplePlaybackControlsFragment.kt
index 7b200ee55..b10e32397 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/simple/SimplePlaybackControlsFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/simple/SimplePlaybackControlsFragment.kt
@@ -134,18 +134,18 @@ class SimplePlaybackControlsFragment : AbsPlayerControlsFragment() {
override fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- repeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ repeatButton.setImageResource(R.drawable.ic_repeat_one)
repeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
@@ -243,7 +243,7 @@ class SimplePlaybackControlsFragment : AbsPlayerControlsFragment() {
private fun updatePlayPauseDrawableState() {
if (MusicPlayerRemote.isPlaying) {
- playPauseButton.setImageResource(R.drawable.ic_pause_white_24dp)
+ playPauseButton.setImageResource(R.drawable.ic_pause)
} else {
playPauseButton.setImageResource(R.drawable.ic_play_arrow_white_32dp)
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/fragments/player/tiny/TinyPlaybackControlsFragment.kt b/app/src/main/java/io/github/muntashirakon/music/fragments/player/tiny/TinyPlaybackControlsFragment.kt
index 501a5ec10..2849fba2b 100644
--- a/app/src/main/java/io/github/muntashirakon/music/fragments/player/tiny/TinyPlaybackControlsFragment.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/fragments/player/tiny/TinyPlaybackControlsFragment.kt
@@ -81,18 +81,18 @@ class TinyPlaybackControlsFragment : AbsPlayerControlsFragment() {
override fun updateRepeatState() {
when (MusicPlayerRemote.repeatMode) {
MusicService.REPEAT_MODE_NONE -> {
- playerRepeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ playerRepeatButton.setImageResource(R.drawable.ic_repeat)
playerRepeatButton.setColorFilter(
lastDisabledPlaybackControlsColor,
PorterDuff.Mode.SRC_IN
)
}
MusicService.REPEAT_MODE_ALL -> {
- playerRepeatButton.setImageResource(R.drawable.ic_repeat_white_24dp)
+ playerRepeatButton.setImageResource(R.drawable.ic_repeat)
playerRepeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
MusicService.REPEAT_MODE_THIS -> {
- playerRepeatButton.setImageResource(R.drawable.ic_repeat_one_white_24dp)
+ playerRepeatButton.setImageResource(R.drawable.ic_repeat_one)
playerRepeatButton.setColorFilter(lastPlaybackControlsColor, PorterDuff.Mode.SRC_IN)
}
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/glide/RetroMusicColoredTarget.kt b/app/src/main/java/io/github/muntashirakon/music/glide/RetroMusicColoredTarget.kt
index da6b546b2..6bc9c0225 100644
--- a/app/src/main/java/io/github/muntashirakon/music/glide/RetroMusicColoredTarget.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/glide/RetroMusicColoredTarget.kt
@@ -36,9 +36,6 @@ abstract class RetroMusicColoredTarget(view: ImageView) : BitmapPaletteTarget(vi
super.onLoadFailed(e, errorDrawable)
val colors = MediaNotificationProcessor(App.getContext(), errorDrawable)
onColorReady(colors)
- /* MediaNotificationProcessor(App.getContext()).getPaletteAsync({
- onColorReady(it)
- }, errorDrawable)*/
}
override fun onResourceReady(
diff --git a/app/src/main/java/io/github/muntashirakon/music/glide/UserProfileGlideRequest.java b/app/src/main/java/io/github/muntashirakon/music/glide/UserProfileGlideRequest.java
index 5498b306c..f9ea7a113 100644
--- a/app/src/main/java/io/github/muntashirakon/music/glide/UserProfileGlideRequest.java
+++ b/app/src/main/java/io/github/muntashirakon/music/glide/UserProfileGlideRequest.java
@@ -23,7 +23,7 @@ import static io.github.muntashirakon.music.Constants.USER_PROFILE;
public class UserProfileGlideRequest {
private static final DiskCacheStrategy DEFAULT_DISK_CACHE_STRATEGY = DiskCacheStrategy.NONE;
- private static final int DEFAULT_ERROR_IMAGE = R.drawable.ic_account_white_24dp;
+ private static final int DEFAULT_ERROR_IMAGE = R.drawable.ic_account;
private static final int DEFAULT_ANIMATION = android.R.anim.fade_in;
public static File getUserModel() {
@@ -47,7 +47,7 @@ public class UserProfileGlideRequest {
private Builder(RequestManager requestManager, File profile) {
this.requestManager = requestManager;
this.profile = profile;
- error = TintHelper.createTintedDrawable(App.Companion.getContext(), R.drawable.ic_account_white_24dp, ThemeStore.Companion.accentColor(App.Companion.getContext()));
+ error = TintHelper.createTintedDrawable(App.Companion.getContext(), R.drawable.ic_account, ThemeStore.Companion.accentColor(App.Companion.getContext()));
}
public static Builder from(@NonNull RequestManager requestManager, File profile) {
diff --git a/app/src/main/java/io/github/muntashirakon/music/glide/artistimage/ArtistImageLoader.kt b/app/src/main/java/io/github/muntashirakon/music/glide/artistimage/ArtistImageLoader.kt
index 90589452d..090cc217e 100644
--- a/app/src/main/java/io/github/muntashirakon/music/glide/artistimage/ArtistImageLoader.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/glide/artistimage/ArtistImageLoader.kt
@@ -15,8 +15,8 @@
package io.github.muntashirakon.music.glide.artistimage
import android.content.Context
-import io.github.muntashirakon.music.deezer.Data
import io.github.muntashirakon.music.deezer.DeezerApiService
+import io.github.muntashirakon.music.deezer.Data
import io.github.muntashirakon.music.util.MusicUtil
import io.github.muntashirakon.music.util.PreferenceUtil
import com.bumptech.glide.Priority
diff --git a/app/src/main/java/io/github/muntashirakon/music/lyrics/LrcView.java b/app/src/main/java/io/github/muntashirakon/music/lyrics/LrcView.java
index dde6b6eda..d4c0f7c34 100644
--- a/app/src/main/java/io/github/muntashirakon/music/lyrics/LrcView.java
+++ b/app/src/main/java/io/github/muntashirakon/music/lyrics/LrcView.java
@@ -181,7 +181,7 @@ public class LrcView extends View {
mTimelineColor = ta.getColor(R.styleable.LrcView_lrcTimelineColor, getResources().getColor(R.color.lrc_timeline_color));
float timelineHeight = ta.getDimension(R.styleable.LrcView_lrcTimelineHeight, getResources().getDimension(R.dimen.lrc_timeline_height));
mPlayDrawable = ta.getDrawable(R.styleable.LrcView_lrcPlayDrawable);
- mPlayDrawable = (mPlayDrawable == null) ? getResources().getDrawable(R.drawable.ic_play_arrow_white_24dp) : mPlayDrawable;
+ mPlayDrawable = (mPlayDrawable == null) ? getResources().getDrawable(R.drawable.ic_play_arrow) : mPlayDrawable;
mTimeTextColor = ta.getColor(R.styleable.LrcView_lrcTimeTextColor, getResources().getColor(R.color.lrc_time_text_color));
float timeTextSize = ta.getDimension(R.styleable.LrcView_lrcTimeTextSize, getResources().getDimension(R.dimen.lrc_time_text_size));
mTextGravity = ta.getInteger(R.styleable.LrcView_lrcTextGravity, LrcEntry.GRAVITY_CENTER);
diff --git a/app/src/main/java/io/github/muntashirakon/music/model/CategoryInfo.java b/app/src/main/java/io/github/muntashirakon/music/model/CategoryInfo.java
index 78763cedf..75e730723 100644
--- a/app/src/main/java/io/github/muntashirakon/music/model/CategoryInfo.java
+++ b/app/src/main/java/io/github/muntashirakon/music/model/CategoryInfo.java
@@ -59,14 +59,14 @@ public class CategoryInfo implements Parcelable {
}
public enum Category {
- Home(R.id.action_home, R.string.home, R.drawable.ic_home_white_24dp),
- Songs(R.id.action_song, R.string.songs, R.drawable.ic_audiotrack_white_24dp),
- Albums(R.id.action_album, R.string.albums, R.drawable.ic_album_white_24dp),
- Artists(R.id.action_artist, R.string.artists, R.drawable.ic_artist_white_24dp),
- Playlists(R.id.action_playlist, R.string.playlists, R.drawable.ic_playlist_play_white_24dp),
- Genres(R.id.action_genre, R.string.genres, R.drawable.ic_guitar_white_24dp),
- Queue(R.id.action_playing_queue, R.string.queue, R.drawable.ic_queue_music_white_24dp),
- Folder(R.id.action_folder, R.string.folders, R.drawable.ic_folder_white_24dp);
+ Home(R.id.action_home, R.string.home, R.drawable.asld_home),
+ Songs(R.id.action_song, R.string.songs, R.drawable.asld_music_note),
+ Albums(R.id.action_album, R.string.albums, R.drawable.asld_album),
+ Artists(R.id.action_artist, R.string.artists, R.drawable.ic_artist),
+ Playlists(R.id.action_playlist, R.string.playlists, R.drawable.ic_playlist_play),
+ Genres(R.id.action_genre, R.string.genres, R.drawable.ic_guitar),
+ Queue(R.id.action_playing_queue, R.string.queue, R.drawable.ic_queue_music),
+ Folder(R.id.action_folder, R.string.folders, R.drawable.ic_folder);
public final int icon;
diff --git a/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/AbsSmartPlaylist.java b/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/AbsSmartPlaylist.java
index a1a0b6b4e..69baac8b9 100644
--- a/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/AbsSmartPlaylist.java
+++ b/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/AbsSmartPlaylist.java
@@ -36,7 +36,7 @@ public abstract class AbsSmartPlaylist extends AbsCustomPlaylist {
public AbsSmartPlaylist() {
super();
- this.iconRes = R.drawable.ic_queue_music_white_24dp;
+ this.iconRes = R.drawable.ic_queue_music;
}
protected AbsSmartPlaylist(Parcel in) {
diff --git a/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/HistoryPlaylist.java b/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/HistoryPlaylist.java
index 8ed1ab883..c487b6ef8 100644
--- a/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/HistoryPlaylist.java
+++ b/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/HistoryPlaylist.java
@@ -44,7 +44,7 @@ public class HistoryPlaylist extends AbsSmartPlaylist {
};
public HistoryPlaylist(@NonNull Context context) {
- super(context.getString(R.string.history), R.drawable.ic_access_time_white_24dp);
+ super(context.getString(R.string.history), R.drawable.ic_history);
}
protected HistoryPlaylist(Parcel in) {
diff --git a/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/LastAddedPlaylist.java b/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/LastAddedPlaylist.java
index b79eb3038..31d3984f7 100644
--- a/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/LastAddedPlaylist.java
+++ b/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/LastAddedPlaylist.java
@@ -41,7 +41,7 @@ public class LastAddedPlaylist extends AbsSmartPlaylist {
};
public LastAddedPlaylist(@NonNull Context context) {
- super(context.getString(R.string.last_added), R.drawable.ic_library_add_white_24dp);
+ super(context.getString(R.string.last_added), R.drawable.ic_library_add);
}
protected LastAddedPlaylist(Parcel in) {
diff --git a/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/MyTopTracksPlaylist.java b/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/MyTopTracksPlaylist.java
index a155866d6..fcac697f6 100644
--- a/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/MyTopTracksPlaylist.java
+++ b/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/MyTopTracksPlaylist.java
@@ -44,7 +44,7 @@ public class MyTopTracksPlaylist extends AbsSmartPlaylist {
};
public MyTopTracksPlaylist(@NonNull Context context) {
- super(context.getString(R.string.my_top_tracks), R.drawable.ic_trending_up_white_24dp);
+ super(context.getString(R.string.my_top_tracks), R.drawable.ic_trending_up);
}
protected MyTopTracksPlaylist(Parcel in) {
diff --git a/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/NotRecentlyPlayedPlaylist.java b/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/NotRecentlyPlayedPlaylist.java
index bc105cdb4..4c37763d7 100644
--- a/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/NotRecentlyPlayedPlaylist.java
+++ b/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/NotRecentlyPlayedPlaylist.java
@@ -29,7 +29,7 @@ public class NotRecentlyPlayedPlaylist extends AbsSmartPlaylist {
};
public NotRecentlyPlayedPlaylist(@NonNull Context context) {
- super(context.getString(R.string.not_recently_played), R.drawable.ic_watch_later_white_24dp);
+ super(context.getString(R.string.not_recently_played), R.drawable.ic_watch_later);
}
protected NotRecentlyPlayedPlaylist(Parcel in) {
diff --git a/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/ShuffleAllPlaylist.java b/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/ShuffleAllPlaylist.java
index 2adf2a1be..0e84629ca 100644
--- a/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/ShuffleAllPlaylist.java
+++ b/app/src/main/java/io/github/muntashirakon/music/model/smartplaylist/ShuffleAllPlaylist.java
@@ -40,7 +40,7 @@ public class ShuffleAllPlaylist extends AbsSmartPlaylist {
};
public ShuffleAllPlaylist(@NonNull Context context) {
- super(context.getString(R.string.action_shuffle_all), R.drawable.ic_shuffle_white_24dp);
+ super(context.getString(R.string.action_shuffle_all), R.drawable.ic_shuffle);
}
protected ShuffleAllPlaylist(Parcel in) {
diff --git a/app/src/main/java/io/github/muntashirakon/music/mvp/BaseView.kt b/app/src/main/java/io/github/muntashirakon/music/mvp/BaseView.kt
deleted file mode 100644
index 0634cfa0b..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/mvp/BaseView.kt
+++ /dev/null
@@ -1,24 +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 io.github.muntashirakon.music.mvp
-
-/**
- * Created by hemanths on 09/08/17.
- */
-
-interface BaseView {
-
- fun showEmptyView()
-}
diff --git a/app/src/main/java/io/github/muntashirakon/music/mvp/Presenter.kt b/app/src/main/java/io/github/muntashirakon/music/mvp/Presenter.kt
deleted file mode 100644
index 80bb583bc..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/mvp/Presenter.kt
+++ /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 io.github.muntashirakon.music.mvp
-
-import androidx.annotation.CallSuper
-
-/**
- * Created by hemanths on 16/08/17.
- */
-
-
-interface Presenter {
- @CallSuper
- fun attachView(view: T)
-
- @CallSuper
- fun detachView()
-}
diff --git a/app/src/main/java/io/github/muntashirakon/music/mvp/PresenterImpl.java b/app/src/main/java/io/github/muntashirakon/music/mvp/PresenterImpl.java
deleted file mode 100644
index 7dc2ba190..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/mvp/PresenterImpl.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 io.github.muntashirakon.music.mvp;
-
-/**
- * Created by hemanths on 2019-09-04.
- */
-public abstract class PresenterImpl {
- protected T view;
-
- public void attachView(T view) {
- this.view = view;
- }
-
- public void detachView() {
- view = null;
- }
-}
diff --git a/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/AlbumDetailsPresenter.kt b/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/AlbumDetailsPresenter.kt
deleted file mode 100644
index 58f7acf9f..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/AlbumDetailsPresenter.kt
+++ /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 io.github.muntashirakon.music.mvp.presenter
-
-import io.github.muntashirakon.music.model.Album
-import io.github.muntashirakon.music.model.Artist
-import io.github.muntashirakon.music.rest.model.LastFmAlbum
-
-/**
- * Created by hemanths on 20/08/17.
- */
-interface AlbumDetailsView {
-
- fun album(album: Album)
-
- fun complete()
-
- fun loadArtistImage(artist: Artist)
-
- fun moreAlbums(albums: List)
-
- fun aboutAlbum(lastFmAlbum: LastFmAlbum)
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/AlbumPresenter.kt b/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/AlbumPresenter.kt
deleted file mode 100644
index f2714296f..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/AlbumPresenter.kt
+++ /dev/null
@@ -1,26 +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 io.github.muntashirakon.music.mvp.presenter
-
-import io.github.muntashirakon.music.model.Album
-import io.github.muntashirakon.music.mvp.BaseView
-
-/**
- * Created by hemanths on 12/08/17.
- */
-interface AlbumsView : BaseView {
-
- fun albums(albums: List)
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/ArtistDetailsPresenter.kt b/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/ArtistDetailsPresenter.kt
deleted file mode 100644
index 4495dfbb5..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/ArtistDetailsPresenter.kt
+++ /dev/null
@@ -1,31 +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 io.github.muntashirakon.music.mvp.presenter
-
-import io.github.muntashirakon.music.model.Artist
-import io.github.muntashirakon.music.mvp.BaseView
-import io.github.muntashirakon.music.rest.model.LastFmArtist
-
-/**
- * Created by hemanths on 20/08/17.
- */
-interface ArtistDetailsView : BaseView {
-
- fun artist(artist: Artist)
-
- fun artistInfo(lastFmArtist: LastFmArtist?)
-
- fun complete()
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/GenreDetailsPresenter.kt b/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/GenreDetailsPresenter.kt
deleted file mode 100644
index b60c1364c..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/GenreDetailsPresenter.kt
+++ /dev/null
@@ -1,61 +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 io.github.muntashirakon.music.mvp.presenter
-
-import io.github.muntashirakon.music.model.Song
-import io.github.muntashirakon.music.mvp.BaseView
-import io.github.muntashirakon.music.mvp.Presenter
-import io.github.muntashirakon.music.mvp.PresenterImpl
-import io.github.muntashirakon.music.providers.interfaces.Repository
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.Job
-import kotlinx.coroutines.launch
-import kotlin.coroutines.CoroutineContext
-
-/**
- * Created by hemanths on 20/08/17.
- */
-
-interface GenreDetailsView : BaseView {
-
- fun songs(songs: List)
-}
-
-interface GenreDetailsPresenter : Presenter {
- fun loadGenreSongs(genreId: Int)
-
- class GenreDetailsPresenterImpl constructor(
- private val repository: Repository
- ) : PresenterImpl(), GenreDetailsPresenter, CoroutineScope {
-
- private val job = Job()
-
- override val coroutineContext: CoroutineContext
- get() = Dispatchers.IO + job
-
- override fun detachView() {
- super.detachView()
- job.cancel()
- }
-
- override fun loadGenreSongs(genreId: Int) {
- launch {
- val result = repository.getGenre(genreId)
- view?.songs(result)
- }
- }
- }
-}
diff --git a/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/PlaylistSongsPresenter.kt b/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/PlaylistSongsPresenter.kt
deleted file mode 100644
index bbba29b08..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/PlaylistSongsPresenter.kt
+++ /dev/null
@@ -1,62 +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 io.github.muntashirakon.music.mvp.presenter
-
-import io.github.muntashirakon.music.model.Playlist
-import io.github.muntashirakon.music.model.Song
-import io.github.muntashirakon.music.mvp.BaseView
-import io.github.muntashirakon.music.mvp.Presenter
-import io.github.muntashirakon.music.mvp.PresenterImpl
-import io.github.muntashirakon.music.providers.interfaces.Repository
-import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.Job
-import kotlinx.coroutines.launch
-
-import kotlin.coroutines.CoroutineContext
-
-/**
- * Created by hemanths on 20/08/17.
- */
-interface PlaylistSongsView : BaseView {
-
- fun songs(songs: List)
-}
-
-interface PlaylistSongsPresenter : Presenter {
- fun loadPlaylistSongs(playlist: Playlist)
-
- class PlaylistSongsPresenterImpl constructor(
- private val repository: Repository
- ) : PresenterImpl(), PlaylistSongsPresenter, CoroutineScope {
-
- private var job: Job = Job()
-
- override val coroutineContext: CoroutineContext
- get() = Dispatchers.IO + job
-
- override fun loadPlaylistSongs(playlist: Playlist) {
- launch {
- val songs = repository.getPlaylistSongs(playlist)
- view?.songs(songs)
- }
- }
-
- override fun detachView() {
- super.detachView()
- job.cancel()
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/SearchPresenter.kt b/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/SearchPresenter.kt
deleted file mode 100644
index 82a0ddeed..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/mvp/presenter/SearchPresenter.kt
+++ /dev/null
@@ -1,61 +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 io.github.muntashirakon.music.mvp.presenter
-
-import io.github.muntashirakon.music.mvp.BaseView
-import io.github.muntashirakon.music.mvp.Presenter
-import io.github.muntashirakon.music.mvp.PresenterImpl
-import io.github.muntashirakon.music.providers.interfaces.Repository
-import kotlinx.coroutines.*
-
-import kotlin.coroutines.CoroutineContext
-
-/**
- * Created by hemanths on 20/08/17.
- */
-
-interface SearchView : BaseView {
-
- fun showData(data: MutableList)
-}
-
-interface SearchPresenter : Presenter {
-
- fun search(query: String?)
-
- class SearchPresenterImpl constructor(
- private val repository: Repository
- ) : PresenterImpl(), SearchPresenter, CoroutineScope {
-
- override val coroutineContext: CoroutineContext
- get() = Dispatchers.IO + job
-
- private var job: Job = Job()
-
- override fun detachView() {
- super.detachView()
- job.cancel()
- }
-
- override fun search(query: String?) {
- launch {
- val result = repository.search(query)
- withContext(Dispatchers.Main) { view?.showData(result) }
- }
- }
- }
-}
-
-
diff --git a/app/src/main/java/io/github/muntashirakon/music/rest/service/LastFMService.kt b/app/src/main/java/io/github/muntashirakon/music/network/LastFMService.kt
similarity index 88%
rename from app/src/main/java/io/github/muntashirakon/music/rest/service/LastFMService.kt
rename to app/src/main/java/io/github/muntashirakon/music/network/LastFMService.kt
index 5aa1e3bb1..f22360338 100644
--- a/app/src/main/java/io/github/muntashirakon/music/rest/service/LastFMService.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/network/LastFMService.kt
@@ -12,10 +12,10 @@
* See the GNU General Public License for more details.
*/
-package io.github.muntashirakon.music.rest.service
+package io.github.muntashirakon.music.network
-import io.github.muntashirakon.music.rest.model.LastFmAlbum
-import io.github.muntashirakon.music.rest.model.LastFmArtist
+import io.github.muntashirakon.music.network.model.LastFmAlbum
+import io.github.muntashirakon.music.network.model.LastFmArtist
import retrofit2.http.GET
import retrofit2.http.Header
import retrofit2.http.Query
diff --git a/app/src/main/java/io/github/muntashirakon/music/network/RetrofitClient.kt b/app/src/main/java/io/github/muntashirakon/music/network/RetrofitClient.kt
new file mode 100644
index 000000000..afaaeb67c
--- /dev/null
+++ b/app/src/main/java/io/github/muntashirakon/music/network/RetrofitClient.kt
@@ -0,0 +1,71 @@
+package code.name.monkey.retromusic.network
+
+import code.name.monkey.retromusic.App
+import code.name.monkey.retromusic.Constants.BASE_URL
+import com.google.gson.Gson
+import okhttp3.Cache
+import okhttp3.ConnectionPool
+import okhttp3.Interceptor
+import okhttp3.OkHttpClient
+import org.koin.dsl.module
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
+import java.io.File
+import java.util.concurrent.TimeUnit
+
+private const val TIMEOUT: Long = 700
+
+val networkModule = module {
+ factory {
+ provideHttpClient(get(), get())
+ }
+ factory {
+ provideCacheControlInterceptor()
+ }
+ factory {
+ provideDefaultCache()
+ }
+ factory {
+ provideLastFmService(get())
+ }
+ single {
+ providerRetrofit(get())
+ }
+}
+
+fun provideLastFmService(retrofit: Retrofit): LastFMService =
+ retrofit.create(LastFMService::class.java)
+
+fun providerRetrofit(okHttpClient: OkHttpClient.Builder): Retrofit = Retrofit.Builder()
+ .baseUrl(BASE_URL)
+ .callFactory(okHttpClient.build())
+ .addConverterFactory(GsonConverterFactory.create(Gson()))
+ .build()
+
+fun provideHttpClient(
+ cache: Cache,
+ interceptor: Interceptor
+): OkHttpClient.Builder = OkHttpClient.Builder()
+ .connectionPool(ConnectionPool(0, 1, TimeUnit.NANOSECONDS))
+ .retryOnConnectionFailure(true)
+ .connectTimeout(TIMEOUT, TimeUnit.MINUTES)
+ .writeTimeout(TIMEOUT, TimeUnit.MINUTES)
+ .readTimeout(TIMEOUT, TimeUnit.MINUTES)
+ .cache(cache)
+ .addInterceptor(interceptor)
+
+
+fun provideCacheControlInterceptor(): Interceptor = Interceptor { chain: Interceptor.Chain ->
+ val modifiedRequest = chain.request().newBuilder()
+ .addHeader("Cache-Control", "max-age=31536000, max-stale=31536000")
+ .build()
+ chain.proceed(modifiedRequest)
+}
+
+fun provideDefaultCache(): Cache? {
+ val cacheDir = File(App.getContext().cacheDir.absolutePath, "/okhttp-lastfm/")
+ if (cacheDir.mkdirs() || cacheDir.isDirectory) {
+ return Cache(cacheDir, 1024 * 1024 * 10)
+ }
+ return null
+}
diff --git a/app/src/main/java/io/github/muntashirakon/music/rest/model/LastFmAlbum.java b/app/src/main/java/io/github/muntashirakon/music/network/model/LastFmAlbum.java
similarity index 98%
rename from app/src/main/java/io/github/muntashirakon/music/rest/model/LastFmAlbum.java
rename to app/src/main/java/io/github/muntashirakon/music/network/model/LastFmAlbum.java
index 4aa25d8c4..99488972b 100644
--- a/app/src/main/java/io/github/muntashirakon/music/rest/model/LastFmAlbum.java
+++ b/app/src/main/java/io/github/muntashirakon/music/network/model/LastFmAlbum.java
@@ -12,7 +12,7 @@
* See the GNU General Public License for more details.
*/
-package io.github.muntashirakon.music.rest.model;
+package io.github.muntashirakon.music.network.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
diff --git a/app/src/main/java/io/github/muntashirakon/music/rest/model/LastFmArtist.java b/app/src/main/java/io/github/muntashirakon/music/network/model/LastFmArtist.java
similarity index 98%
rename from app/src/main/java/io/github/muntashirakon/music/rest/model/LastFmArtist.java
rename to app/src/main/java/io/github/muntashirakon/music/network/model/LastFmArtist.java
index f2f373792..40c261031 100644
--- a/app/src/main/java/io/github/muntashirakon/music/rest/model/LastFmArtist.java
+++ b/app/src/main/java/io/github/muntashirakon/music/network/model/LastFmArtist.java
@@ -12,7 +12,7 @@
* See the GNU General Public License for more details.
*/
-package io.github.muntashirakon.music.rest.model;
+package io.github.muntashirakon.music.network.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
diff --git a/app/src/main/java/io/github/muntashirakon/music/rest/model/LastFmTrack.java b/app/src/main/java/io/github/muntashirakon/music/network/model/LastFmTrack.java
similarity index 98%
rename from app/src/main/java/io/github/muntashirakon/music/rest/model/LastFmTrack.java
rename to app/src/main/java/io/github/muntashirakon/music/network/model/LastFmTrack.java
index 100336dc4..4b018df21 100644
--- a/app/src/main/java/io/github/muntashirakon/music/rest/model/LastFmTrack.java
+++ b/app/src/main/java/io/github/muntashirakon/music/network/model/LastFmTrack.java
@@ -12,7 +12,7 @@
* See the GNU General Public License for more details.
*/
-package io.github.muntashirakon.music.rest.model;
+package io.github.muntashirakon.music.network.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
diff --git a/app/src/main/java/io/github/muntashirakon/music/preferences/AlbumCoverStylePreferenceDialog.kt b/app/src/main/java/io/github/muntashirakon/music/preferences/AlbumCoverStylePreferenceDialog.kt
index ef9424c5a..c5e8ed494 100644
--- a/app/src/main/java/io/github/muntashirakon/music/preferences/AlbumCoverStylePreferenceDialog.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/preferences/AlbumCoverStylePreferenceDialog.kt
@@ -31,12 +31,13 @@ import androidx.viewpager.widget.PagerAdapter
import androidx.viewpager.widget.ViewPager
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEDialogPreference
import io.github.muntashirakon.music.R
+import io.github.muntashirakon.music.extensions.colorButtons
import io.github.muntashirakon.music.extensions.colorControlNormal
+import io.github.muntashirakon.music.extensions.materialDialog
import io.github.muntashirakon.music.fragments.AlbumCoverStyle.*
import io.github.muntashirakon.music.util.PreferenceUtil
import io.github.muntashirakon.music.util.ViewUtil
import com.bumptech.glide.Glide
-import com.google.android.material.dialog.MaterialAlertDialogBuilder
class AlbumCoverStylePreference @JvmOverloads constructor(
context: Context,
@@ -75,15 +76,14 @@ class AlbumCoverStylePreferenceDialog : DialogFragment(),
viewPager.pageMargin = ViewUtil.convertDpToPixel(32f, resources).toInt()
viewPager.currentItem = PreferenceUtil.albumCoverStyle.ordinal
- return MaterialAlertDialogBuilder(requireActivity(),
- R.style.ThemeOverlay_MaterialComponents_Dialog_Alert)
- .setTitle(R.string.pref_title_album_cover_style)
+ return materialDialog(R.string.pref_title_album_cover_style)
.setPositiveButton(R.string.set) { _, _ ->
val coverStyle = values()[viewPagerPosition]
PreferenceUtil.albumCoverStyle = coverStyle
}
.setView(view)
.create()
+ .colorButtons()
}
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
diff --git a/app/src/main/java/io/github/muntashirakon/music/preferences/BlacklistPreferenceDialog.kt b/app/src/main/java/io/github/muntashirakon/music/preferences/BlacklistPreferenceDialog.kt
index 39723e490..030ea146d 100644
--- a/app/src/main/java/io/github/muntashirakon/music/preferences/BlacklistPreferenceDialog.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/preferences/BlacklistPreferenceDialog.kt
@@ -26,7 +26,9 @@ import androidx.fragment.app.FragmentActivity
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEDialogPreference
import io.github.muntashirakon.music.R
import io.github.muntashirakon.music.dialogs.BlacklistFolderChooserDialog
+import io.github.muntashirakon.music.extensions.colorButtons
import io.github.muntashirakon.music.extensions.colorControlNormal
+import io.github.muntashirakon.music.extensions.materialDialog
import io.github.muntashirakon.music.providers.BlacklistStore
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import java.io.File
@@ -65,25 +67,19 @@ class BlacklistPreferenceDialog : DialogFragment(), BlacklistFolderChooserDialog
childFragmentManager.findFragmentByTag("FOLDER_CHOOSER") as BlacklistFolderChooserDialog?
chooserDialog?.setCallback(this)
refreshBlacklistData()
- return MaterialAlertDialogBuilder(
- mActivity!!,
- R.style.ThemeOverlay_MaterialComponents_Dialog_Alert
- )
- .setTitle(R.string.blacklist)
+ return materialDialog(R.string.blacklist)
.setPositiveButton(android.R.string.ok) { _, _ ->
dismiss()
}
.setNeutralButton(R.string.clear_action) { _, _ ->
- MaterialAlertDialogBuilder(
- mActivity!!,
- R.style.ThemeOverlay_MaterialComponents_Dialog_Alert
- )
- .setTitle(R.string.clear_blacklist)
+ materialDialog(R.string.clear_blacklist)
.setMessage(R.string.do_you_want_to_clear_the_blacklist)
.setPositiveButton(R.string.clear_action) { _, _ ->
BlacklistStore.getInstance(mContext!!).clear()
}
.setNegativeButton(android.R.string.cancel, null)
+ .create()
+ .colorButtons()
.show()
}
.setNegativeButton(R.string.add_action) { _, _ ->
@@ -92,11 +88,7 @@ class BlacklistPreferenceDialog : DialogFragment(), BlacklistFolderChooserDialog
dialog.show(mActivity!!.supportFragmentManager, "FOLDER_CHOOSER")
}
.setItems(paths.toTypedArray()) { _, which ->
- MaterialAlertDialogBuilder(
- mActivity!!,
- R.style.ThemeOverlay_MaterialComponents_Dialog_Alert
- )
- .setTitle(R.string.remove_from_blacklist)
+ materialDialog(R.string.remove_from_blacklist)
.setMessage(
HtmlCompat.fromHtml(
String.format(
@@ -114,9 +106,9 @@ class BlacklistPreferenceDialog : DialogFragment(), BlacklistFolderChooserDialog
refreshBlacklistData()
}
.setNegativeButton(android.R.string.cancel, null)
- .show()
+ .show().colorButtons()
}
- .create()
+ .create().colorButtons()
}
private lateinit var paths: ArrayList
diff --git a/app/src/main/java/io/github/muntashirakon/music/preferences/LibraryPreference.kt b/app/src/main/java/io/github/muntashirakon/music/preferences/LibraryPreference.kt
index 9001bcb69..ada1bf30d 100644
--- a/app/src/main/java/io/github/muntashirakon/music/preferences/LibraryPreference.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/preferences/LibraryPreference.kt
@@ -29,11 +29,11 @@ import androidx.recyclerview.widget.RecyclerView
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEDialogPreference
import io.github.muntashirakon.music.R
import io.github.muntashirakon.music.adapter.CategoryInfoAdapter
+import io.github.muntashirakon.music.extensions.colorButtons
import io.github.muntashirakon.music.extensions.colorControlNormal
+import io.github.muntashirakon.music.extensions.materialDialog
import io.github.muntashirakon.music.model.CategoryInfo
import io.github.muntashirakon.music.util.PreferenceUtil
-import com.google.android.material.dialog.MaterialAlertDialogBuilder
-
class LibraryPreference @JvmOverloads constructor(
context: Context,
@@ -64,11 +64,7 @@ class LibraryPreferenceDialog : DialogFragment() {
categoryAdapter.attachToRecyclerView(recyclerView)
- return MaterialAlertDialogBuilder(
- requireContext(),
- R.style.ThemeOverlay_MaterialComponents_Dialog_Alert
- )
- .setTitle(R.string.library_categories)
+ return materialDialog(R.string.library_categories)
.setNeutralButton(
R.string.reset_action
) { _, _ ->
@@ -80,6 +76,7 @@ class LibraryPreferenceDialog : DialogFragment() {
) { _, _ -> updateCategories(categoryAdapter.categoryInfos) }
.setView(view)
.create()
+ .colorButtons()
}
private fun updateCategories(categories: List) {
diff --git a/app/src/main/java/io/github/muntashirakon/music/preferences/NowPlayingScreenPreferenceDialog.kt b/app/src/main/java/io/github/muntashirakon/music/preferences/NowPlayingScreenPreferenceDialog.kt
index cab9e42c8..9f570ac48 100644
--- a/app/src/main/java/io/github/muntashirakon/music/preferences/NowPlayingScreenPreferenceDialog.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/preferences/NowPlayingScreenPreferenceDialog.kt
@@ -30,12 +30,13 @@ import androidx.viewpager.widget.PagerAdapter
import androidx.viewpager.widget.ViewPager
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEDialogPreference
import io.github.muntashirakon.music.R
+import io.github.muntashirakon.music.extensions.colorButtons
import io.github.muntashirakon.music.extensions.colorControlNormal
+import io.github.muntashirakon.music.extensions.materialDialog
import io.github.muntashirakon.music.fragments.NowPlayingScreen.*
import io.github.muntashirakon.music.util.PreferenceUtil
import io.github.muntashirakon.music.util.ViewUtil
import com.bumptech.glide.Glide
-import com.google.android.material.dialog.MaterialAlertDialogBuilder
class NowPlayingScreenPreference @JvmOverloads constructor(
context: Context,
@@ -82,11 +83,7 @@ class NowPlayingScreenPreferenceDialog : DialogFragment(), ViewPager.OnPageChang
viewPager.pageMargin = ViewUtil.convertDpToPixel(32f, resources).toInt()
viewPager.currentItem = PreferenceUtil.nowPlayingScreen.ordinal
- return MaterialAlertDialogBuilder(
- requireContext(),
- R.style.ThemeOverlay_MaterialComponents_Dialog_Alert
- )
- .setTitle(R.string.pref_title_now_playing_screen_appearance)
+ return materialDialog(R.string.pref_title_now_playing_screen_appearance)
.setCancelable(false)
.setPositiveButton(R.string.set) { _, _ ->
val nowPlayingScreen = values()[viewPagerPosition]
@@ -94,6 +91,7 @@ class NowPlayingScreenPreferenceDialog : DialogFragment(), ViewPager.OnPageChang
}
.setView(view)
.create()
+ .colorButtons()
}
companion object {
diff --git a/app/src/main/java/io/github/muntashirakon/music/providers/ProviderModule.kt b/app/src/main/java/io/github/muntashirakon/music/providers/ProviderModule.kt
new file mode 100644
index 000000000..a5874e77a
--- /dev/null
+++ b/app/src/main/java/io/github/muntashirakon/music/providers/ProviderModule.kt
@@ -0,0 +1,11 @@
+package code.name.monkey.retromusic.providers
+
+import org.eclipse.egit.github.core.Repository
+import org.koin.dsl.bind
+import org.koin.dsl.module
+
+val provideModules = module {
+ single {
+ RepositoryImpl(get(), get())
+ } bind Repository::class
+}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/providers/RepositoryImpl.kt b/app/src/main/java/io/github/muntashirakon/music/providers/RepositoryImpl.kt
index b1b6cd72b..b6bda7a71 100644
--- a/app/src/main/java/io/github/muntashirakon/music/providers/RepositoryImpl.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/providers/RepositoryImpl.kt
@@ -19,13 +19,16 @@ import io.github.muntashirakon.music.R
import io.github.muntashirakon.music.adapter.HomeAdapter
import io.github.muntashirakon.music.loaders.*
import io.github.muntashirakon.music.model.*
-import io.github.muntashirakon.music.providers.interfaces.Repository
-import io.github.muntashirakon.music.rest.LastFmClient
-import io.github.muntashirakon.music.rest.model.LastFmAlbum
-import io.github.muntashirakon.music.rest.model.LastFmArtist
import io.github.muntashirakon.music.model.smartplaylist.NotRecentlyPlayedPlaylist
+import io.github.muntashirakon.music.network.LastFMService
+import io.github.muntashirakon.music.network.model.LastFmAlbum
+import io.github.muntashirakon.music.network.model.LastFmArtist
+import io.github.muntashirakon.music.providers.interfaces.Repository
-class RepositoryImpl constructor(private val context: Context) : Repository {
+class RepositoryImpl(
+ private val context: Context,
+ private val lastFMService: LastFMService
+) : Repository {
override suspend fun allAlbums(): List = AlbumLoader.getAllAlbums(context)
@@ -43,12 +46,14 @@ class RepositoryImpl constructor(private val context: Context) : Repository {
ArtistLoader.getArtist(context, artistId)
override suspend fun suggestions(): Home? {
- val songs = NotRecentlyPlayedPlaylist(context).getSongs(context).shuffled().subList(0, 9)
+ val songs = NotRecentlyPlayedPlaylist(context).getSongs(context).shuffled().apply {
+ if (size > 9) subList(0, 9)
+ }
if (songs.isNotEmpty()) {
return Home(
songs,
HomeAdapter.SUGGESTIONS,
- R.drawable.ic_audiotrack_white_24dp
+ R.drawable.ic_audiotrack
)
}
return null
@@ -73,7 +78,7 @@ class RepositoryImpl constructor(private val context: Context) : Repository {
return if (artists.isNotEmpty()) Home(
artists,
HomeAdapter.RECENT_ARTISTS,
- R.drawable.ic_artist_white_24dp
+ R.drawable.ic_artist
) else null
}
@@ -82,7 +87,7 @@ class RepositoryImpl constructor(private val context: Context) : Repository {
return if (albums.isNotEmpty()) Home(
albums,
HomeAdapter.RECENT_ALBUMS,
- R.drawable.ic_album_white_24dp
+ R.drawable.ic_album
) else null
}
@@ -91,7 +96,7 @@ class RepositoryImpl constructor(private val context: Context) : Repository {
return if (albums.isNotEmpty()) Home(
albums,
HomeAdapter.TOP_ALBUMS,
- R.drawable.ic_album_white_24dp
+ R.drawable.ic_album
) else null
}
@@ -101,7 +106,7 @@ class RepositoryImpl constructor(private val context: Context) : Repository {
return if (artists.isNotEmpty()) Home(
artists,
HomeAdapter.TOP_ARTISTS,
- R.drawable.ic_artist_white_24dp
+ R.drawable.ic_artist
) else null
}
@@ -110,8 +115,8 @@ class RepositoryImpl constructor(private val context: Context) : Repository {
val playlists = PlaylistLoader.getFavoritePlaylist(context)
return if (playlists.isNotEmpty()) Home(
playlists,
- HomeAdapter.PLAYLISTS,
- R.drawable.ic_favorite_white_24dp
+ HomeAdapter.FAVOURITES,
+ R.drawable.ic_favorite
) else null
}
@@ -119,12 +124,12 @@ class RepositoryImpl constructor(private val context: Context) : Repository {
name: String,
lang: String?,
cache: String?
- ): LastFmArtist = LastFmClient.getApiService().artistInfo(name, lang, cache)
+ ): LastFmArtist = lastFMService.artistInfo(name, lang, cache)
override suspend fun albumInfo(
artist: String,
album: String
- ): LastFmAlbum = LastFmClient.getApiService().albumInfo(artist, album)
+ ): LastFmAlbum = lastFMService.albumInfo(artist, album)
}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/providers/interfaces/Repository.kt b/app/src/main/java/io/github/muntashirakon/music/providers/interfaces/Repository.kt
index bf3cad032..24b38cd55 100644
--- a/app/src/main/java/io/github/muntashirakon/music/providers/interfaces/Repository.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/providers/interfaces/Repository.kt
@@ -15,8 +15,8 @@
package io.github.muntashirakon.music.providers.interfaces
import io.github.muntashirakon.music.model.*
-import io.github.muntashirakon.music.rest.model.LastFmAlbum
-import io.github.muntashirakon.music.rest.model.LastFmArtist
+import io.github.muntashirakon.music.network.model.LastFmAlbum
+import io.github.muntashirakon.music.network.model.LastFmArtist
/**
* Created by hemanths on 11/08/17.
diff --git a/app/src/main/java/io/github/muntashirakon/music/rest/LastFmClient.kt b/app/src/main/java/io/github/muntashirakon/music/rest/LastFmClient.kt
deleted file mode 100644
index 1fe2c0459..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/rest/LastFmClient.kt
+++ /dev/null
@@ -1,69 +0,0 @@
-package io.github.muntashirakon.music.rest
-
-import io.github.muntashirakon.music.App
-import io.github.muntashirakon.music.rest.service.LastFMService
-import com.google.gson.Gson
-import okhttp3.Cache
-import okhttp3.ConnectionPool
-import okhttp3.Interceptor
-import okhttp3.Interceptor.Chain
-import okhttp3.OkHttpClient
-import okhttp3.logging.HttpLoggingInterceptor
-import retrofit2.Retrofit
-import retrofit2.converter.gson.GsonConverterFactory
-import java.io.File
-import java.util.concurrent.TimeUnit
-
-object LastFmClient {
- private const val baseUrl = "https://ws.audioscrobbler.com/2.0/"
-
- private var lastFMService: LastFMService
-
- fun getApiService(): LastFMService {
- return lastFMService
- }
-
- init {
- lastFMService = Retrofit.Builder()
- .baseUrl(baseUrl)
- .callFactory(createDefaultOkHttpClientBuilder().build())
- .addConverterFactory(GsonConverterFactory.create(Gson()))
- .build()
- .create(LastFMService::class.java)
- }
-
- private fun createDefaultOkHttpClientBuilder(): OkHttpClient.Builder {
- return OkHttpClient.Builder()
- .connectionPool(ConnectionPool(0, 1, TimeUnit.NANOSECONDS))
- .retryOnConnectionFailure(true)
- .connectTimeout(1, TimeUnit.MINUTES) // connect timeout
- .writeTimeout(1, TimeUnit.MINUTES) // write timeout
- .readTimeout(1, TimeUnit.MINUTES) // read timeout
- .cache(createDefaultCache())
- .addInterceptor(createCacheControlInterceptor())
- .addInterceptor(createLogInterceptor())
- }
-
- private fun createLogInterceptor(): Interceptor {
- val interceptor = HttpLoggingInterceptor()
- interceptor.level = HttpLoggingInterceptor.Level.BASIC
- return interceptor
- }
-
- private fun createCacheControlInterceptor(): Interceptor {
- return Interceptor { chain: Chain ->
- val modifiedRequest = chain.request().newBuilder()
- .addHeader("Cache-Control", "max-age=31536000, max-stale=31536000")
- .build()
- chain.proceed(modifiedRequest)
- }
- }
-
- private fun createDefaultCache(): Cache? {
- val cacheDir = File(App.getContext().cacheDir.absolutePath, "/okhttp-lastfm/")
- if (cacheDir.mkdirs() || cacheDir.isDirectory) {
- return Cache(cacheDir, 1024 * 1024 * 10)
- }
- return null
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/service/MusicService.java b/app/src/main/java/io/github/muntashirakon/music/service/MusicService.java
index db81d7574..c1dd2a0af 100644
--- a/app/src/main/java/io/github/muntashirakon/music/service/MusicService.java
+++ b/app/src/main/java/io/github/muntashirakon/music/service/MusicService.java
@@ -1310,11 +1310,11 @@ public class MusicService extends Service implements
}
private void setCustomAction(PlaybackStateCompat.Builder stateBuilder) {
- int repeatIcon = R.drawable.ic_repeat_white_24dp; // REPEAT_MODE_NONE
+ int repeatIcon = R.drawable.ic_repeat; // REPEAT_MODE_NONE
if (getRepeatMode() == REPEAT_MODE_THIS) {
- repeatIcon = R.drawable.ic_repeat_one_white_24dp;
+ repeatIcon = R.drawable.ic_repeat_one;
} else if (getRepeatMode() == REPEAT_MODE_ALL) {
- repeatIcon = R.drawable.ic_repeat_white_circle_24dp;
+ repeatIcon = R.drawable.ic_repeat_white_circle;
}
stateBuilder.addCustomAction(new PlaybackStateCompat.CustomAction.Builder(
CYCLE_REPEAT, getString(R.string.action_cycle_repeat), repeatIcon)
@@ -1327,7 +1327,7 @@ public class MusicService extends Service implements
.build());
final int favoriteIcon = MusicUtil.isFavorite(getApplicationContext(), getCurrentSong())
- ? R.drawable.ic_favorite_white_24dp : R.drawable.ic_favorite_border_white_24dp;
+ ? R.drawable.ic_favorite : R.drawable.ic_favorite_border;
stateBuilder.addCustomAction(new PlaybackStateCompat.CustomAction.Builder(
TOGGLE_FAVORITE, getString(R.string.action_toggle_favorite), favoriteIcon)
.build());
diff --git a/app/src/main/java/io/github/muntashirakon/music/service/notification/PlayingNotificationImpl.kt b/app/src/main/java/io/github/muntashirakon/music/service/notification/PlayingNotificationImpl.kt
index 69a2733c1..2901f9921 100644
--- a/app/src/main/java/io/github/muntashirakon/music/service/notification/PlayingNotificationImpl.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/service/notification/PlayingNotificationImpl.kt
@@ -52,7 +52,7 @@ class PlayingNotificationImpl : PlayingNotification() {
val playButtonResId =
if (isPlaying) R.drawable.ic_pause_white_48dp else R.drawable.ic_play_arrow_white_48dp
val favoriteResId =
- if (isFavorite) R.drawable.ic_favorite_white_24dp else R.drawable.ic_favorite_border_white_24dp
+ if (isFavorite) R.drawable.ic_favorite else R.drawable.ic_favorite_border
val action = Intent(service, MainActivity::class.java)
action.putExtra(MainActivity.EXPAND_PANEL, true)
diff --git a/app/src/main/java/io/github/muntashirakon/music/service/notification/PlayingNotificationOreo.kt b/app/src/main/java/io/github/muntashirakon/music/service/notification/PlayingNotificationOreo.kt
index dde814a87..e3ced6e20 100644
--- a/app/src/main/java/io/github/muntashirakon/music/service/notification/PlayingNotificationOreo.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/service/notification/PlayingNotificationOreo.kt
@@ -167,7 +167,7 @@ class PlayingNotificationOreo : PlayingNotification() {
val close = createBitmap(
RetroUtil.getTintedVectorDrawable(
service,
- R.drawable.ic_close_white_24dp,
+ R.drawable.ic_close,
primary
)!!, NOTIFICATION_CONTROLS_SIZE_MULTIPLIER
)
diff --git a/app/src/main/java/io/github/muntashirakon/music/util/DensityUtil.java b/app/src/main/java/io/github/muntashirakon/music/util/DensityUtil.java
deleted file mode 100644
index f33d29918..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/util/DensityUtil.java
+++ /dev/null
@@ -1,39 +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 io.github.muntashirakon.music.util;
-
-import android.app.Activity;
-import android.content.Context;
-import android.util.DisplayMetrics;
-
-import androidx.annotation.NonNull;
-
-/**
- * Created by hefuyi on 16/7/30.
- */
-public class DensityUtil {
-
- public static int getScreenHeight(@NonNull Context context) {
- DisplayMetrics displayMetrics = new DisplayMetrics();
- ((Activity) context).getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
- return displayMetrics.heightPixels;
- }
-
- public static int dip2px(@NonNull Context context, float dpVale) {
- final float scale = context.getResources().getDisplayMetrics().density;
- return (int) (dpVale * scale + 0.5f);
- }
-
-}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/util/DensityUtil.kt b/app/src/main/java/io/github/muntashirakon/music/util/DensityUtil.kt
new file mode 100644
index 000000000..2e36de9a7
--- /dev/null
+++ b/app/src/main/java/io/github/muntashirakon/music/util/DensityUtil.kt
@@ -0,0 +1,49 @@
+/*
+ * 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.util.DisplayMetrics
+import android.util.TypedValue
+
+/**
+ * Created by hefuyi on 16/7/30.
+ */
+object DensityUtil {
+ fun getScreenHeight(context: Context): Int {
+ val displayMetrics = DisplayMetrics()
+ (context as Activity).windowManager.defaultDisplay.getMetrics(displayMetrics)
+ return displayMetrics.heightPixels
+ }
+
+ fun getScreenWidth(context: Context): Int {
+ val displayMetrics = DisplayMetrics()
+ (context as Activity).windowManager.defaultDisplay.getMetrics(displayMetrics)
+ return displayMetrics.widthPixels
+ }
+
+ private fun toDP(context: Context, value: Int): Int {
+ return TypedValue.applyDimension(
+ TypedValue.COMPLEX_UNIT_DIP,
+ value.toFloat(), context.resources.displayMetrics
+ ).toInt()
+ }
+
+ @JvmStatic
+ fun dip2px(context: Context, dpVale: Float): Int {
+ val scale = context.resources.displayMetrics.density
+ return (dpVale * scale + 0.5f).toInt()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/io/github/muntashirakon/music/util/NavigationUtil.java b/app/src/main/java/io/github/muntashirakon/music/util/NavigationUtil.java
index 5a5214c4b..b34099327 100755
--- a/app/src/main/java/io/github/muntashirakon/music/util/NavigationUtil.java
+++ b/app/src/main/java/io/github/muntashirakon/music/util/NavigationUtil.java
@@ -29,12 +29,12 @@ import org.jetbrains.annotations.NotNull;
import io.github.muntashirakon.music.R;
import io.github.muntashirakon.music.activities.AboutActivity;
import io.github.muntashirakon.music.activities.DriveModeActivity;
-import io.github.muntashirakon.music.activities.GenreDetailsActivity;
+import io.github.muntashirakon.music.activities.genre.GenreDetailsActivity;
import io.github.muntashirakon.music.activities.LicenseActivity;
import io.github.muntashirakon.music.activities.LyricsActivity;
import io.github.muntashirakon.music.activities.PlayingQueueActivity;
-import io.github.muntashirakon.music.activities.PlaylistDetailActivity;
-import io.github.muntashirakon.music.activities.SearchActivity;
+import io.github.muntashirakon.music.activities.playlist.PlaylistDetailActivity;
+import io.github.muntashirakon.music.activities.search.SearchActivity;
import io.github.muntashirakon.music.activities.SettingsActivity;
import io.github.muntashirakon.music.activities.UserInfoActivity;
import io.github.muntashirakon.music.activities.WhatsNewActivity;
diff --git a/app/src/main/java/io/github/muntashirakon/music/util/ViewUtil.kt b/app/src/main/java/io/github/muntashirakon/music/util/ViewUtil.kt
index 2e19a8574..42a86e73a 100644
--- a/app/src/main/java/io/github/muntashirakon/music/util/ViewUtil.kt
+++ b/app/src/main/java/io/github/muntashirakon/music/util/ViewUtil.kt
@@ -27,6 +27,7 @@ import androidx.core.view.ViewCompat
import code.name.monkey.appthemehelper.util.ATHUtil
import code.name.monkey.appthemehelper.util.ColorUtil
import code.name.monkey.appthemehelper.util.MaterialValueHelper
+import com.google.android.material.progressindicator.ProgressIndicator
object ViewUtil {
@@ -76,6 +77,11 @@ object ViewUtil {
)
}
+ fun setProgressDrawable(progressIndicator: ProgressIndicator, newColor: Int) {
+ progressIndicator.indicatorColors = intArrayOf(newColor)
+ progressIndicator.trackColor = ColorUtil.withAlpha(newColor, 0.2f)
+ }
+
fun hitTest(v: View, x: Int, y: Int): Boolean {
val tx = (ViewCompat.getTranslationX(v) + 0.5f).toInt()
val ty = (ViewCompat.getTranslationY(v) + 0.5f).toInt()
diff --git a/app/src/main/java/io/github/muntashirakon/music/views/MetalRecyclerViewPager.kt b/app/src/main/java/io/github/muntashirakon/music/views/MetalRecyclerViewPager.kt
deleted file mode 100644
index 8a1ce76c8..000000000
--- a/app/src/main/java/io/github/muntashirakon/music/views/MetalRecyclerViewPager.kt
+++ /dev/null
@@ -1,108 +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 io.github.muntashirakon.music.views
-
-import android.content.Context
-import android.util.AttributeSet
-import android.util.DisplayMetrics
-import android.view.View
-import android.view.ViewGroup
-import androidx.annotation.NonNull
-import androidx.recyclerview.widget.LinearLayoutManager
-import androidx.recyclerview.widget.PagerSnapHelper
-import androidx.recyclerview.widget.RecyclerView
-import io.github.muntashirakon.music.R
-import io.github.muntashirakon.music.adapter.base.MediaEntryViewHolder
-import io.github.muntashirakon.music.util.RetroUtil
-
-class MetalRecyclerViewPager : RecyclerView {
- constructor(context: Context) : super(context) {
- init(context, null)
- }
-
- constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
- init(context, attrs)
- }
-
- constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
- context,
- attrs,
- defStyleAttr
- ) {
- init(context, attrs)
- }
-
- private var itemMargin: Int = 0
-
- fun init(context: Context, attrs: AttributeSet?) {
- val typedArray =
- context.obtainStyledAttributes(attrs, R.styleable.MetalRecyclerViewPager, 0, 0)
- itemMargin =
- typedArray.getDimension(R.styleable.MetalRecyclerViewPager_itemMargin, 0f).toInt()
- typedArray.recycle()
-
- layoutManager = LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)
- val snapHelper = PagerSnapHelper()
- snapHelper.attachToRecyclerView(this)
- }
-
- override fun setAdapter(adapter: Adapter<*>?) {
- if (adapter is MetalAdapter) {
- adapter.setItemMargin(itemMargin)
- adapter.updateDisplayMetrics()
- } else {
- throw IllegalArgumentException("Only MetalAdapter is allowed here")
- }
- super.setAdapter(adapter)
- }
-
- abstract class MetalAdapter(@NonNull val displayMetrics: DisplayMetrics) :
- RecyclerView.Adapter() {
- private var itemMargin: Int = 0
- private var itemWidth: Int = 0
-
- fun setItemMargin(itemMargin: Int) {
- this.itemMargin = itemMargin
- }
-
- fun updateDisplayMetrics() {
- itemWidth = if (RetroUtil.isTablet()) {
- displayMetrics.widthPixels / 2 - itemMargin * 3
- } else if (RetroUtil.isLandscape()) {
- ((displayMetrics.widthPixels / 2.5f) - itemMargin).toInt()
- } else {
- displayMetrics.widthPixels - itemMargin
- }
- }
-
- override fun onBindViewHolder(holder: VH, position: Int) {
- val currentItemWidth = itemWidth
- if (position == 0) {
- //currentItemWidth += itemMargin;
- holder.rootLayout.setPadding(0, 0, 0, 0);
- } else if (position == itemCount - 1) {
- //currentItemWidth += itemMargin;
- holder.rootLayout.setPadding(0, 0, 0, 0);
- }
-
- val height = holder.rootLayout.layoutParams.height
- holder.rootLayout.layoutParams = ViewGroup.LayoutParams(currentItemWidth, height)
- }
- }
-
- abstract class MetalViewHolder(itemView: View) : MediaEntryViewHolder(itemView) {
- var rootLayout: ViewGroup = itemView.findViewById(R.id.root_layout)
- }
-}
diff --git a/app/src/main/java/io/github/muntashirakon/music/views/NetworkImageView.java b/app/src/main/java/io/github/muntashirakon/music/views/NetworkImageView.java
index 22b16bb49..1389b9819 100644
--- a/app/src/main/java/io/github/muntashirakon/music/views/NetworkImageView.java
+++ b/app/src/main/java/io/github/muntashirakon/music/views/NetworkImageView.java
@@ -52,8 +52,8 @@ public class NetworkImageView extends CircularImageView {
public void setImageUrl(@NonNull Context context, @NonNull String imageUrl) {
Glide.with(context)
.load(imageUrl)
- .error(R.drawable.ic_account_white_24dp)
- .placeholder(R.drawable.ic_account_white_24dp)
+ .error(R.drawable.ic_account)
+ .placeholder(R.drawable.ic_account)
.into(this);
}
diff --git a/app/src/main/java/io/github/muntashirakon/music/views/SeekArc.java b/app/src/main/java/io/github/muntashirakon/music/views/SeekArc.java
index a4eb36897..cd3ac1a5a 100644
--- a/app/src/main/java/io/github/muntashirakon/music/views/SeekArc.java
+++ b/app/src/main/java/io/github/muntashirakon/music/views/SeekArc.java
@@ -405,7 +405,7 @@ public class SeekArc extends View {
thumbHalfheight);
mMax = a.getInteger(R.styleable.SeekArc_max, mMax);
- mProgress = a.getInteger(R.styleable.SeekArc_progress, mProgress);
+ mProgress = a.getInteger(R.styleable.SeekArc_seekProgress, mProgress);
mProgressWidth = (int) a.getDimension(
R.styleable.SeekArc_progressWidth, mProgressWidth);
mArcWidth = (int) a.getDimension(R.styleable.SeekArc_arcWidth,
diff --git a/app/src/main/res/anim/item_animation_fall_down.xml b/app/src/main/res/anim/item_animation_fall_down.xml
new file mode 100644
index 000000000..f486805c1
--- /dev/null
+++ b/app/src/main/res/anim/item_animation_fall_down.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/anim/layout_animation_fall_down.xml b/app/src/main/res/anim/layout_animation_fall_down.xml
new file mode 100644
index 000000000..6736b9f7d
--- /dev/null
+++ b/app/src/main/res/anim/layout_animation_fall_down.xml
@@ -0,0 +1,5 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v21/notification_selector.xml b/app/src/main/res/drawable-v21/notification_selector.xml
deleted file mode 100644
index 83aed83c3..000000000
--- a/app/src/main/res/drawable-v21/notification_selector.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v21/widget_selector.xml b/app/src/main/res/drawable-v21/widget_selector.xml
deleted file mode 100644
index f03604195..000000000
--- a/app/src/main/res/drawable-v21/widget_selector.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v21/widget_selector_light.xml b/app/src/main/res/drawable-v21/widget_selector_light.xml
deleted file mode 100644
index 83aed83c3..000000000
--- a/app/src/main/res/drawable-v21/widget_selector_light.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
\ No newline at end of file
diff --git a/app/src/main/res/drawable/asld_album.xml b/app/src/main/res/drawable/asld_album.xml
new file mode 100644
index 000000000..5102b289a
--- /dev/null
+++ b/app/src/main/res/drawable/asld_album.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/asld_home.xml b/app/src/main/res/drawable/asld_home.xml
new file mode 100644
index 000000000..fc93ed370
--- /dev/null
+++ b/app/src/main/res/drawable/asld_home.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/asld_music_note.xml b/app/src/main/res/drawable/asld_music_note.xml
new file mode 100644
index 000000000..4297185ea
--- /dev/null
+++ b/app/src/main/res/drawable/asld_music_note.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/avd_album.xml b/app/src/main/res/drawable/avd_album.xml
new file mode 100644
index 000000000..696cae4ba
--- /dev/null
+++ b/app/src/main/res/drawable/avd_album.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/avd_home.xml b/app/src/main/res/drawable/avd_home.xml
new file mode 100644
index 000000000..ec4056468
--- /dev/null
+++ b/app/src/main/res/drawable/avd_home.xml
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/avd_music_note.xml b/app/src/main/res/drawable/avd_music_note.xml
new file mode 100644
index 000000000..1db16c7e5
--- /dev/null
+++ b/app/src/main/res/drawable/avd_music_note.xml
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_access_time_white_24dp.xml b/app/src/main/res/drawable/ic_access_time_white_24dp.xml
deleted file mode 100644
index 93b0fd057..000000000
--- a/app/src/main/res/drawable/ic_access_time_white_24dp.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_account_white_24dp.xml b/app/src/main/res/drawable/ic_account.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_account_white_24dp.xml
rename to app/src/main/res/drawable/ic_account.xml
diff --git a/app/src/main/res/drawable/ic_account_group_white_24dp.xml b/app/src/main/res/drawable/ic_account_group_white_24dp.xml
deleted file mode 100644
index 970a3aa9a..000000000
--- a/app/src/main/res/drawable/ic_account_group_white_24dp.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_add_photo_white_24dp.xml b/app/src/main/res/drawable/ic_add_photo.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_add_photo_white_24dp.xml
rename to app/src/main/res/drawable/ic_add_photo.xml
diff --git a/app/src/main/res/drawable/ic_album_white_24dp.xml b/app/src/main/res/drawable/ic_album.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_album_white_24dp.xml
rename to app/src/main/res/drawable/ic_album.xml
diff --git a/app/src/main/res/drawable/ic_arrow_forward_white_24dp.xml b/app/src/main/res/drawable/ic_arrow_forward.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_arrow_forward_white_24dp.xml
rename to app/src/main/res/drawable/ic_arrow_forward.xml
diff --git a/app/src/main/res/drawable/ic_artist_white_24dp.xml b/app/src/main/res/drawable/ic_artist.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_artist_white_24dp.xml
rename to app/src/main/res/drawable/ic_artist.xml
diff --git a/app/src/main/res/drawable/ic_artist_selected_white_24dp.xml b/app/src/main/res/drawable/ic_artist_selected.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_artist_selected_white_24dp.xml
rename to app/src/main/res/drawable/ic_artist_selected.xml
diff --git a/app/src/main/res/drawable/ic_audiotrack_white_24dp.xml b/app/src/main/res/drawable/ic_audiotrack.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_audiotrack_white_24dp.xml
rename to app/src/main/res/drawable/ic_audiotrack.xml
diff --git a/app/src/main/res/drawable/ic_beer_white_24dp.xml b/app/src/main/res/drawable/ic_beer.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_beer_white_24dp.xml
rename to app/src/main/res/drawable/ic_beer.xml
diff --git a/app/src/main/res/drawable/ic_blur_on_white_24dp.xml b/app/src/main/res/drawable/ic_blur_on.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_blur_on_white_24dp.xml
rename to app/src/main/res/drawable/ic_blur_on.xml
diff --git a/app/src/main/res/drawable/ic_bookmark_music_white_24dp.xml b/app/src/main/res/drawable/ic_bookmark_music.xml
similarity index 86%
rename from app/src/main/res/drawable/ic_bookmark_music_white_24dp.xml
rename to app/src/main/res/drawable/ic_bookmark_music.xml
index bcde9ac74..0674f00c8 100644
--- a/app/src/main/res/drawable/ic_bookmark_music_white_24dp.xml
+++ b/app/src/main/res/drawable/ic_bookmark_music.xml
@@ -1,4 +1,3 @@
-
+
+
diff --git a/app/src/main/res/drawable/ic_home_white_24dp.xml b/app/src/main/res/drawable/ic_home.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_home_white_24dp.xml
rename to app/src/main/res/drawable/ic_home.xml
diff --git a/app/src/main/res/drawable/ic_image_white_24dp.xml b/app/src/main/res/drawable/ic_image.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_image_white_24dp.xml
rename to app/src/main/res/drawable/ic_image.xml
diff --git a/app/src/main/res/drawable/ic_info_outline_white_24dp.xml b/app/src/main/res/drawable/ic_info_outline.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_info_outline_white_24dp.xml
rename to app/src/main/res/drawable/ic_info_outline.xml
diff --git a/app/src/main/res/drawable/ic_instagram_white_24dp.xml b/app/src/main/res/drawable/ic_instagram.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_instagram_white_24dp.xml
rename to app/src/main/res/drawable/ic_instagram.xml
diff --git a/app/src/main/res/drawable/ic_invert_colors_white_24dp.xml b/app/src/main/res/drawable/ic_invert_colors.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_invert_colors_white_24dp.xml
rename to app/src/main/res/drawable/ic_invert_colors.xml
diff --git a/app/src/main/res/drawable/ic_keyboard_white_24dp.xml b/app/src/main/res/drawable/ic_keyboard.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_keyboard_white_24dp.xml
rename to app/src/main/res/drawable/ic_keyboard.xml
diff --git a/app/src/main/res/drawable/ic_keyboard_arrow_down_black_24dp.xml b/app/src/main/res/drawable/ic_keyboard_arrow_down_black.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_keyboard_arrow_down_black_24dp.xml
rename to app/src/main/res/drawable/ic_keyboard_arrow_down_black.xml
diff --git a/app/src/main/res/drawable/ic_keyboard_arrow_right_white_24dp.xml b/app/src/main/res/drawable/ic_keyboard_arrow_right.xml
similarity index 67%
rename from app/src/main/res/drawable/ic_keyboard_arrow_right_white_24dp.xml
rename to app/src/main/res/drawable/ic_keyboard_arrow_right.xml
index 37733107b..b283c52dd 100644
--- a/app/src/main/res/drawable/ic_keyboard_arrow_right_white_24dp.xml
+++ b/app/src/main/res/drawable/ic_keyboard_arrow_right.xml
@@ -1,4 +1,4 @@
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_keyboard_arrow_up_24dp.xml b/app/src/main/res/drawable/ic_keyboard_arrow_up.xml
similarity index 67%
rename from app/src/main/res/drawable/ic_keyboard_arrow_up_24dp.xml
rename to app/src/main/res/drawable/ic_keyboard_arrow_up.xml
index 712d88e34..a1d8ff1a9 100755
--- a/app/src/main/res/drawable/ic_keyboard_arrow_up_24dp.xml
+++ b/app/src/main/res/drawable/ic_keyboard_arrow_up.xml
@@ -1,4 +1,4 @@
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_keyboard_backspace_black_24dp.xml b/app/src/main/res/drawable/ic_keyboard_backspace_black.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_keyboard_backspace_black_24dp.xml
rename to app/src/main/res/drawable/ic_keyboard_backspace_black.xml
diff --git a/app/src/main/res/drawable/ic_language_white_24dp.xml b/app/src/main/res/drawable/ic_language.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_language_white_24dp.xml
rename to app/src/main/res/drawable/ic_language.xml
diff --git a/app/src/main/res/drawable/ic_library_add_white_24dp.xml b/app/src/main/res/drawable/ic_library_add.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_library_add_white_24dp.xml
rename to app/src/main/res/drawable/ic_library_add.xml
diff --git a/app/src/main/res/drawable/ic_library_music_white_24dp.xml b/app/src/main/res/drawable/ic_library_music.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_library_music_white_24dp.xml
rename to app/src/main/res/drawable/ic_library_music.xml
diff --git a/app/src/main/res/drawable/ic_license_white_24dp.xml b/app/src/main/res/drawable/ic_license.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_license_white_24dp.xml
rename to app/src/main/res/drawable/ic_license.xml
diff --git a/app/src/main/res/drawable/ic_menu_white_24dp.xml b/app/src/main/res/drawable/ic_menu.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_menu_white_24dp.xml
rename to app/src/main/res/drawable/ic_menu.xml
diff --git a/app/src/main/res/drawable/ic_mic_white_24dp.xml b/app/src/main/res/drawable/ic_mic.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_mic_white_24dp.xml
rename to app/src/main/res/drawable/ic_mic.xml
diff --git a/app/src/main/res/drawable/ic_more_vert_white_24dp.xml b/app/src/main/res/drawable/ic_more_vert.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_more_vert_white_24dp.xml
rename to app/src/main/res/drawable/ic_more_vert.xml
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.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_music_note_off_white_24dp.xml
rename to app/src/main/res/drawable/ic_music_note_off.xml
diff --git a/app/src/main/res/drawable/ic_notifications_active_white_24dp.xml b/app/src/main/res/drawable/ic_notifications_active.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_notifications_active_white_24dp.xml
rename to app/src/main/res/drawable/ic_notifications_active.xml
diff --git a/app/src/main/res/drawable/ic_open_in_browser_white_24dp.xml b/app/src/main/res/drawable/ic_open_in_browser.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_open_in_browser_white_24dp.xml
rename to app/src/main/res/drawable/ic_open_in_browser.xml
diff --git a/app/src/main/res/drawable/ic_pause_white_24dp.xml b/app/src/main/res/drawable/ic_pause.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_pause_white_24dp.xml
rename to app/src/main/res/drawable/ic_pause.xml
diff --git a/app/src/main/res/drawable/ic_pinterest_white_24dp.xml b/app/src/main/res/drawable/ic_pinterest.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_pinterest_white_24dp.xml
rename to app/src/main/res/drawable/ic_pinterest.xml
diff --git a/app/src/main/res/drawable/ic_play_arrow_white_24dp.xml b/app/src/main/res/drawable/ic_play_arrow.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_play_arrow_white_24dp.xml
rename to app/src/main/res/drawable/ic_play_arrow.xml
diff --git a/app/src/main/res/drawable/ic_play_arrow_sharp_white_64dp.xml b/app/src/main/res/drawable/ic_play_arrow_sharp_white_64dp.xml
index 5b03f4832..1cd7da06f 100644
--- a/app/src/main/res/drawable/ic_play_arrow_sharp_white_64dp.xml
+++ b/app/src/main/res/drawable/ic_play_arrow_sharp_white_64dp.xml
@@ -17,7 +17,6 @@
android:height="64dp"
android:viewportWidth="24"
android:viewportHeight="24">
-
diff --git a/app/src/main/res/drawable/ic_play_circle_filled_white_24dp.xml b/app/src/main/res/drawable/ic_play_circle_filled.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_play_circle_filled_white_24dp.xml
rename to app/src/main/res/drawable/ic_play_circle_filled.xml
diff --git a/app/src/main/res/drawable/ic_playlist_add_white_24dp.xml b/app/src/main/res/drawable/ic_playlist_add.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_playlist_add_white_24dp.xml
rename to app/src/main/res/drawable/ic_playlist_add.xml
diff --git a/app/src/main/res/drawable/ic_playlist_play_white_24dp.xml b/app/src/main/res/drawable/ic_playlist_play.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_playlist_play_white_24dp.xml
rename to app/src/main/res/drawable/ic_playlist_play.xml
diff --git a/app/src/main/res/drawable/ic_popcorn_white_24dp.xml b/app/src/main/res/drawable/ic_popcorn.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_popcorn_white_24dp.xml
rename to app/src/main/res/drawable/ic_popcorn.xml
diff --git a/app/src/main/res/drawable/ic_queue_music_white_24dp.xml b/app/src/main/res/drawable/ic_queue_music.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_queue_music_white_24dp.xml
rename to app/src/main/res/drawable/ic_queue_music.xml
diff --git a/app/src/main/res/drawable/ic_redo_white_24dp.xml b/app/src/main/res/drawable/ic_redo.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_redo_white_24dp.xml
rename to app/src/main/res/drawable/ic_redo.xml
diff --git a/app/src/main/res/drawable/ic_repeat_white_24dp.xml b/app/src/main/res/drawable/ic_repeat.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_repeat_white_24dp.xml
rename to app/src/main/res/drawable/ic_repeat.xml
diff --git a/app/src/main/res/drawable/ic_repeat_one_white_24dp.xml b/app/src/main/res/drawable/ic_repeat_one.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_repeat_one_white_24dp.xml
rename to app/src/main/res/drawable/ic_repeat_one.xml
diff --git a/app/src/main/res/drawable/ic_repeat_one_sharp_white_24dp.xml b/app/src/main/res/drawable/ic_repeat_one_sharp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_repeat_one_sharp_white_24dp.xml
rename to app/src/main/res/drawable/ic_repeat_one_sharp.xml
diff --git a/app/src/main/res/drawable/ic_repeat_sharp_white_24dp.xml b/app/src/main/res/drawable/ic_repeat_sharp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_repeat_sharp_white_24dp.xml
rename to app/src/main/res/drawable/ic_repeat_sharp.xml
diff --git a/app/src/main/res/drawable/ic_repeat_white_circle_24dp.xml b/app/src/main/res/drawable/ic_repeat_white_circle.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_repeat_white_circle_24dp.xml
rename to app/src/main/res/drawable/ic_repeat_white_circle.xml
diff --git a/app/src/main/res/drawable/ic_save_white_24dp.xml b/app/src/main/res/drawable/ic_save.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_save_white_24dp.xml
rename to app/src/main/res/drawable/ic_save.xml
diff --git a/app/src/main/res/drawable/ic_scanner_white_24dp.xml b/app/src/main/res/drawable/ic_scanner.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_scanner_white_24dp.xml
rename to app/src/main/res/drawable/ic_scanner.xml
diff --git a/app/src/main/res/drawable/ic_search_white_24dp.xml b/app/src/main/res/drawable/ic_search.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_search_white_24dp.xml
rename to app/src/main/res/drawable/ic_search.xml
diff --git a/app/src/main/res/drawable/ic_select_all_white_24dp.xml b/app/src/main/res/drawable/ic_select_all.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_select_all_white_24dp.xml
rename to app/src/main/res/drawable/ic_select_all.xml
diff --git a/app/src/main/res/drawable/ic_send_white_24dp.xml b/app/src/main/res/drawable/ic_send.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_send_white_24dp.xml
rename to app/src/main/res/drawable/ic_send.xml
diff --git a/app/src/main/res/drawable/ic_settings_white_24dp.xml b/app/src/main/res/drawable/ic_settings.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_settings_white_24dp.xml
rename to app/src/main/res/drawable/ic_settings.xml
diff --git a/app/src/main/res/drawable/ic_settings_brigntness_white_24dp.xml b/app/src/main/res/drawable/ic_settings_brigntness.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_settings_brigntness_white_24dp.xml
rename to app/src/main/res/drawable/ic_settings_brigntness.xml
diff --git a/app/src/main/res/drawable/ic_share_white_24dp.xml b/app/src/main/res/drawable/ic_share.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_share_white_24dp.xml
rename to app/src/main/res/drawable/ic_share.xml
diff --git a/app/src/main/res/drawable/ic_shuffle_white_24dp.xml b/app/src/main/res/drawable/ic_shuffle.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_shuffle_white_24dp.xml
rename to app/src/main/res/drawable/ic_shuffle.xml
diff --git a/app/src/main/res/drawable/ic_shuffle_sharp_white_24dp.xml b/app/src/main/res/drawable/ic_shuffle_sharp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_shuffle_sharp_white_24dp.xml
rename to app/src/main/res/drawable/ic_shuffle_sharp.xml
diff --git a/app/src/main/res/drawable/ic_skip_next_white_24dp.xml b/app/src/main/res/drawable/ic_skip_next.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_skip_next_white_24dp.xml
rename to app/src/main/res/drawable/ic_skip_next.xml
diff --git a/app/src/main/res/drawable/ic_skip_next_sharp_white_24dp.xml b/app/src/main/res/drawable/ic_skip_next_sharp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_skip_next_sharp_white_24dp.xml
rename to app/src/main/res/drawable/ic_skip_next_sharp.xml
diff --git a/app/src/main/res/drawable/ic_skip_previous_white_24dp.xml b/app/src/main/res/drawable/ic_skip_previous.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_skip_previous_white_24dp.xml
rename to app/src/main/res/drawable/ic_skip_previous.xml
diff --git a/app/src/main/res/drawable/ic_skip_previous_sharp_white_24dp.xml b/app/src/main/res/drawable/ic_skip_previous_sharp.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_skip_previous_sharp_white_24dp.xml
rename to app/src/main/res/drawable/ic_skip_previous_sharp.xml
diff --git a/app/src/main/res/drawable/ic_sort_white_24dp.xml b/app/src/main/res/drawable/ic_sort.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_sort_white_24dp.xml
rename to app/src/main/res/drawable/ic_sort.xml
diff --git a/app/src/main/res/drawable/ic_star_white_24dp.xml b/app/src/main/res/drawable/ic_star.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_star_white_24dp.xml
rename to app/src/main/res/drawable/ic_star.xml
diff --git a/app/src/main/res/drawable/ic_take_away_white_24dp.xml b/app/src/main/res/drawable/ic_take_away.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_take_away_white_24dp.xml
rename to app/src/main/res/drawable/ic_take_away.xml
diff --git a/app/src/main/res/drawable/ic_take_away_coffe_white_24dp.xml b/app/src/main/res/drawable/ic_take_away_coffe.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_take_away_coffe_white_24dp.xml
rename to app/src/main/res/drawable/ic_take_away_coffe.xml
diff --git a/app/src/main/res/drawable/ic_testing_white_24dp.xml b/app/src/main/res/drawable/ic_testing.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_testing_white_24dp.xml
rename to app/src/main/res/drawable/ic_testing.xml
diff --git a/app/src/main/res/drawable/ic_theme_palette_white_24dp.xml b/app/src/main/res/drawable/ic_theme_palette.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_theme_palette_white_24dp.xml
rename to app/src/main/res/drawable/ic_theme_palette.xml
diff --git a/app/src/main/res/drawable/ic_trending_up_white_24dp.xml b/app/src/main/res/drawable/ic_trending_up.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_trending_up_white_24dp.xml
rename to app/src/main/res/drawable/ic_trending_up.xml
diff --git a/app/src/main/res/drawable/ic_twitter_white_24dp.xml b/app/src/main/res/drawable/ic_twitter.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_twitter_white_24dp.xml
rename to app/src/main/res/drawable/ic_twitter.xml
diff --git a/app/src/main/res/drawable/ic_view_carousel_black_24dp.xml b/app/src/main/res/drawable/ic_view_carousel.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_view_carousel_black_24dp.xml
rename to app/src/main/res/drawable/ic_view_carousel.xml
diff --git a/app/src/main/res/drawable/ic_volume_down_white_24dp.xml b/app/src/main/res/drawable/ic_volume_down.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_volume_down_white_24dp.xml
rename to app/src/main/res/drawable/ic_volume_down.xml
diff --git a/app/src/main/res/drawable/ic_volume_off_white_24dp.xml b/app/src/main/res/drawable/ic_volume_off.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_volume_off_white_24dp.xml
rename to app/src/main/res/drawable/ic_volume_off.xml
diff --git a/app/src/main/res/drawable/ic_volume_up_white_24dp.xml b/app/src/main/res/drawable/ic_volume_up.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_volume_up_white_24dp.xml
rename to app/src/main/res/drawable/ic_volume_up.xml
diff --git a/app/src/main/res/drawable/ic_watch_later_white_24dp.xml b/app/src/main/res/drawable/ic_watch_later.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_watch_later_white_24dp.xml
rename to app/src/main/res/drawable/ic_watch_later.xml
diff --git a/app/src/main/res/drawable/notification_selector.xml b/app/src/main/res/drawable/notification_selector.xml
index d7867f86c..83aed83c3 100644
--- a/app/src/main/res/drawable/notification_selector.xml
+++ b/app/src/main/res/drawable/notification_selector.xml
@@ -1,9 +1,3 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable-v21/saf_guide_1.webp b/app/src/main/res/drawable/saf_guide_1.webp
similarity index 100%
rename from app/src/main/res/drawable-v21/saf_guide_1.webp
rename to app/src/main/res/drawable/saf_guide_1.webp
diff --git a/app/src/main/res/drawable-v21/saf_guide_2.webp b/app/src/main/res/drawable/saf_guide_2.webp
similarity index 100%
rename from app/src/main/res/drawable-v21/saf_guide_2.webp
rename to app/src/main/res/drawable/saf_guide_2.webp
diff --git a/app/src/main/res/drawable-v21/saf_guide_3.webp b/app/src/main/res/drawable/saf_guide_3.webp
similarity index 100%
rename from app/src/main/res/drawable-v21/saf_guide_3.webp
rename to app/src/main/res/drawable/saf_guide_3.webp
diff --git a/app/src/main/res/drawable/widget_selector.xml b/app/src/main/res/drawable/widget_selector.xml
old mode 100755
new mode 100644
index d7867f86c..f03604195
--- a/app/src/main/res/drawable/widget_selector.xml
+++ b/app/src/main/res/drawable/widget_selector.xml
@@ -1,9 +1,3 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/widget_selector_light.xml b/app/src/main/res/drawable/widget_selector_light.xml
index 75e988c0b..83aed83c3 100644
--- a/app/src/main/res/drawable/widget_selector_light.xml
+++ b/app/src/main/res/drawable/widget_selector_light.xml
@@ -1,9 +1,3 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout-land/activity_album.xml b/app/src/main/res/layout-land/activity_album.xml
index 51247d274..8eda0acad 100644
--- a/app/src/main/res/layout-land/activity_album.xml
+++ b/app/src/main/res/layout-land/activity_album.xml
@@ -30,7 +30,7 @@
+ app:navigationIcon="@drawable/ic_keyboard_backspace_black" />
diff --git a/app/src/main/res/layout-land/activity_artist_details.xml b/app/src/main/res/layout-land/activity_artist_details.xml
index ef4fc20ff..1fa416eef 100644
--- a/app/src/main/res/layout-land/activity_artist_details.xml
+++ b/app/src/main/res/layout-land/activity_artist_details.xml
@@ -30,7 +30,7 @@
+ app:navigationIcon="@drawable/ic_keyboard_backspace_black" />
+ app:srcCompat="@drawable/ic_close" />
+ app:srcCompat="@drawable/ic_favorite_border" />
+ app:srcCompat="@drawable/ic_skip_next" />
+ app:srcCompat="@drawable/ic_skip_previous" />
@@ -135,7 +135,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/nextButton"
- app:srcCompat="@drawable/ic_shuffle_white_24dp" />
+ app:srcCompat="@drawable/ic_shuffle" />
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
diff --git a/app/src/main/res/layout-land/fragment_card_blur_player.xml b/app/src/main/res/layout-land/fragment_card_blur_player.xml
index 6ca740355..9d0cdaa6c 100644
--- a/app/src/main/res/layout-land/fragment_card_blur_player.xml
+++ b/app/src/main/res/layout-land/fragment_card_blur_player.xml
@@ -45,11 +45,11 @@
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
diff --git a/app/src/main/res/layout-land/fragment_circle_player.xml b/app/src/main/res/layout-land/fragment_circle_player.xml
index b1f44d289..30d4cf6a4 100644
--- a/app/src/main/res/layout-land/fragment_circle_player.xml
+++ b/app/src/main/res/layout-land/fragment_circle_player.xml
@@ -47,11 +47,11 @@
diff --git a/app/src/main/res/layout-land/fragment_color_player.xml b/app/src/main/res/layout-land/fragment_color_player.xml
index c5bbd55fe..1bdf97f16 100644
--- a/app/src/main/res/layout-land/fragment_color_player.xml
+++ b/app/src/main/res/layout-land/fragment_color_player.xml
@@ -70,8 +70,8 @@
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
diff --git a/app/src/main/res/layout-land/fragment_flat_player.xml b/app/src/main/res/layout-land/fragment_flat_player.xml
index 19adca4f5..50d41be4a 100644
--- a/app/src/main/res/layout-land/fragment_flat_player.xml
+++ b/app/src/main/res/layout-land/fragment_flat_player.xml
@@ -64,8 +64,8 @@
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
diff --git a/app/src/main/res/layout-land/fragment_plain_player.xml b/app/src/main/res/layout-land/fragment_plain_player.xml
index ce18cde0b..25ef597ac 100644
--- a/app/src/main/res/layout-land/fragment_plain_player.xml
+++ b/app/src/main/res/layout-land/fragment_plain_player.xml
@@ -106,8 +106,8 @@
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
diff --git a/app/src/main/res/layout-land/fragment_player.xml b/app/src/main/res/layout-land/fragment_player.xml
index ff3d01200..782bc93b6 100755
--- a/app/src/main/res/layout-land/fragment_player.xml
+++ b/app/src/main/res/layout-land/fragment_player.xml
@@ -63,8 +63,8 @@
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
diff --git a/app/src/main/res/layout-land/pager_item.xml b/app/src/main/res/layout-land/pager_item.xml
index 9dac9266c..d4c26e0e5 100644
--- a/app/src/main/res/layout-land/pager_item.xml
+++ b/app/src/main/res/layout-land/pager_item.xml
@@ -14,7 +14,7 @@
android:layout_height="156dp"
android:layout_margin="8dp"
app:cardCornerRadius="16dp"
- app:cardElevation="0dp">
+ >
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
\ No newline at end of file
diff --git a/app/src/main/res/layout-xlarge-land/fragment_player.xml b/app/src/main/res/layout-xlarge-land/fragment_player.xml
deleted file mode 100644
index bc43b64ec..000000000
--- a/app/src/main/res/layout-xlarge-land/fragment_player.xml
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout-xlarge-land/fragment_player_playback_controls.xml b/app/src/main/res/layout-xlarge-land/fragment_player_playback_controls.xml
deleted file mode 100755
index 0d859ef2b..000000000
--- a/app/src/main/res/layout-xlarge-land/fragment_player_playback_controls.xml
+++ /dev/null
@@ -1,216 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout-xlarge-land/pager_item.xml b/app/src/main/res/layout-xlarge-land/pager_item.xml
index 9e3d13f76..627037df6 100644
--- a/app/src/main/res/layout-xlarge-land/pager_item.xml
+++ b/app/src/main/res/layout-xlarge-land/pager_item.xml
@@ -14,7 +14,7 @@
android:layout_height="256dp"
android:layout_margin="8dp"
app:cardCornerRadius="16dp"
- app:cardElevation="0dp">
+ >
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout-xlarge/fragment_mini_player.xml b/app/src/main/res/layout-xlarge/fragment_mini_player.xml
deleted file mode 100644
index e51b2dde3..000000000
--- a/app/src/main/res/layout-xlarge/fragment_mini_player.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout-xlarge/fragment_player.xml b/app/src/main/res/layout-xlarge/fragment_player.xml
deleted file mode 100644
index 83b35eca4..000000000
--- a/app/src/main/res/layout-xlarge/fragment_player.xml
+++ /dev/null
@@ -1,75 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/abs_playlists.xml b/app/src/main/res/layout/abs_playlists.xml
index d20b0d8bb..6c5b8943f 100644
--- a/app/src/main/res/layout/abs_playlists.xml
+++ b/app/src/main/res/layout/abs_playlists.xml
@@ -28,7 +28,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:srcCompat="@drawable/ic_access_time_white_24dp" />
+ app:srcCompat="@drawable/ic_history" />
+ app:srcCompat="@drawable/ic_library_add" />
+ app:srcCompat="@drawable/ic_trending_up" />
+ app:srcCompat="@drawable/ic_shuffle" />
diff --git a/app/src/main/res/layout/activity_album.xml b/app/src/main/res/layout/activity_album.xml
index 6fb8e90d8..0130e3b90 100755
--- a/app/src/main/res/layout/activity_album.xml
+++ b/app/src/main/res/layout/activity_album.xml
@@ -33,7 +33,7 @@
android:id="@+id/toolbar"
style="@style/Toolbar"
android:background="?attr/colorSurface"
- app:navigationIcon="@drawable/ic_keyboard_backspace_black_24dp" />
+ app:navigationIcon="@drawable/ic_keyboard_backspace_black" />
@@ -155,7 +155,7 @@
android:paddingBottom="12dp"
android:text="@string/save"
app:cornerRadius="25dp"
- app:icon="@drawable/ic_save_white_24dp"
+ app:icon="@drawable/ic_save"
app:iconGravity="textStart"
tools:backgroundTint="@color/md_red_400" />
diff --git a/app/src/main/res/layout/activity_artist_content.xml b/app/src/main/res/layout/activity_artist_content.xml
index 23ed6b5d2..9cb0f9eff 100644
--- a/app/src/main/res/layout/activity_artist_content.xml
+++ b/app/src/main/res/layout/activity_artist_content.xml
@@ -14,7 +14,7 @@
android:layout_marginEnd="4dp"
android:text="@string/action_play_all"
app:backgroundTint="?attr/colorSurface"
- app:icon="@drawable/ic_play_arrow_white_24dp"
+ app:icon="@drawable/ic_play_arrow"
app:layout_constraintEnd_toStartOf="@+id/shuffleAction"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
@@ -28,7 +28,7 @@
android:layout_marginEnd="16dp"
android:text="@string/shuffle"
app:backgroundTint="?attr/colorSurface"
- app:icon="@drawable/ic_shuffle_white_24dp"
+ app:icon="@drawable/ic_shuffle"
app:layout_constraintBottom_toBottomOf="@+id/playAction"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
diff --git a/app/src/main/res/layout/activity_artist_details.xml b/app/src/main/res/layout/activity_artist_details.xml
index 359a0aaa5..34e9ba33e 100755
--- a/app/src/main/res/layout/activity_artist_details.xml
+++ b/app/src/main/res/layout/activity_artist_details.xml
@@ -32,7 +32,7 @@
@@ -69,6 +69,6 @@
style="@style/Fab"
android:layout_gravity="bottom|end"
android:layout_margin="16dp"
- app:srcCompat="@drawable/ic_send_white_24dp" />
+ app:srcCompat="@drawable/ic_send" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_donation.xml b/app/src/main/res/layout/activity_donation.xml
index fcb83a9ba..8e3455005 100644
--- a/app/src/main/res/layout/activity_donation.xml
+++ b/app/src/main/res/layout/activity_donation.xml
@@ -17,7 +17,7 @@
android:id="@+id/toolbar"
style="@style/Toolbar"
app:layout_collapseMode="pin"
- app:navigationIcon="@drawable/ic_keyboard_backspace_black_24dp"
+ app:navigationIcon="@drawable/ic_keyboard_backspace_black"
app:title="@string/support_development"
app:titleTextAppearance="@style/ToolbarTextAppearanceNormal"
tools:ignore="UnusedAttribute" />
diff --git a/app/src/main/res/layout/activity_drive_mode.xml b/app/src/main/res/layout/activity_drive_mode.xml
index 5adc33489..c91578154 100644
--- a/app/src/main/res/layout/activity_drive_mode.xml
+++ b/app/src/main/res/layout/activity_drive_mode.xml
@@ -61,7 +61,7 @@
android:padding="8dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/status_bar"
- app:srcCompat="@drawable/ic_close_white_24dp" />
+ app:srcCompat="@drawable/ic_close" />
+ app:srcCompat="@drawable/ic_favorite_border" />
+ app:srcCompat="@drawable/ic_skip_next" />
+ app:srcCompat="@drawable/ic_skip_previous" />
+ app:srcCompat="@drawable/ic_repeat" />
+ app:srcCompat="@drawable/ic_shuffle" />
diff --git a/app/src/main/res/layout/activity_lyrics.xml b/app/src/main/res/layout/activity_lyrics.xml
index d7ccd827e..b8fc48785 100644
--- a/app/src/main/res/layout/activity_lyrics.xml
+++ b/app/src/main/res/layout/activity_lyrics.xml
@@ -15,11 +15,11 @@
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp"
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
app:contentInsetStartWithNavigation="0dp"
- app:navigationIcon="@drawable/ic_keyboard_backspace_black_24dp"
+ app:navigationIcon="@drawable/ic_keyboard_backspace_black"
app:subtitleTextAppearance="@style/TextViewCaption"
app:titleMargin="0dp"
app:titleMarginStart="0dp"
diff --git a/app/src/main/res/layout/activity_playing_queue.xml b/app/src/main/res/layout/activity_playing_queue.xml
index 38db7846d..cbc1378d6 100755
--- a/app/src/main/res/layout/activity_playing_queue.xml
+++ b/app/src/main/res/layout/activity_playing_queue.xml
@@ -30,7 +30,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_collapseMode="pin"
- app:navigationIcon="@drawable/ic_keyboard_backspace_black_24dp"
+ app:navigationIcon="@drawable/ic_keyboard_backspace_black"
app:title="@string/queue"
app:titleTextAppearance="@style/ToolbarTextAppearanceNormal"
tools:ignore="UnusedAttribute" />
@@ -66,7 +66,7 @@
android:layout_margin="16dp"
android:text="@string/clear_playing_queue"
android:textAppearance="@style/TextViewHeadline6"
- app:icon="@drawable/ic_clear_all_black_24dp" />
+ app:icon="@drawable/ic_clear_all" />
diff --git a/app/src/main/res/layout/activity_playlist_detail.xml b/app/src/main/res/layout/activity_playlist_detail.xml
index 67e46f537..af405033a 100644
--- a/app/src/main/res/layout/activity_playlist_detail.xml
+++ b/app/src/main/res/layout/activity_playlist_detail.xml
@@ -35,7 +35,7 @@
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:navigationIcon="@drawable/ic_keyboard_backspace_black_24dp"
+ app:navigationIcon="@drawable/ic_keyboard_backspace_black"
app:titleTextAppearance="@style/ToolbarTextAppearanceNormal" />
@@ -75,7 +75,7 @@
android:layout_height="wrap_content"
android:background="?roundSelector"
android:padding="12dp"
- app:srcCompat="@drawable/ic_mic_white_24dp"
+ app:srcCompat="@drawable/ic_mic"
app:tint="?attr/colorControlNormal"
tools:visibility="visible" />
@@ -86,7 +86,7 @@
android:background="?roundSelector"
android:padding="12dp"
android:visibility="gone"
- app:srcCompat="@drawable/ic_close_white_24dp"
+ app:srcCompat="@drawable/ic_close"
app:tint="?attr/colorControlNormal"
tools:visibility="visible" />
@@ -123,6 +123,6 @@
android:layout_margin="16dp"
android:text="@string/keyboard"
android:textAppearance="@style/TextViewHeadline6"
- app:icon="@drawable/ic_keyboard_white_24dp" />
+ app:icon="@drawable/ic_keyboard" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index 70dc07533..b93c57e6b 100755
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -39,7 +39,7 @@
android:id="@+id/toolbar"
style="@style/Toolbar"
app:layout_collapseMode="pin"
- app:navigationIcon="@drawable/ic_keyboard_backspace_black_24dp"
+ app:navigationIcon="@drawable/ic_keyboard_backspace_black"
app:titleTextAppearance="@style/ToolbarTextAppearanceNormal"
tools:title="@string/action_settings" />
diff --git a/app/src/main/res/layout/activity_share_instagram.xml b/app/src/main/res/layout/activity_share_instagram.xml
index f889d40e4..84e775529 100644
--- a/app/src/main/res/layout/activity_share_instagram.xml
+++ b/app/src/main/res/layout/activity_share_instagram.xml
@@ -145,7 +145,7 @@
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:navigationIcon="@drawable/ic_keyboard_backspace_black_24dp"
+ app:navigationIcon="@drawable/ic_keyboard_backspace_black"
app:title="@string/social_stories"
app:titleTextAppearance="@style/ToolbarTextAppearanceNormal" />
diff --git a/app/src/main/res/layout/activity_song_tag_editor.xml b/app/src/main/res/layout/activity_song_tag_editor.xml
index baed30b16..1d62e3228 100755
--- a/app/src/main/res/layout/activity_song_tag_editor.xml
+++ b/app/src/main/res/layout/activity_song_tag_editor.xml
@@ -16,7 +16,7 @@
@@ -240,7 +240,7 @@
android:paddingBottom="12dp"
android:text="@string/save"
app:cornerRadius="25dp"
- app:icon="@drawable/ic_save_white_24dp"
+ app:icon="@drawable/ic_save"
app:iconGravity="textStart" />
@@ -63,7 +63,7 @@
android:layout_gravity="end"
android:background="?roundSelector"
android:padding="16dp"
- app:srcCompat="@drawable/ic_add_photo_white_24dp" />
+ app:srcCompat="@drawable/ic_add_photo" />
@@ -97,7 +97,7 @@
android:layout_margin="16dp"
android:gravity="center"
android:padding="12dp"
- android:src="@drawable/ic_add_photo_white_24dp"
+ android:src="@drawable/ic_add_photo"
app:tint="?attr/colorControlNormal" />
@@ -138,6 +138,6 @@
android:layout_margin="16dp"
android:gravity="center"
android:text="@string/save"
- app:icon="@drawable/ic_save_white_24dp"
+ app:icon="@drawable/ic_save"
app:iconGravity="textStart" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_whats_new.xml b/app/src/main/res/layout/activity_whats_new.xml
index 756658928..bda7d06cf 100644
--- a/app/src/main/res/layout/activity_whats_new.xml
+++ b/app/src/main/res/layout/activity_whats_new.xml
@@ -32,7 +32,7 @@
android:id="@+id/toolbar"
style="@style/Toolbar"
app:layout_collapseMode="pin"
- app:navigationIcon="@drawable/ic_keyboard_backspace_black_24dp"
+ app:navigationIcon="@drawable/ic_keyboard_backspace_black"
app:title="@string/whats_new"
app:titleTextAppearance="@style/ToolbarTextAppearanceNormal" />
diff --git a/app/src/main/res/layout/app_widget_big.xml b/app/src/main/res/layout/app_widget_big.xml
index 75ba63e6c..173d81336 100755
--- a/app/src/main/res/layout/app_widget_big.xml
+++ b/app/src/main/res/layout/app_widget_big.xml
@@ -30,7 +30,7 @@
android:background="@drawable/widget_selector_dark"
android:padding="22dp"
tools:ignore="ContentDescription"
- tools:src="@drawable/ic_skip_previous_white_24dp"
+ tools:src="@drawable/ic_skip_previous"
tools:tint="@color/ate_primary_text_dark" />
diff --git a/app/src/main/res/layout/app_widget_card.xml b/app/src/main/res/layout/app_widget_card.xml
index 142524de0..4fe732f82 100755
--- a/app/src/main/res/layout/app_widget_card.xml
+++ b/app/src/main/res/layout/app_widget_card.xml
@@ -70,7 +70,7 @@
android:layout_weight="1"
android:background="@drawable/widget_selector_light"
tools:ignore="ContentDescription"
- tools:src="@drawable/ic_skip_previous_white_24dp"
+ tools:src="@drawable/ic_skip_previous"
tools:tint="@color/ate_secondary_text_light" />
diff --git a/app/src/main/res/layout/app_widget_classic.xml b/app/src/main/res/layout/app_widget_classic.xml
index d4a3efd6e..b903a548b 100755
--- a/app/src/main/res/layout/app_widget_classic.xml
+++ b/app/src/main/res/layout/app_widget_classic.xml
@@ -36,7 +36,7 @@
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/widget_selector"
- tools:src="@drawable/ic_skip_previous_white_24dp"
+ tools:src="@drawable/ic_skip_previous"
tools:tint="@color/ate_secondary_text_dark" />
diff --git a/app/src/main/res/layout/app_widget_small.xml b/app/src/main/res/layout/app_widget_small.xml
index b9b7b5ce9..2b54a0276 100755
--- a/app/src/main/res/layout/app_widget_small.xml
+++ b/app/src/main/res/layout/app_widget_small.xml
@@ -31,7 +31,7 @@
android:layout_weight="1"
android:background="@drawable/widget_selector_light"
tools:ignore="ContentDescription"
- tools:src="@drawable/ic_skip_previous_white_24dp"
+ tools:src="@drawable/ic_skip_previous"
tools:tint="@color/ate_secondary_text_light" />
diff --git a/app/src/main/res/layout/app_widget_text.xml b/app/src/main/res/layout/app_widget_text.xml
index f62a0eb62..d02bb7768 100644
--- a/app/src/main/res/layout/app_widget_text.xml
+++ b/app/src/main/res/layout/app_widget_text.xml
@@ -64,7 +64,7 @@
android:layout_weight="1"
android:background="@drawable/widget_selector"
tools:ignore="ContentDescription"
- tools:src="@drawable/ic_skip_previous_white_24dp"
+ tools:src="@drawable/ic_skip_previous"
tools:tint="@color/ate_secondary_text_dark" />
diff --git a/app/src/main/res/layout/bread_crumb.xml b/app/src/main/res/layout/bread_crumb.xml
index 30aa25a32..345a4ed7f 100644
--- a/app/src/main/res/layout/bread_crumb.xml
+++ b/app/src/main/res/layout/bread_crumb.xml
@@ -26,7 +26,7 @@
android:layout_height="24dp"
android:scaleType="fitXY"
android:visibility="gone"
- app:srcCompat="@drawable/ic_keyboard_arrow_right_white_24dp"
+ app:srcCompat="@drawable/ic_keyboard_arrow_right"
tools:tint="?android:attr/colorControlNormal"
tools:visibility="visible" />
diff --git a/app/src/main/res/layout/card_other.xml b/app/src/main/res/layout/card_other.xml
index eedabf978..0025e0259 100644
--- a/app/src/main/res/layout/card_other.xml
+++ b/app/src/main/res/layout/card_other.xml
@@ -38,7 +38,7 @@
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/sb4"
- app:listItemIcon="@drawable/ic_file_edit_white_24dp"
+ app:listItemIcon="@drawable/ic_file_edit"
app:listItemSummary="@string/changelog_summary"
app:listItemTitle="@string/changelog" />
@@ -51,7 +51,7 @@
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/changelog"
- app:listItemIcon="@drawable/ic_license_white_24dp"
+ app:listItemIcon="@drawable/ic_license"
app:listItemSummary="@string/pref_summary_open_source_licences"
app:listItemTitle="@string/pref_title_open_source_licences" />
@@ -64,7 +64,7 @@
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/openSource"
- app:listItemIcon="@drawable/ic_info_outline_white_24dp"
+ app:listItemIcon="@drawable/ic_info_outline"
app:listItemSummary="@string/pref_summary_open_source_licences"
app:listItemTitle="@string/version" />
diff --git a/app/src/main/res/layout/card_retro_info.xml b/app/src/main/res/layout/card_retro_info.xml
index ec07da584..743351413 100644
--- a/app/src/main/res/layout/card_retro_info.xml
+++ b/app/src/main/res/layout/card_retro_info.xml
@@ -37,7 +37,7 @@
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/sb2"
- app:listItemIcon="@drawable/ic_github_circle_white_24dp"
+ app:listItemIcon="@drawable/ic_github_circle"
app:listItemSummary="@string/git_hub_summary"
app:listItemTitle="@string/git_hub" />
@@ -50,7 +50,7 @@
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/appGithub"
- app:listItemIcon="@drawable/ic_flag_white_24dp"
+ app:listItemIcon="@drawable/ic_flag"
app:listItemSummary="@string/translate_community"
app:listItemTitle="@string/translate" />
@@ -64,10 +64,24 @@
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/appTranslation"
- app:listItemIcon="@drawable/ic_star_white_24dp"
+ app:listItemIcon="@drawable/ic_star"
app:listItemSummary="@string/rate_on_google_play_summary"
app:listItemTitle="@string/rate_app" />
+
+
+
-
@@ -104,7 +117,7 @@
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/appShare"
- app:listItemIcon="@drawable/ic_help_white_24dp"
+ app:listItemIcon="@drawable/ic_help"
app:listItemSummary="@string/help_summary"
app:listItemTitle="@string/faq" />
diff --git a/app/src/main/res/layout/card_social.xml b/app/src/main/res/layout/card_social.xml
index 6b5046bae..52b488194 100644
--- a/app/src/main/res/layout/card_social.xml
+++ b/app/src/main/res/layout/card_social.xml
@@ -37,7 +37,7 @@
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/sb3"
- app:listItemIcon="@drawable/ic_pinterest_white_24dp"
+ app:listItemIcon="@drawable/ic_pinterest"
app:listItemSummary="@string/pinterest_page_summary"
app:listItemTitle="@string/pinterest_page" />
@@ -50,7 +50,7 @@
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/pinterestLink"
- app:listItemIcon="@drawable/ic_instagram_white_24dp"
+ app:listItemIcon="@drawable/ic_instagram"
app:listItemSummary="@string/instagram_page_summary"
app:listItemTitle="@string/instagram_page" />
@@ -64,7 +64,7 @@
app:layout_constraintHorizontal_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/instagramLink"
- app:listItemIcon="@drawable/ic_twitter_white_24dp"
+ app:listItemIcon="@drawable/ic_twitter"
app:listItemSummary="@string/twitter_page_summary"
app:listItemTitle="@string/twitter_page" />
diff --git a/app/src/main/res/layout/dialog_file_details.xml b/app/src/main/res/layout/dialog_file_details.xml
index a64ad9eb3..c31152fef 100644
--- a/app/src/main/res/layout/dialog_file_details.xml
+++ b/app/src/main/res/layout/dialog_file_details.xml
@@ -12,6 +12,7 @@
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingEnd="16dp"
+ android:paddingTop="16dp"
android:textAppearance="@style/TextViewNormal"
android:textColor="?android:attr/textColorPrimary"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/dialog_list_item.xml b/app/src/main/res/layout/dialog_list_item.xml
new file mode 100644
index 000000000..d85a3eaee
--- /dev/null
+++ b/app/src/main/res/layout/dialog_list_item.xml
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_adaptive_player.xml b/app/src/main/res/layout/fragment_adaptive_player.xml
index 60ad6a249..135aaabb4 100644
--- a/app/src/main/res/layout/fragment_adaptive_player.xml
+++ b/app/src/main/res/layout/fragment_adaptive_player.xml
@@ -33,11 +33,11 @@
@@ -75,7 +75,7 @@
app:layout_constraintEnd_toStartOf="@+id/playPauseButton"
app:layout_constraintStart_toEndOf="@+id/repeatButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_previous_white_24dp"
+ app:srcCompat="@drawable/ic_skip_previous"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -105,7 +105,7 @@
app:layout_constraintEnd_toStartOf="@+id/shuffleButton"
app:layout_constraintStart_toEndOf="@+id/playPauseButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_next_white_24dp"
+ app:srcCompat="@drawable/ic_skip_next"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -120,7 +120,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/nextButton"
- app:srcCompat="@drawable/ic_shuffle_white_24dp"
+ app:srcCompat="@drawable/ic_shuffle"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout/fragment_blur.xml b/app/src/main/res/layout/fragment_blur.xml
index cb30d9300..44ced6e44 100644
--- a/app/src/main/res/layout/fragment_blur.xml
+++ b/app/src/main/res/layout/fragment_blur.xml
@@ -68,11 +68,11 @@
android:id="@+id/playerToolbar"
style="@style/Toolbar"
android:layout_gravity="bottom"
- android:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp"
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/playbackControlsFragment"
- app:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp" />
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
diff --git a/app/src/main/res/layout/fragment_blur_player_playback_controls.xml b/app/src/main/res/layout/fragment_blur_player_playback_controls.xml
index 1f7791424..a273cffce 100644
--- a/app/src/main/res/layout/fragment_blur_player_playback_controls.xml
+++ b/app/src/main/res/layout/fragment_blur_player_playback_controls.xml
@@ -153,7 +153,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/previousButton"
- app:srcCompat="@drawable/ic_repeat_white_24dp"
+ app:srcCompat="@drawable/ic_repeat"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -168,7 +168,7 @@
app:layout_constraintEnd_toStartOf="@+id/playPauseButton"
app:layout_constraintStart_toEndOf="@+id/repeatButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_previous_white_24dp"
+ app:srcCompat="@drawable/ic_skip_previous"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -196,7 +196,7 @@
app:layout_constraintEnd_toStartOf="@+id/shuffleButton"
app:layout_constraintStart_toEndOf="@+id/playPauseButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_next_white_24dp"
+ app:srcCompat="@drawable/ic_skip_next"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -211,7 +211,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/nextButton"
- app:srcCompat="@drawable/ic_shuffle_white_24dp"
+ app:srcCompat="@drawable/ic_shuffle"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout/fragment_card_blur_player.xml b/app/src/main/res/layout/fragment_card_blur_player.xml
index f18f7e191..042fc6f93 100644
--- a/app/src/main/res/layout/fragment_card_blur_player.xml
+++ b/app/src/main/res/layout/fragment_card_blur_player.xml
@@ -49,11 +49,11 @@
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
diff --git a/app/src/main/res/layout/fragment_card_player_playback_controls.xml b/app/src/main/res/layout/fragment_card_player_playback_controls.xml
index dd9d9a577..6b617b925 100644
--- a/app/src/main/res/layout/fragment_card_player_playback_controls.xml
+++ b/app/src/main/res/layout/fragment_card_player_playback_controls.xml
@@ -78,7 +78,7 @@
android:layout_gravity="center_vertical"
android:padding="16dp"
android:scaleType="centerCrop"
- app:srcCompat="@drawable/ic_play_circle_filled_white_24dp"
+ app:srcCompat="@drawable/ic_play_circle_filled"
app:tint="?colorAccent" />
@@ -89,7 +89,7 @@
app:layout_constraintEnd_toStartOf="@+id/playPauseButton"
app:layout_constraintStart_toEndOf="@+id/repeatButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_previous_white_24dp"
+ app:srcCompat="@drawable/ic_skip_previous"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -105,7 +105,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/previousButton"
app:layout_constraintTop_toBottomOf="@+id/progressContainer"
- app:srcCompat="@drawable/ic_pause_white_24dp"
+ app:srcCompat="@drawable/ic_pause"
tools:tint="@color/md_black_1000" />
@@ -134,7 +134,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/nextButton"
- app:srcCompat="@drawable/ic_shuffle_white_24dp"
+ app:srcCompat="@drawable/ic_shuffle"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout/fragment_classic_player.xml b/app/src/main/res/layout/fragment_classic_player.xml
index 573f0f443..de4ca80c7 100644
--- a/app/src/main/res/layout/fragment_classic_player.xml
+++ b/app/src/main/res/layout/fragment_classic_player.xml
@@ -50,8 +50,8 @@
android:id="@+id/playerToolbar"
style="@style/Toolbar"
android:layout_gravity="bottom"
- android:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp"
- app:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp" />
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
diff --git a/app/src/main/res/layout/fragment_color_player.xml b/app/src/main/res/layout/fragment_color_player.xml
index 283037fb8..6bbe739d3 100644
--- a/app/src/main/res/layout/fragment_color_player.xml
+++ b/app/src/main/res/layout/fragment_color_player.xml
@@ -57,11 +57,11 @@
android:id="@+id/playerToolbar"
style="@style/Toolbar"
android:layout_gravity="bottom"
- android:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp"
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/playbackControlsFragment"
- app:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp" />
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
diff --git a/app/src/main/res/layout/fragment_color_player_playback_controls.xml b/app/src/main/res/layout/fragment_color_player_playback_controls.xml
index 7acc1ac77..244a753cc 100644
--- a/app/src/main/res/layout/fragment_color_player_playback_controls.xml
+++ b/app/src/main/res/layout/fragment_color_player_playback_controls.xml
@@ -126,7 +126,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/previousButton"
- app:srcCompat="@drawable/ic_repeat_white_24dp"
+ app:srcCompat="@drawable/ic_repeat"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -141,7 +141,7 @@
app:layout_constraintEnd_toStartOf="@+id/playPauseButton"
app:layout_constraintStart_toEndOf="@+id/repeatButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_previous_white_24dp"
+ app:srcCompat="@drawable/ic_skip_previous"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -169,7 +169,7 @@
app:layout_constraintEnd_toStartOf="@+id/shuffleButton"
app:layout_constraintStart_toEndOf="@+id/playPauseButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_next_white_24dp"
+ app:srcCompat="@drawable/ic_skip_next"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -184,7 +184,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/nextButton"
- app:srcCompat="@drawable/ic_shuffle_white_24dp"
+ app:srcCompat="@drawable/ic_shuffle"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout/fragment_fit.xml b/app/src/main/res/layout/fragment_fit.xml
index d9f3cdeea..d6574cddf 100644
--- a/app/src/main/res/layout/fragment_fit.xml
+++ b/app/src/main/res/layout/fragment_fit.xml
@@ -54,8 +54,8 @@
android:id="@+id/playerToolbar"
style="@style/Toolbar"
android:layout_gravity="bottom"
- android:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp"
- app:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp" />
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
diff --git a/app/src/main/res/layout/fragment_fit_playback_controls.xml b/app/src/main/res/layout/fragment_fit_playback_controls.xml
index 5d702b37d..68a179c20 100644
--- a/app/src/main/res/layout/fragment_fit_playback_controls.xml
+++ b/app/src/main/res/layout/fragment_fit_playback_controls.xml
@@ -140,7 +140,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/previousButton"
- app:srcCompat="@drawable/ic_repeat_white_24dp"
+ app:srcCompat="@drawable/ic_repeat"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -155,7 +155,7 @@
app:layout_constraintEnd_toStartOf="@+id/playPauseButton"
app:layout_constraintStart_toEndOf="@+id/repeatButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_previous_white_24dp"
+ app:srcCompat="@drawable/ic_skip_previous"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -184,7 +184,7 @@
app:layout_constraintEnd_toStartOf="@+id/shuffleButton"
app:layout_constraintStart_toEndOf="@+id/playPauseButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_next_white_24dp"
+ app:srcCompat="@drawable/ic_skip_next"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -199,7 +199,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/nextButton"
- app:srcCompat="@drawable/ic_shuffle_white_24dp"
+ app:srcCompat="@drawable/ic_shuffle"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout/fragment_flat_player.xml b/app/src/main/res/layout/fragment_flat_player.xml
index 758743da6..a5ea6684b 100644
--- a/app/src/main/res/layout/fragment_flat_player.xml
+++ b/app/src/main/res/layout/fragment_flat_player.xml
@@ -36,11 +36,11 @@
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
+ tools:src="@drawable/ic_pause" />
diff --git a/app/src/main/res/layout/fragment_folder.xml b/app/src/main/res/layout/fragment_folder.xml
index cd2f35424..d8c9ba4e2 100644
--- a/app/src/main/res/layout/fragment_folder.xml
+++ b/app/src/main/res/layout/fragment_folder.xml
@@ -54,6 +54,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
+ android:layoutAnimation="@anim/layout_animation_fall_down"
android:overScrollMode="never"
android:scrollbars="none"
app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior" />
diff --git a/app/src/main/res/layout/fragment_full.xml b/app/src/main/res/layout/fragment_full.xml
index fc052b123..243fcfda7 100644
--- a/app/src/main/res/layout/fragment_full.xml
+++ b/app/src/main/res/layout/fragment_full.xml
@@ -67,7 +67,7 @@
android:id="@+id/playerToolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp"
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
android:paddingBottom="24dp"
app:contentInsetEndWithActions="0dp"
app:contentInsetStart="0dp"
@@ -75,7 +75,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/statusBarContainer"
- app:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp"
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
app:titleMargin="0dp"
app:titleMargins="0dp">
diff --git a/app/src/main/res/layout/fragment_full_player_controls.xml b/app/src/main/res/layout/fragment_full_player_controls.xml
index f56dfd024..98199dc84 100644
--- a/app/src/main/res/layout/fragment_full_player_controls.xml
+++ b/app/src/main/res/layout/fragment_full_player_controls.xml
@@ -17,7 +17,7 @@
app:layout_constraintBottom_toBottomOf="@+id/titleContainer"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/titleContainer"
- app:srcCompat="@drawable/ic_more_vert_white_24dp" />
+ app:srcCompat="@drawable/ic_more_vert" />
+ app:srcCompat="@drawable/ic_favorite_border" />
@@ -147,7 +147,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/repeatButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_previous_white_24dp"
+ app:srcCompat="@drawable/ic_skip_previous"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -179,7 +179,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/playPauseButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_next_white_24dp"
+ app:srcCompat="@drawable/ic_skip_next"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -195,7 +195,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/nextButton"
- app:srcCompat="@drawable/ic_shuffle_white_24dp"
+ app:srcCompat="@drawable/ic_shuffle"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout/fragment_gradient_controls.xml b/app/src/main/res/layout/fragment_gradient_controls.xml
index a69f23821..10f4deace 100644
--- a/app/src/main/res/layout/fragment_gradient_controls.xml
+++ b/app/src/main/res/layout/fragment_gradient_controls.xml
@@ -16,7 +16,7 @@
app:layout_constraintBottom_toBottomOf="@+id/titleContainer"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/titleContainer"
- app:srcCompat="@drawable/ic_more_vert_white_24dp"
+ app:srcCompat="@drawable/ic_more_vert"
tools:tint="@color/md_black_1000" />
@@ -130,7 +130,7 @@
app:layout_constraintBottom_toBottomOf="@+id/playPauseButton"
app:layout_constraintEnd_toStartOf="@+id/playPauseButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_previous_white_24dp"
+ app:srcCompat="@drawable/ic_skip_previous"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -157,7 +157,7 @@
app:layout_constraintBottom_toBottomOf="@+id/playPauseButton"
app:layout_constraintStart_toEndOf="@+id/playPauseButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_next_white_24dp"
+ app:srcCompat="@drawable/ic_skip_next"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout/fragment_gradient_player.xml b/app/src/main/res/layout/fragment_gradient_player.xml
index bdf35c689..096eb5725 100644
--- a/app/src/main/res/layout/fragment_gradient_player.xml
+++ b/app/src/main/res/layout/fragment_gradient_player.xml
@@ -85,7 +85,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/nextSongLabel"
app:layout_constraintStart_toStartOf="parent"
- app:srcCompat="@drawable/ic_queue_music_white_24dp" />
+ app:srcCompat="@drawable/ic_queue_music" />
@@ -131,7 +131,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/nextButton"
- app:srcCompat="@drawable/ic_shuffle_white_24dp"
+ app:srcCompat="@drawable/ic_shuffle"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout/fragment_home_player.xml b/app/src/main/res/layout/fragment_home_player.xml
index 9096c6fec..162582b12 100644
--- a/app/src/main/res/layout/fragment_home_player.xml
+++ b/app/src/main/res/layout/fragment_home_player.xml
@@ -94,7 +94,7 @@
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
diff --git a/app/src/main/res/layout/fragment_lock_screen_playback_controls.xml b/app/src/main/res/layout/fragment_lock_screen_playback_controls.xml
index 75d08c2c8..191b61ec0 100644
--- a/app/src/main/res/layout/fragment_lock_screen_playback_controls.xml
+++ b/app/src/main/res/layout/fragment_lock_screen_playback_controls.xml
@@ -113,7 +113,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/previousButton"
- app:srcCompat="@drawable/ic_repeat_white_24dp"
+ app:srcCompat="@drawable/ic_repeat"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -128,7 +128,7 @@
app:layout_constraintEnd_toStartOf="@+id/playPauseButton"
app:layout_constraintStart_toEndOf="@+id/repeatButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_previous_white_24dp"
+ app:srcCompat="@drawable/ic_skip_previous"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -157,7 +157,7 @@
app:layout_constraintEnd_toStartOf="@+id/shuffleButton"
app:layout_constraintStart_toEndOf="@+id/playPauseButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_next_white_24dp"
+ app:srcCompat="@drawable/ic_skip_next"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -172,7 +172,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/nextButton"
- app:srcCompat="@drawable/ic_shuffle_white_24dp"
+ app:srcCompat="@drawable/ic_shuffle"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout/fragment_main_activity_recycler_view.xml b/app/src/main/res/layout/fragment_main_activity_recycler_view.xml
index d546767b5..9a925d898 100644
--- a/app/src/main/res/layout/fragment_main_activity_recycler_view.xml
+++ b/app/src/main/res/layout/fragment_main_activity_recycler_view.xml
@@ -11,6 +11,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
+ android:layoutAnimation="@anim/layout_animation_fall_down"
android:overScrollMode="never"
android:scrollbars="none"
app:layout_dodgeInsetEdges="bottom"
diff --git a/app/src/main/res/layout/fragment_main_settings.xml b/app/src/main/res/layout/fragment_main_settings.xml
index b9127d6e1..4b8ed0acc 100644
--- a/app/src/main/res/layout/fragment_main_settings.xml
+++ b/app/src/main/res/layout/fragment_main_settings.xml
@@ -15,7 +15,7 @@
android:id="@+id/generalSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:settingListItemIcon="@drawable/ic_theme_palette_white_24dp"
+ app:settingListItemIcon="@drawable/ic_theme_palette"
app:settingListItemIconColor="@color/md_blue_A400"
app:settingListItemText="@string/general_settings_summary"
app:settingListItemTitle="@string/general_settings_title" />
@@ -24,7 +24,7 @@
android:id="@+id/nowPlayingSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:settingListItemIcon="@drawable/ic_play_circle_filled_white_24dp"
+ app:settingListItemIcon="@drawable/ic_play_circle_filled"
app:settingListItemIconColor="@color/md_red_A400"
app:settingListItemText="@string/now_playing_summary"
app:settingListItemTitle="@string/now_playing" />
@@ -33,7 +33,7 @@
android:id="@+id/audioSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:settingListItemIcon="@drawable/ic_volume_up_white_24dp"
+ app:settingListItemIcon="@drawable/ic_volume_up"
app:settingListItemIconColor="@color/md_deep_purple_A400"
app:settingListItemText="@string/audio_settings_summary"
app:settingListItemTitle="@string/pref_header_audio" />
@@ -42,7 +42,7 @@
android:id="@+id/personalizeSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:settingListItemIcon="@drawable/ic_hdr_strong_white_24dp"
+ app:settingListItemIcon="@drawable/ic_hdr_strong"
app:settingListItemIconColor="@color/md_teal_A400"
app:settingListItemText="@string/personalize_settings_summary"
app:settingListItemTitle="@string/personalize" />
@@ -52,7 +52,7 @@
android:id="@+id/imageSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:settingListItemIcon="@drawable/ic_image_white_24dp"
+ app:settingListItemIcon="@drawable/ic_image"
app:settingListItemIconColor="@color/md_deep_orange_A400"
app:settingListItemText="@string/image_settings_summary"
app:settingListItemTitle="@string/pref_header_images" />
@@ -61,7 +61,7 @@
android:id="@+id/notificationSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:settingListItemIcon="@drawable/ic_notifications_active_white_24dp"
+ app:settingListItemIcon="@drawable/ic_notifications_active"
app:settingListItemIconColor="@color/md_yellow_A400"
app:settingListItemText="@string/notification_settings_summary"
app:settingListItemTitle="@string/notification" />
@@ -70,7 +70,7 @@
android:id="@+id/otherSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:settingListItemIcon="@drawable/ic_testing_white_24dp"
+ app:settingListItemIcon="@drawable/ic_testing"
app:settingListItemIconColor="@color/md_indigo_A400"
app:settingListItemText="@string/other_settings_summary"
app:settingListItemTitle="@string/others" />
@@ -80,7 +80,7 @@
android:id="@+id/aboutSettings"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- app:settingListItemIcon="@drawable/ic_info_outline_white_24dp"
+ app:settingListItemIcon="@drawable/ic_info_outline"
app:settingListItemIconColor="@color/md_light_green_A400"
app:settingListItemText="@string/about_settings_summary"
app:settingListItemTitle="@string/action_about" />
diff --git a/app/src/main/res/layout/fragment_material.xml b/app/src/main/res/layout/fragment_material.xml
index 34816c449..a1eb49bf8 100644
--- a/app/src/main/res/layout/fragment_material.xml
+++ b/app/src/main/res/layout/fragment_material.xml
@@ -48,10 +48,10 @@
android:id="@+id/playerToolbar"
style="@style/Toolbar"
android:layout_gravity="bottom"
- android:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp"
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/playbackControlsFragment"
- app:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp" />
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
diff --git a/app/src/main/res/layout/fragment_material_playback_controls.xml b/app/src/main/res/layout/fragment_material_playback_controls.xml
index 0c4e53a83..1b3cd50c6 100644
--- a/app/src/main/res/layout/fragment_material_playback_controls.xml
+++ b/app/src/main/res/layout/fragment_material_playback_controls.xml
@@ -129,7 +129,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/previousButton"
- app:srcCompat="@drawable/ic_repeat_white_24dp"
+ app:srcCompat="@drawable/ic_repeat"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -145,7 +145,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/repeatButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_previous_sharp_white_24dp"
+ app:srcCompat="@drawable/ic_skip_previous_sharp"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -174,7 +174,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/playPauseButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_next_sharp_white_24dp"
+ app:srcCompat="@drawable/ic_skip_next_sharp"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -189,7 +189,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/nextButton"
- app:srcCompat="@drawable/ic_shuffle_sharp_white_24dp"
+ app:srcCompat="@drawable/ic_shuffle_sharp"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout/fragment_mini_player.xml b/app/src/main/res/layout/fragment_mini_player.xml
index a4c30349a..7bbef52f9 100644
--- a/app/src/main/res/layout/fragment_mini_player.xml
+++ b/app/src/main/res/layout/fragment_mini_player.xml
@@ -25,7 +25,7 @@
android:layout_gravity="center_vertical"
android:layout_margin="16dp"
android:scaleType="centerCrop"
- app:srcCompat="@drawable/ic_keyboard_arrow_up_24dp"
+ app:srcCompat="@drawable/ic_keyboard_arrow_up"
app:tint="?attr/colorControlNormal"
tools:ignore="ContentDescription" />
@@ -54,7 +54,7 @@
android:layout_gravity="center_vertical"
android:background="?roundSelector"
android:padding="6dp"
- app:srcCompat="@drawable/ic_skip_previous_white_24dp"
+ app:srcCompat="@drawable/ic_skip_previous"
app:tint="?attr/colorControlNormal" />
+
+
-
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_peak_control_player.xml b/app/src/main/res/layout/fragment_peak_control_player.xml
index d106822bb..39205a29d 100644
--- a/app/src/main/res/layout/fragment_peak_control_player.xml
+++ b/app/src/main/res/layout/fragment_peak_control_player.xml
@@ -74,7 +74,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/previousButton"
app:layout_constraintTop_toBottomOf="@+id/progressSlider"
- app:srcCompat="@drawable/ic_pause_white_24dp"
+ app:srcCompat="@drawable/ic_pause"
tools:tint="@color/md_black_1000" />
@@ -105,7 +105,7 @@
app:layout_constraintEnd_toStartOf="@+id/shuffleButton"
app:layout_constraintStart_toEndOf="@+id/playPauseButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_next_white_24dp"
+ app:srcCompat="@drawable/ic_skip_next"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -123,7 +123,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/previousButton"
- app:srcCompat="@drawable/ic_repeat_white_24dp"
+ app:srcCompat="@drawable/ic_repeat"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -140,7 +140,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/nextButton"
- app:srcCompat="@drawable/ic_shuffle_white_24dp"
+ app:srcCompat="@drawable/ic_shuffle"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout/fragment_peak_player.xml b/app/src/main/res/layout/fragment_peak_player.xml
index 2fb0feeec..986ef327f 100644
--- a/app/src/main/res/layout/fragment_peak_player.xml
+++ b/app/src/main/res/layout/fragment_peak_player.xml
@@ -42,8 +42,8 @@
android:id="@+id/playerToolbar"
style="@style/Toolbar"
android:layout_gravity="bottom"
- android:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp"
- app:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp" />
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
diff --git a/app/src/main/res/layout/fragment_plain_controls_fragment.xml b/app/src/main/res/layout/fragment_plain_controls_fragment.xml
index ffcde7a44..538e7018d 100644
--- a/app/src/main/res/layout/fragment_plain_controls_fragment.xml
+++ b/app/src/main/res/layout/fragment_plain_controls_fragment.xml
@@ -61,7 +61,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/previousButton"
- app:srcCompat="@drawable/ic_repeat_white_24dp"
+ app:srcCompat="@drawable/ic_repeat"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -76,7 +76,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/repeatButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_previous_white_24dp"
+ app:srcCompat="@drawable/ic_skip_previous"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -104,7 +104,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/playPauseButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_next_white_24dp"
+ app:srcCompat="@drawable/ic_skip_next"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -119,7 +119,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/nextButton"
- app:srcCompat="@drawable/ic_shuffle_white_24dp"
+ app:srcCompat="@drawable/ic_shuffle"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout/fragment_plain_player.xml b/app/src/main/res/layout/fragment_plain_player.xml
index aa52f8db8..3f5517bd8 100644
--- a/app/src/main/res/layout/fragment_plain_player.xml
+++ b/app/src/main/res/layout/fragment_plain_player.xml
@@ -86,10 +86,11 @@
android:id="@+id/playerToolbar"
style="@style/Toolbar"
android:layout_gravity="bottom"
- android:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp"
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/playbackControlsFragment"
- app:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp" />
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
+
diff --git a/app/src/main/res/layout/fragment_player.xml b/app/src/main/res/layout/fragment_player.xml
index 9e00e7ba2..d5e06ae6c 100644
--- a/app/src/main/res/layout/fragment_player.xml
+++ b/app/src/main/res/layout/fragment_player.xml
@@ -59,11 +59,11 @@
android:id="@+id/playerToolbar"
style="@style/Toolbar"
android:layout_gravity="bottom"
- android:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp"
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/playbackControlsFragment"
- app:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp" />
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_player_playback_controls.xml b/app/src/main/res/layout/fragment_player_playback_controls.xml
index 5ba61f149..566deedc3 100755
--- a/app/src/main/res/layout/fragment_player_playback_controls.xml
+++ b/app/src/main/res/layout/fragment_player_playback_controls.xml
@@ -27,9 +27,9 @@
+ tools:text="@tools:sample/full_names" />
+ tools:text="@tools:sample/full_names" />
@@ -141,7 +141,7 @@
app:layout_constraintEnd_toStartOf="@+id/playPauseButton"
app:layout_constraintStart_toEndOf="@+id/repeatButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_previous_white_24dp"
+ app:srcCompat="@drawable/ic_skip_previous"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -155,7 +155,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/previousButton"
app:layout_constraintTop_toBottomOf="@+id/songInfo"
- app:srcCompat="@drawable/ic_pause_white_24dp"
+ app:srcCompat="@drawable/ic_pause"
tools:tint="@color/md_black_1000" />
@@ -184,7 +184,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/nextButton"
- app:srcCompat="@drawable/ic_shuffle_white_24dp"
+ app:srcCompat="@drawable/ic_shuffle"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout/fragment_simple_controls_fragment.xml b/app/src/main/res/layout/fragment_simple_controls_fragment.xml
index 6e8d1f4d4..36f369d0e 100644
--- a/app/src/main/res/layout/fragment_simple_controls_fragment.xml
+++ b/app/src/main/res/layout/fragment_simple_controls_fragment.xml
@@ -93,7 +93,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/previousButton"
- app:srcCompat="@drawable/ic_repeat_white_24dp"
+ app:srcCompat="@drawable/ic_repeat"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -108,7 +108,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/repeatButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_previous_white_24dp"
+ app:srcCompat="@drawable/ic_skip_previous"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -136,7 +136,7 @@
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/playPauseButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_next_white_24dp"
+ app:srcCompat="@drawable/ic_skip_next"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -151,7 +151,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/nextButton"
- app:srcCompat="@drawable/ic_shuffle_white_24dp"
+ app:srcCompat="@drawable/ic_shuffle"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout/fragment_simple_player.xml b/app/src/main/res/layout/fragment_simple_player.xml
index 28d00066c..eb614e214 100644
--- a/app/src/main/res/layout/fragment_simple_player.xml
+++ b/app/src/main/res/layout/fragment_simple_player.xml
@@ -51,10 +51,11 @@
android:id="@+id/playerToolbar"
style="@style/Toolbar"
android:layout_gravity="bottom"
- android:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp"
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/playbackControlsFragment"
- app:navigationIcon="@drawable/ic_keyboard_arrow_down_black_24dp" />
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
+
diff --git a/app/src/main/res/layout/fragment_tiny_controls_fragment.xml b/app/src/main/res/layout/fragment_tiny_controls_fragment.xml
index 4296f2478..99fbc3e8a 100644
--- a/app/src/main/res/layout/fragment_tiny_controls_fragment.xml
+++ b/app/src/main/res/layout/fragment_tiny_controls_fragment.xml
@@ -23,7 +23,7 @@
android:background="?attr/roundSelector"
android:padding="16dp"
android:scaleType="fitCenter"
- app:srcCompat="@drawable/ic_repeat_white_24dp"
+ app:srcCompat="@drawable/ic_repeat"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -34,7 +34,7 @@
android:background="?attr/roundSelector"
android:padding="16dp"
android:scaleType="fitCenter"
- app:srcCompat="@drawable/ic_shuffle_white_24dp"
+ app:srcCompat="@drawable/ic_shuffle"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_tiny_player.xml b/app/src/main/res/layout/fragment_tiny_player.xml
index d0002d46d..0a58945ad 100644
--- a/app/src/main/res/layout/fragment_tiny_player.xml
+++ b/app/src/main/res/layout/fragment_tiny_player.xml
@@ -92,8 +92,8 @@
+ android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
+ app:navigationIcon="@drawable/ic_keyboard_arrow_down_black" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/home_content.xml b/app/src/main/res/layout/home_content.xml
index f97294c12..31fa3b898 100644
--- a/app/src/main/res/layout/home_content.xml
+++ b/app/src/main/res/layout/home_content.xml
@@ -37,6 +37,7 @@
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layoutAnimation="@anim/layout_animation_fall_down"
android:nestedScrollingEnabled="false"
android:overScrollMode="never"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
diff --git a/app/src/main/res/layout/item_album_card.xml b/app/src/main/res/layout/item_album_card.xml
index 12bf7fbc9..403d512b8 100644
--- a/app/src/main/res/layout/item_album_card.xml
+++ b/app/src/main/res/layout/item_album_card.xml
@@ -13,7 +13,6 @@
android:layout_height="156dp"
android:layout_margin="8dp"
app:cardCornerRadius="12dp"
- app:cardElevation="0dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
diff --git a/app/src/main/res/layout/item_artist_card.xml b/app/src/main/res/layout/item_artist_card.xml
index c1a800eff..70bfb9ade 100644
--- a/app/src/main/res/layout/item_artist_card.xml
+++ b/app/src/main/res/layout/item_artist_card.xml
@@ -17,8 +17,7 @@
android:layout_width="128dp"
android:layout_height="128dp"
android:layout_margin="4dp"
- app:cardCornerRadius="16dp"
- app:cardElevation="0dp">
+ app:cardCornerRadius="16dp">
+ app:cardCornerRadius="8dp">
diff --git a/app/src/main/res/layout/item_grid.xml b/app/src/main/res/layout/item_grid.xml
index 73a1eb30f..195d9f223 100644
--- a/app/src/main/res/layout/item_grid.xml
+++ b/app/src/main/res/layout/item_grid.xml
@@ -17,7 +17,6 @@
android:layout_height="0dp"
android:scaleType="centerCrop"
app:cardCornerRadius="8dp"
- app:cardElevation="0dp"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
diff --git a/app/src/main/res/layout/item_image.xml b/app/src/main/res/layout/item_image.xml
index 5f4ff8adb..5ec37319b 100644
--- a/app/src/main/res/layout/item_image.xml
+++ b/app/src/main/res/layout/item_image.xml
@@ -14,7 +14,6 @@
android:layout_margin="8dp"
android:orientation="vertical"
app:cardCornerRadius="8dp"
- app:cardElevation="0dp"
app:cardPreventCornerOverlap="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
diff --git a/app/src/main/res/layout/item_image_gradient.xml b/app/src/main/res/layout/item_image_gradient.xml
index 77f35f1a3..864215cca 100644
--- a/app/src/main/res/layout/item_image_gradient.xml
+++ b/app/src/main/res/layout/item_image_gradient.xml
@@ -15,7 +15,6 @@
android:layout_margin="4dp"
android:orientation="vertical"
app:cardCornerRadius="8dp"
- app:cardElevation="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/item_list.xml b/app/src/main/res/layout/item_list.xml
index c4e29fe1e..1d27814f8 100755
--- a/app/src/main/res/layout/item_list.xml
+++ b/app/src/main/res/layout/item_list.xml
@@ -20,7 +20,7 @@
android:layout_height="match_parent"
android:layout_gravity="center_vertical|start"
android:visibility="gone"
- app:srcCompat="@drawable/ic_drag_vertical_white_24dp"
+ app:srcCompat="@drawable/ic_drag_vertical"
app:tint="?attr/colorControlNormal"
tools:ignore="ContentDescription" />
@@ -37,8 +37,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
- app:cardCornerRadius="6dp"
- app:cardElevation="0dp">
+ app:cardCornerRadius="6dp">
+ app:icon="@drawable/ic_play_arrow" />
+ app:icon="@drawable/ic_shuffle" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_option_menu.xml b/app/src/main/res/layout/item_option_menu.xml
index 4c5c175b0..b2dfaea2a 100644
--- a/app/src/main/res/layout/item_option_menu.xml
+++ b/app/src/main/res/layout/item_option_menu.xml
@@ -33,7 +33,7 @@
android:layout_weight="0"
android:padding="12dp"
app:tint="?attr/colorControlNormal"
- tools:srcCompat="@drawable/ic_folder_white_24dp" />
+ tools:srcCompat="@drawable/ic_folder" />
diff --git a/app/src/main/res/layout/item_suggestions.xml b/app/src/main/res/layout/item_suggestions.xml
index f216843fa..b3f759262 100644
--- a/app/src/main/res/layout/item_suggestions.xml
+++ b/app/src/main/res/layout/item_suggestions.xml
@@ -11,7 +11,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingHorizontal="16dp"
- android:paddingVertical="12dp"
+ android:paddingVertical="14dp"
android:text="@string/suggestion_songs"
android:textAppearance="@style/TextViewHeadline6"
android:textStyle="bold"
@@ -126,6 +126,7 @@
android:layout_height="0dp"
android:clickable="true"
android:focusable="true"
+ app:cardElevation="0dp"
app:cardBackgroundColor="?attr/colorSurface"
app:cardCornerRadius="8dp"
app:cardUseCompatPadding="true"
diff --git a/app/src/main/res/layout/layout_notification_collapsed.xml b/app/src/main/res/layout/layout_notification_collapsed.xml
index 7c021635b..4e565045a 100644
--- a/app/src/main/res/layout/layout_notification_collapsed.xml
+++ b/app/src/main/res/layout/layout_notification_collapsed.xml
@@ -117,7 +117,7 @@
android:layout_height="38dp"
android:background="@drawable/notification_selector"
android:scaleType="centerInside"
- android:src="@drawable/ic_pause_white_24dp"
+ android:src="@drawable/ic_pause"
tools:tint="?colorOnPrimary" />
diff --git a/app/src/main/res/layout/list_item_color_view.xml b/app/src/main/res/layout/list_item_color_view.xml
index 77fe33567..c20f02265 100644
--- a/app/src/main/res/layout/list_item_color_view.xml
+++ b/app/src/main/res/layout/list_item_color_view.xml
@@ -42,7 +42,7 @@
android:layout_height="wrap_content"
android:textAppearance="@style/TextViewSubtitle1"
app:layout_constrainedWidth="true"
- app:layout_constraintEnd_toStartOf="@android:id/widget_frame"
+ app:layout_constraintEnd_toStartOf="@id/circle"
app:layout_constraintStart_toStartOf="@+id/guideline_front_margin"
app:layout_constraintTop_toTopOf="parent"
tools:maxLines="@string/grid_size_1"
@@ -53,12 +53,12 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
+ android:textAppearance="@style/TextViewNormal"
android:textColor="?android:attr/textColorSecondary"
app:layout_constrainedWidth="true"
- app:layout_constraintEnd_toStartOf="@android:id/widget_frame"
+ app:layout_constraintEnd_toStartOf="@id/circle"
app:layout_constraintStart_toStartOf="@+id/guideline_front_margin"
app:layout_constraintTop_toBottomOf="@android:id/title"
- android:textAppearance="@style/TextViewNormal"
tools:maxLines="2"
tools:text="@tools:sample/lorem/random" />
@@ -69,13 +69,11 @@
android:orientation="vertical"
app:layout_constraintGuide_begin="@dimen/list_pref_guideline_begin" />
-
diff --git a/app/src/main/res/layout/list_setting_item_view.xml b/app/src/main/res/layout/list_setting_item_view.xml
index b06005b6b..e87f85049 100644
--- a/app/src/main/res/layout/list_setting_item_view.xml
+++ b/app/src/main/res/layout/list_setting_item_view.xml
@@ -33,7 +33,7 @@
app:iconBackgroundColor="@color/md_blue_A400"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/title"
- app:srcCompat="@drawable/ic_theme_palette_white_24dp" />
+ app:srcCompat="@drawable/ic_theme_palette" />
@@ -37,7 +37,7 @@
app:layout_constraintEnd_toStartOf="@+id/playPauseButton"
app:layout_constraintStart_toEndOf="@+id/repeatButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_previous_white_24dp"
+ app:srcCompat="@drawable/ic_skip_previous"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -67,7 +67,7 @@
app:layout_constraintEnd_toStartOf="@+id/shuffleButton"
app:layout_constraintStart_toEndOf="@+id/playPauseButton"
app:layout_constraintTop_toTopOf="@+id/playPauseButton"
- app:srcCompat="@drawable/ic_skip_next_white_24dp"
+ app:srcCompat="@drawable/ic_skip_next"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
@@ -82,7 +82,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/nextButton"
app:layout_constraintTop_toTopOf="@+id/nextButton"
- app:srcCompat="@drawable/ic_shuffle_white_24dp"
+ app:srcCompat="@drawable/ic_shuffle"
tools:ignore="MissingPrefix"
tools:tint="@color/md_black_1000" />
diff --git a/app/src/main/res/layout/metal_section_recycler_view.xml b/app/src/main/res/layout/metal_section_recycler_view.xml
index 008d8e053..06d45eb90 100644
--- a/app/src/main/res/layout/metal_section_recycler_view.xml
+++ b/app/src/main/res/layout/metal_section_recycler_view.xml
@@ -12,7 +12,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingHorizontal="16dp"
- android:paddingVertical="12dp"
+ android:paddingVertical="14dp"
android:textAppearance="@style/TextViewHeadline6"
android:textStyle="bold"
app:layout_constrainedWidth="true"
@@ -21,14 +21,13 @@
app:layout_constraintTop_toTopOf="parent"
tools:text="@tools:sample/full_names" />
-
diff --git a/app/src/main/res/layout/section_recycler_view.xml b/app/src/main/res/layout/section_recycler_view.xml
index db5fbe6cc..4db63851b 100644
--- a/app/src/main/res/layout/section_recycler_view.xml
+++ b/app/src/main/res/layout/section_recycler_view.xml
@@ -13,7 +13,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingHorizontal="16dp"
- android:paddingVertical="12dp"
+ android:paddingVertical="14dp"
android:textAppearance="@style/TextViewHeadline6"
android:textStyle="bold"
app:layout_constrainedWidth="true"
diff --git a/app/src/main/res/menu/bottom_navigation_main.xml b/app/src/main/res/menu/bottom_navigation_main.xml
index 104e0340e..8288aae47 100644
--- a/app/src/main/res/menu/bottom_navigation_main.xml
+++ b/app/src/main/res/menu/bottom_navigation_main.xml
@@ -4,28 +4,28 @@
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_album_detail.xml b/app/src/main/res/menu/menu_album_detail.xml
index 622c2cdec..bd97edc06 100644
--- a/app/src/main/res/menu/menu_album_detail.xml
+++ b/app/src/main/res/menu/menu_album_detail.xml
@@ -3,7 +3,7 @@
-
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_folders.xml b/app/src/main/res/menu/menu_folders.xml
index e2e50174c..67c5e76b7 100644
--- a/app/src/main/res/menu/menu_folders.xml
+++ b/app/src/main/res/menu/menu_folders.xml
@@ -3,12 +3,12 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml
index 84252a010..5c5f80afb 100644
--- a/app/src/main/res/menu/menu_main.xml
+++ b/app/src/main/res/menu/menu_main.xml
@@ -20,7 +20,7 @@
-
@@ -57,7 +57,7 @@
-
@@ -89,7 +89,7 @@
-
diff --git a/app/src/main/res/menu/menu_media_selection.xml b/app/src/main/res/menu/menu_media_selection.xml
index 59e0dc5d4..d914cf26f 100644
--- a/app/src/main/res/menu/menu_media_selection.xml
+++ b/app/src/main/res/menu/menu_media_selection.xml
@@ -4,31 +4,31 @@
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_player.xml b/app/src/main/res/menu/menu_player.xml
index d1919c1f7..d07419988 100755
--- a/app/src/main/res/menu/menu_player.xml
+++ b/app/src/main/res/menu/menu_player.xml
@@ -4,24 +4,24 @@
-
diff --git a/app/src/main/res/menu/menu_playlists_selection.xml b/app/src/main/res/menu/menu_playlists_selection.xml
index fde5452b4..f2e6baf61 100644
--- a/app/src/main/res/menu/menu_playlists_selection.xml
+++ b/app/src/main/res/menu/menu_playlists_selection.xml
@@ -4,37 +4,37 @@
diff --git a/app/src/main/res/menu/menu_playlists_songs_selection.xml b/app/src/main/res/menu/menu_playlists_songs_selection.xml
index 20e6c8738..b89710bf5 100644
--- a/app/src/main/res/menu/menu_playlists_songs_selection.xml
+++ b/app/src/main/res/menu/menu_playlists_songs_selection.xml
@@ -4,25 +4,25 @@
diff --git a/app/src/main/res/menu/menu_search.xml b/app/src/main/res/menu/menu_search.xml
index 2c415de9c..683dbb511 100644
--- a/app/src/main/res/menu/menu_search.xml
+++ b/app/src/main/res/menu/menu_search.xml
@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
\ No newline at end of file
diff --git a/app/src/main/res/menu/menu_smart_playlist_detail.xml b/app/src/main/res/menu/menu_smart_playlist_detail.xml
index 896e26bed..8aeb1315a 100644
--- a/app/src/main/res/menu/menu_smart_playlist_detail.xml
+++ b/app/src/main/res/menu/menu_smart_playlist_detail.xml
@@ -3,7 +3,7 @@
diff --git a/app/src/main/res/values/metal_recycler_view_attrs.xml b/app/src/main/res/values/metal_recycler_view_attrs.xml
deleted file mode 100644
index 84e779f95..000000000
--- a/app/src/main/res/values/metal_recycler_view_attrs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/values/seekarc_attrs.xml b/app/src/main/res/values/seekarc_attrs.xml
index d8e6e3515..22e021aca 100644
--- a/app/src/main/res/values/seekarc_attrs.xml
+++ b/app/src/main/res/values/seekarc_attrs.xml
@@ -29,7 +29,7 @@
-
+
@@ -42,7 +42,7 @@
-
+
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 3dba19e69..e85ac13da 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -25,7 +25,7 @@