Merge pull request #764 from ultrasonic/hmpr
Merge update build tools #755 by Holger Müller
This commit is contained in:
commit
ac489ae8b9
|
@ -9,7 +9,7 @@ parameters:
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
docker:
|
docker:
|
||||||
- image: cimg/android:2022.03.1
|
- image: cimg/android:2022.06.1
|
||||||
working_directory: ~/ultrasonic
|
working_directory: ~/ultrasonic
|
||||||
environment:
|
environment:
|
||||||
JVM_OPTS: << pipeline.parameters.memory-config >>
|
JVM_OPTS: << pipeline.parameters.memory-config >>
|
||||||
|
@ -82,7 +82,7 @@ jobs:
|
||||||
tx push -s
|
tx push -s
|
||||||
generate_signed_apk:
|
generate_signed_apk:
|
||||||
docker:
|
docker:
|
||||||
- image: cimg/android:2022.03.1
|
- image: cimg/android:2022.06.1
|
||||||
working_directory: ~/ultrasonic
|
working_directory: ~/ultrasonic
|
||||||
environment:
|
environment:
|
||||||
JVM_OPTS: << pipeline.parameters.memory-config >>
|
JVM_OPTS: << pipeline.parameters.memory-config >>
|
||||||
|
|
|
@ -44,7 +44,7 @@ fun <T : SubsonicResponse> Response<T>.throwOnFailure(): Response<T> {
|
||||||
val response = this
|
val response = this
|
||||||
|
|
||||||
if (response.isSuccessful && response.body()!!.status === SubsonicResponse.Status.OK) {
|
if (response.isSuccessful && response.body()!!.status === SubsonicResponse.Status.OK) {
|
||||||
return this as Response<T>
|
return this
|
||||||
}
|
}
|
||||||
if (!response.isSuccessful) {
|
if (!response.isSuccessful) {
|
||||||
throw IOException("Server error, code: " + response.code())
|
throw IOException("Server error, code: " + response.code())
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
[versions]
|
[versions]
|
||||||
# You need to run ./gradlew wrapper after updating the version
|
# You need to run ./gradlew wrapper after updating the version
|
||||||
gradle = "7.3.2"
|
gradle = "7.3.3"
|
||||||
|
|
||||||
navigation = "2.3.5"
|
navigation = "2.3.5"
|
||||||
gradlePlugin = "7.1.1"
|
gradlePlugin = "7.2.1"
|
||||||
androidxcore = "1.6.0"
|
androidxcore = "1.6.0"
|
||||||
ktlint = "0.43.2"
|
ktlint = "0.43.2"
|
||||||
ktlintGradle = "10.2.0"
|
ktlintGradle = "10.2.0"
|
||||||
|
@ -12,16 +12,16 @@ preferences = "1.1.1"
|
||||||
media = "1.3.1"
|
media = "1.3.1"
|
||||||
media3 = "1.0.0-beta01"
|
media3 = "1.0.0-beta01"
|
||||||
|
|
||||||
androidSupport = "28.0.0"
|
androidSupport = "1.4.0"
|
||||||
androidLegacySupport = "1.0.0"
|
androidLegacySupport = "1.0.0"
|
||||||
androidSupportDesign = "1.4.0"
|
androidSupportDesign = "1.6.1"
|
||||||
constraintLayout = "2.1.1"
|
constraintLayout = "2.1.1"
|
||||||
multidex = "2.0.1"
|
multidex = "2.0.1"
|
||||||
room = "2.4.0"
|
room = "2.4.2"
|
||||||
kotlin = "1.6.10"
|
kotlin = "1.6.10"
|
||||||
kotlinxCoroutines = "1.6.0-native-mt"
|
kotlinxCoroutines = "1.6.0-native-mt"
|
||||||
kotlinxGuava = "1.6.0"
|
kotlinxGuava = "1.6.0"
|
||||||
viewModelKtx = "2.3.0"
|
viewModelKtx = "2.4.1"
|
||||||
|
|
||||||
retrofit = "2.9.0"
|
retrofit = "2.9.0"
|
||||||
jackson = "2.10.1"
|
jackson = "2.10.1"
|
||||||
|
@ -52,7 +52,7 @@ detekt = { module = "io.gitlab.arturbosch.detekt:detekt-gradle-
|
||||||
core = { module = "androidx.core:core-ktx", version.ref = "androidxcore" }
|
core = { module = "androidx.core:core-ktx", version.ref = "androidxcore" }
|
||||||
support = { module = "androidx.legacy:legacy-support-v4", version.ref = "androidLegacySupport" }
|
support = { module = "androidx.legacy:legacy-support-v4", version.ref = "androidLegacySupport" }
|
||||||
design = { module = "com.google.android.material:material", version.ref = "androidSupportDesign" }
|
design = { module = "com.google.android.material:material", version.ref = "androidSupportDesign" }
|
||||||
annotations = { module = "com.android.support:support-annotations", version.ref = "androidSupport" }
|
annotations = { module = "androidx.annotation:annotation", version.ref = "androidSupport" }
|
||||||
multidex = { module = "androidx.multidex:multidex", version.ref = "multidex" }
|
multidex = { module = "androidx.multidex:multidex", version.ref = "multidex" }
|
||||||
constraintLayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintLayout" }
|
constraintLayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "constraintLayout" }
|
||||||
room = { module = "androidx.room:room-compiler", version.ref = "room" }
|
room = { module = "androidx.room:room-compiler", version.ref = "room" }
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
ext.versions = [
|
ext.versions = [
|
||||||
minSdk : 21,
|
minSdk : 21,
|
||||||
targetSdk : 31,
|
targetSdk : 33,
|
||||||
compileSdk : 31,
|
compileSdk : 31,
|
||||||
]
|
]
|
|
@ -1,5 +1,6 @@
|
||||||
|
#Fri Jun 17 23:13:49 CEST 2022
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.2-all.zip
|
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|
|
@ -73,6 +73,7 @@ android {
|
||||||
disable 'IconMissingDensityFolder', 'VectorPath'
|
disable 'IconMissingDensityFolder', 'VectorPath'
|
||||||
ignore 'MissingTranslation', 'UnusedQuantity', 'MissingQuantity'
|
ignore 'MissingTranslation', 'UnusedQuantity', 'MissingQuantity'
|
||||||
warning 'ImpliedQuantity'
|
warning 'ImpliedQuantity'
|
||||||
|
disable 'ObsoleteLintCustomCheck'
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<issues format="6" by="lint 7.1.1" type="baseline" client="gradle" dependencies="false" name="AGP (7.1.1)" variant="all" version="7.1.1">
|
<issues format="6" by="lint 7.2.1" type="baseline" client="gradle" dependencies="false" name="AGP (7.2.1)" variant="all" version="7.2.1">
|
||||||
|
|
||||||
<issue
|
<issue
|
||||||
id="InflateParams"
|
id="InflateParams"
|
||||||
|
|
|
@ -251,15 +251,15 @@ open class APIDataSource private constructor(
|
||||||
@Suppress("ThrowsCount")
|
@Suppress("ThrowsCount")
|
||||||
@Throws(HttpDataSourceException::class)
|
@Throws(HttpDataSourceException::class)
|
||||||
private fun skipFully(bytesToSkip: Long, dataSpec: DataSpec) {
|
private fun skipFully(bytesToSkip: Long, dataSpec: DataSpec) {
|
||||||
var bytesToSkip = bytesToSkip
|
var bytesToSkipCpy = bytesToSkip
|
||||||
if (bytesToSkip == 0L) {
|
if (bytesToSkipCpy == 0L) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
val skipBuffer = ByteArray(4096)
|
val skipBuffer = ByteArray(4096)
|
||||||
try {
|
try {
|
||||||
while (bytesToSkip > 0) {
|
while (bytesToSkipCpy > 0) {
|
||||||
val readLength =
|
val readLength =
|
||||||
bytesToSkip.coerceAtMost(skipBuffer.size.toLong()).toInt()
|
bytesToSkipCpy.coerceAtMost(skipBuffer.size.toLong()).toInt()
|
||||||
val read = Util.castNonNull(responseByteStream).read(skipBuffer, 0, readLength)
|
val read = Util.castNonNull(responseByteStream).read(skipBuffer, 0, readLength)
|
||||||
if (Thread.currentThread().isInterrupted) {
|
if (Thread.currentThread().isInterrupted) {
|
||||||
throw InterruptedIOException()
|
throw InterruptedIOException()
|
||||||
|
@ -271,7 +271,7 @@ open class APIDataSource private constructor(
|
||||||
HttpDataSourceException.TYPE_OPEN
|
HttpDataSourceException.TYPE_OPEN
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
bytesToSkip -= read.toLong()
|
bytesToSkipCpy -= read.toLong()
|
||||||
bytesTransferred(read)
|
bytesTransferred(read)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
@ -305,8 +305,8 @@ open class APIDataSource private constructor(
|
||||||
*/
|
*/
|
||||||
@Throws(IOException::class)
|
@Throws(IOException::class)
|
||||||
private fun readInternal(buffer: ByteArray, offset: Int, readLength: Int): Int {
|
private fun readInternal(buffer: ByteArray, offset: Int, readLength: Int): Int {
|
||||||
var readLength = readLength
|
var readLengthCpy = readLength
|
||||||
if (readLength == 0) {
|
if (readLengthCpy == 0) {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
if (bytesToRead != C.LENGTH_UNSET.toLong()) {
|
if (bytesToRead != C.LENGTH_UNSET.toLong()) {
|
||||||
|
@ -314,9 +314,9 @@ open class APIDataSource private constructor(
|
||||||
if (bytesRemaining == 0L) {
|
if (bytesRemaining == 0L) {
|
||||||
return C.RESULT_END_OF_INPUT
|
return C.RESULT_END_OF_INPUT
|
||||||
}
|
}
|
||||||
readLength = readLength.toLong().coerceAtMost(bytesRemaining).toInt()
|
readLengthCpy = readLengthCpy.toLong().coerceAtMost(bytesRemaining).toInt()
|
||||||
}
|
}
|
||||||
val read = Util.castNonNull(responseByteStream).read(buffer, offset, readLength)
|
val read = Util.castNonNull(responseByteStream).read(buffer, offset, readLengthCpy)
|
||||||
if (read == -1) {
|
if (read == -1) {
|
||||||
return C.RESULT_END_OF_INPUT
|
return C.RESULT_END_OF_INPUT
|
||||||
}
|
}
|
||||||
|
|
|
@ -534,8 +534,8 @@ class AutoMediaBrowserCallback(var player: Player) :
|
||||||
val songs = listSongsInMusicService(id, name)
|
val songs = listSongsInMusicService(id, name)
|
||||||
|
|
||||||
if (songs != null) {
|
if (songs != null) {
|
||||||
if (songs.getChildren(includeDirs = true, includeFiles = false).count() == 0 &&
|
if (songs.getChildren(includeDirs = true, includeFiles = false).isEmpty() &&
|
||||||
songs.getChildren(includeDirs = false, includeFiles = true).count() > 0
|
songs.getChildren(includeDirs = false, includeFiles = true).isNotEmpty()
|
||||||
)
|
)
|
||||||
mediaItems.addPlayAllItem(listOf(MEDIA_ALBUM_ITEM, id, name).joinToString("|"))
|
mediaItems.addPlayAllItem(listOf(MEDIA_ALBUM_ITEM, id, name).joinToString("|"))
|
||||||
|
|
||||||
|
|
|
@ -101,8 +101,8 @@ class CachedDataSource(
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun readInternal(buffer: ByteArray, offset: Int, readLength: Int): Int {
|
private fun readInternal(buffer: ByteArray, offset: Int, readLength: Int): Int {
|
||||||
var readLength = readLength
|
var readLengthCpy = readLength
|
||||||
if (readLength == 0) {
|
if (readLengthCpy == 0) {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
if (bytesToRead != C.LENGTH_UNSET.toLong()) {
|
if (bytesToRead != C.LENGTH_UNSET.toLong()) {
|
||||||
|
@ -110,9 +110,9 @@ class CachedDataSource(
|
||||||
if (bytesRemaining == 0L) {
|
if (bytesRemaining == 0L) {
|
||||||
return C.RESULT_END_OF_INPUT
|
return C.RESULT_END_OF_INPUT
|
||||||
}
|
}
|
||||||
readLength = readLength.toLong().coerceAtMost(bytesRemaining).toInt()
|
readLengthCpy = readLengthCpy.toLong().coerceAtMost(bytesRemaining).toInt()
|
||||||
}
|
}
|
||||||
val read = Util.castNonNull(responseByteStream).read(buffer, offset, readLength)
|
val read = Util.castNonNull(responseByteStream).read(buffer, offset, readLengthCpy)
|
||||||
if (read == -1) {
|
if (read == -1) {
|
||||||
Timber.i("CachedDatasource: EndOfInput")
|
Timber.i("CachedDatasource: EndOfInput")
|
||||||
return C.RESULT_END_OF_INPUT
|
return C.RESULT_END_OF_INPUT
|
||||||
|
@ -134,15 +134,15 @@ class CachedDataSource(
|
||||||
@Suppress("ThrowsCount")
|
@Suppress("ThrowsCount")
|
||||||
@Throws(HttpDataSourceException::class)
|
@Throws(HttpDataSourceException::class)
|
||||||
private fun skipFully(bytesToSkip: Long, dataSpec: DataSpec) {
|
private fun skipFully(bytesToSkip: Long, dataSpec: DataSpec) {
|
||||||
var bytesToSkip = bytesToSkip
|
var bytesToSkipCpy = bytesToSkip
|
||||||
if (bytesToSkip == 0L) {
|
if (bytesToSkipCpy == 0L) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
val skipBuffer = ByteArray(4096)
|
val skipBuffer = ByteArray(4096)
|
||||||
try {
|
try {
|
||||||
while (bytesToSkip > 0) {
|
while (bytesToSkipCpy > 0) {
|
||||||
val readLength =
|
val readLength =
|
||||||
bytesToSkip.coerceAtMost(skipBuffer.size.toLong()).toInt()
|
bytesToSkipCpy.coerceAtMost(skipBuffer.size.toLong()).toInt()
|
||||||
val read = Util.castNonNull(responseByteStream).read(skipBuffer, 0, readLength)
|
val read = Util.castNonNull(responseByteStream).read(skipBuffer, 0, readLength)
|
||||||
if (Thread.currentThread().isInterrupted) {
|
if (Thread.currentThread().isInterrupted) {
|
||||||
throw InterruptedIOException()
|
throw InterruptedIOException()
|
||||||
|
@ -154,7 +154,7 @@ class CachedDataSource(
|
||||||
HttpDataSourceException.TYPE_OPEN
|
HttpDataSourceException.TYPE_OPEN
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
bytesToSkip -= read.toLong()
|
bytesToSkipCpy -= read.toLong()
|
||||||
bytesTransferred(read)
|
bytesTransferred(read)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<ripple
|
<ripple
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
android:color="?android:colorControlHighlight">
|
||||||
android:color="?android:colorControlHighlight"
|
|
||||||
tools:targetApi="lollipop">
|
|
||||||
|
|
||||||
<item android:id="@android:id/mask">
|
<item android:id="@android:id/mask">
|
||||||
<shape android:shape="rectangle">
|
<shape android:shape="rectangle">
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<ripple
|
<ripple
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
android:color="?android:colorControlHighlight">
|
||||||
android:color="?android:colorControlHighlight"
|
|
||||||
tools:targetApi="lollipop">
|
|
||||||
|
|
||||||
<item android:id="@android:id/mask">
|
<item android:id="@android:id/mask">
|
||||||
<shape android:shape="rectangle">
|
<shape android:shape="rectangle">
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<ripple
|
<ripple
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
android:color="?android:colorControlHighlight">
|
||||||
android:color="?android:colorControlHighlight"
|
|
||||||
tools:targetApi="lollipop">
|
|
||||||
|
|
||||||
<item android:id="@android:id/mask">
|
<item android:id="@android:id/mask">
|
||||||
<shape android:shape="oval">
|
<shape android:shape="oval">
|
||||||
|
|
Loading…
Reference in New Issue