Merge pull request #764 from ultrasonic/hmpr

Merge update build tools #755 by Holger Müller
This commit is contained in:
tzugen 2022-06-22 13:40:15 +02:00 committed by GitHub
commit ac489ae8b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 39 additions and 43 deletions

View File

@ -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 >>

View File

@ -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())

View File

@ -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" }

View File

@ -1,5 +1,5 @@
ext.versions = [ ext.versions = [
minSdk : 21, minSdk : 21,
targetSdk : 31, targetSdk : 33,
compileSdk : 31, compileSdk : 31,
] ]

View File

@ -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

View File

@ -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'
} }
} }

View File

@ -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"

View File

@ -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
} }

View File

@ -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("|"))

View File

@ -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

View File

@ -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">

View File

@ -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">

View File

@ -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">