diff --git a/app/build.gradle b/app/build.gradle index d2d6031f..30e72371 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -34,8 +34,9 @@ android { } buildTypes { release { + debuggable true minifyEnabled true - shrinkResources true + //shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig signingConfigs.release } diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 950e401f..c48afcd1 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -26,13 +26,11 @@ -dontwarn java.lang.invoke.* -dontwarn **$$Lambda$* +-dontwarn javax.annotation.** # RetroFit -dontwarn retrofit.** -keep class retrofit.** { *; } --keepattributes Signature --keepattributes Exceptions --dontwarn javax.annotation.** # Glide -keep public class * implements com.bumptech.glide.module.GlideModule @@ -41,17 +39,20 @@ public *; } +# OkHttp +-keepattributes Signature +-keepattributes *Annotation* +-keep interface com.squareup.okhttp3.** { *; } +-dontwarn com.squareup.okhttp3.** --dontwarn --ignorewarnings +#-dontwarn +#-ignorewarnings +-dontshrink +-dontobfuscate -#-dontwarn android.support.v8.renderscript.* -#-keepclassmembers class android.support.v8.renderscript.RenderScript { -# native *** rsn*(...); -# native *** n*(...); -#} +-dontwarn org.jaudiotagger.** +-keep class org.jaudiotagger.** { *; } -#-keep class org.jaudiotagger.** { *; } -keepclassmembers enum * { *; } -keepattributes *Annotation*, Signature, Exception -keepnames class androidx.navigation.fragment.NavHostFragment diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 742fd571..c8b117ed 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -4,6 +4,7 @@ package="code.name.monkey.retromusic"> + @@ -119,11 +120,7 @@ - - + = Build.VERSION_CODES.O_MR1) { setShowWhenLocked(true) - setTurnScreenOn(true) + val keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager + keyguardManager.requestDismissKeyguard(this, null) } else { this.window.addFlags( WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD or - WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED or - WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON + WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED ) } setContentView(R.layout.activity_lock_screen) @@ -67,8 +68,7 @@ class LockScreenActivity : AbsMusicServiceActivity() { Slidr.attach(this, config) - fragment = - supportFragmentManager.findFragmentById(R.id.playback_controls_fragment) as LockScreenPlayerControlsFragment? + fragment = whichFragment(R.id.playback_controls_fragment) findViewById(R.id.slide).apply { translationY = 100f diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt index b448836a..de64f8f0 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt @@ -39,7 +39,7 @@ class PermissionActivity : AbsMusicServiceActivity() { } finish.accentBackgroundColor() finish.setOnClickListener { - if (hasPermissions() && !RingtoneManager.requiresDialog(this)) { + if (hasPermissions() ) { startActivity( Intent(this, MainActivity::class.java).addFlags( Intent.FLAG_ACTIVITY_NEW_TASK or diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt index fd58e7b7..1f80bbc6 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt @@ -330,7 +330,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() { ViewCompat.setElevation(slidingPanel, 0f) ViewCompat.setElevation(bottomNavigationView, 10f) bottomSheetBehavior.isHideable = true - bottomSheetBehavior.setPeekHeight(0, true) + bottomSheetBehavior.setPeekHeight(0, false) bottomSheetBehavior.state = STATE_COLLAPSED } COLLAPSED_WITH -> { @@ -341,7 +341,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() { bottomSheetBehavior.isHideable = false bottomSheetBehavior.setPeekHeight( if (isQueueEmpty) 0 else (heightOfBar * 2) - 24, - true + false ) bottomNavigationView.isVisible = true } @@ -353,7 +353,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity() { bottomSheetBehavior.isHideable = false bottomSheetBehavior.setPeekHeight( if (isQueueEmpty) 0 else heightOfBar - 24, - true + false ) bottomNavigationView.isGone = true } diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/LyricsDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/LyricsDialog.kt deleted file mode 100644 index 9c3b63c7..00000000 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/LyricsDialog.kt +++ /dev/null @@ -1,60 +0,0 @@ -package code.name.monkey.retromusic.dialogs - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.fragment.app.DialogFragment -import androidx.lifecycle.lifecycleScope -import code.name.monkey.retromusic.R -import code.name.monkey.retromusic.extensions.accentTextColor -import code.name.monkey.retromusic.extensions.hide -import code.name.monkey.retromusic.helper.MusicPlayerRemote -import code.name.monkey.retromusic.network.Result -import code.name.monkey.retromusic.repository.Repository -import kotlinx.android.synthetic.main.lyrics_dialog.* -import kotlinx.coroutines.Dispatchers.IO -import kotlinx.coroutines.Dispatchers.Main -import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext -import org.koin.android.ext.android.inject - -class LyricsDialog : DialogFragment() { - override fun getTheme(): Int { - return R.style.MaterialAlertDialogTheme - } - - private val repository by inject() - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - return inflater.inflate(R.layout.lyrics_dialog, container, false) - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - val song = MusicPlayerRemote.currentSong - dialogTitle.text = song.title - syncedLyrics.accentTextColor() - lifecycleScope.launch(IO) { - val result: Result = repository.lyrics( - song.artistName, - song.title - ) - withContext(Main) { - - when (result) { - is Result.Error -> progressBar.hide() - is Result.Loading -> println("Loading") - is Result.Success -> { - progressBar.hide() - lyricsText.text = result.data - } - } - } - } - } -} \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt index 6c4c0510..cd24eac7 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/DetailListFragment.kt @@ -10,11 +10,13 @@ import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.navArgs import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver import code.name.monkey.retromusic.* import code.name.monkey.retromusic.adapter.album.AlbumAdapter import code.name.monkey.retromusic.adapter.artist.ArtistAdapter import code.name.monkey.retromusic.adapter.song.SongAdapter import code.name.monkey.retromusic.db.toSong +import code.name.monkey.retromusic.extensions.dipToPix import code.name.monkey.retromusic.fragments.albums.AlbumClickListener import code.name.monkey.retromusic.fragments.artists.ArtistClickListener import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment @@ -52,6 +54,15 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de LAST_ADDED_PLAYLIST -> lastAddedSongs() TOP_PLAYED_PLAYLIST -> topPlayed() } + + + recyclerView.adapter?.registerAdapterDataObserver(object : AdapterDataObserver() { + override fun onChanged() { + super.onChanged() + val height = dipToPix(52f) + recyclerView.setPadding(0, 0, 0, height.toInt()) + } + }) } private fun lastAddedSongs() { @@ -84,7 +95,6 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de libraryViewModel.playCountSongs().observe(viewLifecycleOwner, Observer { songs -> songAdapter.swapDataSet(songs) }) - } private fun loadHistory() { @@ -116,8 +126,8 @@ class DetailListFragment : AbsMainActivityFragment(R.layout.fragment_playlist_de adapter = songAdapter layoutManager = linearLayoutManager() } - libraryViewModel.favorites().observe(viewLifecycleOwner, { - val songs = it.map { songEntity -> songEntity.toSong() } + libraryViewModel.favorites().observe(viewLifecycleOwner, { songEntities -> + val songs = songEntities.map { songEntity -> songEntity.toSong() } songAdapter.swapDataSet(songs) }) } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt index 251fc752..d3ff1601 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/albums/AlbumsFragment.kt @@ -22,11 +22,6 @@ import com.google.android.material.transition.platform.MaterialFadeThrough class AlbumsFragment : AbsRecyclerViewCustomGridSizeFragment(), AlbumClickListener { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - enterTransition = MaterialFadeThrough() - } - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) libraryViewModel.getAlbums().observe(viewLifecycleOwner, Observer { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/artists/ArtistsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/artists/ArtistsFragment.kt index 7f162d93..b518f790 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/artists/ArtistsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/artists/ArtistsFragment.kt @@ -20,11 +20,6 @@ import com.google.android.material.transition.platform.MaterialFadeThrough class ArtistsFragment : AbsRecyclerViewCustomGridSizeFragment(), ArtistClickListener { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - enterTransition = MaterialFadeThrough() - } - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) libraryViewModel.getArtists().observe(viewLifecycleOwner, Observer { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenresFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenresFragment.kt index 46d55d69..3574c8a9 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenresFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/genres/GenresFragment.kt @@ -21,14 +21,8 @@ import androidx.recyclerview.widget.LinearLayoutManager import code.name.monkey.retromusic.R import code.name.monkey.retromusic.adapter.GenreAdapter import code.name.monkey.retromusic.fragments.base.AbsRecyclerViewFragment -import com.google.android.material.transition.platform.MaterialFadeThrough class GenresFragment : AbsRecyclerViewFragment() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - enterTransition = MaterialFadeThrough() - } - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) libraryViewModel.getGenre().observe(viewLifecycleOwner, Observer { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/home/HomeFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/home/HomeFragment.kt index c8d6dde5..60f5b707 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/home/HomeFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/home/HomeFragment.kt @@ -44,11 +44,6 @@ import org.koin.androidx.viewmodel.ext.android.sharedViewModel class HomeFragment : AbsMainActivityFragment(if (PreferenceUtil.isHomeBanner) R.layout.fragment_banner_home else R.layout.fragment_home) { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - enterTransition = MaterialFadeThrough() - } - private val libraryViewModel: LibraryViewModel by sharedViewModel() override fun onViewCreated(view: View, savedInstanceState: Bundle?) { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenControlsFragment.kt similarity index 99% rename from app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt rename to app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenControlsFragment.kt index 51556b8a..b4d395ea 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenControlsFragment.kt @@ -43,7 +43,7 @@ import kotlinx.android.synthetic.main.fragment_lock_screen_playback_controls.* /** * @author Hemanth S (h4h13). */ -class LockScreenPlayerControlsFragment : +class LockScreenControlsFragment : AbsPlayerControlsFragment(R.layout.fragment_lock_screen_playback_controls) { private var progressViewUpdateHelper: MusicProgressViewUpdateHelper? = null diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistsFragment.kt index 932066a0..326e530c 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistsFragment.kt @@ -15,11 +15,6 @@ import com.google.android.material.transition.platform.MaterialFadeThrough import kotlinx.android.synthetic.main.fragment_library.* class PlaylistsFragment : AbsRecyclerViewFragment() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - enterTransition = MaterialFadeThrough() - } - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) libraryViewModel.getPlaylists().observe(viewLifecycleOwner, Observer { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/songs/SongsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/songs/SongsFragment.kt index 80ccb8d7..a7a02de9 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/songs/SongsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/songs/SongsFragment.kt @@ -12,15 +12,9 @@ import code.name.monkey.retromusic.fragments.base.AbsRecyclerViewCustomGridSizeF import code.name.monkey.retromusic.helper.SortOrder.SongSortOrder import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.RetroUtil -import com.google.android.material.transition.platform.MaterialFadeThrough class SongsFragment : AbsRecyclerViewCustomGridSizeFragment() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - enterTransition = MaterialFadeThrough() - } - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) libraryViewModel.getSongs().observe(viewLifecycleOwner, Observer { diff --git a/app/src/main/java/code/name/monkey/retromusic/model/DeezerResponse.kt b/app/src/main/java/code/name/monkey/retromusic/model/DeezerResponse.kt index 929a9d13..7a24e9ee 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/DeezerResponse.kt +++ b/app/src/main/java/code/name/monkey/retromusic/model/DeezerResponse.kt @@ -3,13 +3,17 @@ package code.name.monkey.retromusic.model import com.google.gson.annotations.SerializedName data class Data( + @SerializedName("id") val id: String, + @SerializedName("link") val link: String, + @SerializedName("name") val name: String, @SerializedName("nb_album") val nbAlbum: Int, @SerializedName("nb_fan") val nbFan: Int, + @SerializedName("picture") val picture: String, @SerializedName("picture_big") val pictureBig: String, @@ -19,13 +23,19 @@ data class Data( val pictureSmall: String, @SerializedName("picture_xl") val pictureXl: String, + @SerializedName("radio") val radio: Boolean, + @SerializedName("tracklist") val tracklist: String, + @SerializedName("type") val type: String ) data class DeezerResponse( + @SerializedName("data") val data: List, + @SerializedName("next") val next: String, + @SerializedName("total") val total: Int ) \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/repository/Repository.kt b/app/src/main/java/code/name/monkey/retromusic/repository/Repository.kt index 9264198a..2bf9c67f 100644 --- a/app/src/main/java/code/name/monkey/retromusic/repository/Repository.kt +++ b/app/src/main/java/code/name/monkey/retromusic/repository/Repository.kt @@ -21,7 +21,6 @@ import code.name.monkey.retromusic.db.* import code.name.monkey.retromusic.model.* import code.name.monkey.retromusic.model.smartplaylist.NotPlayedPlaylist import code.name.monkey.retromusic.network.LastFMService -import code.name.monkey.retromusic.network.LyricsRestService import code.name.monkey.retromusic.network.Result import code.name.monkey.retromusic.network.Result.* import code.name.monkey.retromusic.network.model.LastFmAlbum @@ -96,7 +95,6 @@ interface Repository { suspend fun checkSongExistInPlayCount(songId: Long): List suspend fun playCountSongs(): List suspend fun blackListPaths(): List - suspend fun lyrics(artist: String, title: String): Result suspend fun deleteSongs(songs: List) suspend fun contributor(): List } @@ -113,16 +111,10 @@ class RealRepository( private val searchRepository: RealSearchRepository, private val topPlayedRepository: TopPlayedRepository, private val roomRepository: RoomRepository, - private val lyricsRestService: LyricsRestService, private val localDataRepository: LocalDataRepository ) : Repository { - override suspend fun lyrics(artist: String, title: String): Result = try { - Success(lyricsRestService.getLyrics(artist, title)) - } catch (e: Exception) { - println(e) - Error(e) - } + override suspend fun deleteSongs(songs: List) = roomRepository.deleteSongs(songs) diff --git a/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt b/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt index 872ac1d2..da52da28 100644 --- a/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt +++ b/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt @@ -154,13 +154,17 @@ class RealSongRepository(private val context: Context) : SongRepository { } else { Media.EXTERNAL_CONTENT_URI } - return context.contentResolver.query( - uri, - baseProjection, - selectionFinal, - selectionValuesFinal, - sortOrder - ) + return try { + context.contentResolver.query( + uri, + baseProjection, + selectionFinal, + selectionValuesFinal, + sortOrder + ) + } catch (ex: SecurityException) { + return null + } } private fun generateBlacklistSelection( diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java index 917e4c30..ebc0a9ad 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java +++ b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java @@ -63,6 +63,7 @@ import java.util.Objects; import java.util.Random; import code.name.monkey.retromusic.R; +import code.name.monkey.retromusic.activities.LockScreenActivity; import code.name.monkey.retromusic.appwidgets.AppWidgetBig; import code.name.monkey.retromusic.appwidgets.AppWidgetCard; import code.name.monkey.retromusic.appwidgets.AppWidgetClassic; @@ -245,7 +246,16 @@ public class MusicService extends Service implements updateNotification(); } }; - + private final BroadcastReceiver lockScreenReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (PreferenceUtil.INSTANCE.isLockScreen() && isPlaying()) { + Intent lockIntent = new Intent(context, LockScreenActivity.class); + lockIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(lockIntent); + } + } + }; private QueueSaveHandler queueSaveHandler; private HandlerThread queueSaveHandlerThread; private boolean queuesRestored; @@ -362,6 +372,7 @@ public class MusicService extends Service implements registerReceiver(widgetIntentReceiver, new IntentFilter(APP_WIDGET_UPDATE)); registerReceiver(updateFavoriteReceiver, new IntentFilter(FAVORITE_STATE_CHANGED)); + registerReceiver(lockScreenReceiver, new IntentFilter(Intent.ACTION_SCREEN_OFF)); initNotification(); @@ -403,6 +414,7 @@ public class MusicService extends Service implements public void onDestroy() { unregisterReceiver(widgetIntentReceiver); unregisterReceiver(updateFavoriteReceiver); + unregisterReceiver(lockScreenReceiver); if (becomingNoisyReceiverRegistered) { unregisterReceiver(becomingNoisyReceiver); becomingNoisyReceiverRegistered = false; diff --git a/app/src/main/res/layout/activity_lock_screen.xml b/app/src/main/res/layout/activity_lock_screen.xml index f4f0872a..0e707bd5 100644 --- a/app/src/main/res/layout/activity_lock_screen.xml +++ b/app/src/main/res/layout/activity_lock_screen.xml @@ -24,7 +24,7 @@ diff --git a/app/src/main/res/layout/item_suggestions.xml b/app/src/main/res/layout/item_suggestions.xml index 70f5a24c..046d4dfb 100644 --- a/app/src/main/res/layout/item_suggestions.xml +++ b/app/src/main/res/layout/item_suggestions.xml @@ -145,8 +145,9 @@ android:text="New music mix" android:textAppearance="@style/TextViewNormal" android:textStyle="bold" + android:textSize="32sp" app:autoSizeMaxTextSize="32sp" - app:autoSizeMinTextSize="18sp" + app:autoSizeMinTextSize="24sp" app:autoSizeStepGranularity="1sp" />