mirror of
https://github.com/nextcloud/android.git
synced 2024-12-22 16:54:33 +03:00
Merge remote-tracking branch 'origin/master' into dev
This commit is contained in:
commit
f23dde55dc
24 changed files with 1029 additions and 118 deletions
2
.github/workflows/unit-tests.yml
vendored
2
.github/workflows/unit-tests.yml
vendored
|
@ -30,7 +30,7 @@ jobs:
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
run: scripts/deleteOldComments.sh "test" "Unit" ${{github.event.number}}
|
run: scripts/deleteOldComments.sh "test" "Unit" ${{github.event.number}}
|
||||||
- name: Run unit tests with coverage
|
- name: Run unit tests with coverage
|
||||||
uses: gradle/gradle-build-action@3b1b3b9a2104c2b47fbae53f3938079c00c9bb87 # v3.0.0
|
uses: gradle/gradle-build-action@29c0906b64b8fc82467890bfb7a0a7ef34bda89e # v3.1.0
|
||||||
with:
|
with:
|
||||||
arguments: jacocoTestGplayDebugUnitTest
|
arguments: jacocoTestGplayDebugUnitTest
|
||||||
- name: Upload failing results
|
- name: Upload failing results
|
||||||
|
|
110
Gemfile.lock
110
Gemfile.lock
|
@ -1,27 +1,27 @@
|
||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
CFPropertyList (3.0.5)
|
CFPropertyList (3.0.6)
|
||||||
rexml
|
rexml
|
||||||
addressable (2.8.0)
|
addressable (2.8.6)
|
||||||
public_suffix (>= 2.0.2, < 5.0)
|
public_suffix (>= 2.0.2, < 6.0)
|
||||||
artifactory (3.0.15)
|
artifactory (3.0.15)
|
||||||
atomos (0.1.3)
|
atomos (0.1.3)
|
||||||
aws-eventstream (1.2.0)
|
aws-eventstream (1.3.0)
|
||||||
aws-partitions (1.604.0)
|
aws-partitions (1.890.0)
|
||||||
aws-sdk-core (3.131.2)
|
aws-sdk-core (3.191.1)
|
||||||
aws-eventstream (~> 1, >= 1.0.2)
|
aws-eventstream (~> 1, >= 1.3.0)
|
||||||
aws-partitions (~> 1, >= 1.525.0)
|
aws-partitions (~> 1, >= 1.651.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.8)
|
||||||
jmespath (~> 1, >= 1.6.1)
|
jmespath (~> 1, >= 1.6.1)
|
||||||
aws-sdk-kms (1.57.0)
|
aws-sdk-kms (1.77.0)
|
||||||
aws-sdk-core (~> 3, >= 3.127.0)
|
aws-sdk-core (~> 3, >= 3.191.0)
|
||||||
aws-sigv4 (~> 1.1)
|
aws-sigv4 (~> 1.1)
|
||||||
aws-sdk-s3 (1.114.0)
|
aws-sdk-s3 (1.143.0)
|
||||||
aws-sdk-core (~> 3, >= 3.127.0)
|
aws-sdk-core (~> 3, >= 3.191.0)
|
||||||
aws-sdk-kms (~> 1)
|
aws-sdk-kms (~> 1)
|
||||||
aws-sigv4 (~> 1.4)
|
aws-sigv4 (~> 1.8)
|
||||||
aws-sigv4 (1.5.0)
|
aws-sigv4 (1.8.0)
|
||||||
aws-eventstream (~> 1, >= 1.0.2)
|
aws-eventstream (~> 1, >= 1.0.2)
|
||||||
babosa (1.0.4)
|
babosa (1.0.4)
|
||||||
claide (1.1.0)
|
claide (1.1.0)
|
||||||
|
@ -30,14 +30,13 @@ GEM
|
||||||
commander (4.6.0)
|
commander (4.6.0)
|
||||||
highline (~> 2.0.0)
|
highline (~> 2.0.0)
|
||||||
declarative (0.0.20)
|
declarative (0.0.20)
|
||||||
digest-crc (0.6.4)
|
digest-crc (0.6.5)
|
||||||
rake (>= 12.0.0, < 14.0.0)
|
rake (>= 12.0.0, < 14.0.0)
|
||||||
domain_name (0.5.20190701)
|
domain_name (0.6.20240107)
|
||||||
unf (>= 0.0.5, < 1.0.0)
|
dotenv (2.8.1)
|
||||||
dotenv (2.7.6)
|
|
||||||
emoji_regex (3.2.3)
|
emoji_regex (3.2.3)
|
||||||
excon (0.92.3)
|
excon (0.109.0)
|
||||||
faraday (1.10.0)
|
faraday (1.10.3)
|
||||||
faraday-em_http (~> 1.0)
|
faraday-em_http (~> 1.0)
|
||||||
faraday-em_synchrony (~> 1.0)
|
faraday-em_synchrony (~> 1.0)
|
||||||
faraday-excon (~> 1.1)
|
faraday-excon (~> 1.1)
|
||||||
|
@ -65,8 +64,8 @@ GEM
|
||||||
faraday-retry (1.0.3)
|
faraday-retry (1.0.3)
|
||||||
faraday_middleware (1.2.0)
|
faraday_middleware (1.2.0)
|
||||||
faraday (~> 1.0)
|
faraday (~> 1.0)
|
||||||
fastimage (2.2.6)
|
fastimage (2.3.0)
|
||||||
fastlane (2.207.0)
|
fastlane (2.214.0)
|
||||||
CFPropertyList (>= 2.3, < 4.0.0)
|
CFPropertyList (>= 2.3, < 4.0.0)
|
||||||
addressable (>= 2.8, < 3.0.0)
|
addressable (>= 2.8, < 3.0.0)
|
||||||
artifactory (~> 3.0)
|
artifactory (~> 3.0)
|
||||||
|
@ -90,7 +89,7 @@ GEM
|
||||||
json (< 3.0.0)
|
json (< 3.0.0)
|
||||||
jwt (>= 2.1.0, < 3)
|
jwt (>= 2.1.0, < 3)
|
||||||
mini_magick (>= 4.9.4, < 5.0.0)
|
mini_magick (>= 4.9.4, < 5.0.0)
|
||||||
multipart-post (~> 2.0.0)
|
multipart-post (>= 2.0.0, < 3.0.0)
|
||||||
naturally (~> 2.2)
|
naturally (~> 2.2)
|
||||||
optparse (~> 0.1.1)
|
optparse (~> 0.1.1)
|
||||||
plist (>= 3.1.0, < 4.0.0)
|
plist (>= 3.1.0, < 4.0.0)
|
||||||
|
@ -107,9 +106,9 @@ GEM
|
||||||
xcpretty-travis-formatter (>= 0.0.3)
|
xcpretty-travis-formatter (>= 0.0.3)
|
||||||
fastlane-plugin-huawei_appgallery_connect (1.0.23)
|
fastlane-plugin-huawei_appgallery_connect (1.0.23)
|
||||||
gh_inspector (1.1.3)
|
gh_inspector (1.1.3)
|
||||||
google-apis-androidpublisher_v3 (0.25.0)
|
google-apis-androidpublisher_v3 (0.54.0)
|
||||||
google-apis-core (>= 0.7, < 2.a)
|
google-apis-core (>= 0.11.0, < 2.a)
|
||||||
google-apis-core (0.7.0)
|
google-apis-core (0.11.3)
|
||||||
addressable (~> 2.5, >= 2.5.1)
|
addressable (~> 2.5, >= 2.5.1)
|
||||||
googleauth (>= 0.16.2, < 2.a)
|
googleauth (>= 0.16.2, < 2.a)
|
||||||
httpclient (>= 2.8.1, < 3.a)
|
httpclient (>= 2.8.1, < 3.a)
|
||||||
|
@ -117,31 +116,29 @@ GEM
|
||||||
representable (~> 3.0)
|
representable (~> 3.0)
|
||||||
retriable (>= 2.0, < 4.a)
|
retriable (>= 2.0, < 4.a)
|
||||||
rexml
|
rexml
|
||||||
webrick
|
google-apis-iamcredentials_v1 (0.17.0)
|
||||||
google-apis-iamcredentials_v1 (0.13.0)
|
google-apis-core (>= 0.11.0, < 2.a)
|
||||||
google-apis-core (>= 0.7, < 2.a)
|
google-apis-playcustomapp_v1 (0.13.0)
|
||||||
google-apis-playcustomapp_v1 (0.10.0)
|
google-apis-core (>= 0.11.0, < 2.a)
|
||||||
google-apis-core (>= 0.7, < 2.a)
|
google-apis-storage_v1 (0.31.0)
|
||||||
google-apis-storage_v1 (0.18.0)
|
google-apis-core (>= 0.11.0, < 2.a)
|
||||||
google-apis-core (>= 0.7, < 2.a)
|
google-cloud-core (1.6.1)
|
||||||
google-cloud-core (1.6.0)
|
google-cloud-env (>= 1.0, < 3.a)
|
||||||
google-cloud-env (~> 1.0)
|
|
||||||
google-cloud-errors (~> 1.0)
|
google-cloud-errors (~> 1.0)
|
||||||
google-cloud-env (1.6.0)
|
google-cloud-env (1.6.0)
|
||||||
faraday (>= 0.17.3, < 3.0)
|
faraday (>= 0.17.3, < 3.0)
|
||||||
google-cloud-errors (1.2.0)
|
google-cloud-errors (1.3.1)
|
||||||
google-cloud-storage (1.37.0)
|
google-cloud-storage (1.47.0)
|
||||||
addressable (~> 2.8)
|
addressable (~> 2.8)
|
||||||
digest-crc (~> 0.4)
|
digest-crc (~> 0.4)
|
||||||
google-apis-iamcredentials_v1 (~> 0.1)
|
google-apis-iamcredentials_v1 (~> 0.1)
|
||||||
google-apis-storage_v1 (~> 0.1)
|
google-apis-storage_v1 (~> 0.31.0)
|
||||||
google-cloud-core (~> 1.6)
|
google-cloud-core (~> 1.6)
|
||||||
googleauth (>= 0.16.2, < 2.a)
|
googleauth (>= 0.16.2, < 2.a)
|
||||||
mini_mime (~> 1.0)
|
mini_mime (~> 1.0)
|
||||||
googleauth (1.2.0)
|
googleauth (1.8.1)
|
||||||
faraday (>= 0.17.3, < 3.a)
|
faraday (>= 0.17.3, < 3.a)
|
||||||
jwt (>= 1.4, < 3.0)
|
jwt (>= 1.4, < 3.0)
|
||||||
memoist (~> 0.16)
|
|
||||||
multi_json (~> 1.11)
|
multi_json (~> 1.11)
|
||||||
os (>= 0.9, < 2.0)
|
os (>= 0.9, < 2.0)
|
||||||
signet (>= 0.16, < 2.a)
|
signet (>= 0.16, < 2.a)
|
||||||
|
@ -149,37 +146,36 @@ GEM
|
||||||
http-cookie (1.0.5)
|
http-cookie (1.0.5)
|
||||||
domain_name (~> 0.5)
|
domain_name (~> 0.5)
|
||||||
httpclient (2.8.3)
|
httpclient (2.8.3)
|
||||||
jmespath (1.6.1)
|
jmespath (1.6.2)
|
||||||
json (2.6.2)
|
json (2.7.1)
|
||||||
jwt (2.4.1)
|
jwt (2.7.1)
|
||||||
memoist (0.16.2)
|
mini_magick (4.12.0)
|
||||||
mini_magick (4.11.0)
|
mini_mime (1.1.5)
|
||||||
mini_mime (1.1.2)
|
|
||||||
multi_json (1.15.0)
|
multi_json (1.15.0)
|
||||||
multipart-post (2.0.0)
|
multipart-post (2.4.0)
|
||||||
nanaimo (0.3.0)
|
nanaimo (0.3.0)
|
||||||
naturally (2.2.1)
|
naturally (2.2.1)
|
||||||
optparse (0.1.1)
|
optparse (0.1.1)
|
||||||
os (1.1.4)
|
os (1.1.4)
|
||||||
plist (3.6.0)
|
plist (3.7.1)
|
||||||
public_suffix (4.0.7)
|
public_suffix (4.0.7)
|
||||||
rake (13.0.6)
|
rake (13.1.0)
|
||||||
representable (3.2.0)
|
representable (3.2.0)
|
||||||
declarative (< 0.1.0)
|
declarative (< 0.1.0)
|
||||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||||
uber (< 0.2.0)
|
uber (< 0.2.0)
|
||||||
retriable (3.1.2)
|
retriable (3.1.2)
|
||||||
rexml (3.2.5)
|
rexml (3.2.6)
|
||||||
rouge (2.0.7)
|
rouge (2.0.7)
|
||||||
ruby2_keywords (0.0.5)
|
ruby2_keywords (0.0.5)
|
||||||
rubyzip (2.3.2)
|
rubyzip (2.3.2)
|
||||||
security (0.1.3)
|
security (0.1.3)
|
||||||
signet (0.17.0)
|
signet (0.19.0)
|
||||||
addressable (~> 2.8)
|
addressable (~> 2.8)
|
||||||
faraday (>= 0.17.5, < 3.a)
|
faraday (>= 0.17.5, < 3.a)
|
||||||
jwt (>= 1.5, < 3.0)
|
jwt (>= 1.5, < 3.0)
|
||||||
multi_json (~> 1.10)
|
multi_json (~> 1.10)
|
||||||
simctl (1.6.8)
|
simctl (1.6.10)
|
||||||
CFPropertyList
|
CFPropertyList
|
||||||
naturally
|
naturally
|
||||||
terminal-notifier (2.0.0)
|
terminal-notifier (2.0.0)
|
||||||
|
@ -187,17 +183,13 @@ GEM
|
||||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||||
trailblazer-option (0.1.2)
|
trailblazer-option (0.1.2)
|
||||||
tty-cursor (0.7.1)
|
tty-cursor (0.7.1)
|
||||||
tty-screen (0.8.1)
|
tty-screen (0.8.2)
|
||||||
tty-spinner (0.9.3)
|
tty-spinner (0.9.3)
|
||||||
tty-cursor (~> 0.7)
|
tty-cursor (~> 0.7)
|
||||||
uber (0.1.0)
|
uber (0.1.0)
|
||||||
unf (0.1.4)
|
|
||||||
unf_ext
|
|
||||||
unf_ext (0.0.8.2)
|
|
||||||
unicode-display_width (1.8.0)
|
unicode-display_width (1.8.0)
|
||||||
webrick (1.7.0)
|
|
||||||
word_wrap (1.0.0)
|
word_wrap (1.0.0)
|
||||||
xcodeproj (1.22.0)
|
xcodeproj (1.24.0)
|
||||||
CFPropertyList (>= 2.3.3, < 4.0)
|
CFPropertyList (>= 2.3.3, < 4.0)
|
||||||
atomos (~> 0.1.3)
|
atomos (~> 0.1.3)
|
||||||
claide (>= 1.0.2, < 2.0)
|
claide (>= 1.0.2, < 2.0)
|
||||||
|
|
|
@ -10,7 +10,7 @@ buildscript {
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.23.5"
|
classpath "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.23.5"
|
||||||
classpath "commons-httpclient:commons-httpclient:3.1@jar" // remove after entire switch to lib v2
|
classpath "commons-httpclient:commons-httpclient:3.1@jar" // remove after entire switch to lib v2
|
||||||
classpath 'com.karumi:shot:5.14.1'
|
classpath 'com.karumi:shot:6.1.0'
|
||||||
classpath "org.jacoco:org.jacoco.core:$jacoco_version"
|
classpath "org.jacoco:org.jacoco.core:$jacoco_version"
|
||||||
classpath "org.jacoco:org.jacoco.report:$jacoco_version"
|
classpath "org.jacoco:org.jacoco.report:$jacoco_version"
|
||||||
classpath "org.jacoco:org.jacoco.agent:$jacoco_version"
|
classpath "org.jacoco:org.jacoco.agent:$jacoco_version"
|
||||||
|
@ -291,7 +291,7 @@ dependencies {
|
||||||
qaImplementation project(':appscan')
|
qaImplementation project(':appscan')
|
||||||
|
|
||||||
spotbugsPlugins 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.12.0'
|
spotbugsPlugins 'com.h3xstream.findsecbugs:findsecbugs-plugin:1.12.0'
|
||||||
spotbugsPlugins 'com.mebigfatguy.fb-contrib:fb-contrib:7.6.0'
|
spotbugsPlugins 'com.mebigfatguy.fb-contrib:fb-contrib:7.6.4'
|
||||||
|
|
||||||
implementation "com.google.dagger:dagger:$daggerVersion"
|
implementation "com.google.dagger:dagger:$daggerVersion"
|
||||||
implementation "com.google.dagger:dagger-android:$daggerVersion"
|
implementation "com.google.dagger:dagger-android:$daggerVersion"
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
|
@ -0,0 +1,89 @@
|
||||||
|
/*
|
||||||
|
* Nextcloud Android client application
|
||||||
|
*
|
||||||
|
* @author Alper Ozturk
|
||||||
|
* Copyright (C) 2024 Alper Ozturk
|
||||||
|
* Copyright (C) 2024 Nextcloud GmbH
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero 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 Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.nextcloud.extensions
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
|
import com.nextcloud.test.model.OtherTestData
|
||||||
|
import com.nextcloud.test.model.TestData
|
||||||
|
import com.nextcloud.test.model.TestDataParcelable
|
||||||
|
import com.nextcloud.utils.extensions.getParcelableArgument
|
||||||
|
import com.nextcloud.utils.extensions.getSerializableArgument
|
||||||
|
import org.junit.Assert.assertEquals
|
||||||
|
import org.junit.Assert.assertNull
|
||||||
|
import org.junit.Test
|
||||||
|
import org.junit.runner.RunWith
|
||||||
|
|
||||||
|
@Suppress("FunctionNaming")
|
||||||
|
@RunWith(AndroidJUnit4::class)
|
||||||
|
class BundleExtensionTests {
|
||||||
|
|
||||||
|
private val key = "testDataKey"
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun test_get_serializable_argument_when_given_valid_bundle_should_return_expected_data() {
|
||||||
|
val bundle = Bundle()
|
||||||
|
val testObject = TestData("Hello")
|
||||||
|
bundle.putSerializable(key, testObject)
|
||||||
|
val retrievedObject = bundle.getSerializableArgument(key, TestData::class.java)
|
||||||
|
assertEquals(testObject, retrievedObject)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun test_get_serializable_argument_when_given_valid_bundle_and_wrong_class_type_should_return_null() {
|
||||||
|
val bundle = Bundle()
|
||||||
|
val testObject = TestData("Hello")
|
||||||
|
bundle.putSerializable(key, testObject)
|
||||||
|
val retrievedObject = bundle.getSerializableArgument(key, Array<String>::class.java)
|
||||||
|
assertNull(retrievedObject)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun test_get_parcelable_argument_when_given_valid_bundle_and_wrong_class_type_should_return_null() {
|
||||||
|
val bundle = Bundle()
|
||||||
|
val testObject = TestData("Hello")
|
||||||
|
bundle.putSerializable(key, testObject)
|
||||||
|
val retrievedObject = bundle.getParcelableArgument(key, OtherTestData::class.java)
|
||||||
|
assertNull(retrievedObject)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun test_get_parcelable_argument_when_given_valid_bundle_should_return_expected_data() {
|
||||||
|
val bundle = Bundle()
|
||||||
|
val testObject = TestDataParcelable("Hello")
|
||||||
|
bundle.putParcelable(key, testObject)
|
||||||
|
val retrievedObject = bundle.getParcelableArgument(key, TestDataParcelable::class.java)
|
||||||
|
assertEquals(testObject, retrievedObject)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun test_get_serializable_argument_when_given_null_bundle_should_return_null() {
|
||||||
|
val retrievedObject = (null as Bundle?).getSerializableArgument(key, TestData::class.java)
|
||||||
|
assertNull(retrievedObject)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun test_get_parcelable_argument_when_given_null_bundle_should_return_null() {
|
||||||
|
val retrievedObject = (null as Bundle?).getParcelableArgument(key, TestDataParcelable::class.java)
|
||||||
|
assertNull(retrievedObject)
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,89 @@
|
||||||
|
/*
|
||||||
|
* Nextcloud Android client application
|
||||||
|
*
|
||||||
|
* @author Alper Ozturk
|
||||||
|
* Copyright (C) 2024 Alper Ozturk
|
||||||
|
* Copyright (C) 2024 Nextcloud GmbH
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero 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 Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.nextcloud.extensions
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
|
import com.nextcloud.test.model.OtherTestData
|
||||||
|
import com.nextcloud.test.model.TestData
|
||||||
|
import com.nextcloud.test.model.TestDataParcelable
|
||||||
|
import com.nextcloud.utils.extensions.getParcelableArgument
|
||||||
|
import com.nextcloud.utils.extensions.getSerializableArgument
|
||||||
|
import org.junit.Assert.assertEquals
|
||||||
|
import org.junit.Assert.assertNull
|
||||||
|
import org.junit.Test
|
||||||
|
import org.junit.runner.RunWith
|
||||||
|
|
||||||
|
@Suppress("FunctionNaming")
|
||||||
|
@RunWith(AndroidJUnit4::class)
|
||||||
|
class IntentExtensionTests {
|
||||||
|
|
||||||
|
private val key = "testDataKey"
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun test_get_serializable_argument_when_given_valid_intent_should_return_expected_data() {
|
||||||
|
val intent = Intent()
|
||||||
|
val testObject = TestData("Hello")
|
||||||
|
intent.putExtra(key, testObject)
|
||||||
|
val retrievedObject = intent.getSerializableArgument(key, TestData::class.java)
|
||||||
|
assertEquals(testObject, retrievedObject)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun test_get_serializable_argument_when_given_valid_intent_and_wrong_class_type_should_return_null() {
|
||||||
|
val intent = Intent()
|
||||||
|
val testObject = TestData("Hello")
|
||||||
|
intent.putExtra(key, testObject)
|
||||||
|
val retrievedObject = intent.getSerializableArgument(key, Array<String>::class.java)
|
||||||
|
assertNull(retrievedObject)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun test_get_parcelable_argument_when_given_valid_intent_and_wrong_class_type_should_return_null() {
|
||||||
|
val intent = Intent()
|
||||||
|
val testObject = TestData("Hello")
|
||||||
|
intent.putExtra(key, testObject)
|
||||||
|
val retrievedObject = intent.getParcelableArgument(key, OtherTestData::class.java)
|
||||||
|
assertNull(retrievedObject)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun test_get_parcelable_argument_when_given_valid_intent_should_return_expected_data() {
|
||||||
|
val intent = Intent()
|
||||||
|
val testObject = TestDataParcelable("Hello")
|
||||||
|
intent.putExtra(key, testObject)
|
||||||
|
val retrievedObject = intent.getParcelableArgument(key, TestDataParcelable::class.java)
|
||||||
|
assertEquals(testObject, retrievedObject)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun test_get_serializable_argument_when_given_null_intent_should_return_null() {
|
||||||
|
val retrievedObject = (null as Intent?).getSerializableArgument(key, TestData::class.java)
|
||||||
|
assertNull(retrievedObject)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun test_get_parcelable_argument_when_given_null_intent_should_return_null() {
|
||||||
|
val retrievedObject = (null as Intent?).getParcelableArgument(key, TestDataParcelable::class.java)
|
||||||
|
assertNull(retrievedObject)
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,54 @@
|
||||||
|
/*
|
||||||
|
* Nextcloud Android client application
|
||||||
|
*
|
||||||
|
* @author Alper Ozturk
|
||||||
|
* Copyright (C) 2024 Alper Ozturk
|
||||||
|
* Copyright (C) 2024 Nextcloud GmbH
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero 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 Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.nextcloud.test.model
|
||||||
|
|
||||||
|
import android.os.Parcel
|
||||||
|
import android.os.Parcelable
|
||||||
|
import kotlinx.parcelize.Parcelize
|
||||||
|
import java.io.Serializable
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
|
class OtherTestData : Parcelable
|
||||||
|
|
||||||
|
data class TestData(val message: String) : Serializable
|
||||||
|
|
||||||
|
data class TestDataParcelable(val message: String) : Parcelable {
|
||||||
|
constructor(parcel: Parcel) : this(parcel.readString() ?: "")
|
||||||
|
|
||||||
|
override fun writeToParcel(parcel: Parcel, flags: Int) {
|
||||||
|
parcel.writeString(message)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun describeContents(): Int {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object CREATOR : Parcelable.Creator<TestDataParcelable> {
|
||||||
|
override fun createFromParcel(parcel: Parcel): TestDataParcelable {
|
||||||
|
return TestDataParcelable(parcel)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun newArray(size: Int): Array<TestDataParcelable?> {
|
||||||
|
return arrayOfNulls(size)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -44,6 +44,8 @@ class FileDetailFragmentStaticServerIT : AbstractIT() {
|
||||||
var file = getFile("gps.jpg")
|
var file = getFile("gps.jpg")
|
||||||
val oCFile = OCFile("/").apply {
|
val oCFile = OCFile("/").apply {
|
||||||
storagePath = file.absolutePath
|
storagePath = file.absolutePath
|
||||||
|
fileId = 12
|
||||||
|
fileDataStorageManager.saveFile(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -81,7 +81,6 @@ class FileUploadHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("ComplexCondition")
|
|
||||||
fun retryFailedUploads(
|
fun retryFailedUploads(
|
||||||
uploadsStorageManager: UploadsStorageManager,
|
uploadsStorageManager: UploadsStorageManager,
|
||||||
connectivityService: ConnectivityService,
|
connectivityService: ConnectivityService,
|
||||||
|
@ -92,7 +91,44 @@ class FileUploadHelper {
|
||||||
if (failedUploads == null || failedUploads.isEmpty()) {
|
if (failedUploads == null || failedUploads.isEmpty()) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
retryUploads(
|
||||||
|
uploadsStorageManager,
|
||||||
|
connectivityService,
|
||||||
|
accountManager,
|
||||||
|
powerManagementService,
|
||||||
|
failedUploads
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun retryCancelledUploads(
|
||||||
|
uploadsStorageManager: UploadsStorageManager,
|
||||||
|
connectivityService: ConnectivityService,
|
||||||
|
accountManager: UserAccountManager,
|
||||||
|
powerManagementService: PowerManagementService
|
||||||
|
): Boolean {
|
||||||
|
val cancelledUploads = uploadsStorageManager.cancelledUploadsForCurrentAccount
|
||||||
|
if (cancelledUploads == null || cancelledUploads.isEmpty()) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
return retryUploads(
|
||||||
|
uploadsStorageManager,
|
||||||
|
connectivityService,
|
||||||
|
accountManager,
|
||||||
|
powerManagementService,
|
||||||
|
cancelledUploads
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Suppress("ComplexCondition")
|
||||||
|
private fun retryUploads(
|
||||||
|
uploadsStorageManager: UploadsStorageManager,
|
||||||
|
connectivityService: ConnectivityService,
|
||||||
|
accountManager: UserAccountManager,
|
||||||
|
powerManagementService: PowerManagementService,
|
||||||
|
failedUploads: Array<OCUpload>
|
||||||
|
): Boolean {
|
||||||
|
var showNotExistMessage = false
|
||||||
val (gotNetwork, _, gotWifi) = connectivityService.connectivity
|
val (gotNetwork, _, gotWifi) = connectivityService.connectivity
|
||||||
val batteryStatus = powerManagementService.battery
|
val batteryStatus = powerManagementService.battery
|
||||||
val charging = batteryStatus.isCharging || batteryStatus.isFull
|
val charging = batteryStatus.isCharging || batteryStatus.isFull
|
||||||
|
@ -105,6 +141,8 @@ class FileUploadHelper {
|
||||||
}
|
}
|
||||||
val isDeleted = !File(failedUpload.localPath).exists()
|
val isDeleted = !File(failedUpload.localPath).exists()
|
||||||
if (isDeleted) {
|
if (isDeleted) {
|
||||||
|
showNotExistMessage = true
|
||||||
|
|
||||||
// 2A. for deleted files, mark as permanently failed
|
// 2A. for deleted files, mark as permanently failed
|
||||||
if (failedUpload.lastResult != UploadResult.FILE_NOT_FOUND) {
|
if (failedUpload.lastResult != UploadResult.FILE_NOT_FOUND) {
|
||||||
failedUpload.lastResult = UploadResult.FILE_NOT_FOUND
|
failedUpload.lastResult = UploadResult.FILE_NOT_FOUND
|
||||||
|
@ -117,6 +155,8 @@ class FileUploadHelper {
|
||||||
retryUpload(failedUpload, uploadUser.get())
|
retryUpload(failedUpload, uploadUser.get())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return showNotExistMessage
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("LongParameterList")
|
@Suppress("LongParameterList")
|
||||||
|
@ -146,7 +186,7 @@ class FileUploadHelper {
|
||||||
backgroundJobManager.startFilesUploadJob(user)
|
backgroundJobManager.startFilesUploadJob(user)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun cancelFileUpload(remotePath: String, accountName: String) {
|
fun removeFileUpload(remotePath: String, accountName: String) {
|
||||||
try {
|
try {
|
||||||
val user = accountManager.getUser(accountName).get()
|
val user = accountManager.getUser(accountName).get()
|
||||||
|
|
||||||
|
@ -160,6 +200,14 @@ class FileUploadHelper {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun cancelFileUpload(remotePath: String, accountName: String) {
|
||||||
|
uploadsStorageManager.getUploadByRemotePath(remotePath).run {
|
||||||
|
removeFileUpload(remotePath, accountName)
|
||||||
|
uploadStatus = UploadStatus.UPLOAD_CANCELLED
|
||||||
|
uploadsStorageManager.storeUpload(this)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun cancelAndRestartUploadJob(user: User) {
|
fun cancelAndRestartUploadJob(user: User) {
|
||||||
backgroundJobManager.run {
|
backgroundJobManager.run {
|
||||||
cancelFilesUploadJob(user)
|
cancelFilesUploadJob(user)
|
||||||
|
|
|
@ -143,6 +143,8 @@ class FileUploadWorker(
|
||||||
val accountName = inputData.getString(ACCOUNT) ?: return Result.failure()
|
val accountName = inputData.getString(ACCOUNT) ?: return Result.failure()
|
||||||
var currentPage = uploadsStorageManager.getCurrentAndPendingUploadsForAccountPageAscById(-1, accountName)
|
var currentPage = uploadsStorageManager.getCurrentAndPendingUploadsForAccountPageAscById(-1, accountName)
|
||||||
|
|
||||||
|
notificationManager.dismissWorkerNotifications()
|
||||||
|
|
||||||
while (currentPage.isNotEmpty() && !isStopped) {
|
while (currentPage.isNotEmpty() && !isStopped) {
|
||||||
if (preferences.isGlobalUploadPaused) {
|
if (preferences.isGlobalUploadPaused) {
|
||||||
Log_OC.d(TAG, "Upload is paused, skip uploading files!")
|
Log_OC.d(TAG, "Upload is paused, skip uploading files!")
|
||||||
|
|
|
@ -24,22 +24,49 @@ package com.nextcloud.utils.extensions
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
|
import com.owncloud.android.lib.common.utils.Log_OC
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
|
|
||||||
fun <T : Serializable?> Bundle.getSerializableArgument(key: String, type: Class<T>): T? {
|
@Suppress("TopLevelPropertyNaming")
|
||||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
private const val tag = "BundleExtension"
|
||||||
this.getSerializable(key, type)
|
|
||||||
} else {
|
fun <T : Serializable?> Bundle?.getSerializableArgument(key: String, type: Class<T>): T? {
|
||||||
@Suppress("UNCHECKED_CAST", "DEPRECATION")
|
if (this == null) {
|
||||||
this.getSerializable(key) as T
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
return try {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
|
this.getSerializable(key, type)
|
||||||
|
} else {
|
||||||
|
@Suppress("UNCHECKED_CAST", "DEPRECATION")
|
||||||
|
if (type.isInstance(this.getSerializable(key))) {
|
||||||
|
this.getSerializable(key) as T
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e: ClassCastException) {
|
||||||
|
Log_OC.e(tag, e.localizedMessage)
|
||||||
|
null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <T : Parcelable?> Bundle.getParcelableArgument(key: String, type: Class<T>): T? {
|
fun <T : Parcelable?> Bundle?.getParcelableArgument(key: String, type: Class<T>): T? {
|
||||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
if (this == null) {
|
||||||
this.getParcelable(key, type)
|
return null
|
||||||
} else {
|
}
|
||||||
@Suppress("DEPRECATION")
|
|
||||||
this.getParcelable(key)
|
return try {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
|
this.getParcelable(key, type)
|
||||||
|
} else {
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
|
this.getParcelable(key)
|
||||||
|
}
|
||||||
|
} catch (e: ClassCastException) {
|
||||||
|
Log_OC.e(tag, e.localizedMessage)
|
||||||
|
e.printStackTrace()
|
||||||
|
null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,22 +24,48 @@ package com.nextcloud.utils.extensions
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
|
import com.owncloud.android.lib.common.utils.Log_OC
|
||||||
import java.io.Serializable
|
import java.io.Serializable
|
||||||
|
|
||||||
fun <T : Serializable?> Intent.getSerializableArgument(key: String, type: Class<T>): T? {
|
@Suppress("TopLevelPropertyNaming")
|
||||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
private const val tag = "IntentExtension"
|
||||||
this.getSerializableExtra(key, type)
|
|
||||||
} else {
|
fun <T : Serializable?> Intent?.getSerializableArgument(key: String, type: Class<T>): T? {
|
||||||
@Suppress("UNCHECKED_CAST", "DEPRECATION")
|
if (this == null) {
|
||||||
this.getSerializableExtra(key) as T
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
return try {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
|
this.getSerializableExtra(key, type)
|
||||||
|
} else {
|
||||||
|
@Suppress("UNCHECKED_CAST", "DEPRECATION")
|
||||||
|
if (type.isInstance(this.getSerializableExtra(key))) {
|
||||||
|
this.getSerializableExtra(key) as T
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (e: ClassCastException) {
|
||||||
|
Log_OC.e(tag, e.localizedMessage)
|
||||||
|
null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <T : Parcelable?> Intent.getParcelableArgument(key: String, type: Class<T>): T? {
|
fun <T : Parcelable?> Intent?.getParcelableArgument(key: String, type: Class<T>): T? {
|
||||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
if (this == null) {
|
||||||
this.getParcelableExtra(key, type)
|
return null
|
||||||
} else {
|
}
|
||||||
@Suppress("DEPRECATION")
|
|
||||||
this.getParcelableExtra(key)
|
return try {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
|
this.getParcelableExtra(key, type)
|
||||||
|
} else {
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
|
this.getParcelableExtra(key)
|
||||||
|
}
|
||||||
|
} catch (e: ClassCastException) {
|
||||||
|
Log_OC.e(tag, e.localizedMessage)
|
||||||
|
null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -569,7 +569,7 @@ public class UploadsStorageManager extends Observable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public OCUpload[] getCurrentAndPendingUploadsForAccount(final @NonNull String accountName) {
|
public OCUpload[] getCurrentAndPendingUploadsForAccount(final @NonNull String accountName) {
|
||||||
return getUploads(ProviderTableMeta.UPLOADS_STATUS + "==" + UploadStatus.UPLOAD_IN_PROGRESS.value +
|
return getUploads("( " + ProviderTableMeta.UPLOADS_STATUS + "==" + UploadStatus.UPLOAD_IN_PROGRESS.value +
|
||||||
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
|
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
|
||||||
"==" + UploadResult.DELAYED_FOR_WIFI.getValue() +
|
"==" + UploadResult.DELAYED_FOR_WIFI.getValue() +
|
||||||
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
|
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
|
||||||
|
@ -578,7 +578,7 @@ public class UploadsStorageManager extends Observable {
|
||||||
"==" + UploadResult.DELAYED_FOR_CHARGING.getValue() +
|
"==" + UploadResult.DELAYED_FOR_CHARGING.getValue() +
|
||||||
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
|
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
|
||||||
"==" + UploadResult.DELAYED_IN_POWER_SAVE_MODE.getValue() +
|
"==" + UploadResult.DELAYED_IN_POWER_SAVE_MODE.getValue() +
|
||||||
" AND " + ProviderTableMeta.UPLOADS_ACCOUNT_NAME + "== ?",
|
" ) AND " + ProviderTableMeta.UPLOADS_ACCOUNT_NAME + "== ?",
|
||||||
accountName);
|
accountName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -588,7 +588,7 @@ public class UploadsStorageManager extends Observable {
|
||||||
* If <code>afterId</code> is -1, returns the first page
|
* If <code>afterId</code> is -1, returns the first page
|
||||||
*/
|
*/
|
||||||
public List<OCUpload> getCurrentAndPendingUploadsForAccountPageAscById(final long afterId, final @NonNull String accountName) {
|
public List<OCUpload> getCurrentAndPendingUploadsForAccountPageAscById(final long afterId, final @NonNull String accountName) {
|
||||||
final String selection = ProviderTableMeta.UPLOADS_STATUS + "==" + UploadStatus.UPLOAD_IN_PROGRESS.value +
|
final String selection = "( " + ProviderTableMeta.UPLOADS_STATUS + "==" + UploadStatus.UPLOAD_IN_PROGRESS.value +
|
||||||
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
|
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
|
||||||
"==" + UploadResult.DELAYED_FOR_WIFI.getValue() +
|
"==" + UploadResult.DELAYED_FOR_WIFI.getValue() +
|
||||||
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
|
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
|
||||||
|
@ -597,7 +597,7 @@ public class UploadsStorageManager extends Observable {
|
||||||
"==" + UploadResult.DELAYED_FOR_CHARGING.getValue() +
|
"==" + UploadResult.DELAYED_FOR_CHARGING.getValue() +
|
||||||
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
|
" OR " + ProviderTableMeta.UPLOADS_LAST_RESULT +
|
||||||
"==" + UploadResult.DELAYED_IN_POWER_SAVE_MODE.getValue() +
|
"==" + UploadResult.DELAYED_IN_POWER_SAVE_MODE.getValue() +
|
||||||
" AND " + ProviderTableMeta.UPLOADS_ACCOUNT_NAME + "== ?";
|
" ) AND " + ProviderTableMeta.UPLOADS_ACCOUNT_NAME + "== ?";
|
||||||
return getUploadPage(afterId, false, selection, accountName);
|
return getUploadPage(afterId, false, selection, accountName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -630,6 +630,13 @@ public class UploadsStorageManager extends Observable {
|
||||||
ProviderTableMeta.UPLOADS_ACCOUNT_NAME + "== ?", user.getAccountName());
|
ProviderTableMeta.UPLOADS_ACCOUNT_NAME + "== ?", user.getAccountName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public OCUpload[] getCancelledUploadsForCurrentAccount() {
|
||||||
|
User user = currentAccountProvider.getUser();
|
||||||
|
|
||||||
|
return getUploads(ProviderTableMeta.UPLOADS_STATUS + "==" + UploadStatus.UPLOAD_CANCELLED.value + AND +
|
||||||
|
ProviderTableMeta.UPLOADS_ACCOUNT_NAME + "== ?", user.getAccountName());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all uploads which where successfully completed.
|
* Get all uploads which where successfully completed.
|
||||||
*/
|
*/
|
||||||
|
@ -700,6 +707,20 @@ public class UploadsStorageManager extends Observable {
|
||||||
return deleted;
|
return deleted;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void clearCancelledUploadsForCurrentAccount() {
|
||||||
|
User user = currentAccountProvider.getUser();
|
||||||
|
final long deleted = getDB().delete(
|
||||||
|
ProviderTableMeta.CONTENT_URI_UPLOADS,
|
||||||
|
ProviderTableMeta.UPLOADS_STATUS + "==" + UploadStatus.UPLOAD_CANCELLED.value + AND +
|
||||||
|
ProviderTableMeta.UPLOADS_ACCOUNT_NAME + "== ?", new String[]{user.getAccountName()}
|
||||||
|
);
|
||||||
|
|
||||||
|
Log_OC.d(TAG, "delete all cancelled uploads");
|
||||||
|
if (deleted > 0) {
|
||||||
|
notifyObserversNow();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public long clearSuccessfulUploads() {
|
public long clearSuccessfulUploads() {
|
||||||
User user = currentAccountProvider.getUser();
|
User user = currentAccountProvider.getUser();
|
||||||
final long deleted = getDB().delete(
|
final long deleted = getDB().delete(
|
||||||
|
@ -851,7 +872,12 @@ public class UploadsStorageManager extends Observable {
|
||||||
/**
|
/**
|
||||||
* Upload was successful.
|
* Upload was successful.
|
||||||
*/
|
*/
|
||||||
UPLOAD_SUCCEEDED(2);
|
UPLOAD_SUCCEEDED(2),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Upload was cancelled by the user.
|
||||||
|
*/
|
||||||
|
UPLOAD_CANCELLED(3);
|
||||||
|
|
||||||
private final int value;
|
private final int value;
|
||||||
|
|
||||||
|
@ -867,6 +893,8 @@ public class UploadsStorageManager extends Observable {
|
||||||
return UPLOAD_FAILED;
|
return UPLOAD_FAILED;
|
||||||
case 2:
|
case 2:
|
||||||
return UPLOAD_SUCCEEDED;
|
return UPLOAD_SUCCEEDED;
|
||||||
|
case 3:
|
||||||
|
return UPLOAD_CANCELLED;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -390,6 +390,10 @@ public class OCUpload implements Parcelable {
|
||||||
return this.useWifiOnly;
|
return this.useWifiOnly;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean exists() {
|
||||||
|
return new File(localPath).exists();
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isWhileChargingOnly() {
|
public boolean isWhileChargingOnly() {
|
||||||
return this.whileChargingOnly;
|
return this.whileChargingOnly;
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,7 +94,7 @@ class ConflictsResolveActivity : FileActivity(), OnConflictDecisionMadeListener
|
||||||
Decision.CANCEL -> {}
|
Decision.CANCEL -> {}
|
||||||
Decision.KEEP_LOCAL -> {
|
Decision.KEEP_LOCAL -> {
|
||||||
upload?.let {
|
upload?.let {
|
||||||
FileUploadHelper.instance().cancelFileUpload(it.remotePath, it.accountName)
|
FileUploadHelper.instance().removeFileUpload(it.remotePath, it.accountName)
|
||||||
}
|
}
|
||||||
FileUploadHelper.instance().uploadUpdatedFile(
|
FileUploadHelper.instance().uploadUpdatedFile(
|
||||||
user,
|
user,
|
||||||
|
@ -106,7 +106,7 @@ class ConflictsResolveActivity : FileActivity(), OnConflictDecisionMadeListener
|
||||||
|
|
||||||
Decision.KEEP_BOTH -> {
|
Decision.KEEP_BOTH -> {
|
||||||
upload?.let {
|
upload?.let {
|
||||||
FileUploadHelper.instance().cancelFileUpload(it.remotePath, it.accountName)
|
FileUploadHelper.instance().removeFileUpload(it.remotePath, it.accountName)
|
||||||
}
|
}
|
||||||
FileUploadHelper.instance().uploadUpdatedFile(
|
FileUploadHelper.instance().uploadUpdatedFile(
|
||||||
user,
|
user,
|
||||||
|
@ -129,7 +129,7 @@ class ConflictsResolveActivity : FileActivity(), OnConflictDecisionMadeListener
|
||||||
}
|
}
|
||||||
|
|
||||||
upload?.let {
|
upload?.let {
|
||||||
FileUploadHelper.instance().cancelFileUpload(it.remotePath, it.accountName)
|
FileUploadHelper.instance().removeFileUpload(it.remotePath, it.accountName)
|
||||||
|
|
||||||
UploadNotificationManager(
|
UploadNotificationManager(
|
||||||
applicationContext,
|
applicationContext,
|
||||||
|
|
|
@ -2486,7 +2486,12 @@ public class FileDisplayActivity extends FileActivity
|
||||||
* visibility earlier using {@link #setSortListGroup(boolean, boolean)}
|
* visibility earlier using {@link #setSortListGroup(boolean, boolean)}
|
||||||
*/
|
*/
|
||||||
private void popSortListGroupVisibility() {
|
private void popSortListGroupVisibility() {
|
||||||
boolean popped = previousSortGroupState.pop();
|
showSortListGroup(false);
|
||||||
showSortListGroup(popped);
|
|
||||||
|
if (previousSortGroupState.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
previousSortGroupState.pop();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,6 +74,7 @@ import com.owncloud.android.lib.resources.shares.ShareeUser;
|
||||||
import com.owncloud.android.operations.RefreshFolderOperation;
|
import com.owncloud.android.operations.RefreshFolderOperation;
|
||||||
import com.owncloud.android.operations.RemoteOperationFailedException;
|
import com.owncloud.android.operations.RemoteOperationFailedException;
|
||||||
import com.owncloud.android.ui.activity.ComponentsGetter;
|
import com.owncloud.android.ui.activity.ComponentsGetter;
|
||||||
|
import com.owncloud.android.ui.activity.FileDisplayActivity;
|
||||||
import com.owncloud.android.ui.fragment.SearchType;
|
import com.owncloud.android.ui.fragment.SearchType;
|
||||||
import com.owncloud.android.ui.interfaces.OCFileListFragmentInterface;
|
import com.owncloud.android.ui.interfaces.OCFileListFragmentInterface;
|
||||||
import com.owncloud.android.ui.preview.PreviewTextFragment;
|
import com.owncloud.android.ui.preview.PreviewTextFragment;
|
||||||
|
@ -160,6 +161,10 @@ public class OCFileListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
|
||||||
this.gridView = gridView;
|
this.gridView = gridView;
|
||||||
mStorageManager = transferServiceGetter.getStorageManager();
|
mStorageManager = transferServiceGetter.getStorageManager();
|
||||||
|
|
||||||
|
if (activity instanceof FileDisplayActivity) {
|
||||||
|
((FileDisplayActivity) activity).showSortListGroup(true);
|
||||||
|
}
|
||||||
|
|
||||||
if (mStorageManager == null) {
|
if (mStorageManager == null) {
|
||||||
mStorageManager = new FileDataStorageManager(user, activity.getContentResolver());
|
mStorageManager = new FileDataStorageManager(user, activity.getContentResolver());
|
||||||
}
|
}
|
||||||
|
|
|
@ -122,32 +122,34 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
|
||||||
|
|
||||||
switch (group.type) {
|
switch (group.type) {
|
||||||
case CURRENT, FINISHED -> headerViewHolder.binding.uploadListAction.setImageResource(R.drawable.ic_close);
|
case CURRENT, FINISHED -> headerViewHolder.binding.uploadListAction.setImageResource(R.drawable.ic_close);
|
||||||
case FAILED -> headerViewHolder.binding.uploadListAction.setImageResource(R.drawable.ic_dots_vertical);
|
case CANCELLED, FAILED ->
|
||||||
|
headerViewHolder.binding.uploadListAction.setImageResource(R.drawable.ic_dots_vertical);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
headerViewHolder.binding.uploadListAction.setOnClickListener(v -> {
|
headerViewHolder.binding.uploadListAction.setOnClickListener(v -> {
|
||||||
switch (group.type) {
|
switch (group.type) {
|
||||||
case CURRENT -> {
|
case CURRENT -> {
|
||||||
// cancel all current uploads
|
|
||||||
for (OCUpload upload : group.getItems()) {
|
for (OCUpload upload : group.getItems()) {
|
||||||
uploadHelper.cancelFileUpload(upload.getRemotePath(), upload.getAccountName());
|
uploadHelper.cancelFileUpload(upload.getRemotePath(), upload.getAccountName());
|
||||||
}
|
}
|
||||||
loadUploadItemsFromDb();
|
loadUploadItemsFromDb();
|
||||||
}
|
}
|
||||||
case FINISHED -> {
|
case FINISHED -> {
|
||||||
// clear successfully uploaded section
|
|
||||||
uploadsStorageManager.clearSuccessfulUploads();
|
uploadsStorageManager.clearSuccessfulUploads();
|
||||||
loadUploadItemsFromDb();
|
loadUploadItemsFromDb();
|
||||||
}
|
}
|
||||||
case FAILED -> {
|
case FAILED -> {
|
||||||
// show popup with option clear or retry filed uploads
|
showFailedPopupMenu(headerViewHolder);
|
||||||
createFailedPopupMenu(headerViewHolder);
|
}
|
||||||
|
case CANCELLED -> {
|
||||||
|
showCancelledPopupMenu(headerViewHolder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createFailedPopupMenu(HeaderViewHolder headerViewHolder) {
|
private void showFailedPopupMenu(HeaderViewHolder headerViewHolder) {
|
||||||
PopupMenu failedPopup = new PopupMenu(MainApp.getAppContext(), headerViewHolder.binding.uploadListAction);
|
PopupMenu failedPopup = new PopupMenu(MainApp.getAppContext(), headerViewHolder.binding.uploadListAction);
|
||||||
failedPopup.inflate(R.menu.upload_list_failed_options);
|
failedPopup.inflate(R.menu.upload_list_failed_options);
|
||||||
failedPopup.setOnMenuItemClickListener(i -> {
|
failedPopup.setOnMenuItemClickListener(i -> {
|
||||||
|
@ -173,6 +175,47 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
|
||||||
failedPopup.show();
|
failedPopup.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void showCancelledPopupMenu(HeaderViewHolder headerViewHolder) {
|
||||||
|
PopupMenu popup = new PopupMenu(MainApp.getAppContext(), headerViewHolder.binding.uploadListAction);
|
||||||
|
popup.inflate(R.menu.upload_list_cancelled_options);
|
||||||
|
|
||||||
|
popup.setOnMenuItemClickListener(i -> {
|
||||||
|
int itemId = i.getItemId();
|
||||||
|
|
||||||
|
if (itemId == R.id.action_upload_list_cancelled_clear) {
|
||||||
|
uploadsStorageManager.clearCancelledUploadsForCurrentAccount();
|
||||||
|
loadUploadItemsFromDb();
|
||||||
|
} else if (itemId == R.id.action_upload_list_cancelled_resume) {
|
||||||
|
retryCancelledUploads();
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
|
popup.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void retryCancelledUploads() {
|
||||||
|
new Thread(() -> {
|
||||||
|
boolean showNotExistMessage = FileUploadHelper.Companion.instance().retryCancelledUploads(
|
||||||
|
uploadsStorageManager,
|
||||||
|
connectivityService,
|
||||||
|
accountManager,
|
||||||
|
powerManagementService);
|
||||||
|
|
||||||
|
parentActivity.runOnUiThread(this::loadUploadItemsFromDb);
|
||||||
|
parentActivity.runOnUiThread(() -> {
|
||||||
|
if (showNotExistMessage) {
|
||||||
|
showNotExistMessage();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}).start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showNotExistMessage() {
|
||||||
|
DisplayUtils.showSnackMessage(parentActivity, R.string.upload_action_file_not_exist_message);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindFooterViewHolder(SectionedViewHolder holder, int section) {
|
public void onBindFooterViewHolder(SectionedViewHolder holder, int section) {
|
||||||
// not needed
|
// not needed
|
||||||
|
@ -197,7 +240,7 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
|
||||||
this.clock = clock;
|
this.clock = clock;
|
||||||
this.viewThemeUtils = viewThemeUtils;
|
this.viewThemeUtils = viewThemeUtils;
|
||||||
|
|
||||||
uploadGroups = new UploadGroup[3];
|
uploadGroups = new UploadGroup[4];
|
||||||
|
|
||||||
shouldShowHeadersForEmptySections(false);
|
shouldShowHeadersForEmptySections(false);
|
||||||
|
|
||||||
|
@ -217,7 +260,16 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
uploadGroups[2] = new UploadGroup(Type.FINISHED,
|
uploadGroups[2] = new UploadGroup(Type.CANCELLED,
|
||||||
|
parentActivity.getString(
|
||||||
|
R.string.uploads_view_group_manually_cancelled_uploads)) {
|
||||||
|
@Override
|
||||||
|
public void refresh() {
|
||||||
|
fixAndSortItems(uploadsStorageManager.getCancelledUploadsForCurrentAccount());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
uploadGroups[3] = new UploadGroup(Type.FINISHED,
|
||||||
parentActivity.getString(R.string.uploads_view_group_finished_uploads)) {
|
parentActivity.getString(R.string.uploads_view_group_finished_uploads)) {
|
||||||
@Override
|
@Override
|
||||||
public void refresh() {
|
public void refresh() {
|
||||||
|
@ -324,11 +376,14 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
|
||||||
itemViewHolder.binding.uploadProgressBar.invalidate();
|
itemViewHolder.binding.uploadProgressBar.invalidate();
|
||||||
}
|
}
|
||||||
case UPLOAD_FAILED -> itemViewHolder.binding.uploadDate.setVisibility(View.GONE);
|
case UPLOAD_FAILED -> itemViewHolder.binding.uploadDate.setVisibility(View.GONE);
|
||||||
case UPLOAD_SUCCEEDED -> itemViewHolder.binding.uploadStatus.setVisibility(View.GONE);
|
case UPLOAD_SUCCEEDED, UPLOAD_CANCELLED ->
|
||||||
|
itemViewHolder.binding.uploadStatus.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
// show status if same file conflict or local file deleted
|
// show status if same file conflict or local file deleted or upload cancelled
|
||||||
if (item.getUploadStatus() == UploadStatus.UPLOAD_SUCCEEDED && item.getLastResult() != UploadResult.UPLOADED) {
|
if ((item.getUploadStatus() == UploadStatus.UPLOAD_SUCCEEDED && item.getLastResult() != UploadResult.UPLOADED)
|
||||||
|
|| item.getUploadStatus() == UploadStatus.UPLOAD_CANCELLED) {
|
||||||
|
|
||||||
itemViewHolder.binding.uploadStatus.setVisibility(View.VISIBLE);
|
itemViewHolder.binding.uploadStatus.setVisibility(View.VISIBLE);
|
||||||
itemViewHolder.binding.uploadDate.setVisibility(View.GONE);
|
itemViewHolder.binding.uploadDate.setVisibility(View.GONE);
|
||||||
itemViewHolder.binding.uploadFileSize.setVisibility(View.GONE);
|
itemViewHolder.binding.uploadFileSize.setVisibility(View.GONE);
|
||||||
|
@ -371,7 +426,9 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
|
||||||
itemViewHolder.binding.thumbnail.setImageResource(R.drawable.file);
|
itemViewHolder.binding.thumbnail.setImageResource(R.drawable.file);
|
||||||
|
|
||||||
// click on item
|
// click on item
|
||||||
if (item.getUploadStatus() == UploadStatus.UPLOAD_FAILED) {
|
if (item.getUploadStatus() == UploadStatus.UPLOAD_FAILED ||
|
||||||
|
item.getUploadStatus() == UploadStatus.UPLOAD_CANCELLED) {
|
||||||
|
|
||||||
final UploadResult uploadResult = item.getLastResult();
|
final UploadResult uploadResult = item.getLastResult();
|
||||||
itemViewHolder.binding.uploadListItemLayout.setOnClickListener(v -> {
|
itemViewHolder.binding.uploadListItemLayout.setOnClickListener(v -> {
|
||||||
if (uploadResult == UploadResult.CREDENTIAL_ERROR) {
|
if (uploadResult == UploadResult.CREDENTIAL_ERROR) {
|
||||||
|
@ -655,8 +712,16 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
|
||||||
status = parentActivity.getString(R.string.uploads_view_upload_status_succeeded);
|
status = parentActivity.getString(R.string.uploads_view_upload_status_succeeded);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case UPLOAD_FAILED -> status = getUploadFailedStatusText(upload.getLastResult());
|
case UPLOAD_FAILED -> {
|
||||||
default -> status = "Uncontrolled status: " + upload.getUploadStatus();
|
status = getUploadFailedStatusText(upload.getLastResult());
|
||||||
|
}
|
||||||
|
case UPLOAD_CANCELLED -> {
|
||||||
|
status = parentActivity.getString(R.string.upload_manually_cancelled);
|
||||||
|
}
|
||||||
|
|
||||||
|
default -> {
|
||||||
|
status = "Uncontrolled status: " + upload.getUploadStatus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
@ -857,7 +922,7 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
|
||||||
}
|
}
|
||||||
|
|
||||||
enum Type {
|
enum Type {
|
||||||
CURRENT, FINISHED, FAILED
|
CURRENT, FINISHED, FAILED, CANCELLED
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class UploadGroup implements Refresh {
|
abstract class UploadGroup implements Refresh {
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
android:layout_gravity="bottom"
|
android:layout_gravity="bottom"
|
||||||
android:clickable="false"
|
android:clickable="false"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
|
android:background="@color/appbar"
|
||||||
android:paddingLeft="@dimen/drawer_content_horizontal_padding"
|
android:paddingLeft="@dimen/drawer_content_horizontal_padding"
|
||||||
android:paddingTop="@dimen/standard_half_padding"
|
android:paddingTop="@dimen/standard_half_padding"
|
||||||
android:paddingRight="@dimen/drawer_content_horizontal_padding"
|
android:paddingRight="@dimen/drawer_content_horizontal_padding"
|
||||||
|
|
|
@ -127,4 +127,17 @@
|
||||||
android:orderInCategory="200"
|
android:orderInCategory="200"
|
||||||
android:title=""/>
|
android:title=""/>
|
||||||
</group>
|
</group>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
one more dummy element required
|
||||||
|
After making the quota details opaque
|
||||||
|
it is hiding some part of the element of the drawer above it
|
||||||
|
-->
|
||||||
|
<group>
|
||||||
|
<item
|
||||||
|
android:enabled="false"
|
||||||
|
android:orderInCategory="200"
|
||||||
|
android:title=""/>
|
||||||
|
</group>
|
||||||
|
|
||||||
</menu>
|
</menu>
|
||||||
|
|
32
app/src/main/res/menu/upload_list_cancelled_options.xml
Normal file
32
app/src/main/res/menu/upload_list_cancelled_options.xml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
Nextcloud Android client application
|
||||||
|
|
||||||
|
@author Jonas Mayer
|
||||||
|
Copyright (C) 2024 Jonas Mayer
|
||||||
|
Copyright (C) 2024 Nextcloud GmbH
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero 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 Affero General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
-->
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_upload_list_cancelled_resume"
|
||||||
|
android:title="@string/upload_action_cancelled_resume"
|
||||||
|
android:icon="@drawable/ic_sync" />
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/action_upload_list_cancelled_clear"
|
||||||
|
android:title="@string/upload_action_cancelled_clear"
|
||||||
|
android:icon="@drawable/ic_close" />
|
||||||
|
</menu>
|
|
@ -152,6 +152,7 @@
|
||||||
<string name="uploads_view_title">Uploads</string>
|
<string name="uploads_view_title">Uploads</string>
|
||||||
<string name="uploads_view_group_current_uploads">Current</string>
|
<string name="uploads_view_group_current_uploads">Current</string>
|
||||||
<string name="uploads_view_group_failed_uploads">Failed/pending restart</string>
|
<string name="uploads_view_group_failed_uploads">Failed/pending restart</string>
|
||||||
|
<string name="uploads_view_group_manually_cancelled_uploads">Cancelled</string>
|
||||||
<string name="uploads_view_group_finished_uploads">Uploaded</string>
|
<string name="uploads_view_group_finished_uploads">Uploaded</string>
|
||||||
<string name="uploads_view_upload_status_succeeded">Completed</string>
|
<string name="uploads_view_upload_status_succeeded">Completed</string>
|
||||||
<string name="uploads_view_upload_status_succeeded_same_file">Same file found on remote, skipping upload</string>
|
<string name="uploads_view_upload_status_succeeded_same_file">Same file found on remote, skipping upload</string>
|
||||||
|
@ -852,6 +853,10 @@
|
||||||
<string name="upload_action_global_upload_pause">Pause all uploads</string>
|
<string name="upload_action_global_upload_pause">Pause all uploads</string>
|
||||||
<string name="upload_action_global_upload_resume">Resume all uploads</string>
|
<string name="upload_action_global_upload_resume">Resume all uploads</string>
|
||||||
<string name="dismiss_notification_description">Dismiss notification</string>
|
<string name="dismiss_notification_description">Dismiss notification</string>
|
||||||
|
<string name="upload_action_file_not_exist_message">Some files not exists those files cannot be resumed</string>
|
||||||
|
<string name="upload_action_cancelled_resume">Resume cancelled uploads</string>
|
||||||
|
<string name="upload_action_cancelled_clear">Clear cancelled uploads</string>
|
||||||
|
<string name="upload_manually_cancelled">Upload was cancelled by user</string>
|
||||||
<string name="action_empty_notifications">Clear all notifications</string>
|
<string name="action_empty_notifications">Clear all notifications</string>
|
||||||
<string name="timeout_richDocuments">Loading is taking longer than expected</string>
|
<string name="timeout_richDocuments">Loading is taking longer than expected</string>
|
||||||
<string name="clear_notifications_failed">Failed to clear notifications.</string>
|
<string name="clear_notifications_failed">Failed to clear notifications.</string>
|
||||||
|
|
|
@ -2324,6 +2324,42 @@ ikmfPIGVw73RF3HXjJ8GVqTkqbo4ZpgTw/7Z3+fAYE/vxquhnpl2HvE=
|
||||||
=5tlI
|
=5tlI
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
pub D56C721C1CFF1424
|
||||||
|
uid Harald Kuhr <harald.kuhr@gmail.com>
|
||||||
|
|
||||||
|
sub 82889D6A1813F02D
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: BCPG v1.68
|
||||||
|
|
||||||
|
mQENBF+242IBCADRO5E77O+3zYLz2iYkOuIfmnrx31GjdLHGzWpX5WDin/PlTGnD
|
||||||
|
uUk2JoNwFCmHgAh6waBYVnjsaRTaAaj4W/22APeEQLK1Bfi8sBn1PPKsGDf/4f6s
|
||||||
|
ZsKcJ1INPo9WsN234INyz4YkFFnI7QSeCzqWsk/l0V5vir+cEX3JjQ4nGWluA0/d
|
||||||
|
BoTXGkGTofUBUt2KflnEn4p2/CXbbwGSpLnESSBdoI0JX2uAUTZvgSnvNjTDZD5c
|
||||||
|
Yr2o4/4zv7d+3lcHBXdCanuTa1m0nxWnROizqxetilPm5jxk53uhq5zHpamdnHUp
|
||||||
|
cAif9OhXtU2iUEu13jTd9oUktgVKRTxK8qhVABEBAAG0I0hhcmFsZCBLdWhyIDxo
|
||||||
|
YXJhbGQua3VockBnbWFpbC5jb20+uQENBF+242IBCAC623pjBREUo5VKRy7fC9Y2
|
||||||
|
q5T/bVMJRuOk0FLHNnoxapaWjqpI7lmbfHq4xeRHlTjqs1Z230cW/gIJ2GzjVx2v
|
||||||
|
ecgo9eXgQu9djl5JtEblZyNZbYrJBik4Sr60Cs5iKpMovPIrEG3xOVTiizs88ca/
|
||||||
|
WzuWuQgOiSFyf+XUDmv3JwFbKzpt8rJla6AR0adAr2CqBTJkSf6BgWVcIuGHbWzX
|
||||||
|
Ldl/+4LNn7hTnnMM+UeaUjnu6j6XTWbf+jn0extF6xJgS1f+3WGo9WyHlh7PXHAv
|
||||||
|
otJ04dAnR0fQadjS6zNkHzTuOlB6HEacF8szibG6yGWfElPj7N20haeFWPiZ9QXN
|
||||||
|
ABEBAAGJATwEGAEIACYCGwwWIQRFPqMTKN59iqpVrU7VbHIcHP8UJAUCY3uxyAUJ
|
||||||
|
B4c1ZgAKCRDVbHIcHP8UJNr5B/4p8PxIfUoQsshBcAYun4776BfNoM7OVzHQJyqz
|
||||||
|
Q3TcJUqspyHnROXBhQay212p1ft1u10QU4gB1JsK6T31OUxzwbHSUseqxS+ZBOrJ
|
||||||
|
Vt5C+PdhuhMXJonKPUNy+mSPb0lfOFb911/v4HgKCwwFpAr3X+A2a3FMgXE2pHYd
|
||||||
|
MTCt428cnKugiXBF8fPRk1MJgyg2Ykp188V2NCiE/H0k1eaqFP97VxFycPrFHii7
|
||||||
|
1II4THdhIa9yo9TVPNjTMdaZRj4i/7yzTAhE3MgcllM2x6YQqzuYR+djQI7isATu
|
||||||
|
QOxHvi176qvZwDv4UEG6LbzRjCxEP+6ImXUfIBvlx/MM3EUiiQE8BBgBCAAmFiEE
|
||||||
|
RT6jEyjefYqqVa1O1WxyHBz/FCQFAl+242ICGwwFCQPCZwAACgkQ1WxyHBz/FCRg
|
||||||
|
3gf+KNRDkSlwwENVg+j14xlIKiwQad4I6/+HDjuAmhtWlTJCrrpQrJgxgyOSdXs5
|
||||||
|
cm5ZEY/KEsFWjEz9dRqtmKN7W0wCkwAF0vl4sez73sZyD3X5z42vxF2JLavdUruY
|
||||||
|
03mKS5w1Umjwy7StcRWEdl/1hBBuV/U30vSslyuWkXNoqoBLYOR+Q0KjdkSeUpfv
|
||||||
|
jFNQROOg9dLKrCzmeF3O1HN/iDEe6K6bvSly3S8/f3OkdvE4VocZ7+ketcrg5lmN
|
||||||
|
lzltDy5yfsvU2/VVjGdI48J6i33CahJYT8diQcd+y7jH1B3bC+OZ0Jk3SIK97udJ
|
||||||
|
tJscrv0/jtIwo5zy8SqldnhB6g==
|
||||||
|
=OReJ
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
pub D7C92B70FA1C814D
|
pub D7C92B70FA1C814D
|
||||||
uid Matthew Sicker (Signing Key) <mattsicker@apache.org>
|
uid Matthew Sicker (Signing Key) <mattsicker@apache.org>
|
||||||
|
|
||||||
|
@ -2953,6 +2989,43 @@ rg1uIDOAX2LIQbC3qLz9iwD2rdbOLOkCQDYIa5Vs3j3RT/cw1A==
|
||||||
=r0Sk
|
=r0Sk
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
pub ECEAC3B11AD0E0A0
|
||||||
|
uid Priyanka <prigupta@adobe.com>
|
||||||
|
|
||||||
|
sub 33BA5E7DBAA319CC
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: BCPG v1.68
|
||||||
|
|
||||||
|
mQGNBF+zYT4BDADOvqnDCp47DHqAxbJ5DmnKetnYyhJwNo4S5l+Wlx6x5lVJPR+7
|
||||||
|
w6KfHXPDlBgoHJp3j0w6zWijHzGX1eK4Z4c95pE6S+7v/qM4otItJte+bYMNd+Lm
|
||||||
|
VkYVVaBwWUxI0vVlgqojRUvrQGPhey+iEfcGrp28xHpuZtoXE0GUjlAaSowp9sBm
|
||||||
|
SNxR3NMTXcE1joigGquwRzuSSXaFCTcCKdZ+xyvnjBpr+oVXv0WHfvGPhlgYKylq
|
||||||
|
jBaZGE88Wp20TZ7DQaMaP6XmZg6nSB0iKo1HO+VDMHgne/QvBiXEnkw72YnDEfk+
|
||||||
|
eNomIvrumfhWfnC3SOqWY7k1FuKQrtbBdOhUTcqTaUFCezWoZ403jxc9DoKYDZvG
|
||||||
|
5LjQ07wcwrnB9ldBsyvdLqujp+LKcS+9KZMTGOnzyTQyyjpRHqFtP/zzZpNW5EWd
|
||||||
|
MIk51PebfGuBwCa+RgE8CSuEwoNhdA+GAqhr20Fivf4OJ134qm0xPmLmx/WYlugL
|
||||||
|
GnZgRfFjlv7bKgkAEQEAAbQdUHJpeWFua2EgPHByaWd1cHRhQGFkb2JlLmNvbT65
|
||||||
|
AY0EX7NhPgEMANX4DBl2KhJ+52g6ehpK9f76xDWMd2J75qaY59feSN1+1D48dbVu
|
||||||
|
0YgHjdCOh5xk2KcKKo3oY3a/L4GFlucWvnnvwQAVKuZZSS2nP5ZTepFKah8pElWM
|
||||||
|
gtx2Bd+XgV5JCZgNSB+7LPXlBltcbPEdaguDbORCmy/ACuVEJ/IcJgDCpBWVjF8q
|
||||||
|
zmC47vCEUKSdcsZ2EIYr0tqrZYAt6AtNBlpV8EbrBgGIKmIxeg3b7Las8cj+0pQG
|
||||||
|
K2Nuszfpku2+HA7QlaaH2/W+sV8Hi0U7Hq/MRtx4V3+W8l3FzA+il0FVGijQgE3U
|
||||||
|
QoNpTy5Tl5Ic1yVw4gOFy6TreMNr3KbEU+J2MGtgPnbde8LuZ016NdmnA05/AzJ3
|
||||||
|
CJ5aCyj/h5k5q4YRA0S0osqm47D8ooIZPGZ7LMVqrjm3vIuoJXav6rAmTgNnHU2N
|
||||||
|
CGHWMsMDOPfpG7dNMfn0aAb2DL9JNMdqEPTWOGhEqsXupvLSNe/mKxyN19fzIWst
|
||||||
|
pX2mWjBUtcTNFwARAQABiQG8BBgBCAAmFiEE71IUrWVM0F8NqRYJ7OrDsRrQ4KAF
|
||||||
|
Al+zYT4CGwwFCQPCZwAACgkQ7OrDsRrQ4KAwfAv/YfM2nS/19QDxnfgSaJAXdtit
|
||||||
|
OoXzIBVqZ44Z5LgqRkloLm/kSzOhzX53yxwAvVDkaH//5GUp7jqIg21ejULOfewC
|
||||||
|
Upbth1x9XUnOA55Tz54Z3Emfnshbp04XVj5V+7VJG0UoRfOl8typI2/RPN0h0rQD
|
||||||
|
KxO2h8cuIP9vlGY1AXFP9mirI02BLdm1S7ugAchrfEcvmKwXPcltlDA487S01iSd
|
||||||
|
nDSBOtAvIVIrpkV5eIu0e58KbdxLiqP+dvpvQyGRFx3ktOIoStqx5Qea+/ZX8uxI
|
||||||
|
X7cDvdPbYmi4jel/RfIg07HDjjLjGDnfUDw2gwHdlySWd/przYqAocjJUB+0tCc3
|
||||||
|
kV4CM2caga5PRHuYRoFl/UeCKgZfH20jNjq6Fw88s5jlzMDyfGB5oBU1S9F5fiV1
|
||||||
|
qQhnaRFDkP2iG/CN9kbL90vRVANHVw9odIiS4Yd3sTX2vnx4eP+6h4ynXL0p01y4
|
||||||
|
K+jUtu4w+gsJ3GJvywKbXKy6DkVXcc+umnc318/Y
|
||||||
|
=UhYJ
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
pub EE9E7DC9D92FC896
|
pub EE9E7DC9D92FC896
|
||||||
uid Eddie Aftandilian <eaftan@google.com>
|
uid Eddie Aftandilian <eaftan@google.com>
|
||||||
|
|
||||||
|
@ -3208,6 +3281,35 @@ VDzc34e+Nr/b2pN05MDHA0dXmb/irwPBl0mTOgAgC805qkR14xhd1GeL6MEA34k8
|
||||||
=CmMl
|
=CmMl
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
pub FB63BCA973FAA119
|
||||||
|
uid potato <zh79325@163.com>
|
||||||
|
|
||||||
|
sub 28ECAB16140A23E5
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: BCPG v1.68
|
||||||
|
|
||||||
|
mQENBFv8rqkBCAC8J4YBW1ZjXpovURQJcMd0kYgEjVzV0GHHVp9/NJwQ7NrhqGeE
|
||||||
|
ktSZV4ctxWoPXYqAMbCjqyRfXQw28olj7L55m1VUIT10i20uDixdeDmAPcI5d1z9
|
||||||
|
yljknFcOWSUBX+cYUKiYmel1Xb8l8qlzp31jL7TJdeW7fyYBiQqoxgHzAbc8ju8S
|
||||||
|
TymAVhf8vCee21C/ppAU0uhK7yVi3Liuhjl3jKDFRz0j9MkmrHeKxr+LLZfAZI9M
|
||||||
|
UCShsmm66anJThtnvxqod/186/7LbNsOfhbb6zCAfPTmb9EB9AncFwNgW4OR+f/C
|
||||||
|
yAZfr+sIDywrtOt3LXj0yaIYxGEIwXzxJW0xABEBAAG0GHBvdGF0byA8emg3OTMy
|
||||||
|
NUAxNjMuY29tPrkBDQRb/K6pAQgA4QmtZ8QjosaPwwTGG2w5wVWG/gtvclcJO/ns
|
||||||
|
wlhWSDiVjmyMknDzP2/sKT50MGzFLf1Fd1B39keYcKoRVyonV0LtZ8KlWgNipi7h
|
||||||
|
b9MGfrYotVQsP0XWhqUVJE80SBvOiWwAnind07SP2Ivl5jlbrgsIzvO2JpGTzraQ
|
||||||
|
Ae+AyKkVaqWXc7EOw8kuU9Q5rcagcSLyl3/9K9vP1wYcXo5qfiWc9I1dAnsPOTyY
|
||||||
|
S9ajFRY20+7yP5Fbsl6MyP7kYHSdfLSmEwzdQrSgaZQbNE+63eNA0vzWXmbpc/A+
|
||||||
|
hq4SMK87qKJMAkd8Aaba+U7icBJqmONdZyM1YiqOVrnnjL+QAwARAQABiQE8BBgB
|
||||||
|
CAAmFiEEUiV1UMUMAD+K0c9/+2O8qXP6oRkFAlv8rqkCGwwFCQPCZwAACgkQ+2O8
|
||||||
|
qXP6oRnpeAf/UUxitjRhq7ueiq4pz3mJNwX9M2BbLLkg1dR80MGHGAACb2DaOTXg
|
||||||
|
Sb1H4ZkB9JzrJKXUJB5J4f2BB/yrDQKmS+szgSd+NeQyFs+r6VSDiSwpnye8yDJg
|
||||||
|
E6AhGzo5HKFHu17N1w6NGkAQBL+GEgvtojbZDaPzpRSu78rIP2rFymeCiL83eZgP
|
||||||
|
nqAgKXI+jMiAGQwn8z2TbaiaKHmKKNm4GTZOEfjIkMOLNDt+th82/rLA9cJk+Gna
|
||||||
|
Q7Q6jnMm02XFBUIiIOCDTzK9BSCAV7SVAwfdlO3Be1KNITO/Rsx4LpHbRMyEf7u8
|
||||||
|
3ZOclcevOY17eceSCwjy3C4mU9FhaByKkg==
|
||||||
|
=kRMk
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
pub FD116C1969FCCFF3
|
pub FD116C1969FCCFF3
|
||||||
uid Sean Leary <stleary@gmail.com>
|
uid Sean Leary <stleary@gmail.com>
|
||||||
|
|
||||||
|
@ -3383,6 +3485,35 @@ kYlgaHe+RYIWqM1P1t8RfE7OH4kAeRSawjrQjgVp
|
||||||
=Uv6G
|
=Uv6G
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
pub 02DE09238A0E4D34
|
||||||
|
uid Drew Noakes <gpg@drewnoakes.com>
|
||||||
|
|
||||||
|
sub FCF369F756EF6105
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: BCPG v1.68
|
||||||
|
|
||||||
|
mQENBF0gmvMBCADCD96pOjHwsBOztrn7Vy22JMbGIK9LVTk0VC2HLNW/jcl0tTNi
|
||||||
|
wAIZ7F5Nat9H/fL20dlwvS81W5OlrFImY77HH9qzg+S+WuXlU5ze55kU6RaDWtee
|
||||||
|
VilasdwWxAMrtcPVo18DjDP+ey+hva8pvArdl3CEuva3gr9idz4GvWrGnkTCagJt
|
||||||
|
6VRig6XoalF4qVfvI5jkyX2vhUij/adpSXXFcPNcHcBCgUhD7BSgQIXtR/x8iaI8
|
||||||
|
/RDCkto0mI/avZQvCjGKO1jleq1zpaD/h2Ga3Mb0hJpOL4HI4HYQcT0Hu0pfcUPx
|
||||||
|
AJrD1uZrR8h/2fZYtYgDYdpglYp0auZcGeHpABEBAAG0IERyZXcgTm9ha2VzIDxn
|
||||||
|
cGdAZHJld25vYWtlcy5jb20+uQENBF0gmvMBCAC3lRXIZGaFb9BZfF61dlDzZcpd
|
||||||
|
ctAN+WV7oLYVY+RECD83wxDqjDBTcsjgBgWXEbTJtaM4wgZ6ae3lQfPLiaL2dpuh
|
||||||
|
eZRYJx6fuRtYr0z4dqEmvLvoMFujAnb/fKVYm0dpHZw4D50BfDsIrEgMRNwoLJyr
|
||||||
|
z+rybU+fyygK6liuR6EoFLF2J5mw/WMW3il6Zv/Ly4NWWFvND9VPmiQYglItXXM5
|
||||||
|
V5W0ifEe8Ckjajm7HlwqN7rl0MXLLnSGuC8ICB9xJQMOOb4m1wboASDi+yJ+54Gr
|
||||||
|
5BbrQ20DoWXahFSZhRO+QxEcWfcbB4FeEUSVSmQilZNjXgLKDN6/cMtK870vABEB
|
||||||
|
AAGJATwEGAEIACYWIQTgGqswFhjSOznb1BAC3gkjig5NNAUCXSCa8wIbDAUJA8Jn
|
||||||
|
AAAKCRAC3gkjig5NNGX8B/46vKeGgxJ5m+ZnPgi68hUuPM08TkyK6uYD27M60X0g
|
||||||
|
dVixchk0CRspycmeJvpvTh/6XDOiBStxD0zYcDoKjA7JNhIv3L+FIdP45VlyR6j9
|
||||||
|
Ol1nNK9xVL3OifS942Q5vUaprZ+aakXGNfZXBpsVBAbnMrXdCNsjwNrgEZliNnEQ
|
||||||
|
iDwIQkjgM3c8gIllfn75y6PhYHJDYFj8M0IcWzpqRrCYiR+lqx17U4CavWJJXVfv
|
||||||
|
/n60Dd6u5MqL3Ket8Pc3bqknLMLzgp0YKlOYylOJpt7zkXz7X1AUSbkV7XfdOtUI
|
||||||
|
i+e239pgHg1ROFTbISLcgj+kLpKT/eb8cdbtzrx3q7CP
|
||||||
|
=PaUP
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
pub 0374CF2E8DD1BDFD
|
pub 0374CF2E8DD1BDFD
|
||||||
sub F2E4DE8FA750E060
|
sub F2E4DE8FA750E060
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
@ -3882,6 +4013,51 @@ jR7YX5D8RUnPYZnzIzID+ECD0JeFuyBMZI3y8Zog5w1Ce1wnzA==
|
||||||
=T2aE
|
=T2aE
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
pub 08A4A4958D61FC3D
|
||||||
|
uid sksamuel <sam@sksamuel.com>
|
||||||
|
|
||||||
|
sub 54EB00732104EF7A
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: BCPG v1.68
|
||||||
|
|
||||||
|
mQINBF7ByYMBEADHxAxXj4u914xQb5fJ+sBvk0rKpqOZPFMIiuyNMD72Dk2jZbvW
|
||||||
|
ESuRlzp9MObyylGTsxeX+f+Fq+piqqgAAFWyXx+JNV4UkDLSt8g6n0phW97Wj89b
|
||||||
|
ybWFDUnvgr+IeNZ0pBX2MPRPXrtZhayk8ahY84fps8CFJN/NMi0HExYP9Ttt59/b
|
||||||
|
njWFDy9NI5/CzgRB9e4sv/mHPNwZOA8fonG3xQ0eBHbnl+Wv7wnnUixbtZt92ZEf
|
||||||
|
VL4mb0HJyxKVVPZWFH3Sm8oukAxNqxCS0pxOXTWCfvtEFatA5AKgbGFpw4PMoQ2O
|
||||||
|
QEGm5HgfgyObuGr8imnvtvSUhopmUj858rfoN0PqqsqF8AFtJusfVLeVloBRHhe7
|
||||||
|
Yjn3uyGgY5pUw4csXY9p9Uf9yjD8r6RyZGyuNPdVy7drTaP3ZMYDA/jaJG3hDtbh
|
||||||
|
eu2w4eTCIRCYtEr/LzVQVo/HYJDmRwoUI30A/IfrgNIDWjHkrG7uVpynt6dAddSh
|
||||||
|
JfEWUFsjw4Oi+yHWWxeSjlLc/Uf9vt2GNjjpMXpp8r+VQsKqDbzKWOA9yrpIwhs9
|
||||||
|
Mu+qBOsBgCy6sPsJpZ7Qqr4gnh5vrBGZaRA5WRjdSlP5yzsYyCYnSCquKMy+Uk8n
|
||||||
|
54sRGRxcNjDVJVVlZuiFVbbX2f1OEgVNbnp0PMUym+QbJdPI//xjKYU2wQARAQAB
|
||||||
|
tBtza3NhbXVlbCA8c2FtQHNrc2FtdWVsLmNvbT65Ag0EXsHJgwEQANU52hl+lBeg
|
||||||
|
+Z90jcTYOs8wU9beW+4jJ1WsbxpE+XOj6Nx5GhahpgVsZGt7fSgParuu/cEj6Vaf
|
||||||
|
6UL+dsu/jeSLgzQfEQ+W94MRgA6OMsl/g57T0Zj/Rgd8yhNOLBOUgVD/OVr56lEG
|
||||||
|
/xPZGX0tJvBXaoJVoPDzS/sviYMEZurfA7yraa1NZw/n4GtKR2Gzl1Vejgpmpx5Q
|
||||||
|
uOV0F/6LOBDwfRvCI3rVyeuX78e2FwtYJ0zj9UNefTdtyeP+oEW0KGJAYvgrSoAd
|
||||||
|
k9uMfBd9d91k2nR3F4pf5zY7Fbfj4yp0v4xMSgl73/crBPD6ApCmOSbyBEoq6qPc
|
||||||
|
RDDY9LH3yRg5BcoQOr8JVmKJu+CoPwOfeadzOwzYtfTzBdvPyJkNaH+JsJc8hTYf
|
||||||
|
0WJXC45C46tcKHkK2V15zv+9TtlMdmUrjPnYh0s4+sB8HRym2iCGYOhCcFozhb67
|
||||||
|
M3rVE+F1rFSNxLfbjRpGOK1x9QW+/VY3gvywoMK/69JgiKkeFKO9EZGULmE02+KD
|
||||||
|
jq+VC5bP/YblNdX12H8LV6sSV2QEcgpdIVevWv5Pro9b4yfhq5DmuKVU/HvNzkSY
|
||||||
|
Q3fiOhhm2MSoqhNSOP+Gjt7w8YOUjmACR86yQ0982PIlBG4WGCO5vkSpfA8QMcYx
|
||||||
|
qicQ7wWelSY+gzPvUxJmeNiMJwhisd7TABEBAAGJAjYEGAEKACAWIQRcuhnlYUHn
|
||||||
|
jVS/cW8IpKSVjWH8PQUCXsHJgwIbDAAKCRAIpKSVjWH8PVfbD/4hpPgOe4RdC1cW
|
||||||
|
hgcxXn7Ht2HOIFUbU5lDpucURdJWqarWVzUknfqwMzJpeQdRfgkckT0EB8nfgwkd
|
||||||
|
wNbo9YPuWJ/hezYrCTVFDVk8ZAXIdy7b1A3l1NF+7y47b9p3PqfHg42EY2GU3tsZ
|
||||||
|
Oq7U6KOBdARf9QlRXYtVCHsMqMOrVApAYk1dHhEfMbhiZcQMXTCWiSpg5sI5E9TR
|
||||||
|
NbWe/dFwv9oz4+bv8cB5XWYMdTywAOlDLMsd8D4FjVlY48oBXA0NmcHgZHhPma+K
|
||||||
|
dnpkkDCMHSRupOs+S2yOqD2G9lSEwjX1MAbjTCVNW3hBXpFc14gr02jguKrW58EE
|
||||||
|
vpr2SGaaSYNTGp2OTcAFdgiS/JmYg1SnXClMdG7n/LuYH3sqXKiN2/6/2UUVQXmz
|
||||||
|
F339cqKjXCEVtBq6WyIDCeI+d4p49/m3XEaDYGj2Q8lICx/ByuPev3sNP1T7jJy0
|
||||||
|
RJxZc6/OpkguTbrCKrCpqIeoSfc7/HDUNnjUMj7CI/TQP0G0gcNJCnuWLfwbvM+y
|
||||||
|
brNrUHgnWk7a0SwBYLSu3I74gPMEJ+4t12Eh7vlyMZ7i5E8+rcNkR4Fq/8XM6YvR
|
||||||
|
HcnooxOWfd3bDjFBb6R5JpOPFPt2tBBvqTlxQFTz59eQmCu71EBYg/a4TKESlm7Y
|
||||||
|
tE3KtJP0/IOVuzK22tPjBdeoI9FptQ==
|
||||||
|
=c4O7
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
pub 0B45DDD344B5FFD1
|
pub 0B45DDD344B5FFD1
|
||||||
uid Josh Holtz (For maven) <me@joshholtz.com>
|
uid Josh Holtz (For maven) <me@joshholtz.com>
|
||||||
|
|
||||||
|
@ -4933,6 +5109,22 @@ HxWaEMJtpSkIvHIBz9qoAroGtNFzz2oF4ElRABEBAAE=
|
||||||
=1QGy
|
=1QGy
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
pub 2838A2C567F74226
|
||||||
|
uid Seth Tisue <seth.tisue@lightbend.com>
|
||||||
|
|
||||||
|
sub B293A312CEB2E9F6
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: BCPG v1.68
|
||||||
|
|
||||||
|
mDMEYVOgzRYJKwYBBAHaRw8BAQdAPnTbK24vDd1YxFLwAmpdoemwlJMKH7PyGSe/
|
||||||
|
ab65sry0JVNldGggVGlzdWUgPHNldGgudGlzdWVAbGlnaHRiZW5kLmNvbT64OARh
|
||||||
|
U6DNEgorBgEEAZdVAQUBAQdAsh50gWqK3tkXRhXWTv8bKOfUUFs7RLvna3KUwhIX
|
||||||
|
nXADAQgHiH4EGBYKACYWIQQI7z7CaKgEl+0gMIEoOKLFZ/dCJgUCYVOgzQIbDAUJ
|
||||||
|
A8JnAAAKCRAoOKLFZ/dCJtYHAQD90Eu8uvLofLKxoY+hbjn+dJ+fzcMZ5I2xoc1s
|
||||||
|
li442QEAp72J6Hz7p0Vyu1u05NZvb+jLBwWyI0P7Hq2pfR3qFg0=
|
||||||
|
=rrV8
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
pub 29579F18FA8FD93B
|
pub 29579F18FA8FD93B
|
||||||
sub 9DF7F2349731D55B
|
sub 9DF7F2349731D55B
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
@ -6172,6 +6364,22 @@ eKej8y3YRDgQU+O9SrfNjf8PhhpG98C+k/yOh/tty5HGNfdvyMB8TdVxzTd5uHMN
|
||||||
=m6Ii
|
=m6Ii
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
pub 5365A8A69292AF1A
|
||||||
|
uid Seth Tisue <seth.tisue@lightbend.com>
|
||||||
|
|
||||||
|
sub 6DAC12FEF3928B80
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: BCPG v1.68
|
||||||
|
|
||||||
|
mDMEYVTpMBYJKwYBBAHaRw8BAQdAgCkGHxDJ2ObI6x5cwp6Cl85hJQ5vIZFH/0+1
|
||||||
|
wnaiXA20JVNldGggVGlzdWUgPHNldGgudGlzdWVAbGlnaHRiZW5kLmNvbT64OARh
|
||||||
|
VOkwEgorBgEEAZdVAQUBAQdAsJWY4kW6HpMZV8X5VYH0oq18gI8vVaQPTK+UXiu3
|
||||||
|
FkEDAQgHiH4EGBYKACYWIQRgDSEhmWPyKCAKcjdTZaimkpKvGgUCYVTpMAIbDAUJ
|
||||||
|
A8JnAAAKCRBTZaimkpKvGlyYAQC0bd1I8QbHqLzhkSv7NyKCh8SDTj/xb9DXPF24
|
||||||
|
09RywQEAjKh4ayeMU3KgTAoCps9UZ1tw/tySVUY0qIzV4dDP1w4=
|
||||||
|
=82EY
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
pub 55C7E5E701832382
|
pub 55C7E5E701832382
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
Version: BCPG v1.68
|
Version: BCPG v1.68
|
||||||
|
@ -6354,6 +6562,22 @@ V3u1xg+t7/QlghTMoJAA0H5G
|
||||||
=hS0U
|
=hS0U
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
pub 59E05CE618187ED4
|
||||||
|
uid Taro L. Saito (For GitHub Actions) <leo@xerial.org>
|
||||||
|
|
||||||
|
sub 8857595B73BFD468
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
Version: BCPG v1.68
|
||||||
|
|
||||||
|
mDMEYuRVGhYJKwYBBAHaRw8BAQdA2Dp4m1Yhtb1g94pQzzL24FuP6b9KXF8lP9Dh
|
||||||
|
hZnynhe0M1Rhcm8gTC4gU2FpdG8gKEZvciBHaXRIdWIgQWN0aW9ucykgPGxlb0B4
|
||||||
|
ZXJpYWwub3JnPrg4BGLkVRoSCisGAQQBl1UBBQEBB0Atu9kejBi+6wfOT0a9z/LY
|
||||||
|
EEdNXM/VX6xt1onKToPPdQMBCAeIeAQYFgoAIBYhBMHLp17JvQuvgGGTVFngXOYY
|
||||||
|
GH7UBQJi5FUaAhsMAAoJEFngXOYYGH7UlMABAKyRCazhVyUFg5FOpAnmckBY38Ca
|
||||||
|
MGPPLXVyY8Kr6dYFAP9wYLu7nsDZCOXkAgS+et4Pk1WZCggoYUkxsX1o0KZXBQ==
|
||||||
|
=7Gio
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
pub 5B05CCDE140C2876
|
pub 5B05CCDE140C2876
|
||||||
sub 9D29AE4A6B50E01F
|
sub 9D29AE4A6B50E01F
|
||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
|
@ -7,9 +7,6 @@
|
||||||
<trust group="com.android.tools.build" name="aapt2" version="8.2.2-10154469" reason="ships OS specific artifacts (win/linux/osx) - temp global trust"/>
|
<trust group="com.android.tools.build" name="aapt2" version="8.2.2-10154469" reason="ships OS specific artifacts (win/linux/osx) - temp global trust"/>
|
||||||
<trust group="com.fasterxml.jackson" name="jackson-base" version="2.14.2" reason="no keys available, no pom artifact to create a checksum"/>
|
<trust group="com.fasterxml.jackson" name="jackson-base" version="2.14.2" reason="no keys available, no pom artifact to create a checksum"/>
|
||||||
</trusted-artifacts>
|
</trusted-artifacts>
|
||||||
<ignored-keys>
|
|
||||||
<ignored-key id="59E05CE618187ED4" reason="Key couldn't be downloaded from any key server"/>
|
|
||||||
</ignored-keys>
|
|
||||||
<trusted-keys>
|
<trusted-keys>
|
||||||
<trusted-key id="015479E1055341431B4545AB72475FD306B9CAB7" group="com.googlecode.javaewah" name="JavaEWAH" version="1.2.3"/>
|
<trusted-key id="015479E1055341431B4545AB72475FD306B9CAB7" group="com.googlecode.javaewah" name="JavaEWAH" version="1.2.3"/>
|
||||||
<trusted-key id="042B29E928995B9DB963C636C7CA19B7B620D787" group="com.github.stephenc.jcip" name="jcip-annotations" version="1.0-1"/>
|
<trusted-key id="042B29E928995B9DB963C636C7CA19B7B620D787" group="com.github.stephenc.jcip" name="jcip-annotations" version="1.0-1"/>
|
||||||
|
@ -25,6 +22,7 @@
|
||||||
<trusting group="org.apache.httpcomponents.client5"/>
|
<trusting group="org.apache.httpcomponents.client5"/>
|
||||||
<trusting group="org.apache.httpcomponents.core5"/>
|
<trusting group="org.apache.httpcomponents.core5"/>
|
||||||
</trusted-key>
|
</trusted-key>
|
||||||
|
<trusted-key id="08EF3EC268A80497ED2030812838A2C567F74226" group="org.scala-lang.modules" name="scala-parallel-collections_2.13" version="1.0.4"/>
|
||||||
<trusted-key id="08F0AAB4D0C1A4BDDE340765B341DDB020FCB6AB" group="org.bouncycastle"/>
|
<trusted-key id="08F0AAB4D0C1A4BDDE340765B341DDB020FCB6AB" group="org.bouncycastle"/>
|
||||||
<trusted-key id="0A784736254716AC0EBEF6E2365D826E84B11B58" group="com.karumi"/>
|
<trusted-key id="0A784736254716AC0EBEF6E2365D826E84B11B58" group="com.karumi"/>
|
||||||
<trusted-key id="0C6914BDDF32BD0AF3AAEB8A2148325ADD28A1AD" group="^com[.]atlassian($|([.].*))" regex="true"/>
|
<trusted-key id="0C6914BDDF32BD0AF3AAEB8A2148325ADD28A1AD" group="^com[.]atlassian($|([.].*))" regex="true"/>
|
||||||
|
@ -50,7 +48,10 @@
|
||||||
<trusting group="dev.equo.ide" name="solstice" version="1.7.5"/>
|
<trusting group="dev.equo.ide" name="solstice" version="1.7.5"/>
|
||||||
</trusted-key>
|
</trusted-key>
|
||||||
<trusted-key id="1D9AA7F9E1E2824728B8CD1794B291AEF984A085" group="io.reactivex.rxjava3"/>
|
<trusted-key id="1D9AA7F9E1E2824728B8CD1794B291AEF984A085" group="io.reactivex.rxjava3"/>
|
||||||
<trusted-key id="1FA868A348719E88B6D0DE24C03EF1D7D692BCFF" group="org.scala-lang" name="scala-library" version="2.12.13"/>
|
<trusted-key id="1FA868A348719E88B6D0DE24C03EF1D7D692BCFF">
|
||||||
|
<trusting group="org.scala-lang" name="scala-library" version="2.12.13"/>
|
||||||
|
<trusting group="org.scala-lang" name="scala-library" version="2.13.11"/>
|
||||||
|
</trusted-key>
|
||||||
<trusted-key id="1FFDCCF6BDC0B17BD26B4A761F012999BF55C33C" group="ar.com.hjg" name="pngj" version="2.1.0"/>
|
<trusted-key id="1FFDCCF6BDC0B17BD26B4A761F012999BF55C33C" group="ar.com.hjg" name="pngj" version="2.1.0"/>
|
||||||
<trusted-key id="24D04176586361FDA94EE0315F7786DF73E61F56" group="com.google.devtools.ksp"/>
|
<trusted-key id="24D04176586361FDA94EE0315F7786DF73E61F56" group="com.google.devtools.ksp"/>
|
||||||
<trusted-key id="26CCB560222376C280C15DAC453A03A250A2F726" group="com.github.fondesa" name="kpermissions" version="3.3.0"/>
|
<trusted-key id="26CCB560222376C280C15DAC453A03A250A2F726" group="com.github.fondesa" name="kpermissions" version="3.3.0"/>
|
||||||
|
@ -92,9 +93,13 @@
|
||||||
<trusted-key id="3F2A008A91D11A7FAC4A0786F13D3E721D56BD54" group="org.reflections" name="reflections" version="0.10.2"/>
|
<trusted-key id="3F2A008A91D11A7FAC4A0786F13D3E721D56BD54" group="org.reflections" name="reflections" version="0.10.2"/>
|
||||||
<trusted-key id="44F4797A52C336FA666CD9271DE461528F1F1B2A" group="org.apache.jackrabbit"/>
|
<trusted-key id="44F4797A52C336FA666CD9271DE461528F1F1B2A" group="org.apache.jackrabbit"/>
|
||||||
<trusted-key id="44FBDBBC1A00FE414F1C1873586654072EAD6677" group="org.sonatype.oss" name="oss-parent" version="9"/>
|
<trusted-key id="44FBDBBC1A00FE414F1C1873586654072EAD6677" group="org.sonatype.oss" name="oss-parent" version="9"/>
|
||||||
|
<trusted-key id="453EA31328DE7D8AAA55AD4ED56C721C1CFF1424" group="^com[.]twelvemonkeys($|([.].*))" regex="true"/>
|
||||||
<trusted-key id="474DA67C32063DCA7FFE9CB5760F395DC40D55A7" group="^io[.]noties($|([.].*))" regex="true"/>
|
<trusted-key id="474DA67C32063DCA7FFE9CB5760F395DC40D55A7" group="^io[.]noties($|([.].*))" regex="true"/>
|
||||||
<trusted-key id="47504B76CF89C15C0512D9AFE16AB52D79FD224F" group="com.google.api.grpc" name="proto-google-common-protos" version="2.0.1"/>
|
<trusted-key id="47504B76CF89C15C0512D9AFE16AB52D79FD224F" group="com.google.api.grpc" name="proto-google-common-protos" version="2.0.1"/>
|
||||||
<trusted-key id="475F3B8E59E6E63AA78067482C7B12F2A511E325" group="org.slf4j"/>
|
<trusted-key id="475F3B8E59E6E63AA78067482C7B12F2A511E325">
|
||||||
|
<trusting group="ch.qos.logback"/>
|
||||||
|
<trusting group="org.slf4j"/>
|
||||||
|
</trusted-key>
|
||||||
<trusted-key id="4791825BDEA86EB9286A2ACE88BB19A33A18445F" group="net.ltgt.gradle.incap" name="incap" version="0.2"/>
|
<trusted-key id="4791825BDEA86EB9286A2ACE88BB19A33A18445F" group="net.ltgt.gradle.incap" name="incap" version="0.2"/>
|
||||||
<trusted-key id="4797B4F5DCC46CEA61059071A1AE06236CA2BA62" group="^com[.]diffplug($|([.].*))" regex="true"/>
|
<trusted-key id="4797B4F5DCC46CEA61059071A1AE06236CA2BA62" group="^com[.]diffplug($|([.].*))" regex="true"/>
|
||||||
<trusted-key id="47BF592261CD1A8A69B703B4E0CB7823CFD00FBF" group="com.jakewharton.android.repackaged" name="dalvik-dx" version="9.0.0_r3"/>
|
<trusted-key id="47BF592261CD1A8A69B703B4E0CB7823CFD00FBF" group="com.jakewharton.android.repackaged" name="dalvik-dx" version="9.0.0_r3"/>
|
||||||
|
@ -121,12 +126,15 @@
|
||||||
<trusted-key id="517B94F8D0A46317A28D8AB30DA8A5EC02D11EAD" group="net.sf.jopt-simple" name="jopt-simple" version="4.9"/>
|
<trusted-key id="517B94F8D0A46317A28D8AB30DA8A5EC02D11EAD" group="net.sf.jopt-simple" name="jopt-simple" version="4.9"/>
|
||||||
<trusted-key id="51B52DC5DD452F92BE342CC2858FC4C4F43856A3" group="xerces" name="xercesImpl" version="2.12.0"/>
|
<trusted-key id="51B52DC5DD452F92BE342CC2858FC4C4F43856A3" group="xerces" name="xercesImpl" version="2.12.0"/>
|
||||||
<trusted-key id="51BF0A126F41293F40F50A0B8CD7D660AE857DAD" group="com.getkeepsafe.relinker" name="relinker" version="1.4.5"/>
|
<trusted-key id="51BF0A126F41293F40F50A0B8CD7D660AE857DAD" group="com.getkeepsafe.relinker" name="relinker" version="1.4.5"/>
|
||||||
|
<trusted-key id="52257550C50C003F8AD1CF7FFB63BCA973FAA119" group="com.github.zh79325" name="open-gif" version="1.0.4"/>
|
||||||
<trusted-key id="5267821899275610A75A802D935155A0DE8B1CD6" group="com.sksamuel.scrimage" name="scrimage-core_2.12" version="2.1.8"/>
|
<trusted-key id="5267821899275610A75A802D935155A0DE8B1CD6" group="com.sksamuel.scrimage" name="scrimage-core_2.12" version="2.1.8"/>
|
||||||
<trusted-key id="53C935821AA6A755BD337DB53595395EB3D8E1BA" group="org.apache.logging.log4j"/>
|
<trusted-key id="53C935821AA6A755BD337DB53595395EB3D8E1BA" group="org.apache.logging.log4j"/>
|
||||||
<trusted-key id="56B505DC8A29C69138A430B9429C8816DEA04CDB" group="org.xerial" name="sqlite-jdbc" version="3.36.0"/>
|
<trusted-key id="56B505DC8A29C69138A430B9429C8816DEA04CDB" group="org.xerial" name="sqlite-jdbc" version="3.36.0"/>
|
||||||
<trusted-key id="5897253BEA3046AEEA95A067E93671C7272B7B3F" group="org.jdom" name="jdom2" version="2.0.6"/>
|
<trusted-key id="5897253BEA3046AEEA95A067E93671C7272B7B3F" group="org.jdom" name="jdom2" version="2.0.6"/>
|
||||||
<trusted-key id="59B06224FD8912E36603BE79FEFE78456EDDC34A" group="io.mockk"/>
|
<trusted-key id="59B06224FD8912E36603BE79FEFE78456EDDC34A" group="io.mockk"/>
|
||||||
|
<trusted-key id="5CBA19E56141E78D54BF716F08A4A4958D61FC3D" group="com.sksamuel.scrimage"/>
|
||||||
<trusted-key id="5F6C2148AD4911FE308110E5F0D0AE433308B042" group="io.gitlab.arturbosch.detekt"/>
|
<trusted-key id="5F6C2148AD4911FE308110E5F0D0AE433308B042" group="io.gitlab.arturbosch.detekt"/>
|
||||||
|
<trusted-key id="600D21219963F228200A72375365A8A69292AF1A" group="org.scala-lang.modules" name="scala-xml_2.13" version="2.1.0"/>
|
||||||
<trusted-key id="6016620F8A8FFBBBCC6D44F21AE999FF489B55CB" group="com.github.albfernandez" name="juniversalchardet" version="2.0.3"/>
|
<trusted-key id="6016620F8A8FFBBBCC6D44F21AE999FF489B55CB" group="com.github.albfernandez" name="juniversalchardet" version="2.0.3"/>
|
||||||
<trusted-key id="60200AC4AE761F1614D6C46766D68DAA073BE985">
|
<trusted-key id="60200AC4AE761F1614D6C46766D68DAA073BE985">
|
||||||
<trusting group="ch.qos.logback"/>
|
<trusting group="ch.qos.logback"/>
|
||||||
|
@ -227,6 +235,7 @@
|
||||||
<trusted-key id="BDB5FA4FE719D787FB3D3197F6D4A1D411E9D1AE" group="com.google.guava"/>
|
<trusted-key id="BDB5FA4FE719D787FB3D3197F6D4A1D411E9D1AE" group="com.google.guava"/>
|
||||||
<trusted-key id="BFD244AF9E85F6ABDCA2B65CDE61FB98F06CE8AE" group="org.json4s"/>
|
<trusted-key id="BFD244AF9E85F6ABDCA2B65CDE61FB98F06CE8AE" group="org.json4s"/>
|
||||||
<trusted-key id="C0612048F3393B80B22639B4F067A2FD751AE3E4" group="io.github.davidburstrom.contester" name="contester-breakpoint" version="0.2.0"/>
|
<trusted-key id="C0612048F3393B80B22639B4F067A2FD751AE3E4" group="io.github.davidburstrom.contester" name="contester-breakpoint" version="0.2.0"/>
|
||||||
|
<trusted-key id="C1CBA75EC9BD0BAF8061935459E05CE618187ED4" group="org.xerial" name="sqlite-jdbc" version="3.41.2.2"/>
|
||||||
<trusted-key id="C478A820AD150412FF2860C563426A08B91ED6B0" group="org.scala-lang.modules" name="scala-xml_2.12" version="1.3.0"/>
|
<trusted-key id="C478A820AD150412FF2860C563426A08B91ED6B0" group="org.scala-lang.modules" name="scala-xml_2.12" version="1.3.0"/>
|
||||||
<trusted-key id="C5AA57F4A38EBA7B7F9156DDAB2DA4527F6FFC0B" group="com.squareup"/>
|
<trusted-key id="C5AA57F4A38EBA7B7F9156DDAB2DA4527F6FFC0B" group="com.squareup"/>
|
||||||
<trusted-key id="C6F7D1C804C821F49AF3BFC13AD93C3C677A106E" group="io.perfmark" name="perfmark-api" version="0.23.0"/>
|
<trusted-key id="C6F7D1C804C821F49AF3BFC13AD93C3C677A106E" group="io.perfmark" name="perfmark-api" version="0.23.0"/>
|
||||||
|
@ -251,6 +260,7 @@
|
||||||
<trusted-key id="DBD744ACE7ADE6AA50DD591F66B50994442D2D40" group="^com[.]squareup($|([.].*))" regex="true"/>
|
<trusted-key id="DBD744ACE7ADE6AA50DD591F66B50994442D2D40" group="^com[.]squareup($|([.].*))" regex="true"/>
|
||||||
<trusted-key id="DD80AF584ECDB83D650C4FC78EDF241183415AF1" group="com.github.akarnokd" name="ixjava" version="1.0.0"/>
|
<trusted-key id="DD80AF584ECDB83D650C4FC78EDF241183415AF1" group="com.github.akarnokd" name="ixjava" version="1.0.0"/>
|
||||||
<trusted-key id="DF25D3C4868FEC177182FAD64D176DC503FB4267" group="io.coil-kt"/>
|
<trusted-key id="DF25D3C4868FEC177182FAD64D176DC503FB4267" group="io.coil-kt"/>
|
||||||
|
<trusted-key id="E01AAB301618D23B39DBD41002DE09238A0E4D34" group="com.drewnoakes" name="metadata-extractor" version="2.18.0"/>
|
||||||
<trusted-key id="E3A9F95079E84CE201F7CF60BEDE11EAF1164480" group="org.hamcrest"/>
|
<trusted-key id="E3A9F95079E84CE201F7CF60BEDE11EAF1164480" group="org.hamcrest"/>
|
||||||
<trusted-key id="E5C3B1929191DF06136CCB2B164779204E106A76" group="org.javassist" name="javassist" version="3.28.0-GA"/>
|
<trusted-key id="E5C3B1929191DF06136CCB2B164779204E106A76" group="org.javassist" name="javassist" version="3.28.0-GA"/>
|
||||||
<trusted-key id="E77417AC194160A3FABD04969A259C7EE636C5ED" group="^com[.]google($|([.].*))" regex="true"/>
|
<trusted-key id="E77417AC194160A3FABD04969A259C7EE636C5ED" group="^com[.]google($|([.].*))" regex="true"/>
|
||||||
|
@ -260,6 +270,7 @@
|
||||||
<trusted-key id="EAA526B91DD83BA3E1B9636FA730529CA355A63E" group="org.ccil.cowan.tagsoup" name="tagsoup" version="1.2.1"/>
|
<trusted-key id="EAA526B91DD83BA3E1B9636FA730529CA355A63E" group="org.ccil.cowan.tagsoup" name="tagsoup" version="1.2.1"/>
|
||||||
<trusted-key id="EBB241A545CB17C87FACB2EBD0BF1D737C9A1C22" group="net.sourceforge.pmd"/>
|
<trusted-key id="EBB241A545CB17C87FACB2EBD0BF1D737C9A1C22" group="net.sourceforge.pmd"/>
|
||||||
<trusted-key id="EE0CA873074092F806F59B65D364ABAA39A47320" group="com.google.errorprone"/>
|
<trusted-key id="EE0CA873074092F806F59B65D364ABAA39A47320" group="com.google.errorprone"/>
|
||||||
|
<trusted-key id="EF5214AD654CD05F0DA91609ECEAC3B11AD0E0A0" group="com.adobe.xmp" name="xmpcore" version="6.1.11"/>
|
||||||
<trusted-key id="F1A51E051F527E0C8E24D54D4B1E11D5A4B91E89" group="com.google.protobuf"/>
|
<trusted-key id="F1A51E051F527E0C8E24D54D4B1E11D5A4B91E89" group="com.google.protobuf"/>
|
||||||
<trusted-key id="F254B35617DC255D9344BCFA873A8E86B4372146">
|
<trusted-key id="F254B35617DC255D9344BCFA873A8E86B4372146">
|
||||||
<trusting group="org.apache" name="apache" version="13"/>
|
<trusting group="org.apache" name="apache" version="13"/>
|
||||||
|
@ -299,6 +310,11 @@
|
||||||
<sha256 value="1dca60bf47543e31a36ba27eb71b898e2ec65bd85c1f8d3782b0945e24341364" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="1dca60bf47543e31a36ba27eb71b898e2ec65bd85c1f8d3782b0945e24341364" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.activity" name="activity" version="1.2.1">
|
||||||
|
<artifact name="activity-1.2.1.module">
|
||||||
|
<sha256 value="7e8cd74c2fa8166d82663f75a65c8375d4fdec6f1ba880b526dae4192a29a2c9" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.activity" name="activity" version="1.2.2">
|
<component group="androidx.activity" name="activity" version="1.2.2">
|
||||||
<artifact name="activity-1.2.2.aar">
|
<artifact name="activity-1.2.2.aar">
|
||||||
<sha256 value="e165fb20f006b77894d349572cc3acd2760baa8416ae4d33cb8de6a84dd6730c" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="e165fb20f006b77894d349572cc3acd2760baa8416ae4d33cb8de6a84dd6730c" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -307,6 +323,11 @@
|
||||||
<sha256 value="b7730754793e2fa510ddb10b7514e65f8706e4ec4b100acf7e4215f0bd5519b4" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="b7730754793e2fa510ddb10b7514e65f8706e4ec4b100acf7e4215f0bd5519b4" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.activity" name="activity" version="1.5.1">
|
||||||
|
<artifact name="activity-1.5.1.module">
|
||||||
|
<sha256 value="c4317fb95ce2716b88f1f4a5334795efda084097a3f2447ffccb10a412c85be4" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.activity" name="activity" version="1.6.0">
|
<component group="androidx.activity" name="activity" version="1.6.0">
|
||||||
<artifact name="activity-1.6.0.aar">
|
<artifact name="activity-1.6.0.aar">
|
||||||
<sha256 value="7f08723ecabefba616d60c714b0e9a31301bd4d0792fcc7946c1479c57fd2d28" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="7f08723ecabefba616d60c714b0e9a31301bd4d0792fcc7946c1479c57fd2d28" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -315,6 +336,14 @@
|
||||||
<sha256 value="b561e41c1bddb2160f79b9bc7541ad9ed110147ab2ccf63719a23d498470b043" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="b561e41c1bddb2160f79b9bc7541ad9ed110147ab2ccf63719a23d498470b043" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.activity" name="activity" version="1.7.0">
|
||||||
|
<artifact name="activity-1.7.0.aar">
|
||||||
|
<sha256 value="e44b2032273387156982912c591ef7e2dd485ba0b2e689b528b5a42f271a4f27" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="activity-1.7.0.module">
|
||||||
|
<sha256 value="2a746b0126a8ab2f576e7167f1a785b452ef7ee997abd979ee0c5a29c36f6ea6" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.activity" name="activity" version="1.7.2">
|
<component group="androidx.activity" name="activity" version="1.7.2">
|
||||||
<artifact name="activity-1.7.2.module">
|
<artifact name="activity-1.7.2.module">
|
||||||
<sha256 value="aa629fbdb50669248338956fab5b308ade51df188f355067d5d0726b3275ff1f" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="aa629fbdb50669248338956fab5b308ade51df188f355067d5d0726b3275ff1f" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -328,6 +357,19 @@
|
||||||
<sha256 value="d145d8b53cfd11fd26e47e7dd45c007133ef96ea24f6715cb653c737645d1df6" origin="Generated by Gradle"/>
|
<sha256 value="d145d8b53cfd11fd26e47e7dd45c007133ef96ea24f6715cb653c737645d1df6" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.activity" name="activity-compose" version="1.3.0">
|
||||||
|
<artifact name="activity-compose-1.3.0.module">
|
||||||
|
<sha256 value="30fd58f97339dde1f7f779b1b6a448c13f65102de46bacd5cc7849b762a4e7d2" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
|
<component group="androidx.activity" name="activity-compose" version="1.7.0">
|
||||||
|
<artifact name="activity-compose-1.7.0.aar">
|
||||||
|
<sha256 value="caa72885d1ce7979c1d6c59a8b255c6097b770780d4d4da95d56979a348646cd" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="activity-compose-1.7.0.module">
|
||||||
|
<sha256 value="f7a29bcba338575dcf89a553cff9cfad3f140340eaf2b56fd0193244da602c0a" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.activity" name="activity-ktx" version="1.2.2">
|
<component group="androidx.activity" name="activity-ktx" version="1.2.2">
|
||||||
<artifact name="activity-ktx-1.2.2.aar">
|
<artifact name="activity-ktx-1.2.2.aar">
|
||||||
<sha256 value="9829e13d6a6b045b03b21a330512e091dc76eb5b3ded0d88d1ab0509cf84a50e" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="9829e13d6a6b045b03b21a330512e091dc76eb5b3ded0d88d1ab0509cf84a50e" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -336,6 +378,11 @@
|
||||||
<sha256 value="92f4431091650b5a67cc4f654bd9b822c585cf4262180912f075779f07a04ba6" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="92f4431091650b5a67cc4f654bd9b822c585cf4262180912f075779f07a04ba6" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.activity" name="activity-ktx" version="1.3.0">
|
||||||
|
<artifact name="activity-ktx-1.3.0.module">
|
||||||
|
<sha256 value="332265dd581e12a704957e4b0a5bc2142cd8362195c74722646064cb1e68280a" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.activity" name="activity-ktx" version="1.5.1">
|
<component group="androidx.activity" name="activity-ktx" version="1.5.1">
|
||||||
<artifact name="activity-ktx-1.5.1.module">
|
<artifact name="activity-ktx-1.5.1.module">
|
||||||
<sha256 value="890eb6f3aa3d119236b4c96ec6b1beb647c296a4d99ca7e4a500a164a95ca2cb" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="890eb6f3aa3d119236b4c96ec6b1beb647c296a4d99ca7e4a500a164a95ca2cb" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -346,6 +393,14 @@
|
||||||
<sha256 value="574b89ee589c530ec4d3fc412aac890066842db45a6a9a1bbe89542e0b47e81b" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="574b89ee589c530ec4d3fc412aac890066842db45a6a9a1bbe89542e0b47e81b" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.activity" name="activity-ktx" version="1.7.0">
|
||||||
|
<artifact name="activity-ktx-1.7.0.aar">
|
||||||
|
<sha256 value="fce317d61a22f12967b475bfcb80c89dda66e418975e890ea703cb74e12b5b11" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="activity-ktx-1.7.0.module">
|
||||||
|
<sha256 value="f4001a709b6f7132b22a5e17c24f8b8a9b3c462a598de3b0f16cc57a4344bab6" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.activity" name="activity-ktx" version="1.8.0">
|
<component group="androidx.activity" name="activity-ktx" version="1.8.0">
|
||||||
<artifact name="activity-ktx-1.8.0.aar">
|
<artifact name="activity-ktx-1.8.0.aar">
|
||||||
<sha256 value="bfee12c1c88c3f74954fbf6e6766bc183956f37478b7c024fae7f5b38493d7a5" origin="Generated by Gradle"/>
|
<sha256 value="bfee12c1c88c3f74954fbf6e6766bc183956f37478b7c024fae7f5b38493d7a5" origin="Generated by Gradle"/>
|
||||||
|
@ -666,6 +721,11 @@
|
||||||
<sha256 value="2810e76c7386afb5c6e606c0a18fcf4655471eff3a88ce5b57637384efe882bd" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="2810e76c7386afb5c6e606c0a18fcf4655471eff3a88ce5b57637384efe882bd" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.compose.runtime" name="runtime" version="1.0.0">
|
||||||
|
<artifact name="runtime-1.0.0.module">
|
||||||
|
<sha256 value="8a82fdb0c8264bc7f4addf715417dfc427e9b0aaed8ad507a2bd11be3eb11b5d" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.compose.runtime" name="runtime" version="1.0.0-beta03">
|
<component group="androidx.compose.runtime" name="runtime" version="1.0.0-beta03">
|
||||||
<artifact name="runtime-1.0.0-beta03.aar">
|
<artifact name="runtime-1.0.0-beta03.aar">
|
||||||
<sha256 value="5ab7662bac71ba3f3f48287ec045af083c5b5806dfbf2717662705edd33173de" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="5ab7662bac71ba3f3f48287ec045af083c5b5806dfbf2717662705edd33173de" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -674,6 +734,19 @@
|
||||||
<sha256 value="fb1f6624ceb87426e4b659e7ad868cc98e5fad7c3b8418b9c33114fa0edfd7eb" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="fb1f6624ceb87426e4b659e7ad868cc98e5fad7c3b8418b9c33114fa0edfd7eb" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.compose.runtime" name="runtime" version="1.2.1">
|
||||||
|
<artifact name="runtime-1.2.1.module">
|
||||||
|
<sha256 value="80bdfc01d2d916afc195ab14b0718e055ebce788a4aca7cfbb81d7660466e816" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
|
<component group="androidx.compose.runtime" name="runtime" version="1.4.3">
|
||||||
|
<artifact name="runtime-1.4.3.aar">
|
||||||
|
<sha256 value="f975185e13d3e5b0c142e220e924bfe643d4421b0fdae3f2036f1e0160a390f4" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="runtime-1.4.3.module">
|
||||||
|
<sha256 value="eb9df383e284282a6ebc9b23e09b4dbef196d299beabb68eb3dfbe0f7909041c" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.compose.runtime" name="runtime-saveable" version="1.0.0-beta03">
|
<component group="androidx.compose.runtime" name="runtime-saveable" version="1.0.0-beta03">
|
||||||
<artifact name="runtime-saveable-1.0.0-beta03.aar">
|
<artifact name="runtime-saveable-1.0.0-beta03.aar">
|
||||||
<sha256 value="fcbc8bac14f09cc2f8f99d94a3e5affbdf601d682858b23dffd0fca01cd2dfeb" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="fcbc8bac14f09cc2f8f99d94a3e5affbdf601d682858b23dffd0fca01cd2dfeb" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -682,6 +755,19 @@
|
||||||
<sha256 value="e109d4f78314e6d49a57f47a24304bd2bd55c1eb152bf6f8aeca4c6fd159b37d" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="e109d4f78314e6d49a57f47a24304bd2bd55c1eb152bf6f8aeca4c6fd159b37d" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.compose.runtime" name="runtime-saveable" version="1.2.1">
|
||||||
|
<artifact name="runtime-saveable-1.2.1.module">
|
||||||
|
<sha256 value="212a29a7961157534989d037ba696ea15dee3deb3fdcfd4f124aeeddbd5c0cf5" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
|
<component group="androidx.compose.runtime" name="runtime-saveable" version="1.4.3">
|
||||||
|
<artifact name="runtime-saveable-1.4.3.aar">
|
||||||
|
<sha256 value="756d7f53d64b664ad168c7109aa88cc394fb51aee6a2bb7ac86982242834f5ca" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="runtime-saveable-1.4.3.module">
|
||||||
|
<sha256 value="0200f91f504e138b8c4af2c7da19e510efe1400409903b97af047e9295ea8347" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.compose.ui" name="ui" version="1.0.0-beta03">
|
<component group="androidx.compose.ui" name="ui" version="1.0.0-beta03">
|
||||||
<artifact name="ui-1.0.0-beta03.aar">
|
<artifact name="ui-1.0.0-beta03.aar">
|
||||||
<sha256 value="6218c5e18266dbed86ca100692a91df91ecb005d1eb0782154aa00c2043130f4" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="6218c5e18266dbed86ca100692a91df91ecb005d1eb0782154aa00c2043130f4" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -690,6 +776,14 @@
|
||||||
<sha256 value="d80393dd51cc89361e0edb7d9ca0f2dc7991e290123e62972fd601cdca65da50" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="d80393dd51cc89361e0edb7d9ca0f2dc7991e290123e62972fd601cdca65da50" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.compose.ui" name="ui" version="1.4.3">
|
||||||
|
<artifact name="ui-1.4.3.aar">
|
||||||
|
<sha256 value="a49acd04ac5d596a1e3b00fd965612901b7d05975c51cc5bcf5258bfc3dbca43" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ui-1.4.3.module">
|
||||||
|
<sha256 value="6368ef2f7070753341b32a8d3d3953fd11cd9383fa9947331a0b17ce91893b70" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.compose.ui" name="ui-geometry" version="1.0.0-beta03">
|
<component group="androidx.compose.ui" name="ui-geometry" version="1.0.0-beta03">
|
||||||
<artifact name="ui-geometry-1.0.0-beta03.aar">
|
<artifact name="ui-geometry-1.0.0-beta03.aar">
|
||||||
<sha256 value="5a27ac60d83a091850310273db3b50f51ff16a2874bd964746a546edf5dd3af4" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="5a27ac60d83a091850310273db3b50f51ff16a2874bd964746a546edf5dd3af4" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -698,6 +792,14 @@
|
||||||
<sha256 value="d8db42ec77b70b35efb03279fc28bfbad741664c7aea2b12194ad4c6abb4661f" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="d8db42ec77b70b35efb03279fc28bfbad741664c7aea2b12194ad4c6abb4661f" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.compose.ui" name="ui-geometry" version="1.4.3">
|
||||||
|
<artifact name="ui-geometry-1.4.3.aar">
|
||||||
|
<sha256 value="ef98ec03f6104730c3152f8ea27404f0764c715872f25a1d893879dd4c2e55bd" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ui-geometry-1.4.3.module">
|
||||||
|
<sha256 value="43a9ea188350a9d24c03dda08a76798940a63c8946b36db8fd869ba49adc045c" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.compose.ui" name="ui-graphics" version="1.0.0-beta03">
|
<component group="androidx.compose.ui" name="ui-graphics" version="1.0.0-beta03">
|
||||||
<artifact name="ui-graphics-1.0.0-beta03.aar">
|
<artifact name="ui-graphics-1.0.0-beta03.aar">
|
||||||
<sha256 value="de0049466a031faf2927334df489541c60256aca5519f722dae1140b52385df4" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="de0049466a031faf2927334df489541c60256aca5519f722dae1140b52385df4" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -706,6 +808,14 @@
|
||||||
<sha256 value="0b6a253de6326f3df4c0206db63b9275c10a26a135844c5871b32c335ef30f72" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="0b6a253de6326f3df4c0206db63b9275c10a26a135844c5871b32c335ef30f72" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.compose.ui" name="ui-graphics" version="1.4.3">
|
||||||
|
<artifact name="ui-graphics-1.4.3.aar">
|
||||||
|
<sha256 value="298cdc2ff4ea610a22b01f666a460239aa260f2467f7762d575d84e773545b2d" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ui-graphics-1.4.3.module">
|
||||||
|
<sha256 value="145368f666b9881a571884690a1a480856908e1393d197e2c694e9070c9f9054" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.compose.ui" name="ui-test" version="1.0.0-beta03">
|
<component group="androidx.compose.ui" name="ui-test" version="1.0.0-beta03">
|
||||||
<artifact name="ui-test-1.0.0-beta03.aar">
|
<artifact name="ui-test-1.0.0-beta03.aar">
|
||||||
<sha256 value="4df5a345f1746f6a1f96cd02188353b6e90606774d3bbd82c7cbcbc653365c9d" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="4df5a345f1746f6a1f96cd02188353b6e90606774d3bbd82c7cbcbc653365c9d" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -714,6 +824,14 @@
|
||||||
<sha256 value="3d69bf17e92d730856bd7fc02834a3befd7af95e369ac34c0eab4b045788057b" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="3d69bf17e92d730856bd7fc02834a3befd7af95e369ac34c0eab4b045788057b" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.compose.ui" name="ui-test" version="1.4.3">
|
||||||
|
<artifact name="ui-test-1.4.3.aar">
|
||||||
|
<sha256 value="178ecaeb147a0451ac6ad589eec7b7b1594e5ad16754b49216c4702c73303304" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ui-test-1.4.3.module">
|
||||||
|
<sha256 value="d40b581a7f223d04d9180d2c4ba437459933f38d2bcc5db24e57757b234aeb95" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.compose.ui" name="ui-test-junit4" version="1.0.0-beta03">
|
<component group="androidx.compose.ui" name="ui-test-junit4" version="1.0.0-beta03">
|
||||||
<artifact name="ui-test-junit4-1.0.0-beta03.aar">
|
<artifact name="ui-test-junit4-1.0.0-beta03.aar">
|
||||||
<sha256 value="f376db003a6fea41a07d177763c06d4c97ae7745cf7129b48b37109ab6356c87" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="f376db003a6fea41a07d177763c06d4c97ae7745cf7129b48b37109ab6356c87" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -722,6 +840,14 @@
|
||||||
<sha256 value="a8c79889f157ba9ebcaf940661c5171c807c9754b21ef58c029a4726f857ba91" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="a8c79889f157ba9ebcaf940661c5171c807c9754b21ef58c029a4726f857ba91" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.compose.ui" name="ui-test-junit4" version="1.4.3">
|
||||||
|
<artifact name="ui-test-junit4-1.4.3.aar">
|
||||||
|
<sha256 value="5a6a6c8e213613e29e0529336483974f6aea9cd0f09fea7212e58a273ec42ce0" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ui-test-junit4-1.4.3.module">
|
||||||
|
<sha256 value="ba440331b8d5370536958c32da04832635e635a30d5263a4ed43be07b44eb14b" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.compose.ui" name="ui-text" version="1.0.0-beta03">
|
<component group="androidx.compose.ui" name="ui-text" version="1.0.0-beta03">
|
||||||
<artifact name="ui-text-1.0.0-beta03.aar">
|
<artifact name="ui-text-1.0.0-beta03.aar">
|
||||||
<sha256 value="9bb92972c4c66700c77b7ae6c2af1ce51f9e02e70c865875c388f56e4ac70de0" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="9bb92972c4c66700c77b7ae6c2af1ce51f9e02e70c865875c388f56e4ac70de0" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -730,6 +856,14 @@
|
||||||
<sha256 value="fa42289fa59f360fda2707de2dddf31344845c5430098bb90df719decf02f025" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="fa42289fa59f360fda2707de2dddf31344845c5430098bb90df719decf02f025" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.compose.ui" name="ui-text" version="1.4.3">
|
||||||
|
<artifact name="ui-text-1.4.3.aar">
|
||||||
|
<sha256 value="dfa801c2b6b29c97a7f6a20fc45a9b2cb8da4d52b1601d9f10c70878f98f1faa" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ui-text-1.4.3.module">
|
||||||
|
<sha256 value="1f0e14c174dd69da7f5125a6f6cff9bc6b367fa6aae36bd75f06dde7cbaec218" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.compose.ui" name="ui-unit" version="1.0.0-beta03">
|
<component group="androidx.compose.ui" name="ui-unit" version="1.0.0-beta03">
|
||||||
<artifact name="ui-unit-1.0.0-beta03.aar">
|
<artifact name="ui-unit-1.0.0-beta03.aar">
|
||||||
<sha256 value="886206123433a0b07f36a67bfac3d6ea36086305658d4e4c799527116732ac28" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="886206123433a0b07f36a67bfac3d6ea36086305658d4e4c799527116732ac28" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -738,6 +872,14 @@
|
||||||
<sha256 value="0e94b115ba03a9b2af9e89dbe6b3bb313fca43e61054b582dec65c0c2347b0ce" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="0e94b115ba03a9b2af9e89dbe6b3bb313fca43e61054b582dec65c0c2347b0ce" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.compose.ui" name="ui-unit" version="1.4.3">
|
||||||
|
<artifact name="ui-unit-1.4.3.aar">
|
||||||
|
<sha256 value="0dfbac9fbf2ca6dce36cd3d990786c9bc09fcfe962cbe27af531311d49611eb4" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ui-unit-1.4.3.module">
|
||||||
|
<sha256 value="70110f247d733d453714f97f88afa1a003258689069d4e458933456c67840f3c" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.compose.ui" name="ui-util" version="1.0.0-beta03">
|
<component group="androidx.compose.ui" name="ui-util" version="1.0.0-beta03">
|
||||||
<artifact name="ui-util-1.0.0-beta03.aar">
|
<artifact name="ui-util-1.0.0-beta03.aar">
|
||||||
<sha256 value="b3345179a819a40e6dd0201212175ef76e9fd7e32dc943a4237506da767ed6b1" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="b3345179a819a40e6dd0201212175ef76e9fd7e32dc943a4237506da767ed6b1" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -746,6 +888,14 @@
|
||||||
<sha256 value="c9d6fbfcf5ded03a6f398303dd2f5d68d95bf90d8f6f55ed0cbc3733b6a93838" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="c9d6fbfcf5ded03a6f398303dd2f5d68d95bf90d8f6f55ed0cbc3733b6a93838" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.compose.ui" name="ui-util" version="1.4.3">
|
||||||
|
<artifact name="ui-util-1.4.3.aar">
|
||||||
|
<sha256 value="a6ad526f26de348c69f57f1bd8742853ea58b3a22a571fbb76a6d8ba8e620d7e" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="ui-util-1.4.3.module">
|
||||||
|
<sha256 value="c4d60495386efdb565b7a66c1a00dbe3590c3ef91e9e13a20fbb31d6e17e8009" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.concurrent" name="concurrent-futures" version="1.0.0">
|
<component group="androidx.concurrent" name="concurrent-futures" version="1.0.0">
|
||||||
<artifact name="concurrent-futures-1.0.0.jar">
|
<artifact name="concurrent-futures-1.0.0.jar">
|
||||||
<sha256 value="5595a40e278a7b39fa78a09490e3d7f3faa95c7b01447148bd38b5ade0605c35" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="5595a40e278a7b39fa78a09490e3d7f3faa95c7b01447148bd38b5ade0605c35" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -854,6 +1004,11 @@
|
||||||
<sha256 value="8348e2b5c0c7e283370b85037cec8b32b4acab8d73a7a53235a372446b1387c8" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="8348e2b5c0c7e283370b85037cec8b32b4acab8d73a7a53235a372446b1387c8" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.core" name="core" version="1.7.0">
|
||||||
|
<artifact name="core-1.7.0.module">
|
||||||
|
<sha256 value="988f820899d5a4982e5c878ca1cd417970ace332ea2ff72f5be19b233fa0e788" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.core" name="core" version="1.9.0">
|
<component group="androidx.core" name="core" version="1.9.0">
|
||||||
<artifact name="core-1.9.0.aar">
|
<artifact name="core-1.9.0.aar">
|
||||||
<sha256 value="8bda3ee3a88887d54f6679fb6b6cd788629f73234ac91c8bbed924e721ec85b8" origin="Generated by Gradle"/>
|
<sha256 value="8bda3ee3a88887d54f6679fb6b6cd788629f73234ac91c8bbed924e721ec85b8" origin="Generated by Gradle"/>
|
||||||
|
@ -886,6 +1041,11 @@
|
||||||
<sha256 value="29eaddba4e6a35e68a128e594ebae3b72ef7e767f1b273ef93dc2ed019ff97f6" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="29eaddba4e6a35e68a128e594ebae3b72ef7e767f1b273ef93dc2ed019ff97f6" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.core" name="core-ktx" version="1.5.0">
|
||||||
|
<artifact name="core-ktx-1.5.0.module">
|
||||||
|
<sha256 value="b037fdfb267dc0141ab9f4e4e85daf87b175cf311248d54b501b58ec42345315" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.core" name="core-ktx" version="1.8.0">
|
<component group="androidx.core" name="core-ktx" version="1.8.0">
|
||||||
<artifact name="core-ktx-1.8.0.module">
|
<artifact name="core-ktx-1.8.0.module">
|
||||||
<sha256 value="a91bc3e02f209f643dd8275345a9e3003ce20d64fc0760eccf479c1709842f72" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="a91bc3e02f209f643dd8275345a9e3003ce20d64fc0760eccf479c1709842f72" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -1101,6 +1261,14 @@
|
||||||
<sha256 value="9951cb91d43d916e1aa298682121c42d49c1f0280061d002f1f36ff6cb5318ee" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="9951cb91d43d916e1aa298682121c42d49c1f0280061d002f1f36ff6cb5318ee" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.fragment" name="fragment" version="1.6.0">
|
||||||
|
<artifact name="fragment-1.6.0.aar">
|
||||||
|
<sha256 value="eaad568874cea7e1738beebf3298670a8743e25bb4934546764bee62f6d27f26" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="fragment-1.6.0.module">
|
||||||
|
<sha256 value="e5e36b5a630ba3e2e96ea852d371579290b5aaa2dc5fb9897989a10bace513c7" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.fragment" name="fragment" version="1.6.1">
|
<component group="androidx.fragment" name="fragment" version="1.6.1">
|
||||||
<artifact name="fragment-1.6.1.aar">
|
<artifact name="fragment-1.6.1.aar">
|
||||||
<sha256 value="5eeb5964a8edb25966d5cc7933fe893e3c58e245ac433d358478b20b6d09d4e3" origin="Generated by Gradle"/>
|
<sha256 value="5eeb5964a8edb25966d5cc7933fe893e3c58e245ac433d358478b20b6d09d4e3" origin="Generated by Gradle"/>
|
||||||
|
@ -1122,6 +1290,14 @@
|
||||||
<sha256 value="b3955b619e8a16c38af39c19126867c72d1954db05551709e58c082b946078c4" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="b3955b619e8a16c38af39c19126867c72d1954db05551709e58c082b946078c4" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.fragment" name="fragment-ktx" version="1.6.0">
|
||||||
|
<artifact name="fragment-ktx-1.6.0.aar">
|
||||||
|
<sha256 value="48c57ecebc6c1b07baf7dd1b77095560bb1f158aec83ba155645b77a1ce53307" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="fragment-ktx-1.6.0.module">
|
||||||
|
<sha256 value="cdce823ab3ebfecf9400edcfb9248c3920e1ed62fc7d189692dbdb0145660fab" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.fragment" name="fragment-ktx" version="1.6.1">
|
<component group="androidx.fragment" name="fragment-ktx" version="1.6.1">
|
||||||
<artifact name="fragment-ktx-1.6.1.aar">
|
<artifact name="fragment-ktx-1.6.1.aar">
|
||||||
<sha256 value="3e4595cda9bee392715959366d70790704ff240c77656e702f3c8220b3d9245a" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="3e4595cda9bee392715959366d70790704ff240c77656e702f3c8220b3d9245a" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -1138,6 +1314,14 @@
|
||||||
<sha256 value="75714382c8f9e292b01762852fd0672d33973254c2bd2b9918b50f861792b171" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="75714382c8f9e292b01762852fd0672d33973254c2bd2b9918b50f861792b171" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.fragment" name="fragment-testing" version="1.6.0">
|
||||||
|
<artifact name="fragment-testing-1.6.0.aar">
|
||||||
|
<sha256 value="60effba842729d21c8134e5f75f38c79a919f3eca345359024582a92a3215c2a" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="fragment-testing-1.6.0.module">
|
||||||
|
<sha256 value="779fb54ac2b9720ab464f8ba45af8ae2735d7257ad81ba09d0f7c23a6a992aba" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.fragment" name="fragment-testing" version="1.6.1">
|
<component group="androidx.fragment" name="fragment-testing" version="1.6.1">
|
||||||
<artifact name="fragment-testing-1.6.1.aar">
|
<artifact name="fragment-testing-1.6.1.aar">
|
||||||
<sha256 value="826e7ae51ba7133e905964b3d37ce8b2a4c7617ae6afa04295fb8dd06810807a" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="826e7ae51ba7133e905964b3d37ce8b2a4c7617ae6afa04295fb8dd06810807a" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -1146,6 +1330,14 @@
|
||||||
<sha256 value="2cdb7629e9a4dd6ac87b8a890ce535299e23dfa6ec08dd80626b7d3416f3672a" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="2cdb7629e9a4dd6ac87b8a890ce535299e23dfa6ec08dd80626b7d3416f3672a" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="androidx.fragment" name="fragment-testing-manifest" version="1.6.0">
|
||||||
|
<artifact name="fragment-testing-manifest-1.6.0.aar">
|
||||||
|
<sha256 value="27257bd7640fcb6b273639309962afc0d61aaad5f086bcf4ba973f708c389629" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
<artifact name="fragment-testing-manifest-1.6.0.module">
|
||||||
|
<sha256 value="574f209ab2bde1158082e96fc1edb8f20e235b46105d76fd2e4367a506acb925" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="androidx.fragment" name="fragment-testing-manifest" version="1.6.1">
|
<component group="androidx.fragment" name="fragment-testing-manifest" version="1.6.1">
|
||||||
<artifact name="fragment-testing-manifest-1.6.1.aar">
|
<artifact name="fragment-testing-manifest-1.6.1.aar">
|
||||||
<sha256 value="185dc939a78d2f500188b20a7327e55b28cad7e4b944a73b3396d7ff89bc579c" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="185dc939a78d2f500188b20a7327e55b28cad7e4b944a73b3396d7ff89bc579c" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
@ -1680,6 +1872,9 @@
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
<component group="androidx.profileinstaller" name="profileinstaller" version="1.3.0">
|
<component group="androidx.profileinstaller" name="profileinstaller" version="1.3.0">
|
||||||
|
<artifact name="profileinstaller-1.3.0.aar">
|
||||||
|
<sha256 value="34e8b2bfc74e23c1525e3da903ae449b7f1b440aef45e18159ee470e91997f48" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
|
</artifact>
|
||||||
<artifact name="profileinstaller-1.3.0.module">
|
<artifact name="profileinstaller-1.3.0.module">
|
||||||
<sha256 value="a16fe511e599c2042da122be09569aecd3f4f90cad37ef08bd0bbc39118c92c8" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
<sha256 value="a16fe511e599c2042da122be09569aecd3f4f90cad37ef08bd0bbc39118c92c8" origin="Generated by Gradle" reason="Artifact is not signed"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
|
@ -2911,6 +3106,11 @@
|
||||||
<sha256 value="9a75f3e32bf9d6e00678d9447ace4de8596a2d221af5cf5bbc7f571cac795006" origin="Generated by Gradle"/>
|
<sha256 value="9a75f3e32bf9d6e00678d9447ace4de8596a2d221af5cf5bbc7f571cac795006" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="com.fasterxml" name="oss-parent" version="41">
|
||||||
|
<artifact name="oss-parent-41.pom">
|
||||||
|
<pgp value="8A10792983023D5D14C93B488D7F1BEC1E2ECAE7"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="com.fasterxml" name="oss-parent" version="48">
|
<component group="com.fasterxml" name="oss-parent" version="48">
|
||||||
<artifact name="oss-parent-48.pom">
|
<artifact name="oss-parent-48.pom">
|
||||||
<sha256 value="11bba22d8631816e09b623a200747453d6491a66eac8f5c089c73da2b749014f" origin="Generated by Gradle" reason="A key couldn't be downloaded"/>
|
<sha256 value="11bba22d8631816e09b623a200747453d6491a66eac8f5c089c73da2b749014f" origin="Generated by Gradle" reason="A key couldn't be downloaded"/>
|
||||||
|
|
Loading…
Reference in a new issue