Browse Source

AndroidX migration and library updates

Torsten Grote 5 months ago
parent
commit
a592c05146
100 changed files with 396 additions and 390 deletions
  1. 3 0
      .idea/codeStyles/Project.xml
  2. 4 4
      bramble-android/build.gradle
  3. 44 41
      bramble-android/witness.gradle
  4. 1 1
      bramble-api/build.gradle
  5. 1 1
      bramble-api/witness.gradle
  6. 2 2
      bramble-core/build.gradle
  7. 12 8
      bramble-core/witness.gradle
  8. 2 2
      bramble-java/build.gradle
  9. 12 8
      bramble-java/witness.gradle
  10. 31 41
      briar-android/build.gradle
  11. 1 1
      briar-android/src/androidTest/java/org/briarproject/briar/android/BriarTestRunner.java
  12. 1 1
      briar-android/src/androidTest/java/org/briarproject/briar/android/UiTest.java
  13. 9 9
      briar-android/src/androidTest/java/org/briarproject/briar/android/ViewActions.java
  14. 1 1
      briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/attachment/AttachmentRetrieverIntegrationTest.java
  15. 5 5
      briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/conversation/ConversationActivityNotSignedInTest.java
  16. 11 11
      briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/navdrawer/NavDrawerActivityTest.java
  17. 16 16
      briar-android/src/androidTestScreenshot/java/org/briarproject/briar/android/SetupDataTest.java
  18. 6 6
      briar-android/src/androidTestScreenshot/java/org/briarproject/briar/android/conversation/ConversationActivityScreenshotTest.java
  19. 16 16
      briar-android/src/androidTestScreenshot/java/org/briarproject/briar/android/settings/SettingsActivityScreenshotTest.java
  20. 2 2
      briar-android/src/main/java/im/delight/android/identicons/Identicon.java
  21. 2 2
      briar-android/src/main/java/im/delight/android/identicons/IdenticonDrawable.java
  22. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/AndroidComponent.java
  23. 12 12
      briar-android/src/main/java/org/briarproject/briar/android/AndroidNotificationManagerImpl.java
  24. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/BriarService.java
  25. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/NotificationCleanupService.java
  26. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/ScreenFilterMonitorImpl.java
  27. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/StartupFailureActivity.java
  28. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/account/AuthorNameFragment.java
  29. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/account/DozeFragment.java
  30. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/account/DozeView.java
  31. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/account/HuaweiView.java
  32. 3 3
      briar-android/src/main/java/org/briarproject/briar/android/account/LockManagerImpl.java
  33. 4 4
      briar-android/src/main/java/org/briarproject/briar/android/account/PowerView.java
  34. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/account/SetPasswordFragment.java
  35. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/account/SetupControllerImpl.java
  36. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/account/SetupFragment.java
  37. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/account/UnlockActivity.java
  38. 8 7
      briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java
  39. 4 4
      briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java
  40. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreationTask.java
  41. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreator.java
  42. 4 4
      briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreatorImpl.java
  43. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentDimensions.java
  44. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentItem.java
  45. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentManager.java
  46. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentRetriever.java
  47. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentRetrieverImpl.java
  48. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/attachment/ImageHelper.java
  49. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/attachment/ImageHelperImpl.java
  50. 8 8
      briar-android/src/main/java/org/briarproject/briar/android/attachment/ImageSizeCalculator.java
  51. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/blog/BaseController.java
  52. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/blog/BaseControllerImpl.java
  53. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/blog/BasePostFragment.java
  54. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java
  55. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/blog/BlogController.java
  56. 6 6
      briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java
  57. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostAdapter.java
  58. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostFragment.java
  59. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostItem.java
  60. 5 5
      briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java
  61. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/blog/FeedController.java
  62. 3 3
      briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java
  63. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/blog/FeedPostFragment.java
  64. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedAdapter.java
  65. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedImportActivity.java
  66. 4 4
      briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedManageActivity.java
  67. 2 1
      briar-android/src/main/java/org/briarproject/briar/android/blog/WriteBlogPostActivity.java
  68. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/contact/BaseContactListAdapter.java
  69. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/contact/ContactItemViewHolder.java
  70. 10 10
      briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListFragment.java
  71. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListItemViewHolder.java
  72. 3 3
      briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactActivity.java
  73. 4 4
      briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactViewModel.java
  74. 5 5
      briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/LinkExchangeFragment.java
  75. 9 9
      briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/NicknameFragment.java
  76. 7 7
      briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListActivity.java
  77. 3 3
      briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListViewModel.java
  78. 3 3
      briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactViewHolder.java
  79. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/contactselection/BaseContactSelectorFragment.java
  80. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/contactselection/BaseSelectableContactHolder.java
  81. 3 3
      briar-android/src/main/java/org/briarproject/briar/android/contactselection/ContactSelectorActivity.java
  82. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/contactselection/ContactSelectorListener.java
  83. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/contactselection/SelectableContactHolder.java
  84. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/controller/BriarControllerImpl.java
  85. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/controller/SharingController.java
  86. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/controller/SharingControllerImpl.java
  87. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/controller/handler/UiExceptionHandler.java
  88. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/controller/handler/UiResultExceptionHandler.java
  89. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/controller/handler/UiResultHandler.java
  90. 5 5
      briar-android/src/main/java/org/briarproject/briar/android/conversation/AliasDialogFragment.java
  91. 17 17
      briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java
  92. 3 3
      briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationAdapter.java
  93. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationItem.java
  94. 5 5
      briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationItemViewHolder.java
  95. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationListener.java
  96. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationMessageItem.java
  97. 6 6
      briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationMessageViewHolder.java
  98. 1 1
      briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationNoticeItem.java
  99. 2 2
      briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationNoticeViewHolder.java
  100. 0 0
      briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationRequestItem.java

+ 3 - 0
.idea/codeStyles/Project.xml

@@ -1,5 +1,8 @@
 <component name="ProjectCodeStyleConfiguration">
   <code_scheme name="Project" version="173">
+    <AndroidXmlCodeStyleSettings>
+      <option name="ARRANGEMENT_SETTINGS_MIGRATED_TO_191" value="true" />
+    </AndroidXmlCodeStyleSettings>
     <JavaCodeStyleSettings>
       <option name="ANNOTATION_PARAMETER_WRAP" value="1" />
       <option name="IMPORT_LAYOUT_TABLE">

+ 4 - 4
bramble-android/build.gradle

@@ -5,8 +5,8 @@ apply plugin: 'witness'
 apply from: 'witness.gradle'
 
 android {
-	compileSdkVersion 28
-	buildToolsVersion '28.0.3'
+	compileSdkVersion 29
+	buildToolsVersion '29.0.2'
 
 	defaultConfig {
 		minSdkVersion 16
@@ -15,7 +15,7 @@ android {
 		versionName "1.1.9"
 		consumerProguardFiles 'proguard-rules.txt'
 
-		testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
+		testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
 	}
 
 	compileOptions {
@@ -33,7 +33,7 @@ dependencies {
 	tor 'org.briarproject:tor-android:0.3.5.8-64@zip'
 	tor 'org.briarproject:obfs4proxy-android:0.0.11-2@zip'
 
-	annotationProcessor 'com.google.dagger:dagger-compiler:2.22.1'
+	annotationProcessor 'com.google.dagger:dagger-compiler:2.24'
 
 	compileOnly 'javax.annotation:jsr250-api:1.0'
 

+ 44 - 41
bramble-android/witness.gradle

@@ -1,44 +1,46 @@
 dependencyVerification {
     verify = [
         'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357065afb9e6690861',
-        'com.android.tools.analytics-library:protos:26.4.0:protos-26.4.0.jar:ad760915586797d39319f402837b378bff3bb4ed583e3e0c48c965631fb2135f',
-        'com.android.tools.analytics-library:shared:26.4.0:shared-26.4.0.jar:1332106a905d48909c81268c9e414946de3e83487db394c6073b0a9b5c3d0ed2',
-        'com.android.tools.analytics-library:tracker:26.4.0:tracker-26.4.0.jar:d0020cfbfd4cd75935f2972d6a24089840d4a10df6f3ef2a796093217dd37796',
-        'com.android.tools.build:apksig:3.4.0:apksig-3.4.0.jar:91d5a1866139c69756280355a6f61b4d619d0516841580114f45a10f2177327e',
-        'com.android.tools.build:apkzlib:3.4.0:apkzlib-3.4.0.jar:8653c85f5fdf1dde840e8b8af7396aeb79c34b66e541b5860059616006535592',
-        'com.android.tools.build:builder-model:3.4.0:builder-model-3.4.0.jar:a88f138124a9f016a70bcb4760359a502f65c7deed56507ee4014f4dd9ea853b',
-        'com.android.tools.build:builder-test-api:3.4.0:builder-test-api-3.4.0.jar:31089ab1ec19ca7687a010867d2f3807513c805b8226979706f4247b5d4df26f',
-        'com.android.tools.build:builder:3.4.0:builder-3.4.0.jar:476221b5203a7f50089bf185ed95000a34b6f5020ef0a17815afd58606922679',
-        'com.android.tools.build:gradle-api:3.4.0:gradle-api-3.4.0.jar:215eca38f6719213c2f492b4d622cdd11676c66c9871f8a2aed0c66d00175628',
-        'com.android.tools.build:manifest-merger:26.4.0:manifest-merger-26.4.0.jar:29e45e690dedd165035e97c21c2ca94d0bd4ec16b6b210daa26669a582b6f220',
-        'com.android.tools.ddms:ddmlib:26.4.0:ddmlib-26.4.0.jar:93f56fe4630c3166adbd6c51d7bb602d96abb91b07ba5b1165fdcd071e88c940',
-        'com.android.tools.external.com-intellij:intellij-core:26.4.0:intellij-core-26.4.0.jar:30cb0e879d4424de9677a50b537fb628636b4a50f5470af5e52437980c41421f',
-        'com.android.tools.external.com-intellij:kotlin-compiler:26.4.0:kotlin-compiler-26.4.0.jar:dd1fe225c31a0e012dc025336363a5b783e2c5c20ffb69e77f8f57e89420d998',
-        'com.android.tools.external.org-jetbrains:uast:26.4.0:uast-26.4.0.jar:f25f3285b775a983327583ff6584dea54e447813ef69e0ce08b05a45b5f4aab0',
-        'com.android.tools.layoutlib:layoutlib-api:26.4.0:layoutlib-api-26.4.0.jar:52128f5cf293b224072be361919bfd416e59480ab7264ddcdbbf046b0d7a12e3',
-        'com.android.tools.lint:lint-api:26.4.0:lint-api-26.4.0.jar:fdb8fca8ae4c254f438338d03d72605e00ed106f2d5550405af41ca1c8509401',
-        'com.android.tools.lint:lint-checks:26.4.0:lint-checks-26.4.0.jar:4ff52d40488cd3e22b9c6b2eb67784e0c3269d0b42ef9d17689cd75a7b2bceb4',
-        'com.android.tools.lint:lint-gradle-api:26.4.0:lint-gradle-api-26.4.0.jar:714b7a85c7d2aa10daeab16e969fe7530c659d0728a7f24021da456870418d0f',
-        'com.android.tools.lint:lint-gradle:26.4.0:lint-gradle-26.4.0.jar:b8c130d273f522388734457e1b96790f41528fcec6fda9e8eaa4e4d95a07cfbb',
-        'com.android.tools.lint:lint:26.4.0:lint-26.4.0.jar:83aa062fb0405b60ed358d858c8c2955e1bae44a455b498068c6a60988755f00',
-        'com.android.tools:annotations:26.4.0:annotations-26.4.0.jar:a7955b8e19c3a2a861d6faa43a58b7c0d46ea9112188ee3e235c6f9f439ecc1a',
-        'com.android.tools:common:26.4.0:common-26.4.0.jar:ea40b94b3c1284ea7700f011388e2906a8363a66abd902891722b3c557984852',
-        'com.android.tools:dvlib:26.4.0:dvlib-26.4.0.jar:23af89c535b01ba36ceed1b6b309b672814eba624e643cd7dedf0519edad50cc',
-        'com.android.tools:repository:26.4.0:repository-26.4.0.jar:3d1763ab46199374dc6d94129bba11c70f1d5857e2c81a3ac4898abca40b176b',
-        'com.android.tools:sdk-common:26.4.0:sdk-common-26.4.0.jar:78a522525b30ffc6b7bf1299c831d24ce385f68a9f4878f8f752e9baefa31b0f',
-        'com.android.tools:sdklib:26.4.0:sdklib-26.4.0.jar:b854c23892013a326d761cf071c72cf3e038ed0469d10f4a356829fa56e4c132',
-        'com.google.code.findbugs:jsr305:1.3.9:jsr305-1.3.9.jar:905721a0eea90a81534abb7ee6ef4ea2e5e645fa1def0a5cd88402df1b46c9ed',
+        'com.android.tools.analytics-library:protos:26.5.1:protos-26.5.1.jar:8dde1130725461fe827f2a343d353f2b51e8870661fc860d7d5ebddb097ead4e',
+        'com.android.tools.analytics-library:shared:26.5.1:shared-26.5.1.jar:ccc2f3b00ec17b11401610ba68553544fc8fc517120e84439ac6eb86b875e18d',
+        'com.android.tools.analytics-library:tracker:26.5.1:tracker-26.5.1.jar:3a76984c0fe2e847ca7a8b35b4780ef0447a9d1666946cb8e60466318e0ab5ae',
+        'com.android.tools.build:aapt2-proto:0.4.0:aapt2-proto-0.4.0.jar:fac0435e08898f89eeeb9ca236bea707155ff816c12205ced285ad53604133ca',
+        'com.android.tools.build:apksig:3.5.1:apksig-3.5.1.jar:1fd33e7f009a2a0da766cfeec4211a09f548034b015c289a66d75dd8a9302f4a',
+        'com.android.tools.build:apkzlib:3.5.1:apkzlib-3.5.1.jar:9f330167cbe973b7db407692f74f4f6453b7ffa5f2048934b06280c2ceee60fa',
+        'com.android.tools.build:builder-model:3.5.1:builder-model-3.5.1.jar:39ea3c82b76b6e0c9f9fa88d93e0edc1dd4a0f1dfae0ef6fbf2d451da47e5450',
+        'com.android.tools.build:builder-test-api:3.5.1:builder-test-api-3.5.1.jar:a1b59305584cbcaa078fdc9cfb80871012755b822dd32e8da19add6f7bbcb762',
+        'com.android.tools.build:builder:3.5.1:builder-3.5.1.jar:e3a8d382434c5f60990730c4719fc814e85a898a33a1e96c1df8d627d3c6eea6',
+        'com.android.tools.build:gradle-api:3.5.1:gradle-api-3.5.1.jar:be9b41859bace11998f66b04ed944f87e413f3ad6da3c4665587699da125addc',
+        'com.android.tools.build:manifest-merger:26.5.1:manifest-merger-26.5.1.jar:dcad9ecb967251f4d750f55a4204a2b400e8fbfe5cb930a1d0d5dbe10ae8bdfc',
+        'com.android.tools.ddms:ddmlib:26.5.1:ddmlib-26.5.1.jar:b081aef2a4ed3f4d47cae4cdb128469735f25a114e026d37123bf9ffdec742a8',
+        'com.android.tools.external.com-intellij:intellij-core:26.5.1:intellij-core-26.5.1.jar:20eced30adc124805bd93488d9cd9d3e33e6bf7b48e9fe5a703d4983f894d450',
+        'com.android.tools.external.com-intellij:kotlin-compiler:26.5.1:kotlin-compiler-26.5.1.jar:5aed762dd54875b77ae7018d97c05756ff0c5b9fd02ec595dd396ccd14cc22cb',
+        'com.android.tools.external.org-jetbrains:uast:26.5.1:uast-26.5.1.jar:4bc8653d6c0943f40fee963a149e36c6baa45683d2530968a13f5007e3c40740',
+        'com.android.tools.layoutlib:layoutlib-api:26.5.1:layoutlib-api-26.5.1.jar:88732f11396c427273e515d23042e35633f4fe4295528a99b866aa2adf0efd9c',
+        'com.android.tools.lint:lint-api:26.5.1:lint-api-26.5.1.jar:ec33fcd72bfaf70dd841e03fbfd93f109c2e575aec146067c606689c3972f0de',
+        'com.android.tools.lint:lint-checks:26.5.1:lint-checks-26.5.1.jar:a1b9607d484aaae7a71dcecdc76f8003d8239af226c776894a2cf63f9e6c60d7',
+        'com.android.tools.lint:lint-gradle-api:26.5.1:lint-gradle-api-26.5.1.jar:82453fd98a8394cc84ed995c04d2cd744abd1d6589403427ba7eef53115406f3',
+        'com.android.tools.lint:lint-gradle:26.5.1:lint-gradle-26.5.1.jar:59465b56cf7db77c656d5f8195d721c3d48b6bdd0502d774de335bfe4baff00b',
+        'com.android.tools.lint:lint:26.5.1:lint-26.5.1.jar:336e4b04ec6f8b0f25879131b7a7862d77df83a1879ee5b71be26128755f8e2e',
+        'com.android.tools:annotations:26.5.1:annotations-26.5.1.jar:2c43c82f8c59d8f7a61e3239e1a2dc9f69dc342ec09af9b7c9f69b25337c0b6e',
+        'com.android.tools:common:26.5.1:common-26.5.1.jar:eccfa54486ed54c4e3123cc42195d023bd0dd21bcd2f0e4868e8c6fc70f8ef6b',
+        'com.android.tools:dvlib:26.5.1:dvlib-26.5.1.jar:46f93ad498b4756e7d867d2fe38c38890a80e7407a4ae459e4a8c8d5c5aeacfe',
+        'com.android.tools:repository:26.5.1:repository-26.5.1.jar:2b3ee791aa4c3e8ce60498c161a27ca7228816fc630eed4d9f25f2f36a106dce',
+        'com.android.tools:sdk-common:26.5.1:sdk-common-26.5.1.jar:365f749676c3574676fd465177c8a492f340816db2b520d6ed114d3b6e77bea7',
+        'com.android.tools:sdklib:26.5.1:sdklib-26.5.1.jar:007da104afb27c8c682a1628023fe9ec438249c8d15ef0fd6624c5bb8e23b696',
         'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7',
-        'com.google.code.gson:gson:2.8.0:gson-2.8.0.jar:c6221763bd79c4f1c3dc7f750b5f29a0bb38b367b81314c4f71896e340c40825',
-        'com.google.dagger:dagger-compiler:2.22.1:dagger-compiler-2.22.1.jar:e5f28302cbe70a79d3620cddebfb8ec0736814f3980ffe1e673bfe3342f507d3',
-        'com.google.dagger:dagger-producers:2.22.1:dagger-producers-2.22.1.jar:f834a0082014213a68ff06a0f048d750178d02196c58b0b15beb367d32b97e35',
-        'com.google.dagger:dagger-spi:2.22.1:dagger-spi-2.22.1.jar:4b0b922793b3bcb91b99fabb75dba77c68afd7ae4c5f0c4fd6ba681f0a291c7d',
-        'com.google.dagger:dagger:2.22.1:dagger-2.22.1.jar:329d4340f24c4f5717af016c097e90668bfea2a5376e6aa9964b01cef3fd241a',
-        'com.google.errorprone:error_prone_annotations:2.1.3:error_prone_annotations-2.1.3.jar:03d0329547c13da9e17c634d1049ea2ead093925e290567e1a364fd6b1fc7ff8',
+        'com.google.code.gson:gson:2.8.5:gson-2.8.5.jar:233a0149fc365c9f6edbd683cfe266b19bdc773be98eabdaf6b3c924b48e7d81',
+        'com.google.dagger:dagger-compiler:2.24:dagger-compiler-2.24.jar:3c5afb955fb188da485cb2c048eff37dce0e1530b9780a0f2f7187d16d1ccc1f',
+        'com.google.dagger:dagger-producers:2.24:dagger-producers-2.24.jar:f10f45b95191954d5d6b043fca9e62fb621d21bf70634b8f8476c7988b504c3a',
+        'com.google.dagger:dagger-spi:2.24:dagger-spi-2.24.jar:c038445d14dbcb4054e61bf49e05009edf26fce4fdc7ec1a9db544784f68e718',
+        'com.google.dagger:dagger:2.24:dagger-2.24.jar:550a6e46a6dfcdf1d764887b6090cea94f783327e50e5c73754f18facfc70b64',
+        'com.google.errorprone:error_prone_annotations:2.2.0:error_prone_annotations-2.2.0.jar:6ebd22ca1b9d8ec06d41de8d64e0596981d9607b42035f9ed374f9de271a481a',
         '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:guava:25.0-jre:guava-25.0-jre.jar:3fd4341776428c7e0e5c18a7c10de129475b69ab9d30aeafbb5c277bb6074fa9',
-        'com.google.guava:guava:26.0-jre:guava-26.0-jre.jar:a0e9cabad665bc20bcd2b01f108e5fc03f756e13aea80abaadb9f407033bea2c',
+        'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26',
+        'com.google.guava:guava:27.0.1-jre:guava-27.0.1-jre.jar:e1c814fd04492a27c38e0317eabeaa1b3e950ec8010239e400fe90ad6c9107b4',
+        'com.google.guava:guava:27.1-jre:guava-27.1-jre.jar:4a5aa70cc968a4d137e599ad37553e5cfeed2265e8c193476d7119036c536fe7',
+        '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.1:j2objc-annotations-1.1.jar:2994a7eb78f2710bd3d3bfb639b2c94e219cedac0d4d084d516e78c16dddecf6',
         'com.google.jimfs:jimfs:1.1:jimfs-1.1.jar:c4828e28d7c0a930af9387510b3bada7daa5c04d7c25a75c7b8b081f1c257ddd',
         'com.google.protobuf:protobuf-java:3.4.0:protobuf-java-3.4.0.jar:dce7e66b32456a1b1198da0caff3a8acb71548658391e798c79369241e6490a4',
@@ -55,6 +57,7 @@ dependencyVerification {
         'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
         'javax.xml.bind:jaxb-api:2.2.12-b140109.1041:jaxb-api-2.2.12-b140109.1041.jar:b5e60cd8b7b5ff01ce4a74c5dd008f4fbd14ced3495d0b47b85cfedc182211f2',
         'junit:junit:4.12:junit-4.12.jar:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a',
+        'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd',
         'net.sf.jopt-simple:jopt-simple:4.9:jopt-simple-4.9.jar:26c5856e954b5f864db76f13b86919b59c6eecf9fd930b96baa8884626baf2f5',
         'net.sf.kxml:kxml2:2.3.0:kxml2-2.3.0.jar:f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2',
         'org.apache.ant:ant-launcher:1.9.4:ant-launcher-1.9.4.jar:7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d',
@@ -71,17 +74,17 @@ dependencyVerification {
         'org.checkerframework:checker-compat-qual:2.5.3:checker-compat-qual-2.5.3.jar:d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d',
         'org.checkerframework:checker-qual:2.5.2:checker-qual-2.5.2.jar:64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a',
         'org.codehaus.groovy:groovy-all:2.4.15:groovy-all-2.4.15.jar:51d6c4e71782e85674239189499854359d380fb75e1a703756e3aaa5b98a5af0',
-        'org.codehaus.mojo:animal-sniffer-annotations:1.14:animal-sniffer-annotations-1.14.jar:2068320bd6bad744c3673ab048f67e30bef8f518996fa380033556600669905d',
+        'org.codehaus.mojo:animal-sniffer-annotations:1.17:animal-sniffer-annotations-1.17.jar:92654f493ecfec52082e76354f0ebf87648dc3d5cec2e3c3cdb947c016747a53',
         'org.glassfish.jaxb:jaxb-core:2.2.11:jaxb-core-2.2.11.jar:37bcaee8ebb04362c8352a5bf6221b86967ecdab5164c696b10b9a2bb587b2aa',
         'org.glassfish.jaxb:jaxb-runtime:2.2.11:jaxb-runtime-2.2.11.jar:a874f2351cfba8e2946be3002d10c18a6da8f21b52ba2acf52f2b85d5520ed70',
         'org.glassfish.jaxb:txw2:2.2.11:txw2-2.2.11.jar:272a3ccad45a4511351920cd2a8633c53cab8d5220c7a92954da5526bb5eafea',
         'org.hamcrest:hamcrest-core:1.3:hamcrest-core-1.3.jar:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9',
         'org.hamcrest:hamcrest-library:1.3:hamcrest-library-1.3.jar:711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c',
-        'org.jetbrains.kotlin:kotlin-reflect:1.3.21:kotlin-reflect-1.3.21.jar:a3065c822633191e0a3e3ee12a29bec234fc4b2864a6bb87ef48cce3e9e0c26a',
-        'org.jetbrains.kotlin:kotlin-stdlib-common:1.3.21:kotlin-stdlib-common-1.3.21.jar:cea61f7b611895e64f58569a9757fc0ab0d582f107211e1930e0ce2a0add52a7',
-        'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.21:kotlin-stdlib-jdk7-1.3.21.jar:a87875604fd42140da6938ae4d35ee61081f4482536efc6d2615b8b626a198af',
-        'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.21:kotlin-stdlib-jdk8-1.3.21.jar:5823ed66ac122a1c55442ebca5a209a843ccd87f562edc31a787f3d2e47f74d4',
-        'org.jetbrains.kotlin:kotlin-stdlib:1.3.21:kotlin-stdlib-1.3.21.jar:38ba2370d9f06f50433e06b2ca775b94473c2e2785f410926079ab793c72b034',
+        'org.jetbrains.kotlin:kotlin-reflect:1.3.50:kotlin-reflect-1.3.50.jar:64583199ea5a54aefd1bd1595288925f784226ee562d1dd279011c6075b3d7a4',
+        'org.jetbrains.kotlin:kotlin-stdlib-common:1.3.50:kotlin-stdlib-common-1.3.50.jar:8ce678e88e4ba018b66dacecf952471e4d7dfee156a8a819760a5a5ff29d323c',
+        'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50:kotlin-stdlib-jdk7-1.3.50.jar:9a026639e76212f8d57b86d55b075394c2e009f1979110751d34c05c5f75d57b',
+        'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.50:kotlin-stdlib-jdk8-1.3.50.jar:1b351fb6e09c14b55525c74c1f4cf48942eae43c348b7bc764a5e6e423d4da0c',
+        'org.jetbrains.kotlin:kotlin-stdlib:1.3.50:kotlin-stdlib-1.3.50.jar:e6f05746ee0366d0b52825a090fac474dcf44082c9083bbb205bd16976488d6c',
         'org.jetbrains.trove4j:trove4j:20160824:trove4j-20160824.jar:1917871c8deb468307a584680c87a44572f5a8b0b98c6d397fc0f5f86596dbe7',
         'org.jetbrains:annotations:13.0:annotations-13.0.jar:ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478',
         'org.jmock:jmock-junit4:2.8.2:jmock-junit4-2.8.2.jar:f7ee4df4f7bd7b7f1cafad3b99eb74d579f109d5992ff625347352edb55e674c',

+ 1 - 1
bramble-api/build.gradle

@@ -7,7 +7,7 @@ apply plugin: 'witness'
 apply from: 'witness.gradle'
 
 dependencies {
-	implementation "com.google.dagger:dagger:2.22.1"
+	implementation "com.google.dagger:dagger:2.24"
 	implementation 'com.google.code.findbugs:jsr305:3.0.2'
 
 	testImplementation 'junit:junit:4.12'

+ 1 - 1
bramble-api/witness.gradle

@@ -2,7 +2,7 @@ dependencyVerification {
     verify = [
         'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357065afb9e6690861',
         'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7',
-        'com.google.dagger:dagger:2.22.1:dagger-2.22.1.jar:329d4340f24c4f5717af016c097e90668bfea2a5376e6aa9964b01cef3fd241a',
+        'com.google.dagger:dagger:2.24:dagger-2.24.jar:550a6e46a6dfcdf1d764887b6090cea94f783327e50e5c73754f18facfc70b64',
         'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
         'junit:junit:4.12:junit-4.12.jar:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a',
         'org.apache.ant:ant-launcher:1.9.4:ant-launcher-1.9.4.jar:7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d',

+ 2 - 2
bramble-core/build.gradle

@@ -17,7 +17,7 @@ dependencies {
 	implementation 'org.whispersystems:curve25519-java:0.5.0'
 	implementation 'org.briarproject:jtorctl:0.3'
 
-	annotationProcessor 'com.google.dagger:dagger-compiler:2.22.1'
+	annotationProcessor 'com.google.dagger:dagger-compiler:2.24'
 
 	testImplementation project(path: ':bramble-api', configuration: 'testOutput')
 	testImplementation 'org.hsqldb:hsqldb:2.3.5' // The last version that supports Java 1.6
@@ -26,7 +26,7 @@ dependencies {
 	testImplementation "org.jmock:jmock-junit4:2.8.2"
 	testImplementation "org.jmock:jmock-legacy:2.8.2"
 
-	testAnnotationProcessor 'com.google.dagger:dagger-compiler:2.22.1'
+	testAnnotationProcessor 'com.google.dagger:dagger-compiler:2.24'
 
 	signature 'org.codehaus.mojo.signature:java16:1.1@signature'
 }

+ 12 - 8
bramble-core/witness.gradle

@@ -1,15 +1,17 @@
 dependencyVerification {
     verify = [
         'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357065afb9e6690861',
-        'com.google.code.findbugs:jsr305:1.3.9:jsr305-1.3.9.jar:905721a0eea90a81534abb7ee6ef4ea2e5e645fa1def0a5cd88402df1b46c9ed',
-        'com.google.dagger:dagger-compiler:2.22.1:dagger-compiler-2.22.1.jar:e5f28302cbe70a79d3620cddebfb8ec0736814f3980ffe1e673bfe3342f507d3',
-        'com.google.dagger:dagger-producers:2.22.1:dagger-producers-2.22.1.jar:f834a0082014213a68ff06a0f048d750178d02196c58b0b15beb367d32b97e35',
-        'com.google.dagger:dagger-spi:2.22.1:dagger-spi-2.22.1.jar:4b0b922793b3bcb91b99fabb75dba77c68afd7ae4c5f0c4fd6ba681f0a291c7d',
-        'com.google.dagger:dagger:2.22.1:dagger-2.22.1.jar:329d4340f24c4f5717af016c097e90668bfea2a5376e6aa9964b01cef3fd241a',
-        'com.google.errorprone:error_prone_annotations:2.1.3:error_prone_annotations-2.1.3.jar:03d0329547c13da9e17c634d1049ea2ead093925e290567e1a364fd6b1fc7ff8',
+        'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7',
+        'com.google.dagger:dagger-compiler:2.24:dagger-compiler-2.24.jar:3c5afb955fb188da485cb2c048eff37dce0e1530b9780a0f2f7187d16d1ccc1f',
+        'com.google.dagger:dagger-producers:2.24:dagger-producers-2.24.jar:f10f45b95191954d5d6b043fca9e62fb621d21bf70634b8f8476c7988b504c3a',
+        'com.google.dagger:dagger-spi:2.24:dagger-spi-2.24.jar:c038445d14dbcb4054e61bf49e05009edf26fce4fdc7ec1a9db544784f68e718',
+        'com.google.dagger:dagger:2.24:dagger-2.24.jar:550a6e46a6dfcdf1d764887b6090cea94f783327e50e5c73754f18facfc70b64',
+        'com.google.errorprone:error_prone_annotations:2.2.0:error_prone_annotations-2.2.0.jar:6ebd22ca1b9d8ec06d41de8d64e0596981d9607b42035f9ed374f9de271a481a',
         '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:guava:25.0-jre:guava-25.0-jre.jar:3fd4341776428c7e0e5c18a7c10de129475b69ab9d30aeafbb5c277bb6074fa9',
+        'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26',
+        'com.google.guava:guava:27.1-jre:guava-27.1-jre.jar:4a5aa70cc968a4d137e599ad37553e5cfeed2265e8c193476d7119036c536fe7',
+        '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.1:j2objc-annotations-1.1.jar:2994a7eb78f2710bd3d3bfb639b2c94e219cedac0d4d084d516e78c16dddecf6',
         'com.h2database:h2:1.4.192:h2-1.4.192.jar:225b22e9857235c46c93861410b60b8c81c10dc8985f4faf188985ba5445126c',
         'com.madgag.spongycastle:core:1.58.0.0:core-1.58.0.0.jar:199617dd5698c5a9312b898c0a4cec7ce9dd8649d07f65d91629f58229d72728',
@@ -18,14 +20,16 @@ dependencyVerification {
         'javax.inject:javax.inject:1:javax.inject-1.jar:91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff',
         'junit:junit:4.12:junit-4.12.jar:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a',
         'net.i2p.crypto:eddsa:0.2.0:eddsa-0.2.0.jar:a7cb1b85c16e2f0730b9204106929a1d9aaae1df728adc7041a8b8b605692140',
+        'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd',
         'org.apache.ant:ant-launcher:1.9.4:ant-launcher-1.9.4.jar:7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d',
         'org.apache.ant:ant:1.9.4:ant-1.9.4.jar:649ae0730251de07b8913f49286d46bba7b92d47c5f332610aa426c4f02161d8',
         'org.beanshell:bsh:1.3.0:bsh-1.3.0.jar:9b04edc75d19db54f1b4e8b5355e9364384c6cf71eb0a1b9724c159d779879f8',
         'org.bitlet:weupnp:0.1.4:weupnp-0.1.4.jar:88df7e6504929d00bdb832863761385c68ab92af945b04f0770b126270a444fb',
         'org.briarproject:jtorctl:0.3:jtorctl-0.3.jar:f2939238a097898998432effe93b0334d97a787972ab3a91a8973a1d309fc864',
         'org.checkerframework:checker-compat-qual:2.5.3:checker-compat-qual-2.5.3.jar:d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d',
+        'org.checkerframework:checker-qual:2.5.2:checker-qual-2.5.2.jar:64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a',
         'org.codehaus.mojo.signature:java16:1.1:java16-1.1.signature:53799223a2c98dba2d0add810bed76315460df285c69e4f397ae6098f87dd619',
-        'org.codehaus.mojo:animal-sniffer-annotations:1.14:animal-sniffer-annotations-1.14.jar:2068320bd6bad744c3673ab048f67e30bef8f518996fa380033556600669905d',
+        'org.codehaus.mojo:animal-sniffer-annotations:1.17:animal-sniffer-annotations-1.17.jar:92654f493ecfec52082e76354f0ebf87648dc3d5cec2e3c3cdb947c016747a53',
         'org.codehaus.mojo:animal-sniffer-ant-tasks:1.16:animal-sniffer-ant-tasks-1.16.jar:890040976fbe2d584619a6a61b1fd2e925b3b5eb342a85eb2762c467c0d64e90',
         'org.codehaus.mojo:animal-sniffer:1.16:animal-sniffer-1.16.jar:72be8bcc226ba43b937c722a08a07852bfa1b11400089265d5df0ee7b38b1d52',
         'org.hamcrest:hamcrest-core:1.3:hamcrest-core-1.3.jar:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9',

+ 2 - 2
bramble-java/build.gradle

@@ -19,7 +19,7 @@ dependencies {
 	tor 'org.briarproject:tor:0.3.5.8@zip'
 	tor 'org.briarproject:obfs4proxy:0.0.7@zip'
 
-	annotationProcessor 'com.google.dagger:dagger-compiler:2.22.1'
+	annotationProcessor 'com.google.dagger:dagger-compiler:2.24'
 
 	testImplementation project(path: ':bramble-api', configuration: 'testOutput')
 	testImplementation project(path: ':bramble-core', configuration: 'testOutput')
@@ -28,7 +28,7 @@ dependencies {
 	testImplementation "org.jmock:jmock-junit4:2.8.2"
 	testImplementation "org.jmock:jmock-legacy:2.8.2"
 
-	testAnnotationProcessor 'com.google.dagger:dagger-compiler:2.22.1'
+	testAnnotationProcessor 'com.google.dagger:dagger-compiler:2.24'
 }
 
 def torBinariesDir = 'src/main/resources'

+ 12 - 8
bramble-java/witness.gradle

@@ -1,15 +1,17 @@
 dependencyVerification {
     verify = [
         'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357065afb9e6690861',
-        'com.google.code.findbugs:jsr305:1.3.9:jsr305-1.3.9.jar:905721a0eea90a81534abb7ee6ef4ea2e5e645fa1def0a5cd88402df1b46c9ed',
-        'com.google.dagger:dagger-compiler:2.22.1:dagger-compiler-2.22.1.jar:e5f28302cbe70a79d3620cddebfb8ec0736814f3980ffe1e673bfe3342f507d3',
-        'com.google.dagger:dagger-producers:2.22.1:dagger-producers-2.22.1.jar:f834a0082014213a68ff06a0f048d750178d02196c58b0b15beb367d32b97e35',
-        'com.google.dagger:dagger-spi:2.22.1:dagger-spi-2.22.1.jar:4b0b922793b3bcb91b99fabb75dba77c68afd7ae4c5f0c4fd6ba681f0a291c7d',
-        'com.google.dagger:dagger:2.22.1:dagger-2.22.1.jar:329d4340f24c4f5717af016c097e90668bfea2a5376e6aa9964b01cef3fd241a',
-        'com.google.errorprone:error_prone_annotations:2.1.3:error_prone_annotations-2.1.3.jar:03d0329547c13da9e17c634d1049ea2ead093925e290567e1a364fd6b1fc7ff8',
+        'com.google.code.findbugs:jsr305:3.0.2:jsr305-3.0.2.jar:766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7',
+        'com.google.dagger:dagger-compiler:2.24:dagger-compiler-2.24.jar:3c5afb955fb188da485cb2c048eff37dce0e1530b9780a0f2f7187d16d1ccc1f',
+        'com.google.dagger:dagger-producers:2.24:dagger-producers-2.24.jar:f10f45b95191954d5d6b043fca9e62fb621d21bf70634b8f8476c7988b504c3a',
+        'com.google.dagger:dagger-spi:2.24:dagger-spi-2.24.jar:c038445d14dbcb4054e61bf49e05009edf26fce4fdc7ec1a9db544784f68e718',
+        'com.google.dagger:dagger:2.24:dagger-2.24.jar:550a6e46a6dfcdf1d764887b6090cea94f783327e50e5c73754f18facfc70b64',
+        'com.google.errorprone:error_prone_annotations:2.2.0:error_prone_annotations-2.2.0.jar:6ebd22ca1b9d8ec06d41de8d64e0596981d9607b42035f9ed374f9de271a481a',
         '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:guava:25.0-jre:guava-25.0-jre.jar:3fd4341776428c7e0e5c18a7c10de129475b69ab9d30aeafbb5c277bb6074fa9',
+        'com.google.guava:failureaccess:1.0.1:failureaccess-1.0.1.jar:a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26',
+        'com.google.guava:guava:27.1-jre:guava-27.1-jre.jar:4a5aa70cc968a4d137e599ad37553e5cfeed2265e8c193476d7119036c536fe7',
+        '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.1:j2objc-annotations-1.1.jar:2994a7eb78f2710bd3d3bfb639b2c94e219cedac0d4d084d516e78c16dddecf6',
         'com.squareup:javapoet:1.11.1:javapoet-1.11.1.jar:9cbf2107be499ec6e95afd36b58e3ca122a24166cdd375732e51267d64058e90',
         'javax.annotation:jsr250-api:1.0:jsr250-api-1.0.jar:a1a922d0d9b6d183ed3800dfac01d1e1eb159f0e8c6f94736931c1def54a941f',
@@ -17,13 +19,15 @@ dependencyVerification {
         'junit:junit:4.12:junit-4.12.jar:59721f0805e223d84b90677887d9ff567dc534d7c502ca903c0c2b17f05c116a',
         'net.java.dev.jna:jna-platform:4.5.2:jna-platform-4.5.2.jar:f1d00c167d8921c6e23c626ef9f1c3ae0be473c95c68ffa012bc7ae55a87e2d6',
         'net.java.dev.jna:jna:4.5.2:jna-4.5.2.jar:0c8eb7acf67261656d79005191debaba3b6bf5dd60a43735a245429381dbecff',
+        'net.ltgt.gradle.incap:incap:0.2:incap-0.2.jar:b625b9806b0f1e4bc7a2e3457119488de3cd57ea20feedd513db070a573a4ffd',
         'org.apache.ant:ant-launcher:1.9.4:ant-launcher-1.9.4.jar:7bccea20b41801ca17bcbc909a78c835d0f443f12d639c77bd6ae3d05861608d',
         'org.apache.ant:ant:1.9.4:ant-1.9.4.jar:649ae0730251de07b8913f49286d46bba7b92d47c5f332610aa426c4f02161d8',
         'org.beanshell:bsh:1.3.0:bsh-1.3.0.jar:9b04edc75d19db54f1b4e8b5355e9364384c6cf71eb0a1b9724c159d779879f8',
         'org.briarproject:obfs4proxy:0.0.7:obfs4proxy-0.0.7.zip:5b2f693262ce43a7e130f7cc7d5d1617925330640a2eb6d71085e95df8ee0642',
         'org.briarproject:tor:0.3.5.8:tor-0.3.5.8.zip:96e83391f01984f28669235fc02fbb0243140a2b3b2c73aeffd0042c8d3ced18',
         'org.checkerframework:checker-compat-qual:2.5.3:checker-compat-qual-2.5.3.jar:d76b9afea61c7c082908023f0cbc1427fab9abd2df915c8b8a3e7a509bccbc6d',
-        'org.codehaus.mojo:animal-sniffer-annotations:1.14:animal-sniffer-annotations-1.14.jar:2068320bd6bad744c3673ab048f67e30bef8f518996fa380033556600669905d',
+        'org.checkerframework:checker-qual:2.5.2:checker-qual-2.5.2.jar:64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a',
+        'org.codehaus.mojo:animal-sniffer-annotations:1.17:animal-sniffer-annotations-1.17.jar:92654f493ecfec52082e76354f0ebf87648dc3d5cec2e3c3cdb947c016747a53',
         'org.hamcrest:hamcrest-core:1.3:hamcrest-core-1.3.jar:66fdef91e9739348df7a096aa384a5685f4e875584cce89386a7a47251c4d8e9',
         'org.hamcrest:hamcrest-library:1.3:hamcrest-library-1.3.jar:711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c',
         'org.jmock:jmock-junit4:2.8.2:jmock-junit4-2.8.2.jar:f7ee4df4f7bd7b7f1cafad3b99eb74d579f109d5992ff625347352edb55e674c',

+ 31 - 41
briar-android/build.gradle

@@ -16,8 +16,8 @@ def getStdout = { command, defaultValue ->
 }
 
 android {
-	compileSdkVersion 28
-	buildToolsVersion '28.0.3'
+	compileSdkVersion 29
+	buildToolsVersion '29.0.2'
 
 	defaultConfig {
 		minSdkVersion 16
@@ -90,66 +90,56 @@ dependencies {
 	implementation project(path: ':bramble-core', configuration: 'default')
 	implementation project(':bramble-android')
 
-	def supportVersion = '28.0.0'
-	implementation "com.android.support:support-v4:$supportVersion"
-	implementation("com.android.support:appcompat-v7:$supportVersion") {
-		exclude module: 'support-v4'
-	}
-	implementation("com.android.support:preference-v14:$supportVersion") {
-		exclude module: 'support-v4'
-	}
-	implementation("com.android.support:design:$supportVersion") {
-		exclude module: 'support-v4'
-		exclude module: 'recyclerview-v7'
-	}
-	implementation "com.android.support:cardview-v7:$supportVersion"
-	implementation "com.android.support:support-annotations:$supportVersion"
-	implementation "com.android.support:exifinterface:$supportVersion"
-	implementation 'com.android.support.constraint:constraint-layout:1.1.3'
-	implementation "android.arch.lifecycle:extensions:1.1.1"
-
-	implementation('ch.acra:acra:4.11') {
-		exclude module: 'support-v4'
-		exclude module: 'support-annotations'
-	}
-	implementation 'info.guardianproject.panic:panic:0.5'
+//	implementation 'androidx.legacy:legacy-support-v4:1.0.0'
+	implementation 'androidx.appcompat:appcompat:1.1.0'
+//	implementation 'androidx.legacy:legacy-preference-v14:1.0.0'
+	implementation 'androidx.preference:preference:1.1.0'
+	implementation 'androidx.cardview:cardview:1.0.0'
+	implementation 'androidx.annotation:annotation:1.1.0'
+	implementation 'androidx.exifinterface:exifinterface:1.0.0'
+	implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+	implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
+	implementation 'com.google.android.material:material:1.0.0'
+
+	implementation 'ch.acra:acra:4.11'
+	implementation 'info.guardianproject.panic:panic:1.0'
 	implementation 'info.guardianproject.trustedintents:trustedintents:0.2'
-	implementation 'de.hdodenhof:circleimageview:2.2.0'
-	implementation 'com.google.zxing:core:3.3.3'
-	implementation 'uk.co.samuelwall:material-tap-target-prompt:2.14.0'
-	implementation 'com.vanniktech:emoji-google:0.6.0' // later versions already use androidx
-	implementation 'com.github.kobakei:MaterialFabSpeedDial:1.2.1' // later versions already use androidx
-	def glideVersion = '4.9.0'
+	implementation 'de.hdodenhof:circleimageview:3.0.1'
+	implementation 'com.google.zxing:core:3.4.0'
+	implementation 'uk.co.samuelwall:material-tap-target-prompt:3.0.0'
+	implementation 'com.vanniktech:emoji-google:0.6.0'
+	implementation 'com.github.kobakei:MaterialFabSpeedDial:1.2.1'
+	def glideVersion = '4.10.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
 	}
-	implementation 'com.github.chrisbanes:PhotoView:2.1.4' // later versions already use androidx
+	implementation 'com.github.chrisbanes:PhotoView:2.3.0'
 
-	annotationProcessor 'com.google.dagger:dagger-compiler:2.22.1'
+	annotationProcessor 'com.google.dagger:dagger-compiler:2.24'
 	annotationProcessor "com.github.bumptech.glide:compiler:$glideVersion"
 
 	compileOnly 'javax.annotation:jsr250-api:1.0'
 
 	testImplementation project(path: ':bramble-api', configuration: 'testOutput')
 	testImplementation project(path: ':bramble-core', configuration: 'testOutput')
-	testImplementation 'org.robolectric:robolectric:4.0.1'
+	testImplementation 'org.robolectric:robolectric:4.3'
 	testImplementation 'org.robolectric:shadows-support-v4:3.3.2'
-	testImplementation 'org.mockito:mockito-core:2.25.0'
+	testImplementation 'org.mockito:mockito-core:3.1.0'
 	testImplementation 'junit:junit:4.12'
 	testImplementation "org.jmock:jmock:2.8.2"
 	testImplementation "org.jmock:jmock-junit4:2.8.2"
 	testImplementation "org.jmock:jmock-legacy:2.8.2"
 
-	def espressoVersion = '3.0.2'
-	androidTestImplementation "com.android.support.test.espresso:espresso-core:$espressoVersion"
-	androidTestImplementation "com.android.support.test.espresso:espresso-contrib:$espressoVersion"
-	androidTestImplementation "com.android.support.test.espresso:espresso-intents:$espressoVersion"
-	androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:2.22.1"
+	def espressoVersion = '3.2.0'
+	androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
+	androidTestImplementation "androidx.test.espresso:espresso-contrib:$espressoVersion"
+	androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion"
+	androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:2.24"
 	androidTestCompileOnly 'javax.annotation:jsr250-api:1.0'
 	androidTestImplementation 'junit:junit:4.12'
 	androidTestScreenshotImplementation "tools.fastlane:screengrab:1.2.0"
-	androidTestScreenshotImplementation "com.android.support.test.uiautomator:uiautomator-v18:2.1.3"
+	androidTestScreenshotImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
 }
 
 task verifyTranslations {

+ 1 - 1
briar-android/src/androidTest/java/org/briarproject/briar/android/BriarTestRunner.java

@@ -2,7 +2,7 @@ package org.briarproject.briar.android;
 
 import android.app.Application;
 import android.content.Context;
-import android.support.test.runner.AndroidJUnitRunner;
+import androidx.test.runner.AndroidJUnitRunner;
 
 public class BriarTestRunner extends AndroidJUnitRunner {
 

+ 1 - 1
briar-android/src/androidTest/java/org/briarproject/briar/android/UiTest.java

@@ -2,7 +2,7 @@ package org.briarproject.briar.android;
 
 import android.app.Activity;
 import android.content.Intent;
-import android.support.test.espresso.intent.rule.IntentsTestRule;
+import androidx.test.espresso.intent.rule.IntentsTestRule;
 
 import org.briarproject.bramble.api.account.AccountManager;
 import org.briarproject.bramble.api.lifecycle.LifecycleManager;

+ 9 - 9
briar-android/src/androidTest/java/org/briarproject/briar/android/ViewActions.java

@@ -1,21 +1,21 @@
 package org.briarproject.briar.android;
 
 import android.app.Activity;
-import android.support.test.espresso.PerformException;
-import android.support.test.espresso.UiController;
-import android.support.test.espresso.ViewAction;
-import android.support.test.runner.lifecycle.ActivityLifecycleMonitor;
-import android.support.test.runner.lifecycle.ActivityLifecycleMonitorRegistry;
-import android.support.test.runner.lifecycle.Stage;
+import androidx.test.espresso.PerformException;
+import androidx.test.espresso.UiController;
+import androidx.test.espresso.ViewAction;
+import androidx.test.runner.lifecycle.ActivityLifecycleMonitor;
+import androidx.test.runner.lifecycle.ActivityLifecycleMonitorRegistry;
+import androidx.test.runner.lifecycle.Stage;
 import android.view.View;
 
 import org.hamcrest.Matcher;
 
 import java.util.concurrent.TimeoutException;
 
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.util.HumanReadables.describe;
-import static android.support.test.espresso.util.TreeIterables.breadthFirstViewTraversal;
+import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.util.HumanReadables.describe;
+import static androidx.test.espresso.util.TreeIterables.breadthFirstViewTraversal;
 import static java.lang.System.currentTimeMillis;
 import static java.util.concurrent.TimeUnit.SECONDS;
 

+ 1 - 1
briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/attachment/AttachmentRetrieverIntegrationTest.java

@@ -2,7 +2,7 @@ package org.briarproject.briar.android.attachment;
 
 import android.content.res.AssetManager;
 import android.support.test.InstrumentationRegistry;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 
 import org.briarproject.bramble.api.UniqueId;
 import org.briarproject.bramble.api.sync.MessageId;

+ 5 - 5
briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/conversation/ConversationActivityNotSignedInTest.java

@@ -2,8 +2,8 @@ package org.briarproject.briar.android.conversation;
 
 import android.content.Context;
 import android.content.Intent;
-import android.support.test.rule.ActivityTestRule;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.rule.ActivityTestRule;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 
 import org.briarproject.briar.R;
 import org.junit.Rule;
@@ -11,9 +11,9 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import static android.support.test.InstrumentationRegistry.getInstrumentation;
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.withText;
 import static org.briarproject.briar.android.ViewActions.waitUntilMatches;
 import static org.briarproject.briar.android.conversation.ConversationActivity.CONTACT_ID;
 

+ 11 - 11
briar-android/src/androidTestOfficial/java/org/briarproject/briar/android/navdrawer/NavDrawerActivityTest.java

@@ -1,7 +1,7 @@
 package org.briarproject.briar.android.navdrawer;
 
-import android.support.test.espresso.contrib.DrawerActions;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.espresso.contrib.DrawerActions;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 import android.view.Gravity;
 
 import org.briarproject.briar.R;
@@ -12,15 +12,15 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.contrib.DrawerMatchers.isClosed;
-import static android.support.test.espresso.intent.Intents.intended;
-import static android.support.test.espresso.intent.matcher.IntentMatchers.hasComponent;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.action.ViewActions.click;
+import static androidx.test.espresso.assertion.ViewAssertions.matches;
+import static androidx.test.espresso.contrib.DrawerMatchers.isClosed;
+import static androidx.test.espresso.intent.Intents.intended;
+import static androidx.test.espresso.intent.matcher.IntentMatchers.hasComponent;
+import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.espresso.matcher.ViewMatchers.withText;
 
 @RunWith(AndroidJUnit4.class)
 public class NavDrawerActivityTest extends UiTest {

+ 16 - 16
briar-android/src/androidTestScreenshot/java/org/briarproject/briar/android/SetupDataTest.java

@@ -1,10 +1,10 @@
 package org.briarproject.briar.android;
 
-import android.support.test.espresso.intent.rule.IntentsTestRule;
-import android.support.test.runner.AndroidJUnit4;
-import android.support.test.uiautomator.UiDevice;
-import android.support.test.uiautomator.UiObject;
-import android.support.test.uiautomator.UiSelector;
+import androidx.test.espresso.intent.rule.IntentsTestRule;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.uiautomator.UiDevice;
+import androidx.test.uiautomator.UiObject;
+import androidx.test.uiautomator.UiSelector;
 
 import org.briarproject.bramble.api.FormatException;
 import org.briarproject.bramble.api.contact.Contact;
@@ -18,17 +18,17 @@ import org.junit.runner.RunWith;
 
 import static android.support.test.InstrumentationRegistry.getInstrumentation;
 import static android.support.test.InstrumentationRegistry.getTargetContext;
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.action.ViewActions.typeText;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.intent.Intents.intended;
-import static android.support.test.espresso.intent.matcher.IntentMatchers.hasComponent;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.isRoot;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
-import static android.support.test.runner.lifecycle.Stage.PAUSED;
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.action.ViewActions.click;
+import static androidx.test.espresso.action.ViewActions.typeText;
+import static androidx.test.espresso.assertion.ViewAssertions.matches;
+import static androidx.test.espresso.intent.Intents.intended;
+import static androidx.test.espresso.intent.matcher.IntentMatchers.hasComponent;
+import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.isRoot;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.espresso.matcher.ViewMatchers.withText;
+import static androidx.test.runner.lifecycle.Stage.PAUSED;
 import static org.briarproject.bramble.api.plugin.LanTcpConstants.ID;
 import static org.briarproject.briar.android.ViewActions.waitForActivity;
 import static org.briarproject.briar.android.ViewActions.waitUntilMatches;

+ 6 - 6
briar-android/src/androidTestScreenshot/java/org/briarproject/briar/android/conversation/ConversationActivityScreenshotTest.java

@@ -2,8 +2,8 @@ package org.briarproject.briar.android.contact;
 
 import android.content.Context;
 import android.content.Intent;
-import android.support.test.rule.ActivityTestRule;
-import android.support.test.runner.AndroidJUnit4;
+import androidx.test.rule.ActivityTestRule;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 
 import org.briarproject.briar.R;
 import org.briarproject.briar.android.BriarUiTestComponent;
@@ -13,10 +13,10 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import static android.support.test.InstrumentationRegistry.getInstrumentation;
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.espresso.matcher.ViewMatchers.withText;
 import static org.briarproject.briar.android.ViewActions.waitUntilMatches;
 import static org.briarproject.briar.android.contact.ConversationActivity.CONTACT_ID;
 import static org.hamcrest.Matchers.allOf;

+ 16 - 16
briar-android/src/androidTestScreenshot/java/org/briarproject/briar/android/settings/SettingsActivityScreenshotTest.java

@@ -1,10 +1,10 @@
 package org.briarproject.briar.android.settings;
 
 import android.content.Intent;
-import android.support.test.espresso.contrib.DrawerActions;
-import android.support.test.rule.ActivityTestRule;
-import android.support.test.runner.AndroidJUnit4;
-import android.support.v7.widget.RecyclerView;
+import androidx.test.espresso.contrib.DrawerActions;
+import androidx.test.rule.ActivityTestRule;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.recyclerview.widget.RecyclerView;
 import android.view.Gravity;
 
 import org.briarproject.briar.R;
@@ -15,18 +15,18 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.contrib.DrawerMatchers.isClosed;
-import static android.support.test.espresso.contrib.RecyclerViewActions.scrollTo;
-import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.isEnabled;
-import static android.support.test.espresso.matcher.ViewMatchers.withChild;
-import static android.support.test.espresso.matcher.ViewMatchers.withClassName;
-import static android.support.test.espresso.matcher.ViewMatchers.withId;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
+import static androidx.test.espresso.Espresso.onView;
+import static androidx.test.espresso.action.ViewActions.click;
+import static androidx.test.espresso.assertion.ViewAssertions.matches;
+import static androidx.test.espresso.contrib.DrawerMatchers.isClosed;
+import static androidx.test.espresso.contrib.RecyclerViewActions.scrollTo;
+import static androidx.test.espresso.matcher.ViewMatchers.hasDescendant;
+import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static androidx.test.espresso.matcher.ViewMatchers.isEnabled;
+import static androidx.test.espresso.matcher.ViewMatchers.withChild;
+import static androidx.test.espresso.matcher.ViewMatchers.withClassName;
+import static androidx.test.espresso.matcher.ViewMatchers.withId;
+import static androidx.test.espresso.matcher.ViewMatchers.withText;
 import static org.briarproject.briar.android.ViewActions.waitUntilMatches;
 import static org.hamcrest.CoreMatchers.is;
 

+ 2 - 2
briar-android/src/main/java/im/delight/android/identicons/Identicon.java

@@ -19,8 +19,8 @@ package im.delight.android.identicons;
 import android.graphics.Canvas;
 import android.graphics.Color;
 import android.graphics.Paint;
-import android.support.annotation.NonNull;
-import android.support.annotation.UiThread;
+import androidx.annotation.NonNull;
+import androidx.annotation.UiThread;
 
 import static android.graphics.Paint.Style.FILL;
 

+ 2 - 2
briar-android/src/main/java/im/delight/android/identicons/IdenticonDrawable.java

@@ -20,8 +20,8 @@ import android.graphics.Canvas;
 import android.graphics.ColorFilter;
 import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
-import android.support.annotation.NonNull;
-import android.support.annotation.UiThread;
+import androidx.annotation.NonNull;
+import androidx.annotation.UiThread;
 
 import static android.graphics.PixelFormat.OPAQUE;
 

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/AndroidComponent.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android;
 
-import android.arch.lifecycle.ViewModelProvider;
+import androidx.lifecycle.ViewModelProvider;
 
 import org.briarproject.bramble.BrambleAndroidEagerSingletons;
 import org.briarproject.bramble.BrambleAndroidModule;

+ 12 - 12
briar-android/src/main/java/org/briarproject/briar/android/AndroidNotificationManagerImpl.java

@@ -9,11 +9,11 @@ import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
-import android.support.annotation.Nullable;
-import android.support.annotation.StringRes;
-import android.support.annotation.UiThread;
-import android.support.v4.app.NotificationCompat;
-import android.support.v4.app.TaskStackBuilder;
+import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
+import androidx.annotation.UiThread;
+import androidx.core.app.NotificationCompat;
+import androidx.core.app.TaskStackBuilder;
 
 import org.briarproject.bramble.api.Multiset;
 import org.briarproject.bramble.api.contact.ContactId;
@@ -65,13 +65,13 @@ import static android.content.Context.NOTIFICATION_SERVICE;
 import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
 import static android.os.Build.VERSION.SDK_INT;
-import static android.support.v4.app.NotificationCompat.CATEGORY_MESSAGE;
-import static android.support.v4.app.NotificationCompat.CATEGORY_SERVICE;
-import static android.support.v4.app.NotificationCompat.CATEGORY_SOCIAL;
-import static android.support.v4.app.NotificationCompat.PRIORITY_LOW;
-import static android.support.v4.app.NotificationCompat.PRIORITY_MIN;
-import static android.support.v4.app.NotificationCompat.VISIBILITY_SECRET;
-import static android.support.v4.content.ContextCompat.getColor;
+import static androidx.core.app.NotificationCompat.CATEGORY_MESSAGE;
+import static androidx.core.app.NotificationCompat.CATEGORY_SERVICE;
+import static androidx.core.app.NotificationCompat.CATEGORY_SOCIAL;
+import static androidx.core.app.NotificationCompat.PRIORITY_LOW;
+import static androidx.core.app.NotificationCompat.PRIORITY_MIN;
+import static androidx.core.app.NotificationCompat.VISIBILITY_SECRET;
+import static androidx.core.content.ContextCompat.getColor;
 import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID;
 import static org.briarproject.briar.android.conversation.ConversationActivity.CONTACT_ID;
 import static org.briarproject.briar.android.navdrawer.NavDrawerActivity.BLOG_URI;

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/BriarService.java

@@ -13,7 +13,7 @@ import android.content.IntentFilter;
 import android.content.ServiceConnection;
 import android.os.Binder;
 import android.os.IBinder;
-import android.support.v4.app.NotificationCompat;
+import androidx.core.app.NotificationCompat;
 
 import org.briarproject.bramble.api.account.AccountManager;
 import org.briarproject.bramble.api.crypto.SecretKey;
@@ -42,7 +42,7 @@ import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS;
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
 import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
 import static android.os.Build.VERSION.SDK_INT;
-import static android.support.v4.app.NotificationCompat.VISIBILITY_SECRET;
+import static androidx.core.app.NotificationCompat.VISIBILITY_SECRET;
 import static java.util.logging.Level.INFO;
 import static java.util.logging.Level.WARNING;
 import static org.briarproject.bramble.api.lifecycle.LifecycleManager.StartResult.ALREADY_RUNNING;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/NotificationCleanupService.java

@@ -3,7 +3,7 @@ package org.briarproject.briar.android;
 import android.app.IntentService;
 import android.content.Intent;
 import android.net.Uri;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 
 import org.briarproject.briar.api.android.AndroidNotificationManager;
 

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/ScreenFilterMonitorImpl.java

@@ -11,7 +11,7 @@ import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.Signature;
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 
 import org.briarproject.bramble.api.lifecycle.Service;
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/StartupFailureActivity.java

@@ -3,8 +3,8 @@ package org.briarproject.briar.android;
 import android.app.NotificationManager;
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.annotation.NonNull;
-import android.support.annotation.Nullable;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 
 import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
 import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/account/AuthorNameFragment.java

@@ -1,8 +1,8 @@
 package org.briarproject.briar.android.account;
 
 import android.os.Bundle;
-import android.support.design.widget.TextInputEditText;
-import android.support.design.widget.TextInputLayout;
+import com.google.android.material.textfield.TextInputEditText;
+import com.google.android.material.textfield.TextInputLayout;
 import android.text.Editable;
 import android.view.LayoutInflater;
 import android.view.View;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/account/DozeFragment.java

@@ -3,7 +3,7 @@ package org.briarproject.briar.android.account;
 import android.annotation.SuppressLint;
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/account/DozeView.java

@@ -2,8 +2,8 @@ package org.briarproject.briar.android.account;
 
 
 import android.content.Context;
-import android.support.annotation.Nullable;
-import android.support.annotation.UiThread;
+import androidx.annotation.Nullable;
+import androidx.annotation.UiThread;
 import android.util.AttributeSet;
 
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/account/HuaweiView.java

@@ -5,8 +5,8 @@ import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
-import android.support.annotation.StringRes;
-import android.support.annotation.UiThread;
+import androidx.annotation.StringRes;
+import androidx.annotation.UiThread;
 import android.util.AttributeSet;
 
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;

+ 3 - 3
briar-android/src/main/java/org/briarproject/briar/android/account/LockManagerImpl.java

@@ -3,11 +3,11 @@ package org.briarproject.briar.android.account;
 import android.app.AlarmManager;
 import android.app.Application;
 import android.app.PendingIntent;
-import android.arch.lifecycle.LiveData;
-import android.arch.lifecycle.MutableLiveData;
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
 import android.content.Context;
 import android.content.Intent;
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 
 import org.briarproject.bramble.api.db.DatabaseExecutor;
 import org.briarproject.bramble.api.db.DbException;

+ 4 - 4
briar-android/src/main/java/org/briarproject/briar/android/account/PowerView.java

@@ -3,10 +3,10 @@ package org.briarproject.briar.android.account;
 import android.content.Context;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.support.annotation.Nullable;
-import android.support.annotation.StringRes;
-import android.support.annotation.UiThread;
-import android.support.constraint.ConstraintLayout;
+import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
+import androidx.annotation.UiThread;
+import androidx.constraintlayout.widget.ConstraintLayout;
 import android.util.AttributeSet;
 import android.view.LayoutInflater;
 import android.view.View;

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/account/SetPasswordFragment.java

@@ -2,8 +2,8 @@ package org.briarproject.briar.android.account;
 
 import android.os.Bundle;
 import android.os.IBinder;
-import android.support.design.widget.TextInputEditText;
-import android.support.design.widget.TextInputLayout;
+import com.google.android.material.textfield.TextInputEditText;
+import com.google.android.material.textfield.TextInputLayout;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/account/SetupControllerImpl.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.account;
 
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 
 import org.briarproject.bramble.api.account.AccountManager;
 import org.briarproject.bramble.api.crypto.PasswordStrengthEstimator;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/account/SetupFragment.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.account;
 
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 import android.text.Editable;
 import android.text.TextWatcher;
 import android.view.KeyEvent;

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/account/UnlockActivity.java

@@ -8,8 +8,8 @@ import android.hardware.biometrics.BiometricPrompt.AuthenticationResult;
 import android.hardware.biometrics.BiometricPrompt.Builder;
 import android.os.Bundle;
 import android.os.CancellationSignal;
-import android.support.annotation.Nullable;
-import android.support.annotation.RequiresApi;
+import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
 import android.widget.Toast;
 
 import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;

+ 8 - 7
briar-android/src/main/java/org/briarproject/briar/android/activity/BaseActivity.java

@@ -2,12 +2,6 @@ package org.briarproject.briar.android.activity;
 
 import android.content.Context;
 import android.os.Bundle;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.UiThread;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.Toolbar;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewGroup.LayoutParams;
@@ -39,9 +33,16 @@ import java.util.logging.Logger;
 import javax.annotation.Nullable;
 import javax.inject.Inject;
 
-import static android.arch.lifecycle.Lifecycle.State.STARTED;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.UiThread;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
 import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
 import static android.view.WindowManager.LayoutParams.FLAG_SECURE;
+import static androidx.lifecycle.Lifecycle.State.STARTED;
 import static java.util.logging.Level.INFO;
 import static java.util.logging.Logger.getLogger;
 import static org.briarproject.briar.android.TestingConstants.PREVENT_SCREENSHOTS;

+ 4 - 4
briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java

@@ -1,10 +1,10 @@
 package org.briarproject.briar.android.activity;
 
 import android.content.Intent;
-import android.support.annotation.RequiresApi;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.widget.Toolbar;
+import androidx.annotation.RequiresApi;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.widget.Toolbar;
 import android.transition.Transition;
 import android.view.Window;
 import android.widget.CheckBox;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreationTask.java

@@ -4,7 +4,7 @@ import android.content.ContentResolver;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory.Options;
 import android.net.Uri;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 
 import org.briarproject.bramble.api.db.DbException;
 import org.briarproject.bramble.api.lifecycle.IoExecutor;

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreator.java

@@ -1,8 +1,8 @@
 package org.briarproject.briar.android.attachment;
 
-import android.arch.lifecycle.LiveData;
+import androidx.lifecycle.LiveData;
 import android.net.Uri;
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 
 import org.briarproject.bramble.api.lifecycle.IoExecutor;
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;

+ 4 - 4
briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentCreatorImpl.java

@@ -2,11 +2,11 @@ package org.briarproject.briar.android.attachment;
 
 
 import android.app.Application;
-import android.arch.lifecycle.LiveData;
-import android.arch.lifecycle.MutableLiveData;
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
 import android.net.Uri;
-import android.support.annotation.Nullable;
-import android.support.annotation.UiThread;
+import androidx.annotation.Nullable;
+import androidx.annotation.UiThread;
 
 import org.briarproject.bramble.api.db.DbException;
 import org.briarproject.bramble.api.lifecycle.IoExecutor;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentDimensions.java

@@ -1,7 +1,7 @@
 package org.briarproject.briar.android.attachment;
 
 import android.content.res.Resources;
-import android.support.annotation.VisibleForTesting;
+import androidx.annotation.VisibleForTesting;
 
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
 import org.briarproject.briar.R;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentItem.java

@@ -2,7 +2,7 @@ package org.briarproject.briar.android.attachment;
 
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
 import org.briarproject.bramble.api.sync.MessageId;

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentManager.java

@@ -1,8 +1,8 @@
 package org.briarproject.briar.android.attachment;
 
-import android.arch.lifecycle.LiveData;
+import androidx.lifecycle.LiveData;
 import android.net.Uri;
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
 import org.briarproject.briar.api.messaging.AttachmentHeader;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentRetriever.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.attachment;
 
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 
 import org.briarproject.bramble.api.db.DbException;
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/attachment/AttachmentRetrieverImpl.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.attachment;
 
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 
 import org.briarproject.bramble.api.db.DbException;
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/attachment/ImageHelper.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.attachment;
 
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
 

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/attachment/ImageHelperImpl.java

@@ -1,7 +1,7 @@
 package org.briarproject.briar.android.attachment;
 
 import android.graphics.BitmapFactory;
-import android.support.annotation.Nullable;
+import androidx.annotation.Nullable;
 import android.webkit.MimeTypeMap;
 
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;

+ 8 - 8
briar-android/src/main/java/org/briarproject/briar/android/attachment/ImageSizeCalculator.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.attachment;
 
-import android.support.media.ExifInterface;
+import androidx.exifinterface.media.ExifInterface;
 
 import com.bumptech.glide.util.MarkEnforcingInputStream;
 
@@ -11,13 +11,13 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.logging.Logger;
 
-import static android.support.media.ExifInterface.ORIENTATION_ROTATE_270;
-import static android.support.media.ExifInterface.ORIENTATION_ROTATE_90;
-import static android.support.media.ExifInterface.ORIENTATION_TRANSPOSE;
-import static android.support.media.ExifInterface.ORIENTATION_TRANSVERSE;
-import static android.support.media.ExifInterface.TAG_IMAGE_LENGTH;
-import static android.support.media.ExifInterface.TAG_IMAGE_WIDTH;
-import static android.support.media.ExifInterface.TAG_ORIENTATION;
+import static androidx.exifinterface.media.ExifInterface.ORIENTATION_ROTATE_270;
+import static androidx.exifinterface.media.ExifInterface.ORIENTATION_ROTATE_90;
+import static androidx.exifinterface.media.ExifInterface.ORIENTATION_TRANSPOSE;
+import static androidx.exifinterface.media.ExifInterface.ORIENTATION_TRANSVERSE;
+import static androidx.exifinterface.media.ExifInterface.TAG_IMAGE_LENGTH;
+import static androidx.exifinterface.media.ExifInterface.TAG_IMAGE_WIDTH;
+import static androidx.exifinterface.media.ExifInterface.TAG_ORIENTATION;
 import static java.util.logging.Level.WARNING;
 import static java.util.logging.Logger.getLogger;
 import static org.briarproject.bramble.util.LogUtils.logException;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/blog/BaseController.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.blog;
 
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 
 import org.briarproject.bramble.api.db.DbException;
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/blog/BaseControllerImpl.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.blog;
 
-import android.support.annotation.CallSuper;
+import androidx.annotation.CallSuper;
 
 import org.briarproject.bramble.api.db.DatabaseExecutor;
 import org.briarproject.bramble.api.db.DbException;

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/blog/BasePostFragment.java

@@ -4,8 +4,8 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Looper;
-import android.support.annotation.CallSuper;
-import android.support.annotation.UiThread;
+import androidx.annotation.CallSuper;
+import androidx.annotation.UiThread;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/blog/BlogActivity.java

@@ -2,7 +2,7 @@ package org.briarproject.briar.android.blog;
 
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.v7.widget.Toolbar;
+import androidx.appcompat.widget.Toolbar;
 
 import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;
 import org.briarproject.bramble.api.nullsafety.ParametersNotNullByDefault;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/blog/BlogController.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.blog;
 
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 
 import org.briarproject.bramble.api.contact.ContactId;
 import org.briarproject.bramble.api.db.DbException;

+ 6 - 6
briar-android/src/main/java/org/briarproject/briar/android/blog/BlogFragment.java

@@ -4,11 +4,11 @@ import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Parcelable;
-import android.support.annotation.UiThread;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView.LayoutManager;
+import androidx.annotation.UiThread;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AlertDialog;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView.LayoutManager;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
@@ -43,7 +43,7 @@ import javax.inject.Inject;
 
 import static android.app.Activity.RESULT_OK;
 import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
-import static android.support.design.widget.Snackbar.LENGTH_LONG;
+import static com.google.android.material.snackbar.Snackbar.LENGTH_LONG;
 import static android.widget.Toast.LENGTH_SHORT;
 import static java.util.Objects.requireNonNull;
 import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID;

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostAdapter.java

@@ -1,8 +1,8 @@
 package org.briarproject.briar.android.blog;
 
 import android.content.Context;
-import android.support.annotation.Nullable;
-import android.support.v4.app.FragmentManager;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.FragmentManager;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostFragment.java

@@ -1,7 +1,7 @@
 package org.briarproject.briar.android.blog;
 
 import android.os.Bundle;
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 
 import org.briarproject.bramble.api.db.DbException;
 import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostItem.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.blog;
 
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
 
 import org.briarproject.bramble.api.identity.Author;
 import org.briarproject.bramble.api.identity.AuthorInfo;

+ 5 - 5
briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java

@@ -2,11 +2,11 @@ package org.briarproject.briar.android.blog;
 
 import android.content.Context;
 import android.content.Intent;
-import android.support.annotation.NonNull;
-import android.support.annotation.UiThread;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.view.ViewCompat;
-import android.support.v7.widget.RecyclerView;
+import androidx.annotation.NonNull;
+import androidx.annotation.UiThread;
+import androidx.fragment.app.FragmentManager;
+import androidx.core.view.ViewCompat;
+import androidx.recyclerview.widget.RecyclerView;
 import android.text.Spanned;
 import android.view.LayoutInflater;
 import android.view.View;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/blog/FeedController.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.blog;
 
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 
 import org.briarproject.bramble.api.db.DbException;
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;

+ 3 - 3
briar-android/src/main/java/org/briarproject/briar/android/blog/FeedFragment.java

@@ -3,8 +3,8 @@ package org.briarproject.briar.android.blog;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Parcelable;
-import android.support.annotation.UiThread;
-import android.support.v7.widget.LinearLayoutManager;
+import androidx.annotation.UiThread;
+import androidx.recyclerview.widget.LinearLayoutManager;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
@@ -33,7 +33,7 @@ import javax.inject.Inject;
 
 import static android.app.Activity.RESULT_OK;
 import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
-import static android.support.design.widget.Snackbar.LENGTH_LONG;
+import static com.google.android.material.snackbar.Snackbar.LENGTH_LONG;
 import static java.util.Objects.requireNonNull;
 import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID;
 import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_WRITE_BLOG_POST;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/blog/FeedPostFragment.java

@@ -1,7 +1,7 @@
 package org.briarproject.briar.android.blog;
 
 import android.os.Bundle;
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedAdapter.java

@@ -1,7 +1,7 @@
 package org.briarproject.briar.android.blog;
 
 import android.content.Context;
-import android.support.v7.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedImportActivity.java

@@ -1,7 +1,7 @@
 package org.briarproject.briar.android.blog;
 
 import android.os.Bundle;
-import android.support.v7.app.AlertDialog;
+import androidx.appcompat.app.AlertDialog;
 import android.text.Editable;
 import android.text.TextWatcher;
 import android.util.Patterns;

+ 4 - 4
briar-android/src/main/java/org/briarproject/briar/android/blog/RssFeedManageActivity.java

@@ -3,9 +3,9 @@ package org.briarproject.briar.android.blog;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.design.widget.Snackbar;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.widget.LinearLayoutManager;
+import com.google.android.material.snackbar.Snackbar;
+import androidx.appcompat.app.AlertDialog;
+import androidx.recyclerview.widget.LinearLayoutManager;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
@@ -25,7 +25,7 @@ import java.util.logging.Logger;
 import javax.inject.Inject;
 
 import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
-import static android.support.design.widget.Snackbar.LENGTH_LONG;
+import static com.google.android.material.snackbar.Snackbar.LENGTH_LONG;
 import static java.util.logging.Level.WARNING;
 import static org.briarproject.bramble.util.LogUtils.logException;
 

+ 2 - 1
briar-android/src/main/java/org/briarproject/briar/android/blog/WriteBlogPostActivity.java

@@ -2,7 +2,6 @@ package org.briarproject.briar.android.blog;
 
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.annotation.Nullable;
 import android.view.MenuItem;
 import android.widget.ProgressBar;
 
@@ -31,6 +30,8 @@ import java.util.logging.Logger;
 
 import javax.inject.Inject;
 
+import androidx.annotation.Nullable;
+
 import static android.view.View.GONE;
 import static android.view.View.VISIBLE;
 import static java.util.logging.Level.WARNING;

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/contact/BaseContactListAdapter.java

@@ -1,7 +1,7 @@
 package org.briarproject.briar.android.contact;
 
 import android.content.Context;
-import android.support.annotation.NonNull;
+import androidx.annotation.NonNull;
 import android.view.View;
 
 import org.briarproject.bramble.api.contact.ContactId;
@@ -9,7 +9,7 @@ import org.briarproject.briar.android.util.BriarAdapter;
 
 import javax.annotation.Nullable;
 
-import static android.support.v7.util.SortedList.INVALID_POSITION;
+import static androidx.recyclerview.widget.SortedList.INVALID_POSITION;
 import static org.briarproject.briar.android.util.UiUtils.getContactDisplayName;
 
 public abstract class BaseContactListAdapter<I extends ContactItem, VH extends ContactItemViewHolder<I>>

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/contact/ContactItemViewHolder.java

@@ -1,7 +1,7 @@
 package org.briarproject.briar.android.contact;
 
-import android.support.annotation.UiThread;
-import android.support.v7.widget.RecyclerView;
+import androidx.annotation.UiThread;
+import androidx.recyclerview.widget.RecyclerView;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;

+ 10 - 10
briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListFragment.java

@@ -2,13 +2,13 @@ package org.briarproject.briar.android.contact;
 
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.annotation.UiThread;
-import android.support.design.widget.FloatingActionButton;
-import android.support.design.widget.Snackbar;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.support.v4.util.Pair;
-import android.support.v7.widget.LinearLayoutManager;
+import androidx.annotation.UiThread;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
+import com.google.android.material.snackbar.Snackbar;
+import androidx.core.app.ActivityCompat;
+import androidx.core.app.ActivityOptionsCompat;
+import androidx.core.util.Pair;
+import androidx.recyclerview.widget.LinearLayoutManager;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -58,9 +58,9 @@ import io.github.kobakei.materialfabspeeddial.FabSpeedDial;
 import io.github.kobakei.materialfabspeeddial.FabSpeedDial.OnMenuItemClickListener;
 
 import static android.os.Build.VERSION.SDK_INT;
-import static android.support.design.widget.Snackbar.LENGTH_INDEFINITE;
-import static android.support.v4.app.ActivityOptionsCompat.makeSceneTransitionAnimation;
-import static android.support.v4.view.ViewCompat.getTransitionName;
+import static com.google.android.material.snackbar.Snackbar.LENGTH_INDEFINITE;
+import static androidx.core.app.ActivityOptionsCompat.makeSceneTransitionAnimation;
+import static androidx.core.view.ViewCompat.getTransitionName;
 import static java.util.Objects.requireNonNull;
 import static java.util.logging.Level.WARNING;
 import static org.briarproject.bramble.util.LogUtils.logDuration;

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/contact/ContactListItemViewHolder.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.contact;
 
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 import android.view.View;
 import android.widget.TextView;
 
@@ -14,7 +14,7 @@ import java.util.Locale;
 
 import javax.annotation.Nullable;
 
-import static android.support.v4.view.ViewCompat.setTransitionName;
+import static androidx.core.view.ViewCompat.setTransitionName;
 import static org.briarproject.briar.android.util.UiUtils.formatDate;
 
 @UiThread

+ 3 - 3
briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactActivity.java

@@ -1,10 +1,10 @@
 package org.briarproject.briar.android.contact.add.remote;
 
-import android.arch.lifecycle.ViewModelProvider;
-import android.arch.lifecycle.ViewModelProviders;
+import androidx.lifecycle.ViewModelProvider;
+import androidx.lifecycle.ViewModelProviders;
 import android.content.Intent;
 import android.os.Bundle;
-import android.support.v7.app.ActionBar;
+import androidx.appcompat.app.ActionBar;
 import android.view.MenuItem;
 import android.widget.Toast;
 

+ 4 - 4
briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/AddContactViewModel.java

@@ -1,10 +1,10 @@
 package org.briarproject.briar.android.contact.add.remote;
 
 import android.app.Application;
-import android.arch.lifecycle.AndroidViewModel;
-import android.arch.lifecycle.LiveData;
-import android.arch.lifecycle.MutableLiveData;
-import android.support.annotation.Nullable;
+import androidx.lifecycle.AndroidViewModel;
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
+import androidx.annotation.Nullable;
 
 import org.briarproject.bramble.api.FormatException;
 import org.briarproject.bramble.api.UnsupportedVersionException;

+ 5 - 5
briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/LinkExchangeFragment.java

@@ -1,14 +1,14 @@
 package org.briarproject.briar.android.contact.add.remote;
 
 import android.animation.ObjectAnimator;
-import android.arch.lifecycle.ViewModelProvider;
-import android.arch.lifecycle.ViewModelProviders;
+import androidx.lifecycle.ViewModelProvider;
+import androidx.lifecycle.ViewModelProviders;
 import android.content.ClipData;
 import android.content.ClipboardManager;
 import android.os.Bundle;
-import android.support.design.widget.TextInputEditText;
-import android.support.design.widget.TextInputLayout;
-import android.support.v4.app.ShareCompat.IntentBuilder;
+import com.google.android.material.textfield.TextInputEditText;
+import com.google.android.material.textfield.TextInputLayout;
+import androidx.core.app.ShareCompat.IntentBuilder;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;

+ 9 - 9
briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/NicknameFragment.java

@@ -1,16 +1,16 @@
 package org.briarproject.briar.android.contact.add.remote;
 
-import android.arch.lifecycle.ViewModelProvider;
-import android.arch.lifecycle.ViewModelProviders;
+import androidx.lifecycle.ViewModelProvider;
+import androidx.lifecycle.ViewModelProviders;
 import android.content.Context;
 import android.content.DialogInterface.OnClickListener;
 import android.content.Intent;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
-import android.support.annotation.StringRes;
-import android.support.design.widget.TextInputEditText;
-import android.support.design.widget.TextInputLayout;
-import android.support.v7.app.AlertDialog.Builder;
+import androidx.annotation.StringRes;
+import com.google.android.material.textfield.TextInputEditText;
+import com.google.android.material.textfield.TextInputLayout;
+import androidx.appcompat.app.AlertDialog.Builder;
 import android.text.Editable;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -33,9 +33,9 @@ import org.briarproject.briar.android.fragment.BaseFragment;
 import javax.annotation.Nullable;
 import javax.inject.Inject;
 
-import static android.support.v4.content.ContextCompat.getColor;
-import static android.support.v4.content.ContextCompat.getDrawable;
-import static android.support.v4.graphics.drawable.DrawableCompat.setTint;
+import static androidx.core.content.ContextCompat.getColor;
+import static androidx.core.content.ContextCompat.getDrawable;
+import static androidx.core.graphics.drawable.DrawableCompat.setTint;
 import static android.view.View.INVISIBLE;
 import static android.view.View.VISIBLE;
 import static android.widget.Toast.LENGTH_LONG;

+ 7 - 7
briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListActivity.java

@@ -1,13 +1,13 @@
 package org.briarproject.briar.android.contact.add.remote;
 
-import android.arch.lifecycle.ViewModelProvider;
-import android.arch.lifecycle.ViewModelProviders;
+import androidx.lifecycle.ViewModelProvider;
+import androidx.lifecycle.ViewModelProviders;
 import android.content.DialogInterface.OnClickListener;
 import android.os.Bundle;
-import android.support.design.widget.Snackbar;
-import android.support.v7.app.ActionBar;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.widget.LinearLayoutManager;
+import com.google.android.material.snackbar.Snackbar;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AlertDialog;
+import androidx.recyclerview.widget.LinearLayoutManager;
 import android.view.MenuItem;
 
 import org.briarproject.bramble.api.contact.PendingContactId;
@@ -24,7 +24,7 @@ import java.util.Collection;
 import javax.annotation.Nullable;
 import javax.inject.Inject;
 
-import static android.support.design.widget.Snackbar.LENGTH_INDEFINITE;
+import static com.google.android.material.snackbar.Snackbar.LENGTH_INDEFINITE;
 import static org.briarproject.bramble.api.contact.PendingContactState.FAILED;
 import static org.briarproject.briar.android.contact.add.remote.PendingContactItem.POLL_DURATION_MS;
 

+ 3 - 3
briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactListViewModel.java

@@ -1,9 +1,9 @@
 package org.briarproject.briar.android.contact.add.remote;
 
 import android.app.Application;
-import android.arch.lifecycle.AndroidViewModel;
-import android.arch.lifecycle.LiveData;
-import android.arch.lifecycle.MutableLiveData;
+import androidx.lifecycle.AndroidViewModel;
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
 
 import org.briarproject.bramble.api.Pair;
 import org.briarproject.bramble.api.contact.ContactManager;

+ 3 - 3
briar-android/src/main/java/org/briarproject/briar/android/contact/add/remote/PendingContactViewHolder.java

@@ -1,8 +1,8 @@
 package org.briarproject.briar.android.contact.add.remote;
 
-import android.support.v4.content.ContextCompat;
-import android.support.v7.widget.AppCompatImageButton;
-import android.support.v7.widget.RecyclerView.ViewHolder;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.widget.AppCompatImageButton;
+import androidx.recyclerview.widget.RecyclerView.ViewHolder;
 import android.view.View;
 import android.widget.TextView;
 

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/contactselection/BaseContactSelectorFragment.java

@@ -2,8 +2,8 @@ package org.briarproject.briar.android.contactselection;
 
 import android.content.Context;
 import android.os.Bundle;
-import android.support.annotation.CallSuper;
-import android.support.v7.widget.LinearLayoutManager;
+import androidx.annotation.CallSuper;
+import androidx.recyclerview.widget.LinearLayoutManager;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/contactselection/BaseSelectableContactHolder.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.contactselection;
 
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 import android.view.View;
 import android.widget.CheckBox;
 import android.widget.TextView;

+ 3 - 3
briar-android/src/main/java/org/briarproject/briar/android/contactselection/ContactSelectorActivity.java

@@ -1,9 +1,9 @@
 package org.briarproject.briar.android.contactselection;
 
 import android.os.Bundle;
-import android.support.annotation.CallSuper;
-import android.support.annotation.LayoutRes;
-import android.support.annotation.UiThread;
+import androidx.annotation.CallSuper;
+import androidx.annotation.LayoutRes;
+import androidx.annotation.UiThread;
 
 import org.briarproject.bramble.api.contact.ContactId;
 import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/contactselection/ContactSelectorListener.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.contactselection;
 
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 
 import org.briarproject.bramble.api.contact.ContactId;
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/contactselection/SelectableContactHolder.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.contactselection;
 
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 import android.view.View;
 
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/controller/BriarControllerImpl.java

@@ -3,7 +3,7 @@ package org.briarproject.briar.android.controller;
 import android.app.Activity;
 import android.content.Intent;
 import android.os.IBinder;
-import android.support.annotation.CallSuper;
+import androidx.annotation.CallSuper;
 
 import org.briarproject.bramble.api.account.AccountManager;
 import org.briarproject.bramble.api.db.DatabaseExecutor;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/controller/SharingController.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.controller;
 
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 
 import org.briarproject.bramble.api.contact.ContactId;
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/controller/SharingControllerImpl.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.controller;
 
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 
 import org.briarproject.bramble.api.contact.ContactId;
 import org.briarproject.bramble.api.event.Event;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/controller/handler/UiExceptionHandler.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.controller.handler;
 
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
 import org.briarproject.briar.android.DestroyableContext;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/controller/handler/UiResultExceptionHandler.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.controller.handler;
 
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
 import org.briarproject.briar.android.DestroyableContext;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/controller/handler/UiResultHandler.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.controller.handler;
 
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 
 import org.briarproject.briar.android.DestroyableContext;
 

+ 5 - 5
briar-android/src/main/java/org/briarproject/briar/android/conversation/AliasDialogFragment.java

@@ -1,12 +1,12 @@
 package org.briarproject.briar.android.conversation;
 
-import android.arch.lifecycle.ViewModelProvider;
-import android.arch.lifecycle.ViewModelProviders;
+import androidx.lifecycle.ViewModelProvider;
+import androidx.lifecycle.ViewModelProviders;
 import android.content.Context;
 import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.design.widget.TextInputLayout;
-import android.support.v7.app.AppCompatDialogFragment;
+import androidx.annotation.Nullable;
+import com.google.android.material.textfield.TextInputLayout;
+import androidx.appcompat.app.AppCompatDialogFragment;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;

+ 17 - 17
briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationActivity.java

@@ -1,23 +1,23 @@
 package org.briarproject.briar.android.conversation;
 
 import android.annotation.SuppressLint;
-import android.arch.lifecycle.Observer;
-import android.arch.lifecycle.ViewModelProvider;
-import android.arch.lifecycle.ViewModelProviders;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
+import androidx.lifecycle.ViewModelProviders;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Parcelable;
-import android.support.annotation.Nullable;
-import android.support.annotation.UiThread;
-import android.support.design.widget.Snackbar;
-import android.support.v4.app.ActivityCompat;
-import android.support.v4.app.ActivityOptionsCompat;
-import android.support.v4.content.ContextCompat;
-import android.support.v7.app.AlertDialog;
-import android.support.v7.widget.ActionMenuView;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.Toolbar;
+import androidx.annotation.Nullable;
+import androidx.annotation.UiThread;
+import com.google.android.material.snackbar.Snackbar;
+import androidx.core.app.ActivityCompat;
+import androidx.core.app.ActivityOptionsCompat;
+import androidx.core.content.ContextCompat;
+import androidx.appcompat.app.AlertDialog;
+import androidx.appcompat.widget.ActionMenuView;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.appcompat.widget.Toolbar;
 import android.transition.Slide;
 import android.transition.Transition;
 import android.util.SparseArray;
@@ -101,11 +101,11 @@ import im.delight.android.identicons.IdenticonDrawable;
 import uk.co.samuelwall.materialtaptargetprompt.MaterialTapTargetPrompt;
 import uk.co.samuelwall.materialtaptargetprompt.MaterialTapTargetPrompt.PromptStateChangeListener;
 
-import static android.arch.lifecycle.Lifecycle.State.STARTED;
+import static androidx.lifecycle.Lifecycle.State.STARTED;
 import static android.os.Build.VERSION.SDK_INT;
-import static android.support.v4.app.ActivityOptionsCompat.makeSceneTransitionAnimation;
-import static android.support.v4.view.ViewCompat.setTransitionName;
-import static android.support.v7.util.SortedList.INVALID_POSITION;
+import static androidx.core.app.ActivityOptionsCompat.makeSceneTransitionAnimation;
+import static androidx.core.view.ViewCompat.setTransitionName;
+import static androidx.recyclerview.widget.SortedList.INVALID_POSITION;
 import static android.view.Gravity.RIGHT;
 import static android.widget.Toast.LENGTH_SHORT;
 import static java.util.Collections.emptyList;

+ 3 - 3
briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationAdapter.java

@@ -1,9 +1,9 @@
 package org.briarproject.briar.android.conversation;
 
 import android.content.Context;
-import android.support.annotation.LayoutRes;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView.RecycledViewPool;
+import androidx.annotation.LayoutRes;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView.RecycledViewPool;
 import android.util.SparseArray;
 import android.view.LayoutInflater;
 import android.view.View;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationItem.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.conversation;
 
-import android.support.annotation.LayoutRes;
+import androidx.annotation.LayoutRes;
 
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
 import org.briarproject.bramble.api.sync.GroupId;

+ 5 - 5
briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationItemViewHolder.java

@@ -1,10 +1,10 @@
 package org.briarproject.briar.android.conversation;
 
-import android.support.annotation.CallSuper;
-import android.support.annotation.Nullable;
-import android.support.annotation.UiThread;
-import android.support.constraint.ConstraintLayout;
-import android.support.v7.widget.RecyclerView.ViewHolder;
+import androidx.annotation.CallSuper;
+import androidx.annotation.Nullable;
+import androidx.annotation.UiThread;
+import androidx.constraintlayout.widget.ConstraintLayout;
+import androidx.recyclerview.widget.RecyclerView.ViewHolder;
 import android.view.View;
 import android.widget.TextView;
 

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationListener.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.conversation;
 
-import android.support.annotation.UiThread;
+import androidx.annotation.UiThread;
 import android.view.View;
 
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationMessageItem.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.conversation;
 
-import android.support.annotation.LayoutRes;
+import androidx.annotation.LayoutRes;
 
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
 import org.briarproject.briar.android.attachment.AttachmentItem;

+ 6 - 6
briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationMessageViewHolder.java

@@ -1,9 +1,9 @@
 package org.briarproject.briar.android.conversation;
 
-import android.support.annotation.UiThread;
-import android.support.constraint.ConstraintSet;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.RecyclerView.RecycledViewPool;
+import androidx.annotation.UiThread;
+import androidx.constraintlayout.widget.ConstraintSet;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.RecyclerView.RecycledViewPool;
 import android.view.View;
 import android.view.ViewGroup;
 
@@ -11,8 +11,8 @@ import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
 import org.briarproject.briar.R;
 import org.briarproject.briar.android.attachment.AttachmentItem;
 
-import static android.support.constraint.ConstraintSet.WRAP_CONTENT;
-import static android.support.v4.content.ContextCompat.getColor;
+import static androidx.constraintlayout.widget.ConstraintSet.WRAP_CONTENT;
+import static androidx.core.content.ContextCompat.getColor;
 
 @UiThread
 @NotNullByDefault

+ 1 - 1
briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationNoticeItem.java

@@ -1,6 +1,6 @@
 package org.briarproject.briar.android.conversation;
 
-import android.support.annotation.LayoutRes;
+import androidx.annotation.LayoutRes;
 
 import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
 import org.briarproject.briar.api.conversation.ConversationRequest;

+ 2 - 2
briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationNoticeViewHolder.java

@@ -1,7 +1,7 @@
 package org.briarproject.briar.android.conversation;
 
-import android.support.annotation.CallSuper;
-import android.support.annotation.UiThread;
+import androidx.annotation.CallSuper;
+import androidx.annotation.UiThread;
 import android.view.View;
 import android.widget.TextView;
 

+ 0 - 0
briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationRequestItem.java


Some files were not shown because too many files changed in this diff