musikr: extract out shared parse fns
Into the util module
This commit is contained in:
parent
4d0465e012
commit
14355a1005
10 changed files with 19 additions and 39 deletions
|
@ -36,8 +36,8 @@ import org.oxycblt.musikr.metadata.Properties
|
|||
import org.oxycblt.musikr.pipeline.RawSong
|
||||
import org.oxycblt.musikr.tag.Date
|
||||
import org.oxycblt.musikr.tag.parse.ParsedTags
|
||||
import org.oxycblt.musikr.tag.util.correctWhitespace
|
||||
import org.oxycblt.musikr.tag.util.splitEscaped
|
||||
import org.oxycblt.musikr.util.correctWhitespace
|
||||
import org.oxycblt.musikr.util.splitEscaped
|
||||
|
||||
@Database(entities = [CachedSong::class], version = 50, exportSchema = false)
|
||||
abstract class CacheDatabase : RoomDatabase() {
|
||||
|
|
|
@ -24,7 +24,7 @@ import android.net.Uri
|
|||
import android.provider.DocumentsContract
|
||||
import org.oxycblt.musikr.fs.path.DocumentPathFactory
|
||||
import org.oxycblt.musikr.fs.query.contentResolverSafe
|
||||
import org.oxycblt.musikr.tag.util.splitEscaped
|
||||
import org.oxycblt.musikr.util.splitEscaped
|
||||
|
||||
class MusicLocation internal constructor(val uri: Uri, val path: Path) {
|
||||
override fun equals(other: Any?) = other is MusicLocation && uri == other.uri
|
||||
|
|
|
@ -33,7 +33,7 @@ import org.oxycblt.musikr.playlist.ExportConfig
|
|||
import org.oxycblt.musikr.playlist.ImportedPlaylist
|
||||
import org.oxycblt.musikr.playlist.PossiblePaths
|
||||
import org.oxycblt.musikr.tag.Name
|
||||
import org.oxycblt.musikr.tag.util.correctWhitespace
|
||||
import org.oxycblt.musikr.util.correctWhitespace
|
||||
import org.oxycblt.musikr.util.unlikelyToBeNull
|
||||
|
||||
/**
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.musikr.tag.util
|
||||
package org.oxycblt.musikr.tag.format
|
||||
|
||||
/// --- ID3v2 PARSING ---
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.musikr.tag.util
|
||||
package org.oxycblt.musikr.tag.format
|
||||
|
||||
import org.oxycblt.musikr.util.positiveOrNull
|
||||
|
|
@ -18,8 +18,8 @@
|
|||
|
||||
package org.oxycblt.musikr.tag.interpret
|
||||
|
||||
import org.oxycblt.musikr.tag.util.correctWhitespace
|
||||
import org.oxycblt.musikr.tag.util.splitEscaped
|
||||
import org.oxycblt.musikr.util.correctWhitespace
|
||||
import org.oxycblt.musikr.util.splitEscaped
|
||||
|
||||
/**
|
||||
* Defines the user-specified parsing of multi-value tags. This should be used to parse any tags
|
||||
|
|
|
@ -27,7 +27,7 @@ import org.oxycblt.musikr.tag.Placeholder
|
|||
import org.oxycblt.musikr.tag.ReleaseType
|
||||
import org.oxycblt.musikr.tag.ReplayGainAdjustment
|
||||
import org.oxycblt.musikr.tag.parse.ParsedTags
|
||||
import org.oxycblt.musikr.tag.util.parseId3GenreNames
|
||||
import org.oxycblt.musikr.tag.format.parseId3GenreNames
|
||||
import org.oxycblt.musikr.util.toUuidOrNull
|
||||
|
||||
interface TagInterpreter {
|
||||
|
|
|
@ -21,8 +21,8 @@ package org.oxycblt.musikr.tag.parse
|
|||
import androidx.core.text.isDigitsOnly
|
||||
import org.oxycblt.musikr.metadata.Metadata
|
||||
import org.oxycblt.musikr.tag.Date
|
||||
import org.oxycblt.musikr.tag.util.parseId3v2PositionField
|
||||
import org.oxycblt.musikr.tag.util.parseXiphPositionField
|
||||
import org.oxycblt.musikr.tag.format.parseId3v2PositionField
|
||||
import org.oxycblt.musikr.tag.format.parseXiphPositionField
|
||||
import org.oxycblt.musikr.util.nonZeroOrNull
|
||||
|
||||
// Song
|
||||
|
|
|
@ -1,26 +1,4 @@
|
|||
/*
|
||||
* Copyright (c) 2022 Auxio Project
|
||||
* Transform.kt is part of Auxio.
|
||||
*
|
||||
* This program 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 program 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.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package org.oxycblt.musikr.tag.util
|
||||
|
||||
/// --- GENERIC PARSING ---
|
||||
|
||||
// TODO: Remove the escaping checks, it's too expensive to do this for every single tag.
|
||||
package org.oxycblt.musikr.util
|
||||
|
||||
/**
|
||||
* Split a [String] by the given selector, automatically handling escaped characters that satisfy
|
||||
|
@ -67,6 +45,8 @@ inline fun String.splitEscaped(selector: (Char) -> Boolean): List<String> {
|
|||
return split
|
||||
}
|
||||
|
||||
// TODO: Remove the escaping checks, it's too expensive to do this for every single tag.
|
||||
|
||||
/**
|
||||
* Fix trailing whitespace or blank contents in a [String].
|
||||
*
|
|
@ -20,11 +20,11 @@ package org.oxycblt.musikr.tag.parse
|
|||
|
||||
import org.junit.Assert.assertEquals
|
||||
import org.junit.Test
|
||||
import org.oxycblt.musikr.tag.util.correctWhitespace
|
||||
import org.oxycblt.musikr.tag.util.parseId3GenreNames
|
||||
import org.oxycblt.musikr.tag.util.parseId3v2PositionField
|
||||
import org.oxycblt.musikr.tag.util.parseXiphPositionField
|
||||
import org.oxycblt.musikr.tag.util.splitEscaped
|
||||
import org.oxycblt.musikr.util.correctWhitespace
|
||||
import org.oxycblt.musikr.tag.format.parseId3GenreNames
|
||||
import org.oxycblt.musikr.tag.format.parseId3v2PositionField
|
||||
import org.oxycblt.musikr.tag.format.parseXiphPositionField
|
||||
import org.oxycblt.musikr.util.splitEscaped
|
||||
|
||||
class TagUtilTest {
|
||||
@Test
|
||||
|
|
Loading…
Reference in a new issue