diff --git a/app/build.gradle b/app/build.gradle index b70c4c28..78c97f97 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -109,17 +109,17 @@ dependencies { implementation "androidx.gridlayout:gridlayout:1.0.0" implementation "androidx.cardview:cardview:1.0.0" implementation "androidx.viewpager2:viewpager2:1.1.0-alpha01" - implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'androidx.annotation:annotation:1.1.0' implementation 'androidx.preference:preference-ktx:1.1.1' implementation 'androidx.core:core-ktx:1.3.1' implementation 'androidx.fragment:fragment-ktx:1.2.5' implementation 'androidx.palette:palette-ktx:1.0.0' - implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta8' + implementation 'androidx.constraintlayout:constraintlayout:2.0.0-rc1' implementation 'androidx.recyclerview:recyclerview:1.1.0' - implementation 'com.google.android.material:material:1.3.0-alpha01' + implementation 'com.google.android.material:material:1.3.0-alpha02' implementation 'androidx.legacy:legacy-support-v4:1.0.0' def retrofit_version = '2.9.0' diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png index 6f15eaae..f9c45db6 100644 Binary files a/app/src/main/ic_launcher-playstore.png and b/app/src/main/ic_launcher-playstore.png differ diff --git a/app/src/main/java/code/name/monkey/retromusic/appshortcuts/AppShortcutLauncherActivity.kt b/app/src/main/java/code/name/monkey/retromusic/appshortcuts/AppShortcutLauncherActivity.kt index fc01fcdf..f41e6946 100644 --- a/app/src/main/java/code/name/monkey/retromusic/appshortcuts/AppShortcutLauncherActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/appshortcuts/AppShortcutLauncherActivity.kt @@ -43,19 +43,19 @@ class AppShortcutLauncherActivity : Activity() { when (shortcutType) { SHORTCUT_TYPE_SHUFFLE_ALL -> { startServiceWithPlaylist( - SHUFFLE_MODE_SHUFFLE, ShuffleAllPlaylist(applicationContext) + SHUFFLE_MODE_SHUFFLE, ShuffleAllPlaylist() ) DynamicShortcutManager.reportShortcutUsed(this, ShuffleAllShortcutType.id) } SHORTCUT_TYPE_TOP_TRACKS -> { startServiceWithPlaylist( - SHUFFLE_MODE_NONE, TopTracksPlaylist(applicationContext) + SHUFFLE_MODE_NONE, TopTracksPlaylist() ) DynamicShortcutManager.reportShortcutUsed(this, TopTracksShortcutType.id) } SHORTCUT_TYPE_LAST_ADDED -> { startServiceWithPlaylist( - SHUFFLE_MODE_NONE, LastAddedPlaylist(applicationContext) + SHUFFLE_MODE_NONE, LastAddedPlaylist() ) DynamicShortcutManager.reportShortcutUsed(this, LastAddedShortcutType.id) } diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt index 33f4e1af..c4d54ef0 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/AddToPlaylistDialog.kt @@ -17,7 +17,6 @@ package code.name.monkey.retromusic.dialogs import android.app.Dialog import android.os.Bundle import androidx.fragment.app.DialogFragment -import androidx.lifecycle.lifecycleScope import code.name.monkey.retromusic.EXTRA_SONG import code.name.monkey.retromusic.R import code.name.monkey.retromusic.extensions.colorButtons @@ -26,9 +25,6 @@ import code.name.monkey.retromusic.extensions.materialDialog import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.repository.PlaylistRepository import code.name.monkey.retromusic.util.PlaylistsUtil -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.launch -import kotlinx.coroutines.withContext import org.koin.android.ext.android.inject @@ -37,35 +33,28 @@ class AddToPlaylistDialog : DialogFragment() { override fun onCreateDialog( savedInstanceState: Bundle? ): Dialog { - val materialDialog = materialDialog(R.string.add_playlist_title) - lifecycleScope.launch { - val playlists = playlistRepository.playlists() - val playlistNames = mutableListOf() - playlistNames.add(requireContext().resources.getString(R.string.action_new_playlist)) - for (p in playlists) { - playlistNames.add(p.name) - } - - withContext(Dispatchers.Main) { - materialDialog.setItems(playlistNames.toTypedArray()) { _, which -> - val songs = extraNotNull>(EXTRA_SONG).value - if (which == 0) { - CreatePlaylistDialog.create(songs) - .show(requireActivity().supportFragmentManager, "ADD_TO_PLAYLIST") - } else { - PlaylistsUtil.addToPlaylist( - requireContext(), - songs, - playlists[which - 1].id, - true - ) - } - dismiss() - } - } + val playlists = playlistRepository.playlists() + val playlistNames = mutableListOf() + playlistNames.add(requireContext().resources.getString(R.string.action_new_playlist)) + for (p in playlists) { + playlistNames.add(p.name) } - return materialDialog(R.string.add_playlist_title) + .setItems(playlistNames.toTypedArray()) { _, which -> + val songs = extraNotNull>(EXTRA_SONG).value + if (which == 0) { + CreatePlaylistDialog.create(songs) + .show(requireActivity().supportFragmentManager, "ADD_TO_PLAYLIST") + } else { + PlaylistsUtil.addToPlaylist( + requireContext(), + songs, + playlists[which - 1].id, + true + ) + } + dismiss() + } .create().colorButtons() } diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt index 368cb0bf..cee067c2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt @@ -127,6 +127,7 @@ fun TextInputLayout.accentColor() { defaultHintTextColor = colorState isHintAnimationEnabled = true } -fun TextInputEditText.accentColor(){ + +fun TextInputEditText.accentColor() { } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt index 240b08b7..dd4727a7 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/LibraryViewModel.kt @@ -61,7 +61,7 @@ class LibraryViewModel( private val loadArtists: Deferred> get() = viewModelScope.async(IO) { - realRepository.allArtists() + realRepository.albumArtists() } private val loadPlaylists: Deferred> 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 30ddcb2f..be901a82 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 @@ -75,14 +75,14 @@ class HomeFragment : lastAdded.setOnClickListener { findActivityNavController(R.id.fragment_container).navigate( R.id.playlistDetailsFragment, - bundleOf(EXTRA_PLAYLIST to LastAddedPlaylist(requireActivity())) + bundleOf(EXTRA_PLAYLIST to LastAddedPlaylist()) ) } topPlayed.setOnClickListener { findActivityNavController(R.id.fragment_container).navigate( R.id.playlistDetailsFragment, - bundleOf(EXTRA_PLAYLIST to TopTracksPlaylist(requireActivity())) + bundleOf(EXTRA_PLAYLIST to TopTracksPlaylist()) ) } @@ -98,7 +98,7 @@ class HomeFragment : history.setOnClickListener { requireActivity().findNavController(R.id.fragment_container).navigate( R.id.playlistDetailsFragment, - bundleOf(EXTRA_PLAYLIST to HistoryPlaylist(requireActivity())) + bundleOf(EXTRA_PLAYLIST to HistoryPlaylist()) ) } diff --git a/app/src/main/java/code/name/monkey/retromusic/model/Album.kt b/app/src/main/java/code/name/monkey/retromusic/model/Album.kt index 4e5e35a1..477dba87 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/Album.kt +++ b/app/src/main/java/code/name/monkey/retromusic/model/Album.kt @@ -41,6 +41,9 @@ class Album { val songCount: Int get() = songs!!.size + val albumArtist: String? + get() = safeGetFirstSong().albumArtist + constructor(songs: ArrayList) { this.songs = songs } diff --git a/app/src/main/java/code/name/monkey/retromusic/model/Artist.kt b/app/src/main/java/code/name/monkey/retromusic/model/Artist.kt index 5cad27b1..3abba61d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/Artist.kt +++ b/app/src/main/java/code/name/monkey/retromusic/model/Artist.kt @@ -25,10 +25,10 @@ class Artist { val name: String get() { - val name = safeGetFirstAlbum().artistName + val name = safeGetFirstAlbum().safeGetFirstSong().albumArtist return if (MusicUtil.isArtistNameUnknown(name)) { UNKNOWN_ARTIST_DISPLAY_NAME - } else name!! + } else safeGetFirstAlbum().safeGetFirstSong().artistName } val songCount: Int diff --git a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/HistoryPlaylist.kt b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/HistoryPlaylist.kt index 747c49e3..4653ca5f 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/HistoryPlaylist.kt +++ b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/HistoryPlaylist.kt @@ -1,14 +1,18 @@ package code.name.monkey.retromusic.model.smartplaylist -import android.content.Context +import code.name.monkey.retromusic.App import code.name.monkey.retromusic.R import code.name.monkey.retromusic.model.Song +import kotlinx.android.parcel.Parcelize import org.koin.core.KoinComponent -class HistoryPlaylist( - context: Context -) : AbsSmartPlaylist(context.getString(R.string.history), R.drawable.ic_history), KoinComponent { - +@Parcelize +class HistoryPlaylist : + AbsSmartPlaylist( + App.getContext().getString(R.string.history), + R.drawable.ic_history + ), + KoinComponent { override fun songs(): List { return topPlayedRepository.recentlyPlayedTracks() } diff --git a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/LastAddedPlaylist.kt b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/LastAddedPlaylist.kt index 7c8ac666..43048e7d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/LastAddedPlaylist.kt +++ b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/LastAddedPlaylist.kt @@ -1,11 +1,13 @@ package code.name.monkey.retromusic.model.smartplaylist -import android.content.Context +import code.name.monkey.retromusic.App import code.name.monkey.retromusic.R import code.name.monkey.retromusic.model.Song +import kotlinx.android.parcel.Parcelize -class LastAddedPlaylist(context: Context) : - AbsSmartPlaylist(context.getString(R.string.last_added), R.drawable.ic_library_add) { +@Parcelize +class LastAddedPlaylist : + AbsSmartPlaylist(App.getContext().getString(R.string.last_added), R.drawable.ic_library_add) { override fun songs(): List { return lastAddedRepository.recentSongs() } diff --git a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/NotPlayedPlaylist.kt b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/NotPlayedPlaylist.kt index a47219f9..760f2c99 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/NotPlayedPlaylist.kt +++ b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/NotPlayedPlaylist.kt @@ -1,12 +1,15 @@ package code.name.monkey.retromusic.model.smartplaylist -import android.content.Context +import code.name.monkey.retromusic.App import code.name.monkey.retromusic.R import code.name.monkey.retromusic.model.Song +import kotlinx.android.parcel.Parcelize -class NotPlayedPlaylist( - context: Context -) : AbsSmartPlaylist(context.getString(R.string.not_recently_played), R.drawable.ic_watch_later) { +@Parcelize +class NotPlayedPlaylist : AbsSmartPlaylist( + App.getContext().getString(R.string.not_recently_played), + R.drawable.ic_watch_later +) { override fun songs(): List { return topPlayedRepository.notRecentlyPlayedTracks() } diff --git a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/ShuffleAllPlaylist.kt b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/ShuffleAllPlaylist.kt index 4c8df453..8ba44e5c 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/ShuffleAllPlaylist.kt +++ b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/ShuffleAllPlaylist.kt @@ -1,12 +1,15 @@ package code.name.monkey.retromusic.model.smartplaylist -import android.content.Context +import code.name.monkey.retromusic.App import code.name.monkey.retromusic.R import code.name.monkey.retromusic.model.Song +import kotlinx.android.parcel.Parcelize -class ShuffleAllPlaylist( - context: Context -) : AbsSmartPlaylist(context.getString(R.string.action_shuffle_all), R.drawable.ic_shuffle) { +@Parcelize +class ShuffleAllPlaylist : AbsSmartPlaylist( + App.getContext().getString(R.string.action_shuffle_all), + R.drawable.ic_shuffle +) { override fun songs(): List { return songRepository.songs() } diff --git a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/TopTracksPlaylist.kt b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/TopTracksPlaylist.kt index d00fc4a5..b66b3f5a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/TopTracksPlaylist.kt +++ b/app/src/main/java/code/name/monkey/retromusic/model/smartplaylist/TopTracksPlaylist.kt @@ -1,13 +1,13 @@ package code.name.monkey.retromusic.model.smartplaylist -import android.content.Context +import code.name.monkey.retromusic.App import code.name.monkey.retromusic.R import code.name.monkey.retromusic.model.Song +import kotlinx.android.parcel.Parcelize -class TopTracksPlaylist( - context: Context -) : AbsSmartPlaylist( - context.getString(R.string.my_top_tracks), +@Parcelize +class TopTracksPlaylist : AbsSmartPlaylist( + App.getContext().getString(R.string.my_top_tracks), R.drawable.ic_trending_up ) { override fun songs(): List { diff --git a/app/src/main/java/code/name/monkey/retromusic/preferences/BlacklistPreferenceDialog.kt b/app/src/main/java/code/name/monkey/retromusic/preferences/BlacklistPreferenceDialog.kt index 61e20ab9..b54ead19 100644 --- a/app/src/main/java/code/name/monkey/retromusic/preferences/BlacklistPreferenceDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/preferences/BlacklistPreferenceDialog.kt @@ -63,7 +63,7 @@ class BlacklistPreferenceDialog : DialogFragment(), BlacklistFolderChooserDialog chooserDialog?.setCallback(this) refreshBlacklistData() return materialDialog(R.string.blacklist) - .setPositiveButton(android.R.string.ok) { _, _ -> + .setPositiveButton(R.string.done) { _, _ -> dismiss() } .setNeutralButton(R.string.clear_action) { _, _ -> diff --git a/app/src/main/java/code/name/monkey/retromusic/repository/ArtistRepository.kt b/app/src/main/java/code/name/monkey/retromusic/repository/ArtistRepository.kt index fdbe2648..9a309b2a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/repository/ArtistRepository.kt +++ b/app/src/main/java/code/name/monkey/retromusic/repository/ArtistRepository.kt @@ -22,6 +22,8 @@ import code.name.monkey.retromusic.util.PreferenceUtil interface ArtistRepository { fun artists(): List + fun albumArtists(): List + fun artists(query: String): List fun artist(artistId: Int): Artist @@ -59,6 +61,31 @@ class RealArtistRepository( return splitIntoArtists(albumRepository.splitIntoAlbums(songs)) } + override fun albumArtists(): List { + val songs = songRepository.songs( + songRepository.makeSongCursor( + null, + null, + getSongLoaderSortOrder() + ) + ) + return splitIntoAlbumArtists(albumRepository.splitIntoAlbums(songs)) + } + + private fun splitIntoAlbumArtists(albums: List): List { + // First group the songs in albums by filtering each artist name + val amap = hashMapOf() + albums.forEach { + val key = it.albumArtist + if (key != null) { + val artist: Artist = if (amap[key] != null) amap[key]!! else Artist() + artist.albums?.add(it) + amap[key] = artist + } + } + return ArrayList(amap.values) + } + override fun artist(artistId: Int): Artist { val songs = songRepository.songs( songRepository.makeSongCursor( diff --git a/app/src/main/java/code/name/monkey/retromusic/repository/RealRepository.kt b/app/src/main/java/code/name/monkey/retromusic/repository/Repository.kt similarity index 98% rename from app/src/main/java/code/name/monkey/retromusic/repository/RealRepository.kt rename to app/src/main/java/code/name/monkey/retromusic/repository/Repository.kt index 327593ae..d035a72d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/repository/RealRepository.kt +++ b/app/src/main/java/code/name/monkey/retromusic/repository/Repository.kt @@ -36,6 +36,8 @@ interface Repository { suspend fun allArtists(): List + suspend fun albumArtists(): List + suspend fun allPlaylists(): List suspend fun allGenres(): List @@ -112,6 +114,8 @@ class RealRepository( override suspend fun allArtists(): List = artistRepository.artists() + override suspend fun albumArtists(): List = artistRepository.albumArtists() + override suspend fun artistById(artistId: Int): Artist = artistRepository.artist(artistId) override suspend fun recentArtists(): List = lastAddedRepository.recentArtists() @@ -212,7 +216,7 @@ class RealRepository( override suspend fun suggestionsHome(): Home { val songs = - NotPlayedPlaylist(context).songs().shuffled().takeIf { + NotPlayedPlaylist().songs().shuffled().takeIf { it.size > 9 } ?: emptyList() println(songs.size) diff --git a/app/src/main/res/drawable/popup_background.xml b/app/src/main/res/drawable/popup_background.xml new file mode 100644 index 00000000..4a4471df --- /dev/null +++ b/app/src/main/res/drawable/popup_background.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png index 2e943031..ef3cfc0a 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png index 7c57cfba..ba687419 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png and b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png index 2e943031..6c46ac4c 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png index 7fd5e167..4e45638f 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png index 293d6e10..5fe585e3 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png and b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png index 7fd5e167..00668b42 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 975309b0..23394228 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png index 26e875c9..bcaf1a42 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png index 975309b0..c998e206 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index a20a78c2..9142374e 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png index 5c34c133..451e815e 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png index a20a78c2..663d2450 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index 7b1f6de2..e78b0afd 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png index 614c8a81..3f076e2d 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png index 7b1f6de2..8b5d5d8d 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fbae7380..f82fda09 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -882,4 +882,5 @@ Hello blank fragment + Done diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index d3c35c84..2f11c158 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -191,4 +191,50 @@ @color/md_red_400 + + + + + + + + + + + diff --git a/app/src/main/res/values/styles_parents.xml b/app/src/main/res/values/styles_parents.xml index efd3e55c..ef8e3099 100644 --- a/app/src/main/res/values/styles_parents.xml +++ b/app/src/main/res/values/styles_parents.xml @@ -1,5 +1,5 @@ - + @@ -87,19 +88,4 @@ wrap_content - - - - \ No newline at end of file