diff --git a/bramble-android/witness.gradle b/bramble-android/witness.gradle index 7276ab121..91f0da20b 100644 --- a/bramble-android/witness.gradle +++ b/bramble-android/witness.gradle @@ -4,18 +4,16 @@ dependencyVerification { 'cglib:cglib:3.2.8:cglib-3.2.8.jar:3f64de999ecc5595dc84ca8ff0879d8a34c8623f9ef3c517a53ed59023fcb9db', 'com.google.code.findbugs:annotations:3.0.1:annotations-3.0.1.jar:6b47ff0a6de0ce17cbedc3abb0828ca5bce3009d53ea47b3723ff023c4742f79', 'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', - 'com.google.dagger:dagger-compiler:2.45:dagger-compiler-2.45.jar:5617dfb994537dba5b41f3744a6dd13ec3cd99789c065e0d5c6fa9f21cf7ca25', - 'com.google.dagger:dagger-producers:2.45:dagger-producers-2.45.jar:a05abb4c3ccf6bb0f056bdcb5ef973898ecf172952ab5948a824aeea6c86ecaa', - 'com.google.dagger:dagger-spi:2.45:dagger-spi-2.45.jar:7cd6f0b09d88e64a9c97bc80e544ab8ac8fdee9301754413585a74cf64222b27', - 'com.google.dagger:dagger:2.45:dagger-2.45.jar:f011cae7d2c0fb7ea17c34e05bc10e768b1081a5892ad019cf1fdb0e125c49c1', - 'com.google.devtools.ksp:symbol-processing-api:1.7.0-1.0.6:symbol-processing-api-1.7.0-1.0.6.jar:adc29417be5ca9ff42118105fea4e36d9ef44987abfc41432309371a60198941', - 'com.google.errorprone:error_prone_annotations:2.7.1:error_prone_annotations-2.7.1.jar:cd5257c08a246cf8628817ae71cb822be192ef91f6881ca4a3fcff4f1de1cff3', + 'com.google.dagger:dagger-compiler:2.51.1:dagger-compiler-2.51.1.jar:14cf2def1c4c8cd3b977840e297b463191d537cd1c8330992ca5c0b341a641ad', + 'com.google.dagger:dagger-spi:2.51.1:dagger-spi-2.51.1.jar:deb52030b92b27c5dcd76b2c0747f1cf105b60939f6073b43eb06cfe7c9ba601', + 'com.google.dagger:dagger:2.51.1:dagger-2.51.1.jar:c3891a4c4a4e48682888ca321eaf8497004b286e1d9a2936867373219f7dd86d', + 'com.google.devtools.ksp:symbol-processing-api:1.9.20-1.0.14:symbol-processing-api-1.9.20-1.0.14.jar:d0339396f40dc9eb3b3f7bc86257f93869ee23448fa31ec4a1de900c6b7ae6d7', + 'com.google.errorprone:error_prone_annotations:2.23.0:error_prone_annotations-2.23.0.jar:ec6f39f068b6ff9ac323c68e28b9299f8c0a80ca512dccb1d4a70f40ac3ec054', 'com.google.errorprone:javac-shaded:9-dev-r4023-3:javac-shaded-9-dev-r4023-3.jar:65bfccf60986c47fbc17c9ebab0be626afc41741e0a6ec7109e0768817a36f30', 'com.google.googlejavaformat:google-java-format:1.5:google-java-format-1.5.jar:aa19ad7850fb85178aa22f2fddb163b84d6ce4d0035872f30d4408195ca1144e', - 'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26', - 'com.google.guava:guava:31.0.1-jre:guava-31.0.1-jre.jar:d5be94d65e87bd219fb3193ad1517baa55a3b88fc91d21cf735826ab5af087b9', + 'com.google.guava:failureaccess:1.0.2:failureaccess-1.0.2.jar:8a8f81cf9b359e3f6dfa691a1e776985c061ef2f223c9b2c80753e1b458e8064', + 'com.google.guava:guava:33.0.0-jre:guava-33.0.0-jre.jar:f4d85c3e4d411694337cb873abea09b242b664bb013320be6105327c45991537', 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99', - 'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b', 'com.squareup:javapoet:1.13.0:javapoet-1.13.0.jar:4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291', 'com.squareup:kotlinpoet:1.11.0:kotlinpoet-1.11.0.jar:2887ada1ca03dd83baa2758640d87e840d1907564db0ef88d2289c868a980492', 'javax.annotation:jsr250-api:1.0:jsr250-api-1.0.jar:a1a922d0d9b6d183ed3800dfac01d1e1eb159f0e8c6f94736931c1def54a941f', @@ -34,7 +32,7 @@ dependencyVerification { 'org.briarproject:snowflake-android:2.9.1:snowflake-android-2.9.1.jar:8d6195637edbe3717d205c2e524e9d3cb742b90fc67b10565d16262af134e489', 'org.briarproject:tor-android:0.4.8.9-1:tor-android-0.4.8.9-1.jar:8fbaaf0cb1663abd12852b7fc51a804534b7e7d865b4dec3fc4e9ec0e79f3ad5', 'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a', - 'org.checkerframework:checker-qual:3.12.0:checker-qual-3.12.0.jar:ff10785ac2a357ec5de9c293cb982a2cbb605c0309ea4cc1cb9b9bc6dbe7f3cb', + 'org.checkerframework:checker-qual:3.41.0:checker-qual-3.41.0.jar:2f9f245bf68e4259d610894f2406dc1f6363dc639302bd566e8272e4f4541172', 'org.hamcrest:hamcrest-core:2.1:hamcrest-core-2.1.jar:e09109e54a289d88506b9bfec987ddd199f4217c9464132668351b9a4f00bee9', 'org.hamcrest:hamcrest-library:2.1:hamcrest-library-2.1.jar:b7e2b6895b3b679f0e47b6380fda391b225e9b78505db9d8bdde8d3cc8d52a21', 'org.hamcrest:hamcrest:2.1:hamcrest-2.1.jar:ba93b2e3a562322ba432f0a1b53addcc55cb188253319a020ed77f824e692050', @@ -43,14 +41,12 @@ dependencyVerification { 'org.jacoco:org.jacoco.core:0.8.7:org.jacoco.core-0.8.7.jar:ad7739b5fb5969aa1a8aead3d74ed54dc82ed012f1f10f336bd1b96e71c1a13c', 'org.jacoco:org.jacoco.report:0.8.7:org.jacoco.report-0.8.7.jar:cc89258623700a6c932592153cb528785876b6da183d5431f97efbba6f020e5b', 'org.jetbrains.kotlin:kotlin-reflect:1.6.10:kotlin-reflect-1.6.10.jar:3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203', - 'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.0:kotlin-stdlib-common-1.7.0.jar:59c6ff64fe9a6604afce03e8aaa75f83586c6030ac71fb0b34ee7cdefed3618f', - 'org.jetbrains.kotlin:kotlin-stdlib-common:1.8.0:kotlin-stdlib-common-1.8.0.jar:78ef93b59e603cc0fe51def9bd4c037b07cbace3b3b7806d1a490a42bc1f4cb2', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.0:kotlin-stdlib-jdk7-1.7.0.jar:07e91be9b2ca20672d2bdb7e181b766e73453a2da13492b5ddaee8fa47aea239', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0:kotlin-stdlib-jdk7-1.8.0.jar:4c889d1d9803f5f2eb6c1592a6b7e62369ac7660c9eee15aba16fec059163666', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0:kotlin-stdlib-jdk8-1.7.0.jar:cf058e11db1dfc9944680c8c61b95ac689aaaa8a3eb30bced028100f038f030b', - 'org.jetbrains.kotlin:kotlin-stdlib:1.7.0:kotlin-stdlib-1.7.0.jar:aa88e9625577957f3249a46cb6e166ee09b369e600f7a11d148d16b0a6d87f05', - 'org.jetbrains.kotlin:kotlin-stdlib:1.8.0:kotlin-stdlib-1.8.0.jar:c77bef8774640b9fb9d6e217459ff220dae59878beb7d2e4b430506feffc654e', - 'org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0:kotlinx-metadata-jvm-0.5.0.jar:ca063a96639b08b9eaa0de4d65e899480740a6efbe28ab9a8681a2ced03055a4', + 'org.jetbrains.kotlin:kotlin-stdlib-common:1.9.10:kotlin-stdlib-common-1.9.10.jar:cde3341ba18a2ba262b0b7cf6c55b20c90e8d434e42c9a13e6a3f770db965a88', + 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0:kotlin-stdlib-jdk7-1.9.0.jar:b7979a7aac94055f0d9f1fd3b47ce5ffe1cb6032a842ba9fbe7186f085289178', + 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10:kotlin-stdlib-jdk7-1.9.10.jar:ac6361bf9ad1ed382c2103d9712c47cdec166232b4903ed596e8876b0681c9b7', + 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0:kotlin-stdlib-jdk8-1.9.0.jar:a59fa24fdf1ffb594baecdbf0fd10010f977cea10236d487fe3464977a7377fa', + 'org.jetbrains.kotlin:kotlin-stdlib:1.9.10:kotlin-stdlib-1.9.10.jar:55e989c512b80907799f854309f3bc7782c5b3d13932442d0379d5c472711504', + 'org.jetbrains.kotlin:kotlin-stdlib:1.9.20:kotlin-stdlib-1.9.20.jar:28a35bcdff46d864f80f346a617e486284b208d17378c41900dfb1de95a90e6c', 'org.jetbrains:annotations:13.0:annotations-13.0.jar:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478', 'org.jmock:jmock-imposters:2.12.0:jmock-imposters-2.12.0.jar:3b836269745a137c9b2347e8d7c2104845b126ef04f012d6bfd94f1a7dea7b09', 'org.jmock:jmock-junit4:2.12.0:jmock-junit4-2.12.0.jar:3233062fc889637c151a24f1ee086bad04321ab7d8264fef279daff0fa27205b', diff --git a/bramble-api/witness.gradle b/bramble-api/witness.gradle index 3871239bb..2995ac60d 100644 --- a/bramble-api/witness.gradle +++ b/bramble-api/witness.gradle @@ -4,7 +4,7 @@ dependencyVerification { 'com.fasterxml.jackson.core:jackson-annotations:2.13.4:jackson-annotations-2.13.4.jar:ac5b27a634942391ca113850ee7db01df1499a240174021263501c05fc653b44', 'com.google.code.findbugs:annotations:3.0.1:annotations-3.0.1.jar:6b47ff0a6de0ce17cbedc3abb0828ca5bce3009d53ea47b3723ff023c4742f79', 'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', - 'com.google.dagger:dagger:2.45:dagger-2.45.jar:f011cae7d2c0fb7ea17c34e05bc10e768b1081a5892ad019cf1fdb0e125c49c1', + 'com.google.dagger:dagger:2.51.1:dagger-2.51.1.jar:c3891a4c4a4e48682888ca321eaf8497004b286e1d9a2936867373219f7dd86d', 'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', 'junit:junit:4.13.2:junit-4.13.2.jar:8e495b634469d64fb8acfa3495a065cbacc8a0fff55ce1e31007be4c16dc57d3', 'net.bytebuddy:byte-buddy:1.9.12:byte-buddy-1.9.12.jar:3688c3d434bebc3edc5516296a2ed0f47b65e451071b4afecad84f902f0efc11', diff --git a/bramble-core/witness.gradle b/bramble-core/witness.gradle index c0321062b..6d8c967b3 100644 --- a/bramble-core/witness.gradle +++ b/bramble-core/witness.gradle @@ -6,22 +6,20 @@ dependencyVerification { 'com.fasterxml.jackson.core:jackson-databind:2.13.4:jackson-databind-2.13.4.jar:c9faff420d9e2c7e1e4711dbeebec2506a32c9942027211c5c293d8d87807eb6', 'com.google.code.findbugs:annotations:3.0.1:annotations-3.0.1.jar:6b47ff0a6de0ce17cbedc3abb0828ca5bce3009d53ea47b3723ff023c4742f79', 'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', - 'com.google.dagger:dagger-compiler:2.45:dagger-compiler-2.45.jar:5617dfb994537dba5b41f3744a6dd13ec3cd99789c065e0d5c6fa9f21cf7ca25', - 'com.google.dagger:dagger-producers:2.45:dagger-producers-2.45.jar:a05abb4c3ccf6bb0f056bdcb5ef973898ecf172952ab5948a824aeea6c86ecaa', - 'com.google.dagger:dagger-spi:2.45:dagger-spi-2.45.jar:7cd6f0b09d88e64a9c97bc80e544ab8ac8fdee9301754413585a74cf64222b27', - 'com.google.dagger:dagger:2.45:dagger-2.45.jar:f011cae7d2c0fb7ea17c34e05bc10e768b1081a5892ad019cf1fdb0e125c49c1', - 'com.google.devtools.ksp:symbol-processing-api:1.7.0-1.0.6:symbol-processing-api-1.7.0-1.0.6.jar:adc29417be5ca9ff42118105fea4e36d9ef44987abfc41432309371a60198941', - 'com.google.errorprone:error_prone_annotations:2.7.1:error_prone_annotations-2.7.1.jar:cd5257c08a246cf8628817ae71cb822be192ef91f6881ca4a3fcff4f1de1cff3', + 'com.google.dagger:dagger-compiler:2.51.1:dagger-compiler-2.51.1.jar:14cf2def1c4c8cd3b977840e297b463191d537cd1c8330992ca5c0b341a641ad', + 'com.google.dagger:dagger-spi:2.51.1:dagger-spi-2.51.1.jar:deb52030b92b27c5dcd76b2c0747f1cf105b60939f6073b43eb06cfe7c9ba601', + 'com.google.dagger:dagger:2.51.1:dagger-2.51.1.jar:c3891a4c4a4e48682888ca321eaf8497004b286e1d9a2936867373219f7dd86d', + 'com.google.devtools.ksp:symbol-processing-api:1.9.20-1.0.14:symbol-processing-api-1.9.20-1.0.14.jar:d0339396f40dc9eb3b3f7bc86257f93869ee23448fa31ec4a1de900c6b7ae6d7', + 'com.google.errorprone:error_prone_annotations:2.23.0:error_prone_annotations-2.23.0.jar:ec6f39f068b6ff9ac323c68e28b9299f8c0a80ca512dccb1d4a70f40ac3ec054', 'com.google.errorprone:javac-shaded:9-dev-r4023-3:javac-shaded-9-dev-r4023-3.jar:65bfccf60986c47fbc17c9ebab0be626afc41741e0a6ec7109e0768817a36f30', 'com.google.googlejavaformat:google-java-format:1.5:google-java-format-1.5.jar:aa19ad7850fb85178aa22f2fddb163b84d6ce4d0035872f30d4408195ca1144e', - 'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26', - 'com.google.guava:guava:31.0.1-jre:guava-31.0.1-jre.jar:d5be94d65e87bd219fb3193ad1517baa55a3b88fc91d21cf735826ab5af087b9', + 'com.google.guava:failureaccess:1.0.2:failureaccess-1.0.2.jar:8a8f81cf9b359e3f6dfa691a1e776985c061ef2f223c9b2c80753e1b458e8064', + 'com.google.guava:guava:33.0.0-jre:guava-33.0.0-jre.jar:f4d85c3e4d411694337cb873abea09b242b664bb013320be6105327c45991537', 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99', - 'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b', 'com.h2database:h2:1.4.192:h2-1.4.192.jar:225b22e9857235c46c93861410b60b8c81c10dc8985f4faf188985ba5445126c', 'com.squareup.okhttp3:mockwebserver:4.10.0:mockwebserver-4.10.0.jar:af29da234e63159d6e0dea43bf8288eea97d71cdf1651a5ee2d6c0d0d4adbf8f', - 'com.squareup.okhttp3:okhttp:4.10.0:okhttp-4.10.0.jar:7580f14fa1691206e37081ad3f92063b1603b328da0bb316f2fef02e0562e7ec', - 'com.squareup.okio:okio-jvm:3.0.0:okio-jvm-3.0.0.jar:be64a0cc1f28ea9cd5c970dd7e7557af72c808d738c495b397bf897c9921e907', + 'com.squareup.okhttp3:okhttp:4.12.0:okhttp-4.12.0.jar:b1050081b14bb7a3a7e55a4d3ef01b5dcfabc453b4573a4fc019767191d5f4e0', + 'com.squareup.okio:okio-jvm:3.6.0:okio-jvm-3.6.0.jar:67543f0736fc422ae927ed0e504b98bc5e269fda0d3500579337cb713da28412', 'com.squareup:javapoet:1.13.0:javapoet-1.13.0.jar:4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291', 'com.squareup:kotlinpoet:1.11.0:kotlinpoet-1.11.0.jar:2887ada1ca03dd83baa2758640d87e840d1907564db0ef88d2289c868a980492', 'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', @@ -39,7 +37,7 @@ dependencyVerification { 'org.briarproject:onionwrapper-core:0.1.0:onionwrapper-core-0.1.0.jar:3e6631771b891c959403f6145de034c6f9816e7d067808d534f954eef9a1ca35', 'org.briarproject:socks-socket:0.1:socks-socket-0.1.jar:e5898822d10f5390363c5dddb945891648c92cf93ba50709e07f0d173ec0eb4b', 'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a', - 'org.checkerframework:checker-qual:3.12.0:checker-qual-3.12.0.jar:ff10785ac2a357ec5de9c293cb982a2cbb605c0309ea4cc1cb9b9bc6dbe7f3cb', + 'org.checkerframework:checker-qual:3.41.0:checker-qual-3.41.0.jar:2f9f245bf68e4259d610894f2406dc1f6363dc639302bd566e8272e4f4541172', 'org.codehaus.mojo.signature:java16:1.1:java16-1.1.signature:53799223a2c98dba2d0add810bed76315460df285c69e4f397ae6098f87dd619', 'org.codehaus.mojo:animal-sniffer-ant-tasks:1.22:animal-sniffer-ant-tasks-1.22.jar:3f6afeb3e09301d2d7179ed1db21e3ad8846c1e38415ad832a395138ae3f4218', 'org.codehaus.mojo:animal-sniffer:1.22:animal-sniffer-1.22.jar:f18c11a25bdd8b520b9c6a28cbb6f33007c812ab0051b6be3f0778e660aa501c', @@ -48,17 +46,13 @@ dependencyVerification { 'org.hamcrest:hamcrest:2.1:hamcrest-2.1.jar:ba93b2e3a562322ba432f0a1b53addcc55cb188253319a020ed77f824e692050', 'org.hsqldb:hsqldb:2.3.5:hsqldb-2.3.5.jar:6676a6977ac98997a80f827ddbd3fe8ca1e0853dad1492512135fd1a222ccfad', 'org.jetbrains.kotlin:kotlin-reflect:1.6.10:kotlin-reflect-1.6.10.jar:3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203', - 'org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20:kotlin-stdlib-common-1.6.20.jar:8da40a2520d30dcb1012176fe93d24e82d08a3e346c37e0343b0fb6f64f6be01', - 'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.0:kotlin-stdlib-common-1.7.0.jar:59c6ff64fe9a6604afce03e8aaa75f83586c6030ac71fb0b34ee7cdefed3618f', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.5.31:kotlin-stdlib-jdk7-1.5.31.jar:a25bf47353ce899d843cbddee516d621a73473e7fba97f8d0301e7b4aed7c15f', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10:kotlin-stdlib-jdk7-1.6.10.jar:2aedcdc6b69b33bdf5cc235bcea88e7cf6601146bb6bcdffdb312bbacd7be261', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.0:kotlin-stdlib-jdk7-1.7.0.jar:07e91be9b2ca20672d2bdb7e181b766e73453a2da13492b5ddaee8fa47aea239', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.31:kotlin-stdlib-jdk8-1.5.31.jar:b548f7767aacf029d2417e47440742bd6d3ebede19b60386e23554ce5c4c5fdc', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10:kotlin-stdlib-jdk8-1.6.10.jar:1456d82d039ea30d8485b032901f52bbf07e7cdbe8bb1f8708ad32a8574c41ce', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0:kotlin-stdlib-jdk8-1.7.0.jar:cf058e11db1dfc9944680c8c61b95ac689aaaa8a3eb30bced028100f038f030b', - 'org.jetbrains.kotlin:kotlin-stdlib:1.6.20:kotlin-stdlib-1.6.20.jar:eeb51c2b67b26233fd81d0bc4f8044ec849718890905763ceffd84a31e2cb799', - 'org.jetbrains.kotlin:kotlin-stdlib:1.7.0:kotlin-stdlib-1.7.0.jar:aa88e9625577957f3249a46cb6e166ee09b369e600f7a11d148d16b0a6d87f05', - 'org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0:kotlinx-metadata-jvm-0.5.0.jar:ca063a96639b08b9eaa0de4d65e899480740a6efbe28ab9a8681a2ced03055a4', + 'org.jetbrains.kotlin:kotlin-stdlib-common:1.9.10:kotlin-stdlib-common-1.9.10.jar:cde3341ba18a2ba262b0b7cf6c55b20c90e8d434e42c9a13e6a3f770db965a88', + 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0:kotlin-stdlib-jdk7-1.9.0.jar:b7979a7aac94055f0d9f1fd3b47ce5ffe1cb6032a842ba9fbe7186f085289178', + 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.10:kotlin-stdlib-jdk7-1.9.10.jar:ac6361bf9ad1ed382c2103d9712c47cdec166232b4903ed596e8876b0681c9b7', + 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0:kotlin-stdlib-jdk8-1.9.0.jar:a59fa24fdf1ffb594baecdbf0fd10010f977cea10236d487fe3464977a7377fa', + 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.10:kotlin-stdlib-jdk8-1.9.10.jar:a4c74d94d64ce1abe53760fe0389dd941f6fc558d0dab35e47c085a11ec80f28', + 'org.jetbrains.kotlin:kotlin-stdlib:1.9.10:kotlin-stdlib-1.9.10.jar:55e989c512b80907799f854309f3bc7782c5b3d13932442d0379d5c472711504', + 'org.jetbrains.kotlin:kotlin-stdlib:1.9.20:kotlin-stdlib-1.9.20.jar:28a35bcdff46d864f80f346a617e486284b208d17378c41900dfb1de95a90e6c', 'org.jetbrains:annotations:13.0:annotations-13.0.jar:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478', 'org.jmock:jmock-imposters:2.12.0:jmock-imposters-2.12.0.jar:3b836269745a137c9b2347e8d7c2104845b126ef04f012d6bfd94f1a7dea7b09', 'org.jmock:jmock-junit4:2.12.0:jmock-junit4-2.12.0.jar:3233062fc889637c151a24f1ee086bad04321ab7d8264fef279daff0fa27205b', diff --git a/bramble-java/witness.gradle b/bramble-java/witness.gradle index e895a6c9a..39db54386 100644 --- a/bramble-java/witness.gradle +++ b/bramble-java/witness.gradle @@ -3,18 +3,16 @@ dependencyVerification { 'cglib:cglib:3.2.8:cglib-3.2.8.jar:3f64de999ecc5595dc84ca8ff0879d8a34c8623f9ef3c517a53ed59023fcb9db', 'com.google.code.findbugs:annotations:3.0.1:annotations-3.0.1.jar:6b47ff0a6de0ce17cbedc3abb0828ca5bce3009d53ea47b3723ff023c4742f79', 'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7', - 'com.google.dagger:dagger-compiler:2.45:dagger-compiler-2.45.jar:5617dfb994537dba5b41f3744a6dd13ec3cd99789c065e0d5c6fa9f21cf7ca25', - 'com.google.dagger:dagger-producers:2.45:dagger-producers-2.45.jar:a05abb4c3ccf6bb0f056bdcb5ef973898ecf172952ab5948a824aeea6c86ecaa', - 'com.google.dagger:dagger-spi:2.45:dagger-spi-2.45.jar:7cd6f0b09d88e64a9c97bc80e544ab8ac8fdee9301754413585a74cf64222b27', - 'com.google.dagger:dagger:2.45:dagger-2.45.jar:f011cae7d2c0fb7ea17c34e05bc10e768b1081a5892ad019cf1fdb0e125c49c1', - 'com.google.devtools.ksp:symbol-processing-api:1.7.0-1.0.6:symbol-processing-api-1.7.0-1.0.6.jar:adc29417be5ca9ff42118105fea4e36d9ef44987abfc41432309371a60198941', - 'com.google.errorprone:error_prone_annotations:2.7.1:error_prone_annotations-2.7.1.jar:cd5257c08a246cf8628817ae71cb822be192ef91f6881ca4a3fcff4f1de1cff3', + 'com.google.dagger:dagger-compiler:2.51.1:dagger-compiler-2.51.1.jar:14cf2def1c4c8cd3b977840e297b463191d537cd1c8330992ca5c0b341a641ad', + 'com.google.dagger:dagger-spi:2.51.1:dagger-spi-2.51.1.jar:deb52030b92b27c5dcd76b2c0747f1cf105b60939f6073b43eb06cfe7c9ba601', + 'com.google.dagger:dagger:2.51.1:dagger-2.51.1.jar:c3891a4c4a4e48682888ca321eaf8497004b286e1d9a2936867373219f7dd86d', + 'com.google.devtools.ksp:symbol-processing-api:1.9.20-1.0.14:symbol-processing-api-1.9.20-1.0.14.jar:d0339396f40dc9eb3b3f7bc86257f93869ee23448fa31ec4a1de900c6b7ae6d7', + 'com.google.errorprone:error_prone_annotations:2.23.0:error_prone_annotations-2.23.0.jar:ec6f39f068b6ff9ac323c68e28b9299f8c0a80ca512dccb1d4a70f40ac3ec054', 'com.google.errorprone:javac-shaded:9-dev-r4023-3:javac-shaded-9-dev-r4023-3.jar:65bfccf60986c47fbc17c9ebab0be626afc41741e0a6ec7109e0768817a36f30', 'com.google.googlejavaformat:google-java-format:1.5:google-java-format-1.5.jar:aa19ad7850fb85178aa22f2fddb163b84d6ce4d0035872f30d4408195ca1144e', - 'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26', - 'com.google.guava:guava:31.0.1-jre:guava-31.0.1-jre.jar:d5be94d65e87bd219fb3193ad1517baa55a3b88fc91d21cf735826ab5af087b9', + 'com.google.guava:failureaccess:1.0.2:failureaccess-1.0.2.jar:8a8f81cf9b359e3f6dfa691a1e776985c061ef2f223c9b2c80753e1b458e8064', + 'com.google.guava:guava:33.0.0-jre:guava-33.0.0-jre.jar:f4d85c3e4d411694337cb873abea09b242b664bb013320be6105327c45991537', 'com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava:listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar:b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99', - 'com.google.j2objc:j2objc-annotations:1.3:j2objc-annotations-1.3.jar:21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b', 'com.squareup:javapoet:1.13.0:javapoet-1.13.0.jar:4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291', 'com.squareup:kotlinpoet:1.11.0:kotlinpoet-1.11.0.jar:2887ada1ca03dd83baa2758640d87e840d1907564db0ef88d2289c868a980492', 'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff', @@ -30,16 +28,14 @@ dependencyVerification { 'org.briarproject:onionwrapper-core:0.1.0:onionwrapper-core-0.1.0.jar:3e6631771b891c959403f6145de034c6f9816e7d067808d534f954eef9a1ca35', 'org.briarproject:onionwrapper-java:0.1.0:onionwrapper-java-0.1.0.jar:c1a961c73f06d28e2a63c301d4e747398745bfc9709ade4ae3ba8818c6849fe0', 'org.checkerframework:checker-compat-qual:2.5.5:checker-compat-qual-2.5.5.jar:11d134b245e9cacc474514d2d66b5b8618f8039a1465cdc55bbc0b34e0008b7a', - 'org.checkerframework:checker-qual:3.12.0:checker-qual-3.12.0.jar:ff10785ac2a357ec5de9c293cb982a2cbb605c0309ea4cc1cb9b9bc6dbe7f3cb', + 'org.checkerframework:checker-qual:3.41.0:checker-qual-3.41.0.jar:2f9f245bf68e4259d610894f2406dc1f6363dc639302bd566e8272e4f4541172', 'org.hamcrest:hamcrest-core:2.1:hamcrest-core-2.1.jar:e09109e54a289d88506b9bfec987ddd199f4217c9464132668351b9a4f00bee9', 'org.hamcrest:hamcrest-library:2.1:hamcrest-library-2.1.jar:b7e2b6895b3b679f0e47b6380fda391b225e9b78505db9d8bdde8d3cc8d52a21', 'org.hamcrest:hamcrest:2.1:hamcrest-2.1.jar:ba93b2e3a562322ba432f0a1b53addcc55cb188253319a020ed77f824e692050', 'org.jetbrains.kotlin:kotlin-reflect:1.6.10:kotlin-reflect-1.6.10.jar:3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203', - 'org.jetbrains.kotlin:kotlin-stdlib-common:1.7.0:kotlin-stdlib-common-1.7.0.jar:59c6ff64fe9a6604afce03e8aaa75f83586c6030ac71fb0b34ee7cdefed3618f', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.0:kotlin-stdlib-jdk7-1.7.0.jar:07e91be9b2ca20672d2bdb7e181b766e73453a2da13492b5ddaee8fa47aea239', - 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.0:kotlin-stdlib-jdk8-1.7.0.jar:cf058e11db1dfc9944680c8c61b95ac689aaaa8a3eb30bced028100f038f030b', - 'org.jetbrains.kotlin:kotlin-stdlib:1.7.0:kotlin-stdlib-1.7.0.jar:aa88e9625577957f3249a46cb6e166ee09b369e600f7a11d148d16b0a6d87f05', - 'org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0:kotlinx-metadata-jvm-0.5.0.jar:ca063a96639b08b9eaa0de4d65e899480740a6efbe28ab9a8681a2ced03055a4', + 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.0:kotlin-stdlib-jdk7-1.9.0.jar:b7979a7aac94055f0d9f1fd3b47ce5ffe1cb6032a842ba9fbe7186f085289178', + 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0:kotlin-stdlib-jdk8-1.9.0.jar:a59fa24fdf1ffb594baecdbf0fd10010f977cea10236d487fe3464977a7377fa', + 'org.jetbrains.kotlin:kotlin-stdlib:1.9.20:kotlin-stdlib-1.9.20.jar:28a35bcdff46d864f80f346a617e486284b208d17378c41900dfb1de95a90e6c', 'org.jetbrains:annotations:13.0:annotations-13.0.jar:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478', 'org.jmock:jmock-imposters:2.12.0:jmock-imposters-2.12.0.jar:3b836269745a137c9b2347e8d7c2104845b126ef04f012d6bfd94f1a7dea7b09', 'org.jmock:jmock-junit4:2.12.0:jmock-junit4-2.12.0.jar:3233062fc889637c151a24f1ee086bad04321ab7d8264fef279daff0fa27205b', diff --git a/briar-android/build.gradle b/briar-android/build.gradle index 8727dbb45..723c26370 100644 --- a/briar-android/build.gradle +++ b/briar-android/build.gradle @@ -16,7 +16,7 @@ def getStdout = { command, defaultValue -> } android { - compileSdkVersion 33 + compileSdk 33 buildToolsVersion '33.0.0' packagingOptions { @@ -108,16 +108,15 @@ dependencies { implementation project(':bramble-android') implementation project(':briar-core') - implementation 'androidx.fragment:fragment:1.5.5' - implementation 'androidx.preference:preference:1.2.0' - implementation 'androidx.exifinterface:exifinterface:1.3.6' - implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1' - implementation 'androidx.lifecycle:lifecycle-livedata:2.5.1' + // newer versions of the libraries below require compileSdk 34 + implementation 'androidx.fragment:fragment:1.6.2' + implementation 'androidx.preference:preference:1.2.1' + implementation 'androidx.exifinterface:exifinterface:1.3.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2' + implementation 'androidx.lifecycle:lifecycle-livedata:2.6.2' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' - // check https://github.com/material-components/material-components-android/issues/3191 - // before upgrading material library - implementation 'com.google.android.material:material:1.7.0' + implementation 'com.google.android.material:material:1.9.0' implementation 'androidx.recyclerview:recyclerview-selection:1.1.0' // force kotlin standard lib to latest version to prevent jetifier issues @@ -131,7 +130,7 @@ dependencies { implementation 'com.vanniktech:emoji-google:0.9.0' // newer versions are more work to adapt implementation 'com.github.kobakei:MaterialFabSpeedDial:1.2.1' implementation 'com.github.chrisbanes:PhotoView:2.3.0' - def glideVersion = '4.14.2' + def glideVersion = '4.16.0' implementation("com.github.bumptech.glide:glide:$glideVersion") { exclude group: 'com.android.support' exclude module: 'disklrucache' // when there's no disk cache, we can't accidentally use it diff --git a/briar-android/src/main/java/org/briarproject/briar/android/account/UnlockActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/account/UnlockActivity.java index 297b22469..aa1476f96 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/account/UnlockActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/account/UnlockActivity.java @@ -1,5 +1,6 @@ package org.briarproject.briar.android.account; +import android.annotation.SuppressLint; import android.app.KeyguardManager; import android.content.ActivityNotFoundException; import android.content.Intent; @@ -113,6 +114,7 @@ public class UnlockActivity extends BaseActivity { } @Override + @SuppressLint("MissingSuperCall") public void onBackPressed() { moveTaskToBack(true); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java index ed349038b..456339ffd 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java @@ -7,6 +7,8 @@ import android.view.Window; import android.widget.CheckBox; import android.widget.Toast; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.android.dontkillmelib.wakelock.AndroidWakeLockManager; import org.briarproject.bramble.api.system.Wakeful; import org.briarproject.briar.R; @@ -177,8 +179,8 @@ public abstract class BriarActivity extends BaseActivity { } protected void showDozeDialog(@StringRes int message) { - AlertDialog.Builder b = - new AlertDialog.Builder(this, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder b = + new MaterialAlertDialogBuilder(this, R.style.BriarDialogTheme); b.setMessage(message); b.setView(R.layout.checkbox); b.setPositiveButton(R.string.fix, diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java index d77e847e8..439a59f63 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java @@ -10,6 +10,8 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; @@ -27,7 +29,6 @@ import javax.inject.Inject; import androidx.annotation.Nullable; import androidx.annotation.UiThread; -import androidx.appcompat.app.AlertDialog; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView.LayoutManager; @@ -220,8 +221,8 @@ public class BlogFragment extends BaseFragment } private void showDeleteDialog() { - AlertDialog.Builder builder = new AlertDialog.Builder(requireContext(), - R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + requireContext(), R.style.BriarDialogTheme); builder.setTitle(getString(R.string.blogs_remove_blog)); builder.setMessage( getString(R.string.blogs_remove_blog_dialog_message)); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedDeleteFeedDialogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedDeleteFeedDialogFragment.java index 611ac6f55..b208970d9 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedDeleteFeedDialogFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedDeleteFeedDialogFragment.java @@ -4,6 +4,8 @@ import android.app.Dialog; import android.content.Context; import android.os.Bundle; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.BaseActivity; @@ -13,7 +15,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault; import javax.inject.Inject; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import androidx.lifecycle.ViewModelProvider; @@ -51,8 +52,8 @@ public class RssFeedDeleteFeedDialogFragment extends DialogFragment { public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { GroupId groupId = new GroupId( requireNonNull(requireArguments().getByteArray(GROUP_ID))); - AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity(), - R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + requireActivity(), R.style.BriarDialogTheme); builder.setTitle(getString(R.string.blogs_rss_remove_feed)); builder.setMessage( getString(R.string.blogs_rss_remove_feed_dialog_message)); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedImportFailedDialogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedImportFailedDialogFragment.java index a8f44f3d0..4b08c8ec4 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedImportFailedDialogFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedImportFailedDialogFragment.java @@ -4,6 +4,8 @@ import android.app.Dialog; import android.content.Context; import android.os.Bundle; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import org.briarproject.briar.android.activity.BaseActivity; import org.briarproject.nullsafety.MethodsNotNullByDefault; @@ -12,7 +14,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault; import javax.inject.Inject; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import androidx.lifecycle.ViewModelProvider; @@ -47,8 +48,8 @@ public class RssFeedImportFailedDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { - AlertDialog.Builder builder = - new AlertDialog.Builder(requireActivity(), + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(requireActivity(), R.style.BriarDialogTheme); builder.setMessage(R.string.blogs_rss_feeds_import_error); builder.setNegativeButton(R.string.cancel, null); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/NicknameFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/NicknameFragment.java index b084c061d..acb5da8c2 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/NicknameFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/NicknameFragment.java @@ -55,6 +55,7 @@ public class NicknameFragment extends BaseFragment { private TextInputLayout contactNameLayout; private TextInputEditText contactNameInput; + private BriarButton addButton; @Override public String getUniqueTag() { @@ -91,7 +92,7 @@ public class NicknameFragment extends BaseFragment { contactNameLayout = v.findViewById(R.id.contactNameLayout); contactNameInput = v.findViewById(R.id.contactNameInput); - BriarButton addButton = v.findViewById(R.id.addButton); + addButton = v.findViewById(R.id.addButton); addButton.setOnClickListener(view -> onAddButtonClicked()); return v; @@ -112,7 +113,7 @@ public class NicknameFragment extends BaseFragment { @Nullable private String getNicknameOrNull() { Editable text = contactNameInput.getText(); - if (text == null || text.toString().trim().length() == 0) { + if (text == null || text.toString().trim().isEmpty()) { contactNameLayout.setError(getString(R.string.nickname_missing)); contactNameInput.requestFocus(); return null; @@ -129,7 +130,10 @@ public class NicknameFragment extends BaseFragment { private void onAddButtonClicked() { String name = getNicknameOrNull(); - if (name == null) return; // invalid nickname + if (name == null) { // invalid nickname + addButton.reset(); + return; + } LifecycleOwner owner = getViewLifecycleOwner(); viewModel.getAddContactResult().observe(owner, result -> { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListActivity.java index 2918935b9..87fd666fe 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListActivity.java @@ -4,6 +4,7 @@ import android.content.DialogInterface.OnClickListener; import android.os.Bundle; import android.view.MenuItem; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.snackbar.Snackbar; import org.briarproject.bramble.api.contact.PendingContactId; @@ -21,7 +22,6 @@ import javax.annotation.Nullable; import javax.inject.Inject; import androidx.appcompat.app.ActionBar; -import androidx.appcompat.app.AlertDialog; import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; @@ -110,7 +110,7 @@ public class PendingContactListActivity extends BriarActivity // show warning dialog OnClickListener removeListener = (dialog, which) -> removePendingContact(item.getPendingContact().getId()); - AlertDialog.Builder builder = new AlertDialog.Builder( + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( PendingContactListActivity.this, R.style.BriarDialogTheme); builder.setTitle( getString(R.string.dialog_title_remove_pending_contact)); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java index e0bbc3150..ad763eda9 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java @@ -19,6 +19,7 @@ import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.snackbar.Snackbar; import org.briarproject.bramble.api.FeatureFlags; @@ -101,7 +102,6 @@ import javax.inject.Inject; import androidx.activity.result.ActivityResultLauncher; import androidx.annotation.Nullable; import androidx.annotation.UiThread; -import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.ActionMenuView; import androidx.appcompat.widget.Toolbar; import androidx.core.app.ActivityCompat; @@ -812,8 +812,8 @@ public class ConversationActivity extends BriarActivity } private void askToDeleteAllMessages() { - AlertDialog.Builder builder = - new AlertDialog.Builder(this, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(this, R.style.BriarDialogTheme); builder.setTitle(getString(R.string.dialog_title_delete_all_messages)); builder.setMessage( getString(R.string.dialog_message_delete_all_messages)); @@ -892,8 +892,8 @@ public class ConversationActivity extends BriarActivity } String msg = join(fails, "\n\n"); // show dialog - AlertDialog.Builder builder = - new AlertDialog.Builder(this, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(this, R.style.BriarDialogTheme); builder.setTitle( getString(R.string.dialog_title_not_all_messages_deleted)); builder.setMessage(msg); @@ -904,8 +904,8 @@ public class ConversationActivity extends BriarActivity private void askToRemoveContact() { DialogInterface.OnClickListener okListener = (dialog, which) -> removeContact(); - AlertDialog.Builder builder = - new AlertDialog.Builder(ConversationActivity.this, + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(ConversationActivity.this, R.style.BriarDialogTheme); builder.setTitle(getString(R.string.dialog_title_delete_contact)); builder.setMessage( diff --git a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java index 364d730b1..c601696f4 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java @@ -7,6 +7,8 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.sharing.ForumSharingStatusActivity; @@ -20,7 +22,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault; import javax.annotation.Nullable; import javax.inject.Inject; -import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.Toolbar; import androidx.lifecycle.ViewModelProvider; @@ -128,7 +129,7 @@ public class ForumActivity extends private void showUnsubscribeDialog() { OnClickListener okListener = (dialog, which) -> viewModel.deleteForum(); - AlertDialog.Builder builder = new AlertDialog.Builder(this, + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this, R.style.BriarDialogTheme); builder.setTitle(getString(R.string.dialog_title_leave_forum)); builder.setMessage(getString(R.string.dialog_message_leave_forum)); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/fragment/ScreenFilterDialogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/fragment/ScreenFilterDialogFragment.java index 2e2ed6bf2..8091b5a61 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/fragment/ScreenFilterDialogFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/fragment/ScreenFilterDialogFragment.java @@ -13,6 +13,8 @@ import android.view.View; import android.widget.CheckBox; import android.widget.TextView; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import org.briarproject.briar.android.activity.BaseActivity; import org.briarproject.briar.api.android.ScreenFilterMonitor; @@ -27,7 +29,6 @@ import java.util.Collection; import javax.annotation.Nullable; import javax.inject.Inject; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import static android.os.Build.VERSION.SDK_INT; @@ -75,8 +76,8 @@ public class ScreenFilterDialogFragment extends DialogFragment { public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { Activity activity = getActivity(); if (activity == null) throw new IllegalStateException(); - AlertDialog.Builder builder = new AlertDialog.Builder(activity, - R.style.BriarDialogThemeNoFilter); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + activity, R.style.BriarDialogThemeNoFilter); builder.setTitle(R.string.screen_filter_title); Bundle args = getArguments(); if (args == null) throw new IllegalStateException(); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/hotspot/AbstractConditionManager.java b/briar-android/src/main/java/org/briarproject/briar/android/hotspot/AbstractConditionManager.java index 435a486a8..06b6dd60d 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/hotspot/AbstractConditionManager.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/hotspot/AbstractConditionManager.java @@ -6,12 +6,13 @@ import android.content.Intent; import android.net.wifi.WifiManager; import android.widget.Toast; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.StringRes; -import androidx.appcompat.app.AlertDialog; import androidx.core.util.Consumer; import androidx.fragment.app.FragmentActivity; @@ -73,7 +74,8 @@ abstract class AbstractConditionManager { void showRationale(Context ctx, @StringRes int title, @StringRes int body, Runnable onContinueClicked, Runnable onDismiss) { - AlertDialog.Builder builder = new AlertDialog.Builder(ctx); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(ctx); builder.setTitle(title); builder.setMessage(body); builder.setNeutralButton(R.string.continue_button, diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/ChangePasswordActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/ChangePasswordActivity.java index 88fe2dbac..46a8591a6 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/ChangePasswordActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/ChangePasswordActivity.java @@ -32,6 +32,7 @@ import static android.widget.Toast.LENGTH_LONG; import static org.briarproject.bramble.api.crypto.DecryptionResult.KEY_STRENGTHENER_ERROR; import static org.briarproject.bramble.api.crypto.DecryptionResult.SUCCESS; import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.QUITE_WEAK; +import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.STRONG; import static org.briarproject.briar.android.login.LoginUtils.createKeyStrengthenerErrorDialog; import static org.briarproject.briar.android.util.UiUtils.hideSoftKeyboard; import static org.briarproject.briar.android.util.UiUtils.setError; @@ -123,12 +124,25 @@ public class ChangePasswordActivity extends BriarActivity boolean passwordsMatch = firstPassword.equals(secondPassword); float strength = viewModel.estimatePasswordStrength(firstPassword); strengthMeter.setStrength(strength); + + if (!firstPassword.isEmpty()) { + if (strength >= STRONG) { + newPasswordEntryWrapper.setHelperText( + getString(R.string.password_strong)); + } else if (strength >= QUITE_WEAK) { + newPasswordEntryWrapper.setHelperText( + getString(R.string.password_quite_strong)); + } else { + newPasswordEntryWrapper.setHelperTextEnabled(false); + } + } + setError(newPasswordEntryWrapper, getString(R.string.password_too_weak), - firstPassword.length() > 0 && strength < QUITE_WEAK); + !firstPassword.isEmpty() && strength < QUITE_WEAK); setError(newPasswordConfirmationWrapper, getString(R.string.passwords_do_not_match), - secondPassword.length() > 0 && !passwordsMatch); + !secondPassword.isEmpty() && !passwordsMatch); changePasswordButton.setEnabled( !currentPassword.getText().toString().isEmpty() && passwordsMatch && strength >= QUITE_WEAK); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/LoginUtils.java b/briar-android/src/main/java/org/briarproject/briar/android/login/LoginUtils.java index fe706bc84..048656bcc 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/LoginUtils.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/LoginUtils.java @@ -2,6 +2,8 @@ package org.briarproject.briar.android.login; import android.content.Context; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import org.briarproject.nullsafety.NotNullByDefault; @@ -13,8 +15,8 @@ import static org.briarproject.briar.android.util.UiUtils.getDialogIcon; class LoginUtils { static AlertDialog createKeyStrengthenerErrorDialog(Context ctx) { - AlertDialog.Builder builder = - new AlertDialog.Builder(ctx, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(ctx, R.style.BriarDialogTheme); builder.setIcon(getDialogIcon(ctx, R.drawable.alerts_and_states_error)); builder.setTitle(R.string.dialog_title_cannot_check_password); builder.setMessage(R.string.dialog_message_cannot_check_password); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java index ceab9ce6d..5376cd996 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/PasswordFragment.java @@ -9,6 +9,7 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.ProgressBar; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.textfield.TextInputEditText; import com.google.android.material.textfield.TextInputLayout; @@ -154,9 +155,11 @@ public class PasswordFragment extends BaseFragment implements TextWatcher { } private void onForgottenPasswordClick() { - AlertDialog.Builder builder = new AlertDialog.Builder(requireContext(), - R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + requireContext(), R.style.BriarDialogTheme); builder.setTitle(R.string.dialog_title_lost_password); + builder.setBackgroundInsetStart(25); + builder.setBackgroundInsetEnd(25); builder.setMessage(R.string.dialog_message_lost_password); builder.setPositiveButton(R.string.cancel, null); builder.setNegativeButton(R.string.delete, diff --git a/briar-android/src/main/java/org/briarproject/briar/android/login/StartupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/login/StartupActivity.java index 71a806e8c..0e467b12f 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/login/StartupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/login/StartupActivity.java @@ -1,5 +1,6 @@ package org.briarproject.briar.android.login; +import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; @@ -74,6 +75,7 @@ public class StartupActivity extends BaseActivity implements } @Override + @SuppressLint("MissingSuperCall") public void onBackPressed() { // Move task and activity to the background instead of showing another // password prompt. diff --git a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/ErrorWizardFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/ErrorWizardFragment.java index c0f789fb2..11f06fd7c 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/ErrorWizardFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/ErrorWizardFragment.java @@ -11,6 +11,7 @@ import android.widget.RadioGroup; import android.widget.ScrollView; import com.google.android.material.animation.ArgbEvaluatorCompat; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.briarproject.briar.R; import org.briarproject.briar.android.view.BriarButton; @@ -24,7 +25,6 @@ import javax.inject.Inject; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.lifecycle.ViewModelProvider; @@ -148,8 +148,8 @@ public class ErrorWizardFragment extends Fragment { } private void onUnlinkButtonClicked(View v) { - AlertDialog.Builder builder = new AlertDialog.Builder(requireContext(), - R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + requireContext(), R.style.BriarDialogTheme); builder.setTitle(R.string.mailbox_status_unlink_dialog_title); builder.setMessage(R.string.mailbox_status_unlink_dialog_question); builder.setPositiveButton(R.string.cancel, diff --git a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxActivity.java index 2ca96f426..5eb000f36 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxActivity.java @@ -5,6 +5,8 @@ import android.view.MenuItem; import android.widget.ProgressBar; import android.widget.Toast; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.bramble.api.mailbox.MailboxPairingState; import org.briarproject.bramble.api.mailbox.MailboxPairingState.ConnectionError; import org.briarproject.bramble.api.mailbox.MailboxPairingState.InvalidQrCode; @@ -31,7 +33,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault; import javax.inject.Inject; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.lifecycle.ViewModelProvider; @@ -249,8 +250,8 @@ public class MailboxActivity extends BriarActivity { if (tellUserToWipeMailbox) { showFragment(getSupportFragmentManager(), new BlankFragment(), BlankFragment.TAG); - AlertDialog.Builder builder = - new AlertDialog.Builder(this, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + this, R.style.BriarDialogTheme); builder.setTitle(R.string.mailbox_status_unlink_no_wipe_title); builder.setMessage(R.string.mailbox_status_unlink_no_wipe_message); builder.setNeutralButton(R.string.got_it, diff --git a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java index 86510c4e8..278d06311 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/mailbox/MailboxStatusFragment.java @@ -13,6 +13,8 @@ import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.bramble.api.mailbox.MailboxStatus; import org.briarproject.briar.R; import org.briarproject.briar.android.view.BriarButton; @@ -214,8 +216,8 @@ public class MailboxStatusFragment extends Fragment { } private void onUnlinkButtonClicked(boolean showWarning) { - AlertDialog.Builder builder = new AlertDialog.Builder(requireContext(), - R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + requireContext(), R.style.BriarDialogTheme); builder.setTitle(R.string.mailbox_status_unlink_dialog_title); String msg = getString(R.string.mailbox_status_unlink_dialog_question); if (showWarning) { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java index dde17a075..0a02f9b81 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/panic/PanicPreferencesFragment.java @@ -10,6 +10,8 @@ import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import java.util.ArrayList; @@ -17,7 +19,6 @@ import java.util.logging.Logger; import javax.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.preference.ListPreference; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.SwitchPreferenceCompat; @@ -201,8 +202,8 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat getActivity().finish(); }; - AlertDialog.Builder builder = new AlertDialog.Builder(getContext(), - R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + requireContext(), R.style.BriarDialogTheme); builder.setTitle(getString(R.string.dialog_title_connect_panic_app)); CharSequence app = getString(R.string.unknown_app); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java index 44742c5c7..23269b21c 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java @@ -6,6 +6,8 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.privategroup.creation.GroupInviteActivity; @@ -20,7 +22,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault; import javax.annotation.Nullable; import javax.inject.Inject; -import androidx.appcompat.app.AlertDialog; import androidx.appcompat.widget.Toolbar; import androidx.lifecycle.ViewModelProvider; @@ -178,8 +179,8 @@ public class GroupActivity extends } private void showLeaveGroupDialog() { - AlertDialog.Builder builder = - new AlertDialog.Builder(this, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + this, R.style.BriarDialogTheme); builder.setTitle(getString(R.string.groups_leave_dialog_title)); builder.setMessage(getString(R.string.groups_leave_dialog_message)); builder.setNegativeButton(R.string.dialog_button_leave, @@ -189,8 +190,8 @@ public class GroupActivity extends } private void showDissolveGroupDialog() { - AlertDialog.Builder builder = - new AlertDialog.Builder(this, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + this, R.style.BriarDialogTheme); builder.setTitle(getString(R.string.groups_dissolve_dialog_title)); builder.setMessage(getString(R.string.groups_dissolve_dialog_message)); builder.setNegativeButton(R.string.groups_dissolve_button, @@ -206,8 +207,8 @@ public class GroupActivity extends } private void onGroupDissolved() { - AlertDialog.Builder builder = - new AlertDialog.Builder(this, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder( + this, R.style.BriarDialogTheme); builder.setTitle(getString(R.string.groups_dissolved_dialog_title)); builder.setMessage(getString(R.string.groups_dissolved_dialog_message)); builder.setNeutralButton(R.string.ok, null); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java index 201eaba17..f163add4f 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/reveal/RevealContactsActivity.java @@ -9,6 +9,8 @@ import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.db.DbException; import org.briarproject.bramble.api.sync.GroupId; @@ -26,7 +28,6 @@ import javax.annotation.Nullable; import javax.inject.Inject; import androidx.annotation.LayoutRes; -import androidx.appcompat.app.AlertDialog; @MethodsNotNullByDefault @ParametersNotNullByDefault @@ -105,7 +106,8 @@ public class RevealContactsActivity extends ContactSelectorActivity } private void showOnboardingDialog() { - new AlertDialog.Builder(this, R.style.OnboardingDialogTheme) + new MaterialAlertDialogBuilder(this, + R.style.OnboardingDialogTheme) .setMessage(getString(R.string.groups_reveal_dialog_message)) .setNeutralButton(R.string.got_it, (dialog, which) -> dialog.cancel()) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashReportActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashReportActivity.java index 940cd0b0d..b18efa3d5 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashReportActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/reporting/CrashReportActivity.java @@ -1,5 +1,6 @@ package org.briarproject.briar.android.reporting; +import android.annotation.SuppressLint; import android.content.Intent; import android.os.Bundle; import android.os.Handler; @@ -87,6 +88,7 @@ public class CrashReportActivity extends BaseActivity } @Override + @SuppressLint("MissingSuperCall") public void onBackPressed() { exit(); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/ConfirmAvatarDialogFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/ConfirmAvatarDialogFragment.java index 72775dd20..452b862e8 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/settings/ConfirmAvatarDialogFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/ConfirmAvatarDialogFragment.java @@ -10,6 +10,7 @@ import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.load.engine.DiskCacheStrategy; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.briarproject.briar.R; import org.briarproject.briar.android.activity.BaseActivity; @@ -20,7 +21,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault; import javax.inject.Inject; import androidx.annotation.Nullable; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentActivity; import androidx.lifecycle.ViewModelProvider; @@ -86,7 +86,7 @@ public class ConfirmAvatarDialogFragment extends DialogFragment { ); int theme = R.style.BriarDialogTheme; - return new AlertDialog.Builder(activity, theme) + return new MaterialAlertDialogBuilder(activity, theme) .setView(view) .setTitle(R.string.dialog_confirm_profile_picture_title) .setNegativeButton(R.string.cancel, null) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/DisplayFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/DisplayFragment.java index 119a407c0..40aba199d 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/settings/DisplayFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/DisplayFragment.java @@ -1,9 +1,10 @@ package org.briarproject.briar.android.settings; -import android.app.AlertDialog; import android.content.Intent; import android.os.Bundle; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import org.briarproject.briar.android.Localizer; import org.briarproject.briar.android.util.UiUtils; @@ -101,8 +102,8 @@ public class DisplayFragment extends PreferenceFragmentCompat { private boolean onLanguageChanged(Preference preference, Object newValue) { ListPreference language = (ListPreference) preference; if (!language.getValue().equals(newValue)) { - AlertDialog.Builder builder = - new AlertDialog.Builder(getActivity()); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(requireContext()); builder.setTitle(R.string.pref_language_title); builder.setMessage(R.string.pref_language_changed); builder.setPositiveButton(R.string.sign_out_button, (d, i) -> { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/util/BriarSnackbarBuilder.java b/briar-android/src/main/java/org/briarproject/briar/android/util/BriarSnackbarBuilder.java index 0586e5a5f..4e31251bc 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/util/BriarSnackbarBuilder.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/util/BriarSnackbarBuilder.java @@ -18,7 +18,8 @@ import static androidx.core.content.ContextCompat.getColor; public class BriarSnackbarBuilder { @ColorRes - private int backgroundResId = R.color.briar_primary; + @Nullable + private Integer backgroundResId = null; @StringRes private int actionResId; @Nullable @@ -26,7 +27,11 @@ public class BriarSnackbarBuilder { public Snackbar make(View view, CharSequence text, int duration) { Snackbar s = Snackbar.make(view, text, duration); - s.getView().setBackgroundResource(backgroundResId); + if (backgroundResId != null) { + s.setBackgroundTint(getColor(view.getContext(), backgroundResId)); + s.setTextColor( + getColor(view.getContext(), R.color.md_theme_onSecondary)); + } if (onClickListener != null) { s.setActionTextColor(getColor(view.getContext(), R.color.briar_button_text_positive)); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/util/PermissionUtils.java b/briar-android/src/main/java/org/briarproject/briar/android/util/PermissionUtils.java index d1c6432a8..51c33ea94 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/util/PermissionUtils.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/util/PermissionUtils.java @@ -6,6 +6,8 @@ import android.content.Intent; import android.location.LocationManager; import android.net.Uri; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import org.briarproject.briar.R; import org.briarproject.nullsafety.MethodsNotNullByDefault; import org.briarproject.nullsafety.ParametersNotNullByDefault; @@ -16,7 +18,6 @@ import androidx.activity.result.ActivityResultLauncher; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.annotation.StringRes; -import androidx.appcompat.app.AlertDialog; import androidx.fragment.app.FragmentActivity; import static android.Manifest.permission.BLUETOOTH_ADVERTISE; @@ -108,8 +109,8 @@ public class PermissionUtils { } public static void showLocationDialog(Context ctx, boolean forBluetooth) { - AlertDialog.Builder builder = - new AlertDialog.Builder(ctx, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(ctx, R.style.BriarDialogTheme); builder.setTitle(R.string.permission_location_setting_title); if (forBluetooth) { builder.setMessage(R.string.permission_location_setting_body); @@ -136,8 +137,8 @@ public class PermissionUtils { public static void showDenialDialog(FragmentActivity ctx, @StringRes int title, @StringRes int body, Runnable onDenied) { - AlertDialog.Builder builder = - new AlertDialog.Builder(ctx, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(ctx, R.style.BriarDialogTheme); builder.setTitle(title); builder.setMessage(body); builder.setPositiveButton(R.string.ok, getGoToSettingsListener(ctx)); @@ -148,8 +149,8 @@ public class PermissionUtils { public static void showRationale(FragmentActivity ctx, @StringRes int title, @StringRes int body, @Nullable Runnable onOk) { - AlertDialog.Builder builder = - new AlertDialog.Builder(ctx, R.style.BriarDialogTheme); + MaterialAlertDialogBuilder builder = + new MaterialAlertDialogBuilder(ctx, R.style.BriarDialogTheme); builder.setTitle(title); builder.setMessage(body); builder.setNeutralButton(R.string.continue_button, (dialog, which) -> { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java b/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java index 19b92a574..a601feeac 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/util/UiUtils.java @@ -28,6 +28,7 @@ import android.view.inputmethod.InputMethodManager; import android.widget.TextView; import android.widget.Toast; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.textfield.TextInputLayout; import org.briarproject.bramble.api.contact.Contact; @@ -52,7 +53,6 @@ import androidx.annotation.ColorRes; import androidx.annotation.DrawableRes; import androidx.annotation.Nullable; import androidx.annotation.UiThread; -import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; import androidx.core.hardware.fingerprint.FingerprintManagerCompat; import androidx.core.text.HtmlCompat; @@ -322,7 +322,7 @@ public class UiUtils { } public static void showOnboardingDialog(Context ctx, String text) { - new AlertDialog.Builder(ctx, R.style.OnboardingDialogTheme) + new MaterialAlertDialogBuilder(ctx, R.style.OnboardingDialogTheme) .setMessage(text) .setNeutralButton(R.string.got_it, (dialog, which) -> dialog.cancel()) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/view/BriarButton.java b/briar-android/src/main/java/org/briarproject/briar/android/view/BriarButton.java index 77e4c2cbc..1a5b6b567 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/view/BriarButton.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/view/BriarButton.java @@ -8,12 +8,13 @@ import android.widget.Button; import android.widget.FrameLayout; import android.widget.ProgressBar; +import com.google.android.material.button.MaterialButton; + import org.briarproject.briar.R; import org.briarproject.nullsafety.NotNullByDefault; import androidx.annotation.Nullable; import androidx.appcompat.view.ContextThemeWrapper; -import androidx.appcompat.widget.AppCompatButton; import static android.content.Context.LAYOUT_INFLATER_SERVICE; import static androidx.transition.TransitionManager.beginDelayedTransition; @@ -47,8 +48,8 @@ public class BriarButton extends FrameLayout { attributes.recycle(); ContextThemeWrapper wrapper = new ContextThemeWrapper(context, style); - button = isInEditMode() ? new AppCompatButton(context) : - new AppCompatButton(wrapper, null, style); + button = isInEditMode() ? new MaterialButton(context) : + new MaterialButton(wrapper, null, style); button.setText(text); addView(button); progressBar = findViewById(R.id.briar_button_progress_bar); diff --git a/briar-android/src/main/res/color/button_text.xml b/briar-android/src/main/res/color/button_text.xml deleted file mode 100644 index 1f1c03e9f..000000000 --- a/briar-android/src/main/res/color/button_text.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/briar-android/src/main/res/drawable-v21/button_outline.xml b/briar-android/src/main/res/drawable-v21/button_outline.xml deleted file mode 100644 index d7a4382c2..000000000 --- a/briar-android/src/main/res/drawable-v21/button_outline.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/briar-android/src/main/res/drawable-v21/button_outline_background.xml b/briar-android/src/main/res/drawable-v21/button_outline_background.xml deleted file mode 100644 index 960d21db4..000000000 --- a/briar-android/src/main/res/drawable-v21/button_outline_background.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/briar-android/src/main/res/drawable-v21/button_outline_mask.xml b/briar-android/src/main/res/drawable-v21/button_outline_mask.xml deleted file mode 100644 index 88b29c7a2..000000000 --- a/briar-android/src/main/res/drawable-v21/button_outline_mask.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/briar-android/src/main/res/drawable/bubble_completed.xml b/briar-android/src/main/res/drawable/bubble_completed.xml index 5fab3f0e8..314054fee 100644 --- a/briar-android/src/main/res/drawable/bubble_completed.xml +++ b/briar-android/src/main/res/drawable/bubble_completed.xml @@ -7,7 +7,7 @@ android:radius="32dp"/> + android:color="?colorTertiaryContainer"/> diff --git a/briar-android/src/main/res/drawable/bubble_accent.xml b/briar-android/src/main/res/drawable/bubble_current.xml similarity index 82% rename from briar-android/src/main/res/drawable/bubble_accent.xml rename to briar-android/src/main/res/drawable/bubble_current.xml index 959efaa82..b2c41c30c 100644 --- a/briar-android/src/main/res/drawable/bubble_accent.xml +++ b/briar-android/src/main/res/drawable/bubble_current.xml @@ -7,7 +7,7 @@ android:radius="32dp"/> + android:color="?colorTertiary"/> diff --git a/briar-android/src/main/res/drawable/bubble_future.xml b/briar-android/src/main/res/drawable/bubble_future.xml new file mode 100644 index 000000000..779f8995b --- /dev/null +++ b/briar-android/src/main/res/drawable/bubble_future.xml @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/briar-android/src/main/res/drawable/button_outline.xml b/briar-android/src/main/res/drawable/button_outline.xml deleted file mode 100644 index 795b3fdca..000000000 --- a/briar-android/src/main/res/drawable/button_outline.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/briar-android/src/main/res/layout/activity_change_password.xml b/briar-android/src/main/res/layout/activity_change_password.xml index 34f4414bf..38f3f1b76 100644 --- a/briar-android/src/main/res/layout/activity_change_password.xml +++ b/briar-android/src/main/res/layout/activity_change_password.xml @@ -4,6 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:fillViewport="true" tools:context=".android.login.ChangePasswordActivity"> + + - -