deps: upgrade deps
Material -> 1.5.0 [Finally] ConstraintLayout -> 2.1.3
This commit is contained in:
parent
95e8b06f19
commit
e4f2906767
5 changed files with 20 additions and 33 deletions
|
@ -70,7 +70,7 @@ dependencies {
|
||||||
|
|
||||||
// UI
|
// UI
|
||||||
implementation "androidx.recyclerview:recyclerview:1.2.1"
|
implementation "androidx.recyclerview:recyclerview:1.2.1"
|
||||||
implementation "androidx.constraintlayout:constraintlayout:2.1.2"
|
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
|
||||||
implementation "androidx.dynamicanimation:dynamicanimation:1.0.0"
|
implementation "androidx.dynamicanimation:dynamicanimation:1.0.0"
|
||||||
implementation "androidx.viewpager2:viewpager2:1.1.0-beta01"
|
implementation "androidx.viewpager2:viewpager2:1.1.0-beta01"
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ dependencies {
|
||||||
implementation 'io.coil-kt:coil:2.0.0-alpha06'
|
implementation 'io.coil-kt:coil:2.0.0-alpha06'
|
||||||
|
|
||||||
// Material
|
// Material
|
||||||
implementation 'com.google.android.material:material:1.5.0-rc01'
|
implementation 'com.google.android.material:material:1.5.0'
|
||||||
|
|
||||||
// --- DEBUG ---
|
// --- DEBUG ---
|
||||||
|
|
||||||
|
|
|
@ -161,7 +161,7 @@ abstract class AuxioFetcher : Fetcher {
|
||||||
|
|
||||||
for (i in 0 until metadata.length()) {
|
for (i in 0 until metadata.length()) {
|
||||||
// We can only extract pictures from two tags with this method, ID3v2's APIC or
|
// We can only extract pictures from two tags with this method, ID3v2's APIC or
|
||||||
// FLAC's PICTURE.
|
// Vorbis picture comments.
|
||||||
val pic: ByteArray?
|
val pic: ByteArray?
|
||||||
val type: Int
|
val type: Int
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ abstract class AuxioFetcher : Fetcher {
|
||||||
} else if (stream != null) {
|
} else if (stream != null) {
|
||||||
// In the case a front cover is not found, use the first image in the tag instead.
|
// In the case a front cover is not found, use the first image in the tag instead.
|
||||||
// This can be corrected later on if a front cover frame is found.
|
// This can be corrected later on if a front cover frame is found.
|
||||||
logD("Image not a front cover, assigning image of type $type for now")
|
logD("No front cover image, using image of type $type instead")
|
||||||
|
|
||||||
stream = ByteArrayInputStream(pic)
|
stream = ByteArrayInputStream(pic)
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,20 +43,20 @@ import org.oxycblt.auxio.excluded.ExcludedDatabase
|
||||||
* blacklisting relies on a deprecated method, and the supposedly "modern" method is SLOWER and
|
* blacklisting relies on a deprecated method, and the supposedly "modern" method is SLOWER and
|
||||||
* causes even more problems since I have to manage databases across version boundaries. Sometimes
|
* causes even more problems since I have to manage databases across version boundaries. Sometimes
|
||||||
* music will have a deformed clone that I can't filter out, sometimes Genres will just break for no
|
* music will have a deformed clone that I can't filter out, sometimes Genres will just break for no
|
||||||
* reason, sometimes this spaghetti parser just completely falls apart and is unable to get any
|
* reason, and sometimes tags encoded in UTF-8 will be interpreted as anything from UTF-16 to Latin-1
|
||||||
* metadata. Everything is broken in it's own special unique way and I absolutely hate it.
|
* to Shift JIS WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY WHY
|
||||||
*
|
*
|
||||||
* Is there anything we can do about it? No. Google has routinely shut down issues that begged google
|
* Is there anything we can do about it? No. Google has routinely shut down issues that begged google
|
||||||
* to fix glaring issues with MediaStore or to just take the API behind the woodshed and shoot it.
|
* to fix glaring issues with MediaStore or to just take the API behind the woodshed and shoot it.
|
||||||
* Largely because they have zero incentive to improve it, especially for such obscure things
|
* Largely because they have zero incentive to improve it given how "obscure" music listening is.
|
||||||
* as indexing music. As a result, some players like Vanilla and VLC just hack their own pidgin
|
* As a result, some players like Vanilla and VLC just hack their own pidgin version of MediaStore
|
||||||
* version of MediaStore from their own parsers, but this is both infeasible for Auxio due to how
|
* from their own parsers, but this is both infeasible for Auxio due to how incredibly slow it is
|
||||||
* incredibly slow it is to get a file handle from the android sandbox AND how much harder it is
|
* to get a file handle from the android sandbox AND how much harder it is to manage a database of
|
||||||
* to manage a database of your own media that mirrors the filesystem perfectly. And even if I set
|
* your own media that mirrors the filesystem perfectly. And even if I set aside those crippling
|
||||||
* aside those crippling issues and changed my indexer to that, it would face the even larger
|
* issues and changed my indexer to that, it would face the even larger problem of how google keeps
|
||||||
* problem of how google keeps trying to kill the filesystem and force you into their
|
* trying to kill the filesystem and force you into their ContentResolver API. In the future
|
||||||
* ContentResolver API. In the future MediaStore could be the only system we have, which is also the
|
* MediaStore could be the only system we have, which is also the day that greenland melts and
|
||||||
* day that greenland melts and birthdays stop happening forever.
|
* birthdays stop happening forever.
|
||||||
*
|
*
|
||||||
* I'm pretty sure nothing is going to happen and MediaStore will continue to be neglected and
|
* I'm pretty sure nothing is going to happen and MediaStore will continue to be neglected and
|
||||||
* probably deprecated eventually for a "new" API that just coincidentally excludes music indexing.
|
* probably deprecated eventually for a "new" API that just coincidentally excludes music indexing.
|
||||||
|
@ -101,7 +101,7 @@ class MusicLoader {
|
||||||
|
|
||||||
// DATA was deprecated on Android 10, but is set to be un-deprecated in Android 12L.
|
// DATA was deprecated on Android 10, but is set to be un-deprecated in Android 12L.
|
||||||
// The only reason we'd want to change this is to add external partitions support, but
|
// The only reason we'd want to change this is to add external partitions support, but
|
||||||
// that's less efficent and there's no demand for that right now.
|
// that's less efficient and there's no demand for that right now.
|
||||||
for (path in paths) {
|
for (path in paths) {
|
||||||
selector += " AND ${MediaStore.Audio.Media.DATA} NOT LIKE ?"
|
selector += " AND ${MediaStore.Audio.Media.DATA} NOT LIKE ?"
|
||||||
args += "$path%" // Append % so that the selector properly detects children
|
args += "$path%" // Append % so that the selector properly detects children
|
||||||
|
|
|
@ -241,19 +241,11 @@ class PlaybackService : Service(), Player.Listener, PlaybackStateManager.Callbac
|
||||||
override fun onTracksInfoChanged(tracksInfo: TracksInfo) {
|
override fun onTracksInfoChanged(tracksInfo: TracksInfo) {
|
||||||
super.onTracksInfoChanged(tracksInfo)
|
super.onTracksInfoChanged(tracksInfo)
|
||||||
|
|
||||||
var consumed = false
|
|
||||||
|
|
||||||
for (info in tracksInfo.trackGroupInfos) {
|
for (info in tracksInfo.trackGroupInfos) {
|
||||||
if (info.isSelected) {
|
if (info.isSelected) {
|
||||||
for (i in 0 until info.trackGroup.length) {
|
for (i in 0 until info.trackGroup.length) {
|
||||||
if (info.isTrackSelected(i)) {
|
if (info.isTrackSelected(i)) {
|
||||||
val metadata = info.trackGroup.getFormat(i).metadata
|
audioReactor.applyReplayGain(info.trackGroup.getFormat(i).metadata)
|
||||||
|
|
||||||
if (metadata != null) {
|
|
||||||
audioReactor.applyReplayGain(metadata)
|
|
||||||
consumed = true
|
|
||||||
}
|
|
||||||
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -261,11 +253,6 @@ class PlaybackService : Service(), Player.Listener, PlaybackStateManager.Callbac
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!consumed) {
|
|
||||||
// Sadly we couldn't parse any ReplayGain tags. Revert to normal volume.
|
|
||||||
audioReactor.applyReplayGain(null)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- PLAYBACK STATE CALLBACK OVERRIDES ---
|
// --- PLAYBACK STATE CALLBACK OVERRIDES ---
|
||||||
|
|
|
@ -61,17 +61,17 @@ if ndk_path is None or not os.path.isfile(os.path.join(ndk_path, "ndk_build")):
|
||||||
print("[" + str(i) + "] " + candidate)
|
print("[" + str(i) + "] " + candidate)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
ndk_path = candidates[int(input("Enter the ndk to use [Default 0]: "))]
|
ndk_path = candidates[int(input("enter the ndk to use [Default 0]: "))]
|
||||||
except:
|
except:
|
||||||
ndk_path = candidates[0]
|
ndk_path = candidates[0]
|
||||||
else:
|
else:
|
||||||
print(FATAL + "fatal:" + NC + " NDK_PATH is either invalid, or the android ndk was not installed at a recognized location.")
|
print(FATAL + "fatal:" + NC + " NDK_PATH is either not set/invalid, or the android ndk was not installed at a recognized location.")
|
||||||
system.exit(1)
|
system.exit(1)
|
||||||
|
|
||||||
# Now try to install ExoPlayer.
|
# Now try to install ExoPlayer.
|
||||||
sh("rm -rf deps")
|
sh("rm -rf deps")
|
||||||
|
|
||||||
print(INFO + "info:" + NC + " cloning ExoPlayer...")
|
print(INFO + "info:" + NC + " cloning exoplayer...")
|
||||||
sh("git clone https://github.com/oxygencobalt/ExoPlayer.git " + exoplayer_path)
|
sh("git clone https://github.com/oxygencobalt/ExoPlayer.git " + exoplayer_path)
|
||||||
os.chdir(exoplayer_path)
|
os.chdir(exoplayer_path)
|
||||||
sh("git checkout auxio")
|
sh("git checkout auxio")
|
||||||
|
|
Loading…
Reference in a new issue