Skip to content

Commit

Permalink
rely on mediastore at lower android versions too
Browse files Browse the repository at this point in the history
  • Loading branch information
tibbi committed Oct 23, 2020
1 parent 64e9208 commit e005450
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import com.simplemobiletools.musicplayer.R
import com.simplemobiletools.musicplayer.adapters.TracksAdapter
import com.simplemobiletools.musicplayer.adapters.TracksHeaderAdapter
import com.simplemobiletools.musicplayer.extensions.getAlbumTracksSync
import com.simplemobiletools.musicplayer.extensions.getPlaylistTracks
import com.simplemobiletools.musicplayer.extensions.resetQueueItems
import com.simplemobiletools.musicplayer.extensions.tracksDAO
import com.simplemobiletools.musicplayer.helpers.*
import com.simplemobiletools.musicplayer.models.*
import com.simplemobiletools.musicplayer.services.MusicService
Expand Down Expand Up @@ -45,7 +45,7 @@ class TracksActivity : SimpleActivity() {
val tracks = ArrayList<Track>()
val listItems = ArrayList<ListItem>()
if (playlist != null) {
val playlistTracks = getPlaylistTracks(playlist.id)
val playlistTracks = tracksDAO.getTracksFromPlaylist(playlist.id)
tracks.addAll(playlistTracks)
listItems.addAll(tracks)
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import com.simplemobiletools.musicplayer.activities.SimpleActivity
import com.simplemobiletools.musicplayer.dialogs.NewPlaylistDialog
import com.simplemobiletools.musicplayer.dialogs.RemovePlaylistDialog
import com.simplemobiletools.musicplayer.extensions.deletePlaylists
import com.simplemobiletools.musicplayer.extensions.getPlaylistTracks
import com.simplemobiletools.musicplayer.extensions.tracksDAO
import com.simplemobiletools.musicplayer.models.Playlist
import kotlinx.android.synthetic.main.item_playlist.view.*
import java.util.*
Expand Down Expand Up @@ -87,7 +87,7 @@ class PlaylistsAdapter(activity: SimpleActivity, var playlists: ArrayList<Playli
private fun deletePlaylistSongs(ids: ArrayList<Int>, callback: () -> Unit) {
var cnt = ids.size
ids.map {
val paths = activity.getPlaylistTracks(it).map { it.path }
val paths = activity.tracksDAO.getTracksFromPlaylist(it).map { it.path }
val fileDirItems = paths.map { FileDirItem(it, it.getFilenameFromPath()) } as ArrayList<FileDirItem>
activity.deleteFiles(fileDirItems) {
if (--cnt <= 0) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,7 @@ import com.simplemobiletools.commons.extensions.getIntValue
import com.simplemobiletools.commons.extensions.getLongValue
import com.simplemobiletools.commons.extensions.getStringValue
import com.simplemobiletools.commons.extensions.showErrorToast
import com.simplemobiletools.commons.helpers.AlphanumericComparator
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
import com.simplemobiletools.commons.helpers.isOreoPlus
import com.simplemobiletools.commons.helpers.isQPlus
import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.musicplayer.databases.SongsDatabase
import com.simplemobiletools.musicplayer.helpers.*
import com.simplemobiletools.musicplayer.interfaces.PlaylistsDao
Expand All @@ -22,7 +19,6 @@ import com.simplemobiletools.musicplayer.interfaces.SongsDao
import com.simplemobiletools.musicplayer.models.*
import com.simplemobiletools.musicplayer.services.MusicService
import org.greenrobot.eventbus.EventBus
import java.io.File

@SuppressLint("NewApi")
fun Context.sendIntent(action: String) {
Expand Down Expand Up @@ -51,34 +47,6 @@ fun Context.getTracksDB() = SongsDatabase.getInstance(this)

fun Context.getPlaylistIdWithTitle(title: String) = playlistDAO.getPlaylistWithTitle(title)?.id ?: -1

fun Context.getPlaylistTracks(playlistId: Int): ArrayList<Track> {
val validTracks = ArrayList<Track>()
if (isQPlus()) {
validTracks.addAll(tracksDAO.getTracksFromPlaylist(playlistId))
} else {
val invalidTracks = ArrayList<Track>()
val tracks = tracksDAO.getTracksFromPlaylist(playlistId)
val showFilename = config.showFilename
tracks.forEach {
it.title = it.getProperTitle(showFilename)

if (File(it.path).exists() || it.path.startsWith("content://")) {
validTracks.add(it)
} else {
invalidTracks.add(it)
}
}

getTracksDB().runInTransaction {
invalidTracks.forEach {
tracksDAO.removeSongPath(it.path)
}
}
}

return validTracks
}

fun Context.deletePlaylists(playlists: ArrayList<Playlist>) {
playlistDAO.deletePlaylists(playlists)
playlists.forEach {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,6 @@ interface SongsDao {
@Query("DELETE FROM tracks WHERE playlist_id = :playlistId")
fun removePlaylistSongs(playlistId: Int)

// this removes the given song from every playlist
@Query("DELETE FROM tracks WHERE path = :path")
fun removeSongPath(path: String)

@Query("UPDATE tracks SET path = :newPath, artist = :artist, title = :title WHERE path = :oldPath")
fun updateSongInfo(newPath: String, artist: String, title: String, oldPath: String)

Expand Down

0 comments on commit e005450

Please sign in to comment.