From 7ccae7b7c333df405e960dfee11d3c7e49c8c607 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 11 Jan 2023 13:31:20 -0500 Subject: [PATCH] Base code for Amethyst --- .gitignore | 17 + .idea/.gitignore | 3 + .idea/compiler.xml | 6 + .idea/inspectionProfiles/Project_Default.xml | 37 + .idea/misc.xml | 10 + amethyst.png | Bin 0 -> 8556 bytes app/.gitignore | 1 + app/build.gradle | 101 + app/proguard-rules.pro | 21 + .../amethyst/ExampleInstrumentedTest.kt | 24 + app/src/main/AndroidManifest.xml | 35 + .../com/vitorpamplona/amethyst/KeyStorage.kt | 22 + .../vitorpamplona/amethyst/model/Account.kt | 92 + .../com/vitorpamplona/amethyst/model/Hex.kt | 36 + .../amethyst/model/LocalCache.kt | 224 + .../com/vitorpamplona/amethyst/model/Note.kt | 79 + .../com/vitorpamplona/amethyst/model/User.kt | 98 + .../vitorpamplona/amethyst/service/Channel.kt | 10 + .../amethyst/service/Constants.kt | 24 + .../service/NostrAccountDataSource.kt | 74 + .../amethyst/service/NostrDataSource.kt | 135 + .../amethyst/service/NostrGlobalDataSource.kt | 47 + .../amethyst/service/NostrHomeDataSource.kt | 80 + .../service/NostrNotificationDataSource.kt | 48 + .../service/NostrSingleEventDataSource.kt | 62 + .../service/NostrSingleUserDataSource.kt | 42 + .../amethyst/service/model/ReactionEvent.kt | 37 + .../amethyst/service/model/RepostEvent.kt | 41 + .../amethyst/service/relays/Client.kt | 113 + .../amethyst/service/relays/Relay.kt | 165 + .../amethyst/service/relays/RelayPool.kt | 113 + .../vitorpamplona/amethyst/ui/MainActivity.kt | 60 + .../amethyst/ui/actions/NewPostView.kt | 157 + .../amethyst/ui/buttons/NewNoteButton.kt | 46 + .../amethyst/ui/components/RichTextViewer.kt | 115 + .../amethyst/ui/components/UrlPreview.kt | 109 + .../amethyst/ui/components/UrlPreviewState.kt | 10 + .../amethyst/ui/navigation/AppBottomBar.kt | 60 + .../amethyst/ui/navigation/AppNavigation.kt | 19 + .../amethyst/ui/navigation/AppTopBar.kt | 154 + .../amethyst/ui/navigation/DrawerContent.kt | 201 + .../amethyst/ui/navigation/Routes.kt | 52 + .../amethyst/ui/note/BlankNote.kt | 42 + .../amethyst/ui/note/BoostSetCompose.kt | 92 + .../amethyst/ui/note/LikeSetCompose.kt | 91 + .../vitorpamplona/amethyst/ui/note/Note.kt | 132 + .../amethyst/ui/note/PubKeyFormatter.kt | 12 + .../amethyst/ui/note/ReactionsRow.kt | 141 + .../amethyst/ui/note/ReactionsRowState.kt | 20 + .../amethyst/ui/note/ReplyInformation.kt | 63 + .../amethyst/ui/note/TimeAgoFormatter.kt | 18 + .../amethyst/ui/note/UserDisplay.kt | 26 + .../amethyst/ui/screen/AccountScreen.kt | 32 + .../amethyst/ui/screen/AccountState.kt | 9 + .../ui/screen/AccountStateViewModel.kt | 106 + .../amethyst/ui/screen/CardFeedState.kt | 36 + .../amethyst/ui/screen/CardFeedView.kt | 93 + .../amethyst/ui/screen/CardFeedViewModel.kt | 107 + .../amethyst/ui/screen/FeedState.kt | 11 + .../amethyst/ui/screen/FeedView.kt | 188 + .../amethyst/ui/screen/FeedViewModel.kt | 71 + .../amethyst/ui/screen/RelayPoolViewModel.kt | 12 + .../ui/screen/loggedIn/AccountViewModel.kt | 22 + .../amethyst/ui/screen/loggedIn/HomeScreen.kt | 32 + .../amethyst/ui/screen/loggedIn/MainScreen.kt | 74 + .../ui/screen/loggedIn/MessageScreen.kt | 29 + .../ui/screen/loggedIn/NotificationScreen.kt | 33 + .../ui/screen/loggedIn/ProfileScreen.kt | 29 + .../ui/screen/loggedIn/SearchScreen.kt | 26 + .../ui/screen/loggedOff/LoginScreen.kt | 104 + .../vitorpamplona/amethyst/ui/theme/Color.kt | 8 + .../vitorpamplona/amethyst/ui/theme/Shape.kt | 11 + .../vitorpamplona/amethyst/ui/theme/Theme.kt | 56 + .../vitorpamplona/amethyst/ui/theme/Type.kt | 28 + .../main/res/drawable-hdpi/ic_amethyst.png | Bin 0 -> 2733 bytes .../main/res/drawable-hdpi/ic_bookmarks.png | Bin 0 -> 1231 bytes app/src/main/res/drawable-hdpi/ic_comment.png | Bin 0 -> 1850 bytes app/src/main/res/drawable-hdpi/ic_compose.png | Bin 0 -> 1086 bytes app/src/main/res/drawable-hdpi/ic_dm.png | Bin 0 -> 1406 bytes app/src/main/res/drawable-hdpi/ic_home.png | Bin 0 -> 2121 bytes app/src/main/res/drawable-hdpi/ic_like.png | Bin 0 -> 2037 bytes app/src/main/res/drawable-hdpi/ic_liked.png | Bin 0 -> 1417 bytes app/src/main/res/drawable-hdpi/ic_lists.png | Bin 0 -> 927 bytes app/src/main/res/drawable-hdpi/ic_moments.png | Bin 0 -> 1641 bytes .../res/drawable-hdpi/ic_notifications.png | Bin 0 -> 1807 bytes app/src/main/res/drawable-hdpi/ic_profile.png | Bin 0 -> 623 bytes app/src/main/res/drawable-hdpi/ic_qrcode.png | Bin 0 -> 1715 bytes app/src/main/res/drawable-hdpi/ic_retweet.png | Bin 0 -> 1357 bytes .../main/res/drawable-hdpi/ic_retweeted.png | Bin 0 -> 1492 bytes app/src/main/res/drawable-hdpi/ic_search.png | Bin 0 -> 1869 bytes app/src/main/res/drawable-hdpi/ic_share.png | Bin 0 -> 1090 bytes app/src/main/res/drawable-hdpi/ic_theme.png | Bin 0 -> 2174 bytes app/src/main/res/drawable-hdpi/ic_topics.png | Bin 0 -> 1993 bytes app/src/main/res/drawable-hdpi/ic_trends.png | Bin 0 -> 2266 bytes .../main/res/drawable-hdpi/ic_verified.png | Bin 0 -> 1793 bytes .../main/res/drawable-mdpi/ic_amethyst.png | Bin 0 -> 1665 bytes .../main/res/drawable-mdpi/ic_bookmarks.png | Bin 0 -> 936 bytes app/src/main/res/drawable-mdpi/ic_comment.png | Bin 0 -> 1388 bytes app/src/main/res/drawable-mdpi/ic_compose.png | Bin 0 -> 890 bytes app/src/main/res/drawable-mdpi/ic_dm.png | Bin 0 -> 1032 bytes app/src/main/res/drawable-mdpi/ic_home.png | Bin 0 -> 1517 bytes app/src/main/res/drawable-mdpi/ic_like.png | Bin 0 -> 1450 bytes app/src/main/res/drawable-mdpi/ic_liked.png | Bin 0 -> 1148 bytes app/src/main/res/drawable-mdpi/ic_lists.png | Bin 0 -> 867 bytes app/src/main/res/drawable-mdpi/ic_moments.png | Bin 0 -> 1202 bytes .../res/drawable-mdpi/ic_notifications.png | Bin 0 -> 1359 bytes app/src/main/res/drawable-mdpi/ic_profile.png | Bin 0 -> 401 bytes app/src/main/res/drawable-mdpi/ic_qrcode.png | Bin 0 -> 1675 bytes app/src/main/res/drawable-mdpi/ic_retweet.png | Bin 0 -> 1045 bytes .../main/res/drawable-mdpi/ic_retweeted.png | Bin 0 -> 1144 bytes app/src/main/res/drawable-mdpi/ic_search.png | Bin 0 -> 1421 bytes app/src/main/res/drawable-mdpi/ic_share.png | Bin 0 -> 839 bytes app/src/main/res/drawable-mdpi/ic_theme.png | Bin 0 -> 1597 bytes app/src/main/res/drawable-mdpi/ic_topics.png | Bin 0 -> 1471 bytes app/src/main/res/drawable-mdpi/ic_trends.png | Bin 0 -> 1673 bytes .../main/res/drawable-mdpi/ic_verified.png | Bin 0 -> 1244 bytes .../drawable-v24/ic_launcher_foreground.xml | 30 + .../main/res/drawable-xhdpi/ic_amethyst.png | Bin 0 -> 3357 bytes .../main/res/drawable-xhdpi/ic_bookmarks.png | Bin 0 -> 1862 bytes .../main/res/drawable-xhdpi/ic_comment.png | Bin 0 -> 2884 bytes .../main/res/drawable-xhdpi/ic_compose.png | Bin 0 -> 1665 bytes app/src/main/res/drawable-xhdpi/ic_dm.png | Bin 0 -> 2160 bytes app/src/main/res/drawable-xhdpi/ic_home.png | Bin 0 -> 3325 bytes app/src/main/res/drawable-xhdpi/ic_like.png | Bin 0 -> 3202 bytes app/src/main/res/drawable-xhdpi/ic_liked.png | Bin 0 -> 2256 bytes app/src/main/res/drawable-xhdpi/ic_lists.png | Bin 0 -> 1347 bytes .../main/res/drawable-xhdpi/ic_moments.png | Bin 0 -> 2514 bytes .../res/drawable-xhdpi/ic_notifications.png | Bin 0 -> 2866 bytes .../main/res/drawable-xhdpi/ic_profile.png | Bin 0 -> 806 bytes app/src/main/res/drawable-xhdpi/ic_qrcode.png | Bin 0 -> 2518 bytes .../main/res/drawable-xhdpi/ic_retweet.png | Bin 0 -> 1877 bytes .../main/res/drawable-xhdpi/ic_retweeted.png | Bin 0 -> 2103 bytes app/src/main/res/drawable-xhdpi/ic_search.png | Bin 0 -> 2992 bytes app/src/main/res/drawable-xhdpi/ic_share.png | Bin 0 -> 1706 bytes app/src/main/res/drawable-xhdpi/ic_theme.png | Bin 0 -> 3381 bytes app/src/main/res/drawable-xhdpi/ic_topics.png | Bin 0 -> 3118 bytes app/src/main/res/drawable-xhdpi/ic_trends.png | Bin 0 -> 3573 bytes .../main/res/drawable-xhdpi/ic_verified.png | Bin 0 -> 2688 bytes .../main/res/drawable-xxhdpi/ic_amethyst.png | Bin 0 -> 5534 bytes .../main/res/drawable-xxhdpi/ic_bookmarks.png | Bin 0 -> 2455 bytes .../main/res/drawable-xxhdpi/ic_comment.png | Bin 0 -> 3755 bytes .../main/res/drawable-xxhdpi/ic_compose.png | Bin 0 -> 2146 bytes app/src/main/res/drawable-xxhdpi/ic_dm.png | Bin 0 -> 2871 bytes app/src/main/res/drawable-xxhdpi/ic_home.png | Bin 0 -> 4310 bytes app/src/main/res/drawable-xxhdpi/ic_like.png | Bin 0 -> 4204 bytes app/src/main/res/drawable-xxhdpi/ic_liked.png | Bin 0 -> 2867 bytes app/src/main/res/drawable-xxhdpi/ic_lists.png | Bin 0 -> 1723 bytes .../main/res/drawable-xxhdpi/ic_moments.png | Bin 0 -> 3234 bytes .../res/drawable-xxhdpi/ic_notifications.png | Bin 0 -> 3613 bytes .../main/res/drawable-xxhdpi/ic_profile.png | Bin 0 -> 1245 bytes .../main/res/drawable-xxhdpi/ic_qrcode.png | Bin 0 -> 2449 bytes .../main/res/drawable-xxhdpi/ic_retweet.png | Bin 0 -> 2469 bytes .../main/res/drawable-xxhdpi/ic_retweeted.png | Bin 0 -> 2778 bytes .../main/res/drawable-xxhdpi/ic_search.png | Bin 0 -> 3914 bytes app/src/main/res/drawable-xxhdpi/ic_share.png | Bin 0 -> 2204 bytes app/src/main/res/drawable-xxhdpi/ic_theme.png | Bin 0 -> 4335 bytes .../main/res/drawable-xxhdpi/ic_topics.png | Bin 0 -> 4015 bytes .../main/res/drawable-xxhdpi/ic_trends.png | Bin 0 -> 4535 bytes .../main/res/drawable-xxhdpi/ic_verified.png | Bin 0 -> 3691 bytes .../res/drawable-xxxhdpi/amethyst_logo.png | Bin 0 -> 8556 bytes .../main/res/drawable-xxxhdpi/ic_amethyst.png | Bin 0 -> 8052 bytes .../res/drawable-xxxhdpi/ic_bookmarks.png | Bin 0 -> 3656 bytes .../main/res/drawable-xxxhdpi/ic_comment.png | Bin 0 -> 5825 bytes .../main/res/drawable-xxxhdpi/ic_compose.png | Bin 0 -> 3367 bytes app/src/main/res/drawable-xxxhdpi/ic_dm.png | Bin 0 -> 4421 bytes app/src/main/res/drawable-xxxhdpi/ic_home.png | Bin 0 -> 6620 bytes app/src/main/res/drawable-xxxhdpi/ic_like.png | Bin 0 -> 6610 bytes .../main/res/drawable-xxxhdpi/ic_liked.png | Bin 0 -> 4479 bytes .../main/res/drawable-xxxhdpi/ic_lists.png | Bin 0 -> 2637 bytes .../main/res/drawable-xxxhdpi/ic_moments.png | Bin 0 -> 4916 bytes .../res/drawable-xxxhdpi/ic_notifications.png | Bin 0 -> 5514 bytes .../main/res/drawable-xxxhdpi/ic_profile.png | Bin 0 -> 1648 bytes .../main/res/drawable-xxxhdpi/ic_qrcode.png | Bin 0 -> 3967 bytes .../main/res/drawable-xxxhdpi/ic_retweet.png | Bin 0 -> 3764 bytes .../res/drawable-xxxhdpi/ic_retweeted.png | Bin 0 -> 4243 bytes .../main/res/drawable-xxxhdpi/ic_search.png | Bin 0 -> 6090 bytes .../main/res/drawable-xxxhdpi/ic_share.png | Bin 0 -> 3261 bytes .../main/res/drawable-xxxhdpi/ic_theme.png | Bin 0 -> 6844 bytes .../main/res/drawable-xxxhdpi/ic_topics.png | Bin 0 -> 6256 bytes .../main/res/drawable-xxxhdpi/ic_trends.png | Bin 0 -> 7207 bytes .../main/res/drawable-xxxhdpi/ic_verified.png | Bin 0 -> 6015 bytes .../res/drawable-xxxhdpi/profile_banner.jpeg | Bin 0 -> 297440 bytes .../res/drawable/ic_launcher_background.xml | 170 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes app/src/main/res/values-night/themes.xml | 7 + app/src/main/res/values/colors.xml | 10 + app/src/main/res/values/strings.xml | 3 + app/src/main/res/values/themes.xml | 6 + app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 + .../vitorpamplona/amethyst/ExampleUnitTest.kt | 17 + build.gradle | 13 + deps.txt | 4330 +++++++++++++++++ gradle.properties | 23 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 185 + gradlew.bat | 89 + settings.gradle | 18 + 210 files changed, 9483 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/misc.xml create mode 100644 amethyst.png create mode 100644 app/.gitignore create mode 100644 app/build.gradle create mode 100644 app/proguard-rules.pro create mode 100644 app/src/androidTest/java/com/vitorpamplona/amethyst/ExampleInstrumentedTest.kt create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/KeyStorage.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/model/Hex.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/model/Note.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/model/User.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/service/Channel.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/service/Constants.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/service/NostrAccountDataSource.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/service/NostrDataSource.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/service/NostrGlobalDataSource.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/service/NostrHomeDataSource.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/service/NostrNotificationDataSource.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleEventDataSource.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleUserDataSource.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/service/model/ReactionEvent.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/service/model/RepostEvent.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/service/relays/Client.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/service/relays/RelayPool.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/NewNoteButton.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewState.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppBottomBar.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/Routes.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/note/BlankNote.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/note/BoostSetCompose.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/note/LikeSetCompose.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/note/Note.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/note/PubKeyFormatter.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRowState.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReplyInformation.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/note/TimeAgoFormatter.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/note/UserDisplay.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountScreen.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountState.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedState.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedState.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedViewModel.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/RelayPoolViewModel.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HomeScreen.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MessageScreen.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NotificationScreen.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/LoginScreen.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Color.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Theme.kt create mode 100644 app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Type.kt create mode 100644 app/src/main/res/drawable-hdpi/ic_amethyst.png create mode 100644 app/src/main/res/drawable-hdpi/ic_bookmarks.png create mode 100644 app/src/main/res/drawable-hdpi/ic_comment.png create mode 100644 app/src/main/res/drawable-hdpi/ic_compose.png create mode 100644 app/src/main/res/drawable-hdpi/ic_dm.png create mode 100644 app/src/main/res/drawable-hdpi/ic_home.png create mode 100644 app/src/main/res/drawable-hdpi/ic_like.png create mode 100644 app/src/main/res/drawable-hdpi/ic_liked.png create mode 100644 app/src/main/res/drawable-hdpi/ic_lists.png create mode 100644 app/src/main/res/drawable-hdpi/ic_moments.png create mode 100644 app/src/main/res/drawable-hdpi/ic_notifications.png create mode 100644 app/src/main/res/drawable-hdpi/ic_profile.png create mode 100644 app/src/main/res/drawable-hdpi/ic_qrcode.png create mode 100644 app/src/main/res/drawable-hdpi/ic_retweet.png create mode 100644 app/src/main/res/drawable-hdpi/ic_retweeted.png create mode 100644 app/src/main/res/drawable-hdpi/ic_search.png create mode 100644 app/src/main/res/drawable-hdpi/ic_share.png create mode 100644 app/src/main/res/drawable-hdpi/ic_theme.png create mode 100644 app/src/main/res/drawable-hdpi/ic_topics.png create mode 100644 app/src/main/res/drawable-hdpi/ic_trends.png create mode 100644 app/src/main/res/drawable-hdpi/ic_verified.png create mode 100644 app/src/main/res/drawable-mdpi/ic_amethyst.png create mode 100644 app/src/main/res/drawable-mdpi/ic_bookmarks.png create mode 100644 app/src/main/res/drawable-mdpi/ic_comment.png create mode 100644 app/src/main/res/drawable-mdpi/ic_compose.png create mode 100644 app/src/main/res/drawable-mdpi/ic_dm.png create mode 100644 app/src/main/res/drawable-mdpi/ic_home.png create mode 100644 app/src/main/res/drawable-mdpi/ic_like.png create mode 100644 app/src/main/res/drawable-mdpi/ic_liked.png create mode 100644 app/src/main/res/drawable-mdpi/ic_lists.png create mode 100644 app/src/main/res/drawable-mdpi/ic_moments.png create mode 100644 app/src/main/res/drawable-mdpi/ic_notifications.png create mode 100644 app/src/main/res/drawable-mdpi/ic_profile.png create mode 100644 app/src/main/res/drawable-mdpi/ic_qrcode.png create mode 100644 app/src/main/res/drawable-mdpi/ic_retweet.png create mode 100644 app/src/main/res/drawable-mdpi/ic_retweeted.png create mode 100644 app/src/main/res/drawable-mdpi/ic_search.png create mode 100644 app/src/main/res/drawable-mdpi/ic_share.png create mode 100644 app/src/main/res/drawable-mdpi/ic_theme.png create mode 100644 app/src/main/res/drawable-mdpi/ic_topics.png create mode 100644 app/src/main/res/drawable-mdpi/ic_trends.png create mode 100644 app/src/main/res/drawable-mdpi/ic_verified.png create mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 app/src/main/res/drawable-xhdpi/ic_amethyst.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_bookmarks.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_comment.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_compose.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_dm.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_home.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_like.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_liked.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_lists.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_moments.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_notifications.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_profile.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_qrcode.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_retweet.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_retweeted.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_search.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_share.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_theme.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_topics.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_trends.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_verified.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_amethyst.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_bookmarks.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_comment.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_compose.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_dm.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_home.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_like.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_liked.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_lists.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_moments.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_notifications.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_profile.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_qrcode.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_retweet.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_retweeted.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_search.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_share.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_theme.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_topics.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_trends.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_verified.png create mode 100644 app/src/main/res/drawable-xxxhdpi/amethyst_logo.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_amethyst.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_bookmarks.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_comment.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_compose.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_dm.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_home.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_like.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_liked.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_lists.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_moments.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_notifications.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_profile.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_qrcode.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_retweet.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_retweeted.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_search.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_share.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_theme.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_topics.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_trends.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_verified.png create mode 100644 app/src/main/res/drawable-xxxhdpi/profile_banner.jpeg create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/values-night/themes.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/themes.xml create mode 100644 app/src/main/res/xml/backup_rules.xml create mode 100644 app/src/main/res/xml/data_extraction_rules.xml create mode 100644 app/src/test/java/com/vitorpamplona/amethyst/ExampleUnitTest.kt create mode 100644 build.gradle create mode 100644 deps.txt create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore index 56cc6425..25585289 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,20 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties + + # Built application files *.apk *.aar diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..26d33521 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 00000000..fb7f4a8a --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 00000000..ed76bea3 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,37 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..360e6d41 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + \ No newline at end of file diff --git a/amethyst.png b/amethyst.png new file mode 100644 index 0000000000000000000000000000000000000000..b869584e325e77297af9988affb1c329b8355d93 GIT binary patch literal 8556 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 literal 0 HcmV?d00001 diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 00000000..abe2b1dc --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,101 @@ +plugins { + id 'com.android.application' + id 'org.jetbrains.kotlin.android' +} + +android { + namespace 'com.vitorpamplona.amethyst' + compileSdk 33 + + defaultConfig { + applicationId "com.vitorpamplona.amethyst" + minSdk 26 + targetSdk 33 + versionCode 1 + versionName "0.1" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + vectorDrawables { + useSupportLibrary true + } + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } + kotlinOptions { + jvmTarget = '11' + } + buildFeatures { + compose true + } + composeOptions { + kotlinCompilerExtensionVersion '1.3.2' + } + packagingOptions { + resources { + excludes += '/META-INF/{AL2.0,LGPL2.1}' + } + } +} + +dependencies { + implementation 'androidx.core:core-ktx:1.9.0' + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.1' + implementation 'androidx.activity:activity-compose:1.6.1' + implementation "androidx.compose.ui:ui:$compose_ui_version" + implementation "androidx.compose.ui:ui-tooling-preview:$compose_ui_version" + implementation 'androidx.compose.material:material:1.3.1' + + // Navigation + implementation("androidx.navigation:navigation-compose:$nav_version") + implementation 'androidx.lifecycle:lifecycle-runtime-compose:2.6.0-alpha03' + implementation 'androidx.compose.runtime:runtime-livedata:1.4.0-alpha03' + + // Input + implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1' + + // Swipe Refresh + implementation 'com.google.accompanist:accompanist-swiperefresh:0.24.13-rc' + + // Load images from the web. + implementation "io.coil-kt:coil-compose:2.2.2" + + // Bitcoin secp256k1 bindings to Android + implementation 'fr.acinq.secp256k1:secp256k1-kmp-jni-android:0.7.0' + + // Nostr Base Protocol + implementation('com.github.vitorpamplona.NostrPostr:nostrpostrlib:master-SNAPSHOT') { + exclude group:'fr.acinq.secp256k1' + exclude module: 'guava' + exclude module: 'guava-testlib' + } + + implementation 'com.squareup.retrofit2:converter-gson:2.8.1' + // Websockets API + implementation 'com.squareup.okhttp3:okhttp:4.10.0' + + // Json Serialization + implementation 'com.fasterxml.jackson.module:jackson-module-kotlin:2.14.1' + + // Rendering clickable text + implementation "com.google.accompanist:accompanist-flowlayout:0.28.0" + + // link preview + implementation 'tw.com.oneup.www:Baha-UrlPreview:1.0.1' + implementation 'androidx.security:security-crypto-ktx:1.1.0-alpha03' + + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.5' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_ui_version" + debugImplementation "androidx.compose.ui:ui-tooling:$compose_ui_version" + debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_ui_version" +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 00000000..481bb434 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/src/androidTest/java/com/vitorpamplona/amethyst/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/vitorpamplona/amethyst/ExampleInstrumentedTest.kt new file mode 100644 index 00000000..937e4751 --- /dev/null +++ b/app/src/androidTest/java/com/vitorpamplona/amethyst/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.vitorpamplona.amethyst + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.vitorpamplona.amethyst", appContext.packageName) + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..d01064bd --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/KeyStorage.kt b/app/src/main/java/com/vitorpamplona/amethyst/KeyStorage.kt new file mode 100644 index 00000000..612ce133 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/KeyStorage.kt @@ -0,0 +1,22 @@ +package com.vitorpamplona.amethyst + +import android.content.Context +import androidx.security.crypto.EncryptedSharedPreferences +import androidx.security.crypto.MasterKeys + +class KeyStorage { + + fun encryptedPreferences(context: Context): EncryptedSharedPreferences { + val secretKey: String = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC); + val preferencesName = "secret_keeper" + + return EncryptedSharedPreferences.create( + preferencesName, + secretKey, + context, + EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, + EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM + ) as EncryptedSharedPreferences + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt new file mode 100644 index 00000000..308e65c2 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -0,0 +1,92 @@ +package com.vitorpamplona.amethyst.model + +import androidx.lifecycle.LiveData +import com.vitorpamplona.amethyst.service.model.ReactionEvent +import com.vitorpamplona.amethyst.service.model.RepostEvent +import com.vitorpamplona.amethyst.service.relays.Client +import nostr.postr.Persona +import nostr.postr.events.TextNoteEvent +import nostr.postr.toHex + +class Account(val loggedIn: Persona) { + var seeReplies: Boolean = true + + fun userProfile(): User { + return LocalCache.getOrCreateUser(loggedIn.pubKey) + } + + fun isWriteable(): Boolean { + return loggedIn.privKey != null + } + + fun reactTo(note: Note) { + if (!isWriteable()) return + + note.event?.let { + val event = ReactionEvent.create(it, loggedIn.privKey!!) + Client.send(event) + LocalCache.consume(event) + } + } + + fun boost(note: Note) { + if (!isWriteable()) return + + note.event?.let { + val event = RepostEvent.create(it, loggedIn.privKey!!) + Client.send(event) + LocalCache.consume(event) + } + } + + fun sendPost(message: String, replyingTo: Note?) { + if (!isWriteable()) return + + val replyToEvent = replyingTo?.event + if (replyToEvent is TextNoteEvent) { + val repliesTo = replyToEvent.replyTos.plus(replyToEvent.id.toHex()) + val mentions = replyToEvent.mentions.plus(replyToEvent.pubKey.toHex()) + + val signedEvent = TextNoteEvent.create( + msg = message, + replyTos = repliesTo, + mentions = mentions, + privateKey = loggedIn.privKey!! + ) + Client.send(signedEvent) + LocalCache.consume(signedEvent) + } else { + val signedEvent = TextNoteEvent.create( + msg = message, + replyTos = null, + mentions = null, + privateKey = loggedIn.privKey!! + ) + Client.send(signedEvent) + LocalCache.consume(signedEvent) + } + } + + // Observers line up here. + val live: AccountLiveData = AccountLiveData(this) + + private fun refreshObservers() { + live.refresh() + } +} + +class AccountLiveData(private val account: Account): LiveData(AccountState(account)) { + fun refresh() { + postValue(AccountState(account)) + } + + override fun onActive() { + super.onActive() + } + + override fun onInactive() { + super.onInactive() + } +} + +class AccountState(val account: Account) \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Hex.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Hex.kt new file mode 100644 index 00000000..49eed2d8 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Hex.kt @@ -0,0 +1,36 @@ +package com.vitorpamplona.amethyst.model + +import com.vitorpamplona.amethyst.ui.note.toDisplayHex +import fr.acinq.secp256k1.Hex +import java.util.regex.Pattern +import nostr.postr.Persona +import nostr.postr.bechToBytes +import nostr.postr.toHex + +/** Makes the distinction between String and Hex **/ +typealias HexKey = String + +fun ByteArray.toHexKey(): HexKey { + return toHex() +} + +fun HexKey.toByteArray(): ByteArray { + return Hex.decode(this) +} + +fun HexKey.toDisplayHexKey(): String { + return this.toDisplayHex() +} + +fun decodePublicKey(key: String): ByteArray { + val pattern = Pattern.compile(".+@.+\\.[a-z]+") + + return if (key.startsWith("nsec")) { + Persona(privKey = key.bechToBytes()).pubKey + } else if (key.startsWith("npub")) { + key.bechToBytes() + } else { //if (pattern.matcher(key).matches()) { + //} else { + Hex.decode(key) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt new file mode 100644 index 00000000..6b079d31 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt @@ -0,0 +1,224 @@ +package com.vitorpamplona.amethyst.model + +import android.util.Log +import androidx.lifecycle.LiveData +import com.fasterxml.jackson.databind.DeserializationFeature +import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper +import com.vitorpamplona.amethyst.service.model.ReactionEvent +import com.vitorpamplona.amethyst.service.model.RepostEvent +import java.io.ByteArrayInputStream +import java.time.Instant +import java.time.ZoneId +import java.time.format.DateTimeFormatter +import java.util.Collections +import java.util.concurrent.ConcurrentHashMap +import nostr.postr.events.ContactListEvent +import nostr.postr.events.DeletionEvent +import nostr.postr.events.MetadataEvent +import nostr.postr.events.PrivateDmEvent +import nostr.postr.events.RecommendRelayEvent +import nostr.postr.events.TextNoteEvent +import nostr.postr.toHex + + +object LocalCache { + val metadataParser = jacksonObjectMapper() + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false) + .readerFor(UserMetadata::class.java) + + val users = ConcurrentHashMap() + val notes = ConcurrentHashMap() + + @Synchronized + fun getOrCreateUser(pubkey: ByteArray): User { + val key = pubkey.toHexKey() + return users[key] ?: run { + val answer = User(pubkey) + users.put(key, answer) + answer + } + } + + @Synchronized + fun getOrCreateNote(idHex: String): Note { + return notes[idHex] ?: run { + val answer = Note(idHex) + notes.put(idHex, answer) + answer + } + } + + fun consume(event: MetadataEvent) { + //Log.d("MT", "New User ${users.size} ${event.contactMetaData.name}") + + // new event + val oldUser = getOrCreateUser(event.pubKey) + if (event.createdAt > oldUser.updatedMetadataAt) { + val newUser = try { + metadataParser.readValue(ByteArrayInputStream(event.content.toByteArray(Charsets.UTF_8)), UserMetadata::class.java) + } catch (e: Exception) { + e.printStackTrace() + Log.w("MT", "Content Parse Error ${e.localizedMessage} ${event.content}") + return + } + + oldUser.updateUserInfo(newUser, event.createdAt) + } else { + //Log.d("MT","Relay sent a previous Metadata Event ${oldUser.toBestDisplayName()} ${formattedDateTime(event.createdAt)} > ${formattedDateTime(oldUser.updatedAt)}") + } + } + + fun formattedDateTime(timestamp: Long): String { + return Instant.ofEpochSecond(timestamp).atZone(ZoneId.systemDefault()) + .format(DateTimeFormatter.ofPattern("uuuu MMM d hh:mm a")) + } + + fun consume(event: TextNoteEvent) { + val note = getOrCreateNote(event.id.toHex()) + + // Already processed this event. + if (note.event != null) return + + val author = getOrCreateUser(event.pubKey) + val mentions = Collections.synchronizedList(event.mentions.map { getOrCreateUser(decodePublicKey(it)) }) + val replyTo = Collections.synchronizedList(event.replyTos.map { getOrCreateNote(it) }.toMutableList()) + + note.loadEvent(event, author, mentions, replyTo) + + //Log.d("TN", "New Note (${notes.size},${users.size}) ${note.author?.toBestDisplayName()} ${note.event?.content} ${formattedDateTime(event.createdAt)}") + + // Prepares user's profile view. + author.notes.add(note) + + // Adds notifications to users. + mentions.forEach { + it.taggedPosts.add(note) + } + replyTo.forEach { + it.author?.taggedPosts?.add(note) + } + + // Counts the replies + replyTo.forEach { + it.addReply(note) + } + + refreshObservers() + } + + fun consume(event: RecommendRelayEvent) { + //Log.d("RR", event.toJson()) + } + + fun consume(event: ContactListEvent) { + val user = getOrCreateUser(event.pubKey) + //Log.d("CL", "${user.toBestDisplayName()} ${event.follows}") + + if (event.createdAt > user.updatedFollowsAt) { + user.updateFollows( + event.follows.map { + try { + val pubKey = decodePublicKey(it.pubKeyHex) + getOrCreateUser(pubKey) + } catch (e: Exception) { + println("Could not parse Hex key: ${it.pubKeyHex}") + println(event.toJson()) + e.printStackTrace() + null + } + }.filterNotNull(), + event.createdAt + ) + } + + refreshObservers() + } + + fun consume(event: PrivateDmEvent) { + //Log.d("PM", event.toJson()) + } + + fun consume(event: DeletionEvent) { + //Log.d("DEL", event.toJson()) + } + + fun consume(event: RepostEvent) { + val note = getOrCreateNote(event.id.toHex()) + + // Already processed this event. + if (note.event != null) return + + //Log.d("TN", "New Boost (${notes.size},${users.size}) ${note.author.toBestDisplayName()} ${formattedDateTime(event.createdAt)}") + + val author = getOrCreateUser(event.pubKey) + val mentions = event.originalAuthor.map { getOrCreateUser(decodePublicKey(it)) }.toList() + val repliesTo = event.boostedPost.map { getOrCreateNote(it) }.toMutableList() + + note.loadEvent(event, author, mentions, repliesTo) + + // Prepares user's profile view. + author.notes.add(note) + + // Adds notifications to users. + mentions.forEach { + it.taggedPosts.add(note) + } + repliesTo.forEach { + it.author?.taggedPosts?.add(note) + } + + // Counts the replies + repliesTo.forEach { + it.addBoost(note) + } + + refreshObservers() + } + + fun consume(event: ReactionEvent) { + val note = getOrCreateNote(event.id.toHex()) + + // Already processed this event. + if (note.event != null) return + + val author = getOrCreateUser(event.pubKey) + val mentions = event.originalAuthor.map { getOrCreateUser(decodePublicKey(it)) } + val repliesTo = event.originalPost.map { getOrCreateNote(it) }.toMutableList() + + note.loadEvent(event, author, mentions, repliesTo) + + //Log.d("RE", "New Reaction ${event.content} (${notes.size},${users.size}) ${note.author?.toBestDisplayName()} ${formattedDateTime(event.createdAt)}") + + // Adds notifications to users. + mentions.forEach { + it.taggedPosts.add(note) + } + repliesTo.forEach { + it.author?.taggedPosts?.add(note) + } + + if (event.content == "" || event.content == "+" || event.content == "\uD83E\uDD19") { + // Counts the replies + repliesTo.forEach { + it.addReaction(note) + } + } + } + + // Observers line up here. + val live: LocalCacheLiveData = LocalCacheLiveData(this) + + private fun refreshObservers() { + live.refresh() + } +} + +class LocalCacheLiveData(val cache: LocalCache): LiveData(LocalCacheState(cache)) { + fun refresh() { + postValue(LocalCacheState(cache)) + } +} + +class LocalCacheState(val cache: LocalCache) { + +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Note.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Note.kt new file mode 100644 index 00000000..0ac85eef --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Note.kt @@ -0,0 +1,79 @@ +package com.vitorpamplona.amethyst.model + +import androidx.lifecycle.LiveData +import com.vitorpamplona.amethyst.service.NostrSingleEventDataSource +import com.vitorpamplona.amethyst.ui.note.toDisplayHex +import fr.acinq.secp256k1.Hex +import java.util.Collections +import nostr.postr.events.Event + +class Note(val idHex: String) { + val id = Hex.decode(idHex) + val idDisplayHex = id.toDisplayHex() + + var event: Event? = null + var author: User? = null + var mentions: List? = null + var replyTo: MutableList? = null + + val replies = Collections.synchronizedSet(mutableSetOf()) + val reactions = Collections.synchronizedSet(mutableSetOf()) + val boosts = Collections.synchronizedSet(mutableSetOf()) + + fun loadEvent(event: Event, author: User, mentions: List, replyTo: MutableList) { + this.event = event + this.author = author + this.mentions = mentions + this.replyTo = replyTo + + refreshObservers() + } + + fun addReply(note: Note) { + if (replies.add(note)) + refreshObservers() + } + + fun addBoost(note: Note) { + if (boosts.add(note)) + refreshObservers() + } + + fun addReaction(note: Note) { + if (reactions.add(note)) + refreshObservers() + } + + fun isReactedBy(user: User): Boolean { + return reactions.any { it.author == user } + } + + fun isBoostedBy(user: User): Boolean { + return boosts.any { it.author == user } + } + + // Observers line up here. + val live: NoteLiveData = NoteLiveData(this) + + private fun refreshObservers() { + live.refresh() + } +} + +class NoteLiveData(val note: Note): LiveData(NoteState(note)) { + fun refresh() { + postValue(NoteState(note)) + } + + override fun onActive() { + super.onActive() + NostrSingleEventDataSource.add(note.idHex) + } + + override fun onInactive() { + super.onInactive() + NostrSingleEventDataSource.remove(note.idHex) + } +} + +class NoteState(val note: Note) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/User.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/User.kt new file mode 100644 index 00000000..d5bd240c --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/User.kt @@ -0,0 +1,98 @@ +package com.vitorpamplona.amethyst.model + +import androidx.lifecycle.LiveData +import com.vitorpamplona.amethyst.service.NostrSingleUserDataSource +import com.vitorpamplona.amethyst.ui.note.toDisplayHex +import java.util.Collections + +class User(val pubkey: ByteArray) { + val pubkeyHex = pubkey.toHexKey() + val pubkeyDisplayHex = pubkey.toDisplayHex() + + var info = UserMetadata() + + var updatedMetadataAt: Long = 0; + var updatedFollowsAt: Long = 0; + + val notes = Collections.synchronizedSet(mutableSetOf()) + val follows = Collections.synchronizedSet(mutableSetOf()) + val taggedPosts = Collections.synchronizedSet(mutableSetOf()) + + var follower: Number? = null + + fun toBestDisplayName(): String { + return bestDisplayName() ?: bestUsername() ?: pubkeyDisplayHex + } + + fun bestUsername(): String? { + return info.name?.ifBlank { null } ?: info.username?.ifBlank { null } + } + + fun bestDisplayName(): String? { + return info.displayName?.ifBlank { null } ?: info.display_name?.ifBlank { null } + } + + fun profilePicture(): String { + if (info.picture.isNullOrBlank()) info.picture = null + return info.picture ?: "https://robohash.org/${pubkeyHex}.png" + } + + fun updateFollows(newFollows: List, updateAt: Long) { + follows.clear() + follows.addAll(newFollows) + updatedFollowsAt = updateAt + + live.refresh() + } + + fun updateUserInfo(newUserInfo: UserMetadata, updateAt: Long) { + info = newUserInfo + updatedMetadataAt = updateAt + + live.refresh() + } + + // Observers line up here. + val live: UserLiveData = UserLiveData(this) + + private fun refreshObservers() { + live.refresh() + } +} + +class UserMetadata { + var name: String? = null + var username: String? = null + var display_name: String? = null + var displayName: String? = null + var picture: String? = null + var website: String? = null + var about: String? = null + var nip05: String? = null + var domain: String? = null + var lud06: String? = null + var lud16: String? = null + + var publish: String? = null + var iris: String? = null + var main_relay: String? = null + var twitter: String? = null +} + +class UserLiveData(val user: User): LiveData(UserState(user)) { + fun refresh() { + postValue(UserState(user)) + } + + override fun onActive() { + super.onActive() + NostrSingleUserDataSource.add(user.pubkeyHex) + } + + override fun onInactive() { + super.onInactive() + NostrSingleUserDataSource.remove(user.pubkeyHex) + } +} + +class UserState(val user: User) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/Channel.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/Channel.kt new file mode 100644 index 00000000..f2bdeada --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/Channel.kt @@ -0,0 +1,10 @@ +package com.vitorpamplona.amethyst.service + +import java.util.UUID +import nostr.postr.JsonFilter + +data class Channel ( + val id: String = UUID.randomUUID().toString().substring(0,4) +) { + var filter: JsonFilter? = null // Inactive when null +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/Constants.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/Constants.kt new file mode 100644 index 00000000..a4ef69d7 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/Constants.kt @@ -0,0 +1,24 @@ +package com.vitorpamplona.amethyst.service + +import com.vitorpamplona.amethyst.service.relays.Relay + +object Constants { + val defaultRelays = arrayOf( + Relay("wss://nostr.bitcoiner.social", read = true, write = true), + Relay("wss://relay.nostr.bg", read = true, write = true), + //Relay("wss://brb.io", read = true, write = true), + Relay("wss://nostr.v0l.io", read = true, write = true), + Relay("wss://nostr.rocks", read = true, write = true), + Relay("wss://relay.damus.io", read = true, write = true), + Relay("wss://nostr.fmt.wiz.biz", read = true, write = true), + Relay("wss://nostr.oxtr.dev", read = true, write = true), + Relay("wss://nostr-relay.wlvs.space", read = true, write = true), + //Relay("wss://nostr-2.zebedee.cloud", read = true, write = true), + Relay("wss://nostr-pub.wellorder.net", read = true, write = true), + Relay("wss://nostr.mom", read = true, write = true), + Relay("wss://nostr.orangepill.dev", read = true, write = true), + //Relay("wss://nostr-pub.semisol.dev", read = true, write = true), + Relay("wss://nostr.onsats.org", read = true, write = true), + Relay("wss://nostr.sandwich.farm", read = true, write = true) + ) +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrAccountDataSource.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrAccountDataSource.kt new file mode 100644 index 00000000..b07b8d31 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrAccountDataSource.kt @@ -0,0 +1,74 @@ +package com.vitorpamplona.amethyst.service + +import com.vitorpamplona.amethyst.model.Account +import com.vitorpamplona.amethyst.model.LocalCache +import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.model.UserState +import com.vitorpamplona.amethyst.service.model.RepostEvent +import nostr.postr.JsonFilter +import nostr.postr.events.TextNoteEvent +import nostr.postr.toHex + +object NostrAccountDataSource: NostrDataSource("AccountData") { + lateinit var account: Account + + private val cacheListener: (UserState) -> Unit = { + resetFilters() + } + + override fun start() { + if (this::account.isInitialized) + account.userProfile().live.observeForever(cacheListener) + super.start() + } + + override fun stop() { + super.stop() + if (this::account.isInitialized) + account.userProfile().live.removeObserver(cacheListener) + } + + fun createAccountFilter(): JsonFilter { + return JsonFilter( + authors = listOf(account.userProfile().pubkeyHex), + since = System.currentTimeMillis() / 1000 - (60 * 60 * 24 * 4), // 4 days + ) + } + + val accountChannel = requestNewChannel() + + fun equalsIgnoreOrder(list1:List?, list2:List?): Boolean { + if (list1 == null && list2 == null) return true + if (list1 == null) return false + if (list2 == null) return false + + return list1.size == list2.size && list1.toSet() == list2.toSet() + } + + fun equalAuthors(list1:JsonFilter?, list2:JsonFilter?): Boolean { + if (list1 == null && list2 == null) return true + if (list1 == null) return false + if (list2 == null) return false + + return equalsIgnoreOrder(list1.authors, list2.authors) + } + + override fun feed(): List { + val user = account.userProfile() + val follows = user.follows.map { it.pubkeyHex }.plus(user.pubkeyHex).toSet() + + return LocalCache.notes.values + .filter { (it.event is TextNoteEvent || it.event is RepostEvent) && it.author?.pubkeyHex in follows } + .sortedBy { it.event!!.createdAt } + .reversed() + } + + override fun updateChannelFilters() { + // gets everthing about the user logged in + val newAccountFilter = createAccountFilter() + + if (!equalAuthors(newAccountFilter, accountChannel.filter)) { + accountChannel.filter = newAccountFilter + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrDataSource.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrDataSource.kt new file mode 100644 index 00000000..090e29dc --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrDataSource.kt @@ -0,0 +1,135 @@ +package com.vitorpamplona.amethyst.service + +import com.vitorpamplona.amethyst.model.LocalCache +import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.service.model.ReactionEvent +import com.vitorpamplona.amethyst.service.model.RepostEvent +import com.vitorpamplona.amethyst.service.relays.Client +import com.vitorpamplona.amethyst.service.relays.Relay +import java.util.Collections +import nostr.postr.events.ContactListEvent +import nostr.postr.events.DeletionEvent +import nostr.postr.events.Event +import nostr.postr.events.MetadataEvent +import nostr.postr.events.PrivateDmEvent +import nostr.postr.events.RecommendRelayEvent +import nostr.postr.events.TextNoteEvent + +abstract class NostrDataSource(val debugName: String) { + private val channels = Collections.synchronizedSet(mutableSetOf()) + private val channelIds = Collections.synchronizedSet(mutableSetOf()) + + private val clientListener = object : Client.Listener() { + override fun onEvent(event: Event, subscriptionId: String, relay: Relay) { + if (subscriptionId in channelIds) { + when (event) { + is MetadataEvent -> LocalCache.consume(event) + is TextNoteEvent -> LocalCache.consume(event) + is RecommendRelayEvent -> LocalCache.consume(event) + is ContactListEvent -> LocalCache.consume(event) + is PrivateDmEvent -> LocalCache.consume(event) + is DeletionEvent -> LocalCache.consume(event) + is RepostEvent -> LocalCache.consume(event) + is ReactionEvent -> LocalCache.consume(event) + else -> when (event.kind) { + RepostEvent.kind -> LocalCache.consume(RepostEvent(event.id, event.pubKey, event.createdAt, event.tags, event.content, event.sig)) + ReactionEvent.kind -> LocalCache.consume(ReactionEvent(event.id, event.pubKey, event.createdAt, event.tags, event.content, event.sig)) + } + } + } + } + + override fun onError(error: Error, subscriptionId: String, relay: Relay) { + //Log.e("ERROR", "Relay ${relay.url}: ${error.message}") + } + + override fun onRelayStateChange(type: Relay.Type, relay: Relay) { + //Log.d("RELAY", "Relay ${relay.url} ${when (type) { + // Relay.Type.CONNECT -> "connected." + // Relay.Type.DISCONNECT -> "disconnected." + // Relay.Type.DISCONNECTING -> "disconnecting." + // Relay.Type.EOSE -> "sent all events it had stored." + //}}") + + /* + if (type == Relay.Type.EOSE) { + // One everything is loaded, if new users are found, update filters + resetFilters() + }*/ + } + } + + init { + Client.subscribe(clientListener) + } + + open fun start() { + resetFilters() + } + + open fun stop() { + channels.forEach { channel -> + if (channel.filter != null) // if it is active, close + Client.close(channel.id) + } + } + + fun loadTop(): List { + return feed().take(100) + } + + fun requestNewChannel(): Channel { + val newChannel = Channel() + channels.add(newChannel) + channelIds.add(newChannel.id) + return newChannel + } + + fun dismissChannel(channel: Channel) { + Client.close(channel.id) + channels.remove(channel) + channelIds.remove(channel.id) + } + + fun resetFilters() { + // saves the channels that are currently active + val activeChannels = channels.filter { it.filter != null } + // saves the current content to only update if it changes + val currentFilter = activeChannels.associate { it.id to it.filter!!.toJson() } + + updateChannelFilters() + + // Makes sure to only send an updated filter when it actually changes. + channels.forEach { channel -> + val channelsNewFilter = channel.filter + + if (channel in activeChannels) { + if (channelsNewFilter == null) { + // was active and is not active anymore, just close. + Client.close(channel.id) + } else { + // was active and is still active, check if it has changed. + if (channelsNewFilter.toJson() != currentFilter[channel.id]) { + Client.close(channel.id) + Client.sendFilter(channel.id, mutableListOf(channelsNewFilter)) + } else { + // hasn't changed, does nothing. + Client.sendFilterOnlyIfDisconnected(channel.id, mutableListOf(channelsNewFilter)) + } + } + } else { + if (channelsNewFilter == null) { + // was not active and is still not active, does nothing + } else { + // was not active and becomes active, sends the filter. + if (channelsNewFilter.toJson() != currentFilter[channel.id]) { + Client.sendFilter(channel.id, mutableListOf(channelsNewFilter)) + } + } + } + } + } + + abstract fun updateChannelFilters() + abstract fun feed(): List +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrGlobalDataSource.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrGlobalDataSource.kt new file mode 100644 index 00000000..d9aa365e --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrGlobalDataSource.kt @@ -0,0 +1,47 @@ +package com.vitorpamplona.amethyst.service + +import com.vitorpamplona.amethyst.model.LocalCache +import nostr.postr.JsonFilter +import nostr.postr.events.TextNoteEvent + +object NostrGlobalDataSource: NostrDataSource("GlobalFeed") { + val fifteenMinutes = (60*15) // 15 mins + + fun createGlobalFilter() = JsonFilter( + kinds = listOf(TextNoteEvent.kind), + since = System.currentTimeMillis() / 1000 - fifteenMinutes + ) + + val globalFeedChannel = requestNewChannel() + + fun equalTime(list1:Long?, list2:Long?): Boolean { + if (list1 == null && list2 == null) return true + if (list1 == null) return false + if (list2 == null) return false + + return Math.abs(list1 - list2) < (4*fifteenMinutes) + } + + fun equalFilters(list1:JsonFilter?, list2:JsonFilter?): Boolean { + if (list1 == null && list2 == null) return true + if (list1 == null) return false + if (list2 == null) return false + + return equalTime(list1.since, list2.since) + } + + override fun feed() = LocalCache.notes.values + .filter { + it.event is TextNoteEvent && (it.event as TextNoteEvent).replyTos.isEmpty() + } + .sortedBy { it.event!!.createdAt } + .reversed() + + override fun updateChannelFilters() { + val newFilter = createGlobalFilter() + + if (!equalFilters(newFilter, globalFeedChannel.filter)) { + globalFeedChannel.filter = newFilter + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrHomeDataSource.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrHomeDataSource.kt new file mode 100644 index 00000000..7e9e241c --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrHomeDataSource.kt @@ -0,0 +1,80 @@ +package com.vitorpamplona.amethyst.service + +import com.vitorpamplona.amethyst.model.Account +import com.vitorpamplona.amethyst.model.LocalCache +import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.model.UserState +import com.vitorpamplona.amethyst.service.model.RepostEvent +import nostr.postr.JsonFilter +import nostr.postr.events.TextNoteEvent +import nostr.postr.toHex + +object NostrHomeDataSource: NostrDataSource("HomeFeed") { + lateinit var account: Account + + private val cacheListener: (UserState) -> Unit = { + resetFilters() + } + + override fun start() { + if (this::account.isInitialized) + account.userProfile().live.observeForever(cacheListener) + super.start() + } + + override fun stop() { + super.stop() + if (this::account.isInitialized) + account.userProfile().live.removeObserver(cacheListener) + } + + fun createFollowAccountsFilter(): JsonFilter? { + val follows = account.userProfile().follows?.map { + it.pubkey.toHex().substring(0, 6) + } + + if (follows == null || follows.isEmpty()) return null + + return JsonFilter( + kinds = listOf(TextNoteEvent.kind, RepostEvent.kind), + authors = follows, + since = System.currentTimeMillis() / 1000 - (60 * 60 * 24 * 1), // 24 hours + ) + } + + val followAccountChannel = requestNewChannel() + + fun equalsIgnoreOrder(list1:List?, list2:List?): Boolean { + if (list1 == null && list2 == null) return true + if (list1 == null) return false + if (list2 == null) return false + + return list1.size == list2.size && list1.toSet() == list2.toSet() + } + + fun equalAuthors(list1:JsonFilter?, list2:JsonFilter?): Boolean { + if (list1 == null && list2 == null) return true + if (list1 == null) return false + if (list2 == null) return false + + return equalsIgnoreOrder(list1.authors, list2.authors) + } + + override fun feed(): List { + val user = account.userProfile() + val follows = user.follows.map { it.pubkeyHex }.plus(user.pubkeyHex).toSet() + + return LocalCache.notes.values + .filter { (it.event is TextNoteEvent || it.event is RepostEvent) && it.author?.pubkeyHex in follows } + .sortedBy { it.event!!.createdAt } + .reversed() + } + + override fun updateChannelFilters() { + val newFollowAccountsFilter = createFollowAccountsFilter() + + if (!equalAuthors(newFollowAccountsFilter, followAccountChannel.filter)) { + followAccountChannel.filter = newFollowAccountsFilter + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrNotificationDataSource.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrNotificationDataSource.kt new file mode 100644 index 00000000..b8066eca --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrNotificationDataSource.kt @@ -0,0 +1,48 @@ +package com.vitorpamplona.amethyst.service + +import com.vitorpamplona.amethyst.model.Account +import com.vitorpamplona.amethyst.model.Note +import nostr.postr.JsonFilter + +object NostrNotificationDataSource: NostrDataSource("GlobalFeed") { + lateinit var account: Account + + fun createGlobalFilter() = JsonFilter( + since = System.currentTimeMillis() / 1000 - (60 * 60 * 24 * 7), // 2 days + tags = mapOf("p" to listOf(account.userProfile().pubkeyHex).filterNotNull()) + ) + + val notificationChannel = requestNewChannel() + + fun equalsIgnoreOrder(list1:List?, list2:List?): Boolean { + if (list1 == null && list2 == null) return true + if (list1 == null) return false + if (list2 == null) return false + + return list1.size == list2.size && list1.toSet() == list2.toSet() + } + + fun equalFilters(list1:JsonFilter?, list2:JsonFilter?): Boolean { + if (list1 == null && list2 == null) return true + if (list1 == null) return false + if (list2 == null) return false + + return equalsIgnoreOrder(list1.tags?.get("p"), list2.tags?.get("p")) + && equalsIgnoreOrder(list1.tags?.get("e"), list2.tags?.get("e")) + } + + override fun feed(): List { + return account.userProfile().taggedPosts + .filter { it.event != null } + .sortedBy { it.event!!.createdAt } + .reversed() + } + + override fun updateChannelFilters() { + val newFilter = createGlobalFilter() + + if (!equalFilters(newFilter, notificationChannel.filter)) { + notificationChannel.filter = newFilter + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleEventDataSource.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleEventDataSource.kt new file mode 100644 index 00000000..5faeeef5 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleEventDataSource.kt @@ -0,0 +1,62 @@ +package com.vitorpamplona.amethyst.service + +import com.vitorpamplona.amethyst.model.LocalCache +import com.vitorpamplona.amethyst.model.Note +import java.util.Collections +import nostr.postr.JsonFilter + +object NostrSingleEventDataSource: NostrDataSource("SingleEventFeed") { + val eventsToWatch = Collections.synchronizedList(mutableListOf()) + + fun createRepliesAndReactionsFilter(): JsonFilter? { + val reactionsToWatch = eventsToWatch.map { it.substring(0, 8) } + + if (reactionsToWatch.isEmpty()) { + return null + } + + return JsonFilter( + tags = mapOf("e" to reactionsToWatch) + ) + } + + fun createLoadEventsIfNotLoadedFilter(): JsonFilter? { + val eventsToLoad = eventsToWatch + .map { LocalCache.notes[it] } + .filterNotNull() + .filter { it.event == null } + .map { it.idHex.substring(0, 8) } + + if (eventsToLoad.isEmpty()) { + return null + } + + return JsonFilter( + ids = eventsToLoad + ) + } + + val repliesAndReactionsChannel = requestNewChannel() + val loadEventsChannel = requestNewChannel() + + override fun feed(): List { + return eventsToWatch.map { + LocalCache.notes[it] + }.filterNotNull() + } + + override fun updateChannelFilters() { + repliesAndReactionsChannel.filter = createRepliesAndReactionsFilter() + loadEventsChannel.filter = createLoadEventsIfNotLoadedFilter() + } + + fun add(eventId: String) { + eventsToWatch.add(eventId) + resetFilters() + } + + fun remove(eventId: String) { + eventsToWatch.remove(eventId) + resetFilters() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleUserDataSource.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleUserDataSource.kt new file mode 100644 index 00000000..8cef8403 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleUserDataSource.kt @@ -0,0 +1,42 @@ +package com.vitorpamplona.amethyst.service + +import com.vitorpamplona.amethyst.model.LocalCache +import com.vitorpamplona.amethyst.model.Note +import java.util.Collections +import nostr.postr.JsonFilter +import nostr.postr.events.MetadataEvent + +object NostrSingleUserDataSource: NostrDataSource("SingleUserFeed") { + val usersToWatch = Collections.synchronizedList(mutableListOf()) + + fun createUserFilter(): JsonFilter? { + if (usersToWatch.isEmpty()) return null + + return JsonFilter( + kinds = listOf(MetadataEvent.kind), + authors = usersToWatch.map { it.substring(0, 8) } + ) + } + + val userChannel = requestNewChannel() + + override fun feed(): List { + return usersToWatch.map { + LocalCache.notes[it] + }.filterNotNull() + } + + override fun updateChannelFilters() { + userChannel.filter = createUserFilter() + } + + fun add(userId: String) { + usersToWatch.add(userId) + resetFilters() + } + + fun remove(userId: String) { + usersToWatch.remove(userId) + resetFilters() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/ReactionEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/ReactionEvent.kt new file mode 100644 index 00000000..85b26bfa --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/ReactionEvent.kt @@ -0,0 +1,37 @@ +package com.vitorpamplona.amethyst.service.model + +import java.util.Date +import nostr.postr.Utils +import nostr.postr.events.Event +import nostr.postr.toHex + +class ReactionEvent ( + id: ByteArray, + pubKey: ByteArray, + createdAt: Long, + tags: List>, + content: String, + sig: ByteArray +): Event(id, pubKey, createdAt, kind, tags, content, sig) { + + @Transient val originalPost: List + @Transient val originalAuthor: List + + init { + originalPost = tags.filter { it.firstOrNull() == "e" }.mapNotNull { it.getOrNull(1) } + originalAuthor = tags.filter { it.firstOrNull() == "p" }.mapNotNull { it.getOrNull(1) } + } + + companion object { + const val kind = 7 + + fun create(originalNote: Event, privateKey: ByteArray, createdAt: Long = Date().time / 1000): ReactionEvent { + val content = "+" + val pubKey = Utils.pubkeyCreate(privateKey) + val tags = listOf( listOf("e", originalNote.id.toHex()), listOf("p", originalNote.pubKey.toHex())) + val id = generateId(pubKey, createdAt, kind, tags, content) + val sig = Utils.sign(id, privateKey) + return ReactionEvent(id, pubKey, createdAt, tags, content, sig) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/RepostEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/RepostEvent.kt new file mode 100644 index 00000000..caf31c34 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/RepostEvent.kt @@ -0,0 +1,41 @@ +package com.vitorpamplona.amethyst.service.model + +import java.util.Date +import nostr.postr.Utils +import nostr.postr.events.Event +import nostr.postr.toHex + +class RepostEvent ( + id: ByteArray, + pubKey: ByteArray, + createdAt: Long, + tags: List>, + content: String, + sig: ByteArray +): Event(id, pubKey, createdAt, kind, tags, content, sig) { + + @Transient val boostedPost: List + @Transient val originalAuthor: List + + init { + boostedPost = tags.filter { it.firstOrNull() == "e" }.mapNotNull { it.getOrNull(1) } + originalAuthor = tags.filter { it.firstOrNull() == "p" }.mapNotNull { it.getOrNull(1) } + } + + companion object { + const val kind = 6 + + fun create(boostedPost: Event, privateKey: ByteArray, createdAt: Long = Date().time / 1000): RepostEvent { + val content = "" + + val replyToPost = listOf("e", boostedPost.id.toHex()) + val replyToAuthor = listOf("p", boostedPost.pubKey.toHex()) + + val pubKey = Utils.pubkeyCreate(privateKey) + val tags:List> = boostedPost.tags.plus(listOf(replyToPost, replyToAuthor)) + val id = generateId(pubKey, createdAt, kind, tags, content) + val sig = Utils.sign(id, privateKey) + return RepostEvent(id, pubKey, createdAt, tags, content, sig) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Client.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Client.kt new file mode 100644 index 00000000..5396db17 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Client.kt @@ -0,0 +1,113 @@ +package com.vitorpamplona.amethyst.service.relays + +import com.vitorpamplona.amethyst.service.Constants +import java.util.Collections +import java.util.UUID +import java.util.concurrent.ConcurrentHashMap +import nostr.postr.JsonFilter +import nostr.postr.events.Event + +/** + * The Nostr Client manages multiple personae the user may switch between. Events are received and + * published through multiple relays. + * Events are stored with their respective persona. + */ +object Client: RelayPool.Listener { + /** + * Lenient mode: + * + * true: For maximum compatibility. If you want to play ball with sloppy counterparts, use + * this. + * false: For developers who want to make protocol compliant counterparts. If your software + * produces events that fail to deserialize in strict mode, you should probably fix + * something. + **/ + var lenient: Boolean = false + private val listeners = Collections.synchronizedSet(HashSet()) + internal var relays = Constants.defaultRelays + internal val subscriptions = ConcurrentHashMap>() + + fun connect( + relays: Array = Constants.defaultRelays + ) { + RelayPool.register(this) + RelayPool.loadRelays(relays.toList()) + this.relays = relays + } + + fun requestAndWatch( + subscriptionId: String = UUID.randomUUID().toString().substring(0..10), + filters: MutableList = mutableListOf(JsonFilter()) + ) { + subscriptions[subscriptionId] = filters + RelayPool.requestAndWatch() + } + + fun sendFilter( + subscriptionId: String = UUID.randomUUID().toString().substring(0..10), + filters: MutableList = mutableListOf(JsonFilter()) + ) { + subscriptions[subscriptionId] = filters + RelayPool.sendFilter(subscriptionId) + } + + fun sendFilterOnlyIfDisconnected( + subscriptionId: String = UUID.randomUUID().toString().substring(0..10), + filters: MutableList = mutableListOf(JsonFilter()) + ) { + subscriptions[subscriptionId] = filters + RelayPool.sendFilterOnlyIfDisconnected(subscriptionId) + } + + fun send(signedEvent: Event) { + RelayPool.send(signedEvent) + } + + fun close(subscriptionId: String){ + RelayPool.close(subscriptionId) + } + + fun disconnect() { + RelayPool.unregister(this) + RelayPool.disconnect() + RelayPool.unloadRelays() + } + + override fun onEvent(event: Event, subscriptionId: String, relay: Relay) { + listeners.forEach { it.onEvent(event, subscriptionId, relay) } + } + + override fun onError(error: Error, subscriptionId: String, relay: Relay) { + listeners.forEach { it.onError(error, subscriptionId, relay) } + } + + override fun onRelayStateChange(type: Relay.Type, relay: Relay) { + listeners.forEach { it.onRelayStateChange(type, relay) } + } + + fun subscribe(listener: Listener) { + listeners.add(listener) + } + + fun unsubscribe(listener: Listener): Boolean { + return listeners.remove(listener) + } + + + abstract class Listener { + /** + * A new message was received + */ + open fun onEvent(event: Event, subscriptionId: String, relay: Relay) = Unit + + /** + * A new or repeat message was received + */ + open fun onError(error: Error, subscriptionId: String, relay: Relay) = Unit + + /** + * Connected to or disconnected from a relay + */ + open fun onRelayStateChange(type: Relay.Type, relay: Relay) = Unit + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt new file mode 100644 index 00000000..b5770cbe --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt @@ -0,0 +1,165 @@ +package com.vitorpamplona.amethyst.service.relays + +import com.google.gson.JsonElement +import java.util.Collections +import nostr.postr.JsonFilter +import nostr.postr.events.Event +import okhttp3.OkHttpClient +import okhttp3.Request +import okhttp3.Response +import okhttp3.WebSocket +import okhttp3.WebSocketListener + +class Relay( + val url: String, + var read: Boolean = true, + var write: Boolean = true +) { + private val httpClient = OkHttpClient() + private val listeners = Collections.synchronizedSet(HashSet()) + private var socket: WebSocket? = null + + fun register(listener: Listener) { + listeners.add(listener) + } + + fun isConnected(): Boolean { + return socket != null + } + + fun unregister(listener: Listener) = listeners.remove(listener) + + fun requestAndWatch(reconnectTs: Long? = null) { + val request = Request.Builder().url(url).build() + val listener = object : WebSocketListener() { + + override fun onOpen(webSocket: WebSocket, response: Response) { + // Sends everything. + Client.subscriptions.forEach { + sendFilter(requestId = it.key, reconnectTs = reconnectTs) + } + listeners.forEach { it.onRelayStateChange(this@Relay, Type.CONNECT) } + } + + override fun onMessage(webSocket: WebSocket, text: String) { + try { + val msg = Event.gson.fromJson(text, JsonElement::class.java).asJsonArray + val type = msg[0].asString + val channel = msg[1].asString + when (type) { + "EVENT" -> { + val event = Event.fromJson(msg[2], Client.lenient) + listeners.forEach { it.onEvent(this@Relay, channel, event) } + } + "EOSE" -> listeners.forEach { + it.onRelayStateChange(this@Relay, Type.EOSE) + } + "NOTICE" -> listeners.forEach { + // "channel" being the second string in the string array ... + it.onError(this@Relay, channel, Error("Relay sent notice: $channel")) + } + "OK" -> listeners.forEach { + // "channel" being the second string in the string array ... + // Event was saved correctly? + } + else -> listeners.forEach { + it.onError( + this@Relay, + channel, + Error("Unknown type $type on channel $channel. Msg was $text") + ) + } + } + } catch (t: Throwable) { + t.printStackTrace() + text.chunked(2000) { chunked -> + listeners.forEach { it.onError(this@Relay, "", Error("Problem with $chunked")) } + } + } + } + + override fun onClosing(webSocket: WebSocket, code: Int, reason: String) { + listeners.forEach { it.onRelayStateChange(this@Relay, Type.DISCONNECTING) } + } + + override fun onClosed(webSocket: WebSocket, code: Int, reason: String) { + socket = null + listeners.forEach { it.onRelayStateChange(this@Relay, Type.DISCONNECT) } + } + + override fun onFailure(webSocket: WebSocket, t: Throwable, response: Response?) { + t.printStackTrace() + listeners.forEach { + it.onError(this@Relay, "", Error("WebSocket Failure. Response: ${response}. Exception: ${t.message}", t)) + } + } + } + socket = httpClient.newWebSocket(request, listener) + } + + fun disconnect() { + //httpClient.dispatcher.executorService.shutdown() + socket?.close(1000, "Normal close") + } + + fun sendFilter(requestId: String, reconnectTs: Long? = null) { + if (socket == null) { + requestAndWatch(reconnectTs) + } else { + val filters = if (reconnectTs != null) { + Client.subscriptions[requestId]?.let { + it.map { filter -> + JsonFilter(filter.ids, filter.authors, filter.kinds, filter.tags, since = reconnectTs) + } + } ?: error("No filter(s) found.") + } else { + Client.subscriptions[requestId] ?: error("No filter(s) found.") + } + val request = """["REQ","$requestId",${filters.joinToString(",") { it.toJson() }}]""" + //println("FILTERSSENT " + """["REQ","$requestId",${filters.joinToString(",") { it.toJson() }}]""") + socket!!.send(request) + } + } + + fun sendFilterOnlyIfDisconnected(requestId: String, reconnectTs: Long? = null) { + if (socket == null) { + requestAndWatch(reconnectTs) + } + } + + fun send(signedEvent: Event) { + if (write) + socket?.send("""["EVENT",${signedEvent.toJson()}]""") + } + + fun close(subscriptionId: String){ + socket?.send("""["CLOSE","$subscriptionId"]""") + } + + enum class Type { + // Websocket connected + CONNECT, + // Websocket disconnecting + DISCONNECTING, + // Websocket disconnected + DISCONNECT, + // End Of Stored Events + EOSE + } + + interface Listener { + /** + * A new message was received + */ + fun onEvent(relay: Relay, subscriptionId: String, event: Event) + + fun onError(relay: Relay, subscriptionId: String, error: Error) + + /** + * Connected to or disconnected from a relay + * + * @param type is 0 for disconnect and 1 for connect + */ + fun onRelayStateChange(relay: Relay, type: Type) + } +} diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/relays/RelayPool.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/RelayPool.kt new file mode 100644 index 00000000..7172ab76 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/RelayPool.kt @@ -0,0 +1,113 @@ +package com.vitorpamplona.amethyst.service.relays + +import androidx.lifecycle.LiveData +import com.vitorpamplona.amethyst.service.Constants +import java.util.Collections +import nostr.postr.events.Event + +/** + * RelayPool manages the connection to multiple Relays and lets consumers deal with simple events. + */ +object RelayPool: Relay.Listener { + private val relays = Collections.synchronizedList(ArrayList()) + private val listeners = Collections.synchronizedSet(HashSet()) + + fun report(): String { + val connected = relays.filter { it.isConnected() } + return "${connected.size}/${relays.size}" + } + + fun loadRelays(relayList: List? = null){ + if (!relayList.isNullOrEmpty()){ + relayList.forEach { addRelay(it) } + } else { + Constants.defaultRelays.forEach { addRelay(it) } + } + } + + fun unloadRelays() { + relays.toList().forEach { removeRelay(it) } + } + + fun requestAndWatch() { + relays.forEach { it.requestAndWatch() } + } + + fun sendFilter(subscriptionId: String) { + relays.forEach { it.sendFilter(subscriptionId) } + } + + fun sendFilterOnlyIfDisconnected(subscriptionId: String) { + relays.forEach { it.sendFilterOnlyIfDisconnected(subscriptionId) } + } + + fun send(signedEvent: Event) { + relays.forEach { it.send(signedEvent) } + } + + fun close(subscriptionId: String){ + relays.forEach { it.close(subscriptionId) } + } + + fun disconnect() { + relays.forEach { it.disconnect() } + } + + fun addRelay(relay: Relay) { + relay.register(this) + relays += relay + } + + fun removeRelay(relay: Relay): Boolean { + relay.unregister(this) + return relays.remove(relay) + } + + fun getRelays(): List = relays + + fun register(listener: Listener) { + listeners.add(listener) + } + + fun unregister(listener: Listener): Boolean { + return listeners.remove(listener) + } + + interface Listener { + fun onEvent(event: Event, subscriptionId: String, relay: Relay) + + fun onError(error: Error, subscriptionId: String, relay: Relay) + + fun onRelayStateChange(type: Relay.Type, relay: Relay) + } + + @Synchronized + override fun onEvent(relay: Relay, subscriptionId: String, event: Event) { + listeners.forEach { it.onEvent(event, subscriptionId, relay) } + } + + override fun onError(relay: Relay, subscriptionId: String, error: Error) { + listeners.forEach { it.onError(error, subscriptionId, relay) } + refreshObservers() + } + + override fun onRelayStateChange(relay: Relay, type: Relay.Type) { + listeners.forEach { it.onRelayStateChange(type, relay) } + refreshObservers() + } + + // Observers line up here. + val live: RelayPoolLiveData = RelayPoolLiveData(this) + + private fun refreshObservers() { + live.refresh() + } +} + +class RelayPoolLiveData(val relays: RelayPool): LiveData(RelayPoolState(relays)) { + fun refresh() { + postValue(RelayPoolState(relays)) + } +} + +class RelayPoolState(val relays: RelayPool) \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt new file mode 100644 index 00000000..c873ec92 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/MainActivity.kt @@ -0,0 +1,60 @@ +package com.vitorpamplona.amethyst.ui + +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Surface +import androidx.compose.ui.Modifier +import androidx.lifecycle.viewmodel.compose.viewModel +import com.vitorpamplona.amethyst.KeyStorage +import com.vitorpamplona.amethyst.service.NostrAccountDataSource +import com.vitorpamplona.amethyst.service.NostrGlobalDataSource +import com.vitorpamplona.amethyst.service.NostrHomeDataSource +import com.vitorpamplona.amethyst.service.NostrNotificationDataSource +import com.vitorpamplona.amethyst.service.NostrSingleEventDataSource +import com.vitorpamplona.amethyst.service.NostrSingleUserDataSource +import com.vitorpamplona.amethyst.service.relays.Client +import com.vitorpamplona.amethyst.ui.screen.AccountScreen +import com.vitorpamplona.amethyst.ui.screen.AccountStateViewModel +import com.vitorpamplona.amethyst.ui.theme.AmethystTheme + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + setContent { + AmethystTheme { + // A surface container using the 'background' color from the theme + Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background) { + + val accountViewModel: AccountStateViewModel = viewModel { + AccountStateViewModel(KeyStorage().encryptedPreferences(applicationContext)) + } + + AccountScreen(accountViewModel) + } + } + } + + Client.lenient = true + } + + override fun onResume() { + super.onResume() + Client.connect() + } + + override fun onPause() { + NostrAccountDataSource.stop() + NostrHomeDataSource.stop() + + NostrGlobalDataSource.stop() + NostrNotificationDataSource.stop() + NostrSingleEventDataSource.stop() + NostrSingleUserDataSource.stop() + Client.disconnect() + super.onPause() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt new file mode 100644 index 00000000..42fa5f57 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/actions/NewPostView.kt @@ -0,0 +1,157 @@ +package com.vitorpamplona.amethyst.ui.actions + +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material.Button +import androidx.compose.material.ButtonDefaults +import androidx.compose.material.MaterialTheme +import androidx.compose.material.OutlinedTextField +import androidx.compose.material.Surface +import androidx.compose.material.Text +import androidx.compose.material.TextFieldDefaults +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.input.KeyboardCapitalization +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.compose.ui.window.Dialog +import androidx.compose.ui.window.DialogProperties +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewmodel.compose.viewModel +import com.vitorpamplona.amethyst.model.Account +import com.vitorpamplona.amethyst.model.Note +import nostr.postr.events.TextNoteEvent + +class PostViewModel: ViewModel() { + var account: Account? = null + var message by mutableStateOf("") + var replyingTo: Note? = null + + fun sendPost() { + account?.sendPost(message, replyingTo) + } +} + +@Composable +fun NewPostView(onClose: () -> Unit, replyingTo: Note? = null, account: Account) { + val postViewModel: PostViewModel = viewModel().apply { + this.replyingTo = replyingTo + this.account = account + } + + val dialogProperties = DialogProperties() + Dialog( + onDismissRequest = { onClose() }, properties = dialogProperties + ) { + Surface( + modifier = Modifier + .fillMaxWidth() + .fillMaxHeight(0.5f) + ) { + Column( + modifier = Modifier.padding(10.dp) + ) { + Row( + modifier = Modifier + .fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically + ) { + CloseButton(onCancel = onClose) + + PostButton( + onPost = { + postViewModel.sendPost() + onClose() + } + ) + } + + if (replyingTo != null && replyingTo.event is TextNoteEvent) { + Row( + verticalAlignment = Alignment.CenterVertically, + ) { + val replyList = replyingTo.replyTo!!.plus(replyingTo).joinToString(", ", "", "", 2) { it.idDisplayHex } + val withList = replyingTo.mentions!!.plus(replyingTo.author!!).joinToString(", ", "", "", 2) { it.toBestDisplayName() } + + Text( + "in reply to ${replyList} with ${withList}", + fontSize = 13.sp, + color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) + ) + } + } + + OutlinedTextField( + value = postViewModel.message, + onValueChange = { postViewModel.message = it }, + keyboardOptions = KeyboardOptions.Default.copy( + capitalization = KeyboardCapitalization.Sentences + ), + modifier = Modifier.fillMaxWidth().fillMaxHeight() + .border( + width = 1.dp, + color = MaterialTheme.colors.surface, + shape = RoundedCornerShape(8.dp) + ), + placeholder = { + Text( + text = "What's on your mind?", + color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) + ) + }, + colors = TextFieldDefaults + .outlinedTextFieldColors( + unfocusedBorderColor = Color.Transparent, + focusedBorderColor = Color.Transparent + ) + + ) + } + } + } +} + +@Composable +private fun CloseButton(onCancel: () -> Unit) { + Button( + onClick = { + onCancel() + }, + shape = RoundedCornerShape(20.dp), + colors = ButtonDefaults + .buttonColors( + backgroundColor = Color.Gray + ) + ) { + Text(text = "Cancel", color = Color.White) + } +} + +@Composable +private fun PostButton(onPost: () -> Unit = {}) { + Button( + onClick = { + onPost() + }, + shape = RoundedCornerShape(20.dp), + colors = ButtonDefaults + .buttonColors( + backgroundColor = MaterialTheme.colors.primary + ) + ) { + Text(text = "Post", color = Color.White) + } +} diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/NewNoteButton.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/NewNoteButton.kt new file mode 100644 index 00000000..78e251a1 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/buttons/NewNoteButton.kt @@ -0,0 +1,46 @@ +package com.vitorpamplona.amethyst.buttons + +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.ButtonDefaults +import androidx.compose.material.Icon +import androidx.compose.material.MaterialTheme +import androidx.compose.material.OutlinedButton +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.model.Account +import com.vitorpamplona.amethyst.ui.actions.NewPostView + +@Composable +fun NewNoteButton(account: Account) { + var wantsToPost by remember { + mutableStateOf(false) + } + + if (wantsToPost) + NewPostView({ wantsToPost = false }, account = account) + + OutlinedButton( + onClick = { wantsToPost = true }, + modifier = Modifier.size(55.dp), + shape = CircleShape, + colors = ButtonDefaults.outlinedButtonColors(backgroundColor = MaterialTheme.colors.primary), + contentPadding = PaddingValues(0.dp), + ) { + Icon( + painter = painterResource(R.drawable.ic_compose), + null, + modifier = Modifier.size(26.dp), + tint = Color.White + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt new file mode 100644 index 00000000..51258144 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/RichTextViewer.kt @@ -0,0 +1,115 @@ +package com.vitorpamplona.amethyst.ui.components + +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.unit.dp +import coil.compose.AsyncImage +import com.google.accompanist.flowlayout.FlowRow +import com.vitorpamplona.amethyst.model.LocalCache +import java.net.MalformedURLException +import java.net.URISyntaxException +import java.net.URL +import java.util.regex.Pattern + +val imageExtension = Pattern.compile("(.*/)*.+\\.(png|jpg|gif|bmp|jpeg|webp)$") +val noProtocolUrlValidator = Pattern.compile("^[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&//=]*)$") +val tagIndex = Pattern.compile("\\#\\[([0-9]*)\\]") + +fun isValidURL(url: String?): Boolean { + return try { + URL(url).toURI() + true + } catch (e: MalformedURLException) { + false + } catch (e: URISyntaxException) { + false + } +} + +@Composable +fun RichTextViewer(content: String, tags: List>?) { + Column(modifier = Modifier.padding(top = 5.dp)) { + // FlowRow doesn't work well with paragraphs. So we need to split them + content.split('\n').forEach { paragraph -> + + FlowRow() { + paragraph.split(' ').forEach { word: String -> + // Explicit URL + if (isValidURL(word)) { + val removedParamsFromUrl = word.split("?")[0].toLowerCase() + if (imageExtension.matcher(removedParamsFromUrl).matches()) { + AsyncImage( + model = word, + contentDescription = word, + contentScale = ContentScale.FillWidth, + modifier = Modifier + .padding(top = 4.dp) + .fillMaxWidth() + .clip(shape = RoundedCornerShape(15.dp)) + .border(1.dp, MaterialTheme.colors.onSurface.copy(alpha = 0.12f), RoundedCornerShape(15.dp)) + ) + } else { + UrlPreview(word, word) + } + } else if (noProtocolUrlValidator.matcher(word).matches()) { + UrlPreview("https://$word", word) + } else if (tagIndex.matcher(word).matches() && tags != null) { + TagLink(word, tags) + } else { + Text(text = "$word ") + } + } + } + + } + } +} + +@Composable +fun TagLink(word: String, tags: List>) { + val matcher = tagIndex.matcher(word) + + val index = try { + matcher.find() + matcher.group(1).toInt() + } catch (e: Exception) { + println("Couldn't link tag ${word}") + null + } + + if (index == null) { + return Text(text = "$word ") + } + + if (index > 0 && index < tags.size) { + if (tags[index][0] == "p") { + val user = LocalCache.users[tags[index][1]] + if (user != null) { + val innerUserState by user.live.observeAsState() + Text( + "${innerUserState?.user?.toBestDisplayName()}" + ) + } + } else if (tags[index][0] == "e") { + val note = LocalCache.notes[tags[index][1]] + if (note != null) { + val innerNoteState by note.live.observeAsState() + Text( + "${innerNoteState?.note?.idDisplayHex}" + ) + } + } else + Text(text = "$word ") + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt new file mode 100644 index 00000000..3b92ea1b --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreview.kt @@ -0,0 +1,109 @@ +package com.vitorpamplona.amethyst.ui.components + +import androidx.compose.animation.Crossfade +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.ClickableText +import androidx.compose.material.LocalTextStyle +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalUriHandler +import androidx.compose.ui.text.AnnotatedString +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import coil.compose.AsyncImage +import com.baha.url.preview.BahaUrlPreview +import com.baha.url.preview.IUrlPreviewCallback +import com.baha.url.preview.UrlInfoItem + + +@Composable +fun UrlPreview(url: String, urlText: String) { + var urlPreviewState by remember { mutableStateOf(UrlPreviewState.Loading) } + + // Doesn't use a viewModel because of viewModel reusing issues (too many UrlPreview are created). + LaunchedEffect(urlPreviewState) { + if (urlPreviewState == UrlPreviewState.Loading) { + val urlPreview = BahaUrlPreview(url, object : IUrlPreviewCallback { + override fun onComplete(urlInfo: UrlInfoItem) { + if (urlInfo.allFetchComplete() && urlInfo.url == url) + urlPreviewState = UrlPreviewState.Loaded(urlInfo) + else + urlPreviewState = UrlPreviewState.Empty + } + + override fun onFailed(throwable: Throwable) { + urlPreviewState = UrlPreviewState.Error("Error parsing preview for ${url}: ${throwable.message}") + } + }) + + urlPreview.fetchUrlPreview() + } + } + + val uri = LocalUriHandler.current + + Crossfade(targetState = urlPreviewState) { state -> + when (state) { + is UrlPreviewState.Loaded -> { + Row( + modifier = Modifier.clickable { runCatching { uri.openUri(url) } } + .clip(shape = RoundedCornerShape(15.dp)) + .border(1.dp, MaterialTheme.colors.onSurface.copy(alpha = 0.12f), RoundedCornerShape(15.dp)) + ) { + Column { + AsyncImage( + model = state.previewInfo.image, + contentDescription = "Profile Image", + contentScale = ContentScale.FillWidth, + modifier = Modifier.fillMaxWidth() + ) + + Text( + text = state.previewInfo.title, + style = MaterialTheme.typography.body2, + modifier = Modifier.fillMaxWidth().padding(start = 10.dp, end = 10.dp, top= 10.dp), + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + Text( + text = state.previewInfo.description, + style = MaterialTheme.typography.caption, + modifier = Modifier + .fillMaxWidth() + .padding(start = 10.dp, end = 10.dp, bottom = 10.dp), + color = Color.Gray, + maxLines = 3, + overflow = TextOverflow.Ellipsis + ) + } + } + } + else -> { + ClickableText( + text = AnnotatedString("$urlText "), + onClick = { runCatching { uri.openUri(url) } }, + style = LocalTextStyle.current.copy(color = MaterialTheme.colors.primary), + ) + } + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewState.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewState.kt new file mode 100644 index 00000000..1a99d16c --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/UrlPreviewState.kt @@ -0,0 +1,10 @@ +package com.vitorpamplona.amethyst.ui.components + +import com.baha.url.preview.UrlInfoItem + +sealed class UrlPreviewState { + object Loading: UrlPreviewState() + class Loaded(val previewInfo: UrlInfoItem): UrlPreviewState() + object Empty: UrlPreviewState() + class Error(val errorMessage: String): UrlPreviewState() +} diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppBottomBar.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppBottomBar.kt new file mode 100644 index 00000000..c1a7470e --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppBottomBar.kt @@ -0,0 +1,60 @@ +package com.vitorpamplona.amethyst.ui.navigation + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.size +import androidx.compose.material.BottomNavigation +import androidx.compose.material.BottomNavigationItem +import androidx.compose.material.Divider +import androidx.compose.material.Icon +import androidx.compose.material.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import androidx.navigation.NavHostController + +val bottomNavigationItems = listOf( + Route.Home, + Route.Message, + Route.Search, + Route.Notification +) + +@Composable +fun AppBottomBar(navController: NavHostController) { + val currentRoute = currentRoute(navController) + + Column() { + Divider( + thickness = 0.25.dp + ) + BottomNavigation( + modifier = Modifier, + elevation = 0.dp, + backgroundColor = MaterialTheme.colors.background + ) { + bottomNavigationItems.forEach { item -> + BottomNavigationItem( + icon = { + Icon( + painter = painterResource(id = item.icon), + null, + modifier = Modifier.size(if ("Home" == item.route) 24.dp else 20.dp), + tint = if (currentRoute == item.route) MaterialTheme.colors.primary else Color.Unspecified + ) + }, + selected = currentRoute == item.route, + onClick = { + if (currentRoute != item.route) { + navController.navigate(item.route) + } else { + // TODO: Make it scrool to the top + navController.navigate(item.route) + } + } + ) + } + } + } +} diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt new file mode 100644 index 00000000..1728df7e --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt @@ -0,0 +1,19 @@ +package com.vitorpamplona.amethyst.ui.navigation + +import androidx.compose.runtime.Composable +import androidx.navigation.NavHostController +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel + +@Composable +fun AppNavigation( + navController: NavHostController, + accountViewModel: AccountViewModel +) { + NavHost(navController, startDestination = Route.Home.route) { + Routes.forEach { + composable(it.route, content = it.buildScreen(accountViewModel)) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt new file mode 100644 index 00000000..290f880b --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt @@ -0,0 +1,154 @@ +package com.vitorpamplona.amethyst.ui.navigation + +import android.util.Log +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.Divider +import androidx.compose.material.Icon +import androidx.compose.material.IconButton +import androidx.compose.material.MaterialTheme +import androidx.compose.material.ScaffoldState +import androidx.compose.material.Text +import androidx.compose.material.TopAppBar +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ArrowBack +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import androidx.lifecycle.viewmodel.compose.viewModel +import androidx.navigation.NavHostController +import coil.compose.AsyncImage +import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.service.relays.Client +import com.vitorpamplona.amethyst.ui.screen.RelayPoolViewModel +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import kotlinx.coroutines.launch + +@Composable +fun AppTopBar(navController: NavHostController, scaffoldState: ScaffoldState, accountViewModel: AccountViewModel) { + when (currentRoute(navController)) { + Route.Profile.route, + Route.Lists.route, + Route.Topics.route, + Route.Bookmarks.route, + Route.Moments.route -> TopBarWithBackButton(navController) + else -> MainTopBar(scaffoldState, accountViewModel) + } +} + +@Composable +fun MainTopBar(scaffoldState: ScaffoldState, accountViewModel: AccountViewModel) { + val accountUserState by accountViewModel.userLiveData.observeAsState() + val accountUser = accountUserState?.user + + val relayViewModel: RelayPoolViewModel = viewModel { RelayPoolViewModel() } + val relayPoolLiveData by relayViewModel.relayPoolLiveData.observeAsState() + + val coroutineScope = rememberCoroutineScope() + + Column() { + TopAppBar( + elevation = 0.dp, + backgroundColor = Color(0xFFFFFF), + title = { + Column( + modifier = Modifier + .padding(start = 22.dp, end = 0.dp) + .fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally + ) { + IconButton( + onClick = { + Client.subscriptions.map { "${it.key} ${it.value.joinToString { it.toJson() }}" }.forEach { + Log.d("CURRENT FILTERS", it) + } + } + ) { + Icon( + painter = painterResource(R.drawable.ic_amethyst), + null, + modifier = Modifier.size(32.dp), + tint = MaterialTheme.colors.primary + ) + } + } + + }, + navigationIcon = { + IconButton( + onClick = { + coroutineScope.launch { + scaffoldState.drawerState.open() + } + }, + modifier = Modifier + ) { + AsyncImage( + model = accountUser?.profilePicture() ?: "https://robohash.org/ohno.png", + contentDescription = "Profile Image", + modifier = Modifier + .width(34.dp) + .clip(shape = CircleShape), + ) + } + }, + actions = { + Text( + relayPoolLiveData ?: "--/--", + color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) + ) + + IconButton( + onClick = {}, modifier = Modifier + ) { + Icon( + painter = painterResource(R.drawable.ic_trends), + null, + modifier = Modifier.size(24.dp), + tint = Color.Unspecified + ) + } + } + ) + Divider(thickness = 0.25.dp) + } +} + +@Composable +fun TopBarWithBackButton(navController: NavHostController) { + Column() { + TopAppBar( + elevation = 0.dp, + backgroundColor = Color(0xFFFFFF), + title = {}, + navigationIcon = { + IconButton( + onClick = { + navController.popBackStack() + }, + modifier = Modifier + ) { + Icon( + imageVector = Icons.Filled.ArrowBack, + null, + modifier = Modifier.size(28.dp), + tint = MaterialTheme.colors.primary + ) + } + }, + actions = {} + ) + Divider(thickness = 0.25.dp) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt new file mode 100644 index 00000000..a7cb8697 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt @@ -0,0 +1,201 @@ +package com.vitorpamplona.amethyst.ui.navigation + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.Divider +import androidx.compose.material.Icon +import androidx.compose.material.IconButton +import androidx.compose.material.MaterialTheme +import androidx.compose.material.ScaffoldState +import androidx.compose.material.Surface +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.font.FontWeight.Companion.W500 +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavHostController +import coil.compose.AsyncImage +import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.model.User +import com.vitorpamplona.amethyst.ui.screen.AccountStateViewModel +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import kotlinx.coroutines.launch + +val bottomNavigations = listOf( + Route.Profile, + Route.Lists, + //Route.Topics, + Route.Bookmarks, + //Route.Moments +) + +@Composable +fun DrawerContent(navController: NavHostController, + scaffoldState: ScaffoldState, + accountViewModel: AccountViewModel, + accountStateViewModel: AccountStateViewModel) { + + val accountUserState by accountViewModel.userLiveData.observeAsState() + val accountUser = accountUserState?.user + + Surface( + modifier = Modifier.fillMaxWidth(), + color = MaterialTheme.colors.background + ) { + Column() { + Box { + Image( + painter = painterResource(R.drawable.profile_banner), + contentDescription = "Profile Banner", + contentScale = ContentScale.FillWidth, + modifier = Modifier.fillMaxWidth() + ) + + ProfileContent( + accountUser, + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 25.dp) + .padding(top = 125.dp) + ) + } + Divider( + thickness = 0.25.dp, + modifier = Modifier.padding(top = 20.dp) + ) + ListContent( + navController, + scaffoldState, + modifier = Modifier + .fillMaxWidth() + .weight(1F), + accountStateViewModel + ) + } + } +} + +@Composable +fun ProfileContent(accountUser: User?, modifier: Modifier = Modifier) { + Column(modifier = modifier) { + AsyncImage( + model = accountUser?.profilePicture() ?: "https://robohash.org/ohno.png", + contentDescription = "Profile Image", + modifier = Modifier + .width(100.dp) + .clip(shape = CircleShape) + .border(3.dp, MaterialTheme.colors.background, CircleShape) + .background(MaterialTheme.colors.background) + ) + Text( + accountUser?.bestDisplayName() ?: "", + modifier = Modifier.padding(top = 7.dp), + fontWeight = FontWeight.Bold, + fontSize = 18.sp + ) + Text(" @${accountUser?.bestUsername()}", color = Color.LightGray) + Row(modifier = Modifier.padding(top = 15.dp)) { + Row() { + Text("${accountUser?.follows?.size}", fontWeight = FontWeight.Bold) + Text(" Following") + } + Row(modifier = Modifier.padding(start = 10.dp)) { + Text("${accountUser?.follower ?: "--"}", fontWeight = FontWeight.Bold) + Text(" Followers") + } + } + } +} + +@Composable +fun ListContent( + navController: NavHostController, + scaffoldState: ScaffoldState, + modifier: Modifier, + accountViewModel: AccountStateViewModel +) { + Column( + modifier = modifier + ) { + LazyColumn() { + items(items = bottomNavigations) { + NavigationRow(navController, scaffoldState, it) + } + item { + Divider( + modifier = Modifier.padding(vertical = 15.dp), + thickness = 0.25.dp + ) + Column(modifier = modifier.padding(horizontal = 25.dp)) { + Text( + text = "Settings", + fontSize = 18.sp, + fontWeight = W500 + ) + Row( + modifier = Modifier.clickable(onClick = { accountViewModel.logOff() }), + ) { + Text( + text = "Log out", + modifier = Modifier.padding(vertical = 15.dp), + fontSize = 18.sp, + fontWeight = W500 + ) + } + } + } + } + } +} + +@Composable +fun NavigationRow(navController: NavHostController, scaffoldState: ScaffoldState, route: Route) { + val coroutineScope = rememberCoroutineScope() + val currentRoute = currentRoute(navController) + Row( + modifier = Modifier + .padding(vertical = 15.dp, horizontal = 25.dp) + .clickable(onClick = { + if (currentRoute != route.route) { + navController.navigate(route.route) + } + coroutineScope.launch { + scaffoldState.drawerState.close() + } + }), + verticalAlignment = Alignment.CenterVertically + ) { + Icon( + painter = painterResource(route.icon), null, + modifier = Modifier.size(22.dp), + tint = MaterialTheme.colors.primary + ) + Text( + modifier = Modifier.padding(start = 16.dp), + text = route.route, + fontSize = 18.sp, + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/Routes.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/Routes.kt new file mode 100644 index 00000000..a347d2ef --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/Routes.kt @@ -0,0 +1,52 @@ +package com.vitorpamplona.amethyst.ui.navigation + +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.navigation.NavBackStackEntry +import androidx.navigation.NavHostController +import androidx.navigation.compose.currentBackStackEntryAsState +import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.ui.screen.HomeScreen +import com.vitorpamplona.amethyst.ui.screen.MessageScreen +import com.vitorpamplona.amethyst.ui.screen.NotificationScreen +import com.vitorpamplona.amethyst.ui.screen.ProfileScreen +import com.vitorpamplona.amethyst.ui.screen.SearchScreen +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel + + +sealed class Route( + val route: String, + val icon: Int, + val buildScreen: (AccountViewModel) -> @Composable (NavBackStackEntry) -> Unit +) { + object Home : Route("Home", R.drawable.ic_home, { acc -> { _ -> HomeScreen(acc) } }) + object Search : Route("Search", R.drawable.ic_search, { acc -> { _ -> SearchScreen(acc) }}) + object Notification : Route("Notification", R.drawable.ic_notifications, { acc -> { _ -> NotificationScreen(acc) }}) + object Message : Route("Message", R.drawable.ic_dm, { acc -> { _ -> MessageScreen(acc) }}) + object Profile : Route("Profile", R.drawable.ic_profile, { acc -> { _ -> ProfileScreen(acc) }}) + object Lists : Route("Lists", R.drawable.ic_lists, { acc -> { _ -> ProfileScreen(acc) }}) + object Topics : Route("Topics", R.drawable.ic_topics, { acc -> { _ -> ProfileScreen(acc) }}) + object Bookmarks : Route("Bookmarks", R.drawable.ic_bookmarks, { acc -> { _ -> ProfileScreen(acc) }}) + object Moments : Route("Moments", R.drawable.ic_moments, { acc -> { _ -> ProfileScreen(acc) }}) +} + +val Routes = listOf( + // bottom + Route.Home, + Route.Message, + Route.Search, + Route.Notification, + + //drawer + Route.Profile, + Route.Lists, + Route.Topics, + Route.Bookmarks, + Route.Moments +) + +@Composable +public fun currentRoute(navController: NavHostController): String? { + val navBackStackEntry by navController.currentBackStackEntryAsState() + return navBackStackEntry?.destination?.route +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BlankNote.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BlankNote.kt new file mode 100644 index 00000000..053ed149 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BlankNote.kt @@ -0,0 +1,42 @@ +package com.vitorpamplona.amethyst.ui.note + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.padding +import androidx.compose.material.Divider +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp + +@Composable +fun BlankNote(modifier: Modifier = Modifier, isQuote: Boolean) { + Column(modifier = modifier) { + Row(modifier = Modifier.padding(horizontal = if (!isQuote) 12.dp else 6.dp)) { + Column(modifier = Modifier.padding(start = if (!isQuote) 10.dp else 5.dp)) { + Row( + modifier = Modifier.padding( + start = 20.dp, + end = 20.dp, + bottom = 25.dp, + top = 15.dp + ), + verticalAlignment = Alignment.CenterVertically + ) { + Text( + text = "Referenced event not found", + modifier = Modifier.padding(30.dp), + color = Color.Gray, + ) + } + + Divider( + modifier = Modifier.padding(vertical = 10.dp), + thickness = 0.25.dp + ) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BoostSetCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BoostSetCompose.kt new file mode 100644 index 00000000..dea521c0 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BoostSetCompose.kt @@ -0,0 +1,92 @@ +package com.vitorpamplona.amethyst.ui.note + +import android.text.format.DateUtils +import android.text.format.DateUtils.getRelativeTimeSpanString +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.Divider +import androidx.compose.material.Icon +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import coil.compose.AsyncImage +import com.google.accompanist.flowlayout.FlowRow +import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.service.model.ReactionEvent +import com.vitorpamplona.amethyst.service.model.RepostEvent +import com.vitorpamplona.amethyst.ui.components.RichTextViewer +import com.vitorpamplona.amethyst.ui.screen.BoostSetCard +import com.vitorpamplona.amethyst.ui.screen.LikeSetCard +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import nostr.postr.events.TextNoteEvent + +@Composable +fun BoostSetCompose(likeSetCard: BoostSetCard, modifier: Modifier = Modifier, isInnerNote: Boolean = false, accountViewModel: AccountViewModel) { + val noteState by likeSetCard.note.live.observeAsState() + val note = noteState?.note + + if (note?.event == null) { + BlankNote(modifier, isInnerNote) + } else { + Column(modifier = modifier) { + Row(modifier = Modifier.padding(horizontal = if (!isInnerNote) 12.dp else 0.dp)) { + + // Draws the like picture outside the boosted card. + if (!isInnerNote) { + Box(modifier = Modifier + .width(55.dp) + .padding(0.dp)) { + Icon( + painter = painterResource(R.drawable.ic_retweeted), + null, + modifier = Modifier.size(16.dp).align(Alignment.TopEnd), + tint = Color.Unspecified + ) + } + } + + Column(modifier = Modifier.padding(start = if (!isInnerNote) 10.dp else 0.dp)) { + FlowRow() { + likeSetCard.boostEvents.forEach { + val cardNoteState by it.live.observeAsState() + val cardNote = cardNoteState?.note + + if (cardNote?.author != null) { + val userState by cardNote.author!!.live.observeAsState() + + AsyncImage( + model = userState?.user?.profilePicture(), + contentDescription = "Profile Image", + modifier = Modifier + .width(35.dp) + .height(35.dp) + .clip(shape = CircleShape) + ) + } + } + } + + NoteCompose(note, modifier = Modifier.padding(top = 5.dp), isInnerNote = true, accountViewModel = accountViewModel) + } + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/LikeSetCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/LikeSetCompose.kt new file mode 100644 index 00000000..870821df --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/LikeSetCompose.kt @@ -0,0 +1,91 @@ +package com.vitorpamplona.amethyst.ui.note + +import android.text.format.DateUtils +import android.text.format.DateUtils.getRelativeTimeSpanString +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.Divider +import androidx.compose.material.Icon +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import coil.compose.AsyncImage +import com.google.accompanist.flowlayout.FlowRow +import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.service.model.ReactionEvent +import com.vitorpamplona.amethyst.service.model.RepostEvent +import com.vitorpamplona.amethyst.ui.components.RichTextViewer +import com.vitorpamplona.amethyst.ui.screen.LikeSetCard +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import nostr.postr.events.TextNoteEvent + +@Composable +fun LikeSetCompose(likeSetCard: LikeSetCard, modifier: Modifier = Modifier, isInnerNote: Boolean = false, accountViewModel: AccountViewModel) { + val noteState by likeSetCard.note.live.observeAsState() + val note = noteState?.note + + if (note?.event == null) { + BlankNote(modifier, isInnerNote) + } else { + Column(modifier = modifier) { + Row(modifier = Modifier.padding(horizontal = if (!isInnerNote) 12.dp else 0.dp)) { + + // Draws the like picture outside the boosted card. + if (!isInnerNote) { + Box(modifier = Modifier + .width(55.dp) + .padding(0.dp)) { + Icon( + painter = painterResource(R.drawable.ic_liked), + null, + modifier = Modifier.size(16.dp).align(Alignment.TopEnd), + tint = Color.Unspecified + ) + } + } + + Column(modifier = Modifier.padding(start = if (!isInnerNote) 10.dp else 0.dp)) { + FlowRow() { + likeSetCard.likeEvents.forEach { + val cardNoteState by it.live.observeAsState() + val cardNote = cardNoteState?.note + + if (cardNote?.author != null) { + val userState by cardNote.author!!.live.observeAsState() + + AsyncImage( + model = userState?.user?.profilePicture(), + contentDescription = "Profile Image", + modifier = Modifier + .width(35.dp) + .height(35.dp) + .clip(shape = CircleShape) + ) + } + } + } + + NoteCompose(note, modifier = Modifier.padding(top = 5.dp), isInnerNote = true, accountViewModel = accountViewModel) + } + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/Note.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/Note.kt new file mode 100644 index 00000000..301b157a --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/Note.kt @@ -0,0 +1,132 @@ +package com.vitorpamplona.amethyst.ui.note + +import android.text.format.DateUtils +import android.text.format.DateUtils.getRelativeTimeSpanString +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.Divider +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import coil.compose.AsyncImage +import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.service.model.ReactionEvent +import com.vitorpamplona.amethyst.service.model.RepostEvent +import com.vitorpamplona.amethyst.ui.components.RichTextViewer +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import nostr.postr.events.TextNoteEvent + +@Composable +fun NoteCompose(baseNote: Note, modifier: Modifier = Modifier, isInnerNote: Boolean = false, accountViewModel: AccountViewModel) { + val noteState by baseNote.live.observeAsState() + val note = noteState?.note + + if (note?.event == null) { + BlankNote(modifier, isInnerNote) + } else { + val authorState by note.author!!.live.observeAsState() + val author = authorState?.user + + Column(modifier = modifier) { + Row(modifier = Modifier.padding(horizontal = if (!isInnerNote) 12.dp else 0.dp)) { + + // Draws the boosted picture outside the boosted card. + if (!isInnerNote) { + Box(modifier = Modifier.width(55.dp).padding(0.dp)) { + AsyncImage( + model = author?.profilePicture(), + contentDescription = "Profile Image", + modifier = Modifier + .width(55.dp) + .clip(shape = CircleShape) + ) + + // boosted picture + val boostedPosts = note.replyTo + if (note.event is RepostEvent && boostedPosts != null && boostedPosts.isNotEmpty()) { + AsyncImage( + model = boostedPosts[0].author?.profilePicture(), + contentDescription = "Profile Image", + modifier = Modifier + .width(35.dp) + .clip(shape = CircleShape) + .align(Alignment.BottomEnd) + .background(MaterialTheme.colors.background) + .border(2.dp, MaterialTheme.colors.primary, CircleShape) + ) + } + } + } + + Column(modifier = Modifier.padding(start = if (!isInnerNote) 10.dp else 0.dp)) { + Row(verticalAlignment = Alignment.CenterVertically) { + if (author != null) + UserDisplay(author) + + if (note.event !is RepostEvent) { + Text( + " " + timeAgo(note.event?.createdAt), + color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) + ) + } else { + Text( + " boosted", + fontWeight = FontWeight.Bold, + color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) + ) + } + } + + if (note.event is TextNoteEvent && (note.replyTo != null || note.mentions != null)) { + ReplyInformation(note.replyTo, note.mentions) + } + + if (note.event is ReactionEvent || note.event is RepostEvent) { + note.replyTo?.mapIndexed { index, note -> + NoteCompose( + note, + modifier = Modifier.padding(top = 5.dp), + isInnerNote = true, + accountViewModel = accountViewModel + ) + } + + // Reposts have trash in their contents. + if (note.event is ReactionEvent) { + val refactorReactionText = + if (note.event?.content == "+") "❤" else note.event?.content ?: " " + + Text( + text = refactorReactionText + ) + } + } else { + val eventContent = note.event?.content + if (eventContent != null) + RichTextViewer(eventContent, note.event?.tags) + + ReactionsRowState(note, accountViewModel) + + Divider( + modifier = Modifier.padding(vertical = 10.dp), + thickness = 0.25.dp + ) + } + } + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/PubKeyFormatter.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/PubKeyFormatter.kt new file mode 100644 index 00000000..67a100bc --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/PubKeyFormatter.kt @@ -0,0 +1,12 @@ +package com.vitorpamplona.amethyst.ui.note + +import nostr.postr.toHex + +fun ByteArray.toDisplayHex(): String { + return toHex().toDisplayHex() +} + +fun String.toDisplayHex(): String { + return replaceRange(6, length-6, ":") +} + diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt new file mode 100644 index 00000000..a7797453 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt @@ -0,0 +1,141 @@ +package com.vitorpamplona.amethyst.ui.note + +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.material.Icon +import androidx.compose.material.IconButton +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.model.Account +import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.ui.actions.NewPostView + +@Composable +fun ReactionsRow(note: Note, account: Account, boost: (Note) -> Unit, reactTo: (Note) -> Unit) { + val grayTint = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) + + var wantsToReplyTo by remember { + mutableStateOf(null) + } + + if (wantsToReplyTo != null) + NewPostView({ wantsToReplyTo = null }, wantsToReplyTo, account) + + Row(modifier = Modifier.padding(top = 8.dp)) { + Row(verticalAlignment = Alignment.CenterVertically) { + IconButton( + modifier = Modifier.then(Modifier.size(24.dp)), + onClick = { if (account.isWriteable()) wantsToReplyTo = note } + ) { + Icon( + painter = painterResource(R.drawable.ic_comment), + null, + modifier = Modifier.size(15.dp), + tint = grayTint, + ) + } + + Text( + " ${showCount(note.replies?.size)}", + fontSize = 14.sp, + color = grayTint + ) + } + Row( + modifier = Modifier.padding(start = 40.dp), + verticalAlignment = Alignment.CenterVertically + ) { + IconButton( + modifier = Modifier.then(Modifier.size(24.dp)), + onClick = { if (account.isWriteable()) boost(note) } + ) { + if (note.isBoostedBy(account.userProfile())) { + Icon( + painter = painterResource(R.drawable.ic_retweeted), + null, + modifier = Modifier.size(20.dp), + tint = Color.Unspecified + ) + } else { + Icon( + painter = painterResource(R.drawable.ic_retweet), + null, + modifier = Modifier.size(20.dp), + tint = grayTint + ) + } + } + + Text( + " ${showCount(note.boosts?.size)}", + fontSize = 14.sp, + color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) + ) + } + Row( + modifier = Modifier.padding(start = 40.dp), + verticalAlignment = Alignment.CenterVertically + ) { + IconButton( + modifier = Modifier.then(Modifier.size(24.dp)), + onClick = { if (account.isWriteable()) reactTo(note) } + ) { + if (note.isReactedBy(account.userProfile())) { + Icon( + painter = painterResource(R.drawable.ic_liked), + null, + modifier = Modifier.size(16.dp), + tint = Color.Unspecified + ) + } else { + Icon( + painter = painterResource(R.drawable.ic_like), + null, + modifier = Modifier.size(16.dp), + tint = grayTint + ) + } + } + + Text( + " ${showCount(note.reactions?.size)}", + fontSize = 14.sp, + color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) + ) + } + Row( + modifier = Modifier.padding(start = 40.dp), + verticalAlignment = Alignment.CenterVertically + ) { + IconButton( + modifier = Modifier.then(Modifier.size(24.dp)), + onClick = { } + ) { + Icon( + painter = painterResource(R.drawable.ic_share), + null, + modifier = Modifier.size(16.dp), + tint = grayTint + ) + } + } + } +} + +fun showCount(size: Int?): String { + if (size == null) return " " + return if (size == 0) return " " else "$size" +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRowState.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRowState.kt new file mode 100644 index 00000000..1bcec3b3 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRowState.kt @@ -0,0 +1,20 @@ +package com.vitorpamplona.amethyst.ui.note + +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.livedata.observeAsState +import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel + +@Composable +fun ReactionsRowState(baseNote: Note, accountViewModel: AccountViewModel) { + val accountState by accountViewModel.accountLiveData.observeAsState() + val account = accountState?.account + + val noteState by baseNote.live.observeAsState() + val note = noteState?.note + + if (account == null || note == null) return + + ReactionsRow(note, account, accountViewModel::boost, accountViewModel::reactTo) +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReplyInformation.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReplyInformation.kt new file mode 100644 index 00000000..273e46b5 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReplyInformation.kt @@ -0,0 +1,63 @@ +package com.vitorpamplona.amethyst.ui.note + +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.ui.unit.sp +import com.google.accompanist.flowlayout.FlowRow +import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.model.User + +@Composable +fun ReplyInformation(replyTo: MutableList?, mentions: List?) { + FlowRow() { + /* + if (replyTo != null && replyTo.isNotEmpty()) { + Text( + " in reply to ", + fontSize = 13.sp, + color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) + ) + replyTo.toSet().forEachIndexed { idx, note -> + val innerNoteState by note.live.observeAsState() + Text( + "${innerNoteState?.note?.idDisplayHex}${if (idx < replyTo.size - 1) ", " else ""}", + fontSize = 13.sp, + color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) + ) + } + } + */ + if (mentions != null && mentions.isNotEmpty()) { + Text( + "replying to ", + fontSize = 13.sp, + color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) + ) + mentions.toSet().forEachIndexed { idx, user -> + val innerUserState by user.live.observeAsState() + Text( + "${innerUserState?.user?.toBestDisplayName()}", + fontSize = 13.sp, + color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) + ) + + if (idx < mentions.size - 2) { + Text( + ", ", + fontSize = 13.sp, + color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) + ) + } else if (idx < mentions.size - 1) { + Text( + " and ", + fontSize = 13.sp, + color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) + ) + } + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/TimeAgoFormatter.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/TimeAgoFormatter.kt new file mode 100644 index 00000000..ed641900 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/TimeAgoFormatter.kt @@ -0,0 +1,18 @@ +package com.vitorpamplona.amethyst.ui.note + +import android.text.format.DateUtils + +fun timeAgo(mills: Long?): String { + if (mills == null) return " " + + var humanReadable = DateUtils.getRelativeTimeSpanString( + mills * 1000, + System.currentTimeMillis(), + DateUtils.MINUTE_IN_MILLIS, + DateUtils.FORMAT_ABBREV_ALL + ).toString() + if (humanReadable.startsWith("In") || humanReadable.startsWith("0")) { + humanReadable = "now"; + } + return humanReadable +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UserDisplay.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UserDisplay.kt new file mode 100644 index 00000000..6cfc378b --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UserDisplay.kt @@ -0,0 +1,26 @@ +package com.vitorpamplona.amethyst.ui.note + +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.text.font.FontWeight +import com.vitorpamplona.amethyst.model.User + +@Composable +fun UserDisplay(user: User) { + if (user.bestUsername() != null || user.bestDisplayName() != null) { + Text( + user.bestDisplayName() ?: "", + fontWeight = FontWeight.Bold, + ) + Text( + "@${(user.bestUsername() ?: "")}", + color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f), + ) + } else { + Text( + user.pubkeyDisplayHex, + fontWeight = FontWeight.Bold, + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountScreen.kt new file mode 100644 index 00000000..71310415 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountScreen.kt @@ -0,0 +1,32 @@ +package com.vitorpamplona.amethyst.ui.screen + +import androidx.compose.animation.Crossfade +import androidx.compose.foundation.layout.Column +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi +import androidx.lifecycle.compose.collectAsStateWithLifecycle +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel + +@OptIn(ExperimentalLifecycleComposeApi::class) +@Composable +fun AccountScreen(accountStateViewModel: AccountStateViewModel) { + val accountState by accountStateViewModel.accountContent.collectAsStateWithLifecycle() + + Column() { + Crossfade(targetState = accountState) { state -> + when (state) { + is AccountState.LoggedOff -> { + LoginPage(accountStateViewModel) + } + is AccountState.LoggedIn -> { + MainScreen(AccountViewModel(state.account), accountStateViewModel) + } + is AccountState.LoggedInViewOnly -> { + MainScreen(AccountViewModel(state.account), accountStateViewModel) + } + } + } + } +} + diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountState.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountState.kt new file mode 100644 index 00000000..df6488b0 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountState.kt @@ -0,0 +1,9 @@ +package com.vitorpamplona.amethyst.ui.screen + +import com.vitorpamplona.amethyst.model.Account + +sealed class AccountState { + object LoggedOff: AccountState() + class LoggedInViewOnly(val account: Account): AccountState() + class LoggedIn(val account: Account): AccountState() +} diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt new file mode 100644 index 00000000..e09385e0 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/AccountStateViewModel.kt @@ -0,0 +1,106 @@ +package com.vitorpamplona.amethyst.ui.screen + +import androidx.lifecycle.ViewModel +import androidx.security.crypto.EncryptedSharedPreferences +import com.vitorpamplona.amethyst.model.Account +import com.vitorpamplona.amethyst.model.toByteArray +import com.vitorpamplona.amethyst.service.NostrAccountDataSource +import com.vitorpamplona.amethyst.service.NostrGlobalDataSource +import com.vitorpamplona.amethyst.service.NostrHomeDataSource +import com.vitorpamplona.amethyst.service.NostrNotificationDataSource +import com.vitorpamplona.amethyst.service.NostrSingleEventDataSource +import com.vitorpamplona.amethyst.service.NostrSingleUserDataSource +import fr.acinq.secp256k1.Hex +import java.util.regex.Pattern +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import nostr.postr.Persona +import nostr.postr.bechToBytes +import nostr.postr.toHex + +class AccountStateViewModel(private val encryptedPreferences: EncryptedSharedPreferences): ViewModel() { + private val _accountContent = MutableStateFlow(AccountState.LoggedOff) + val accountContent = _accountContent.asStateFlow() + + init { + // pulls account from storage. + loadFromEncryptedStorage()?.let { login(it) } + } + + fun login(key: String) { + val pattern = Pattern.compile(".+@.+\\.[a-z]+") + + login( + if (key.startsWith("nsec")) { + Persona(privKey = key.bechToBytes()) + } else if (key.startsWith("npub")) { + Persona(pubKey = key.bechToBytes()) + } else if (pattern.matcher(key).matches()) { + // Evaluate NIP-5 + Persona() + } else { + Persona(Hex.decode(key)) + } + ) + } + + fun login(person: Persona) { + val loggedIn = Account(person) + + if (person.privKey != null) + _accountContent.update { AccountState.LoggedIn ( loggedIn ) } + else + _accountContent.update { AccountState.LoggedInViewOnly ( Account(person) ) } + + saveToEncryptedStorage(person) + + NostrAccountDataSource.account = loggedIn + NostrHomeDataSource.account = loggedIn + NostrNotificationDataSource.account = loggedIn + + NostrAccountDataSource.start() + NostrGlobalDataSource.start() + NostrHomeDataSource.start() + NostrNotificationDataSource.start() + NostrSingleEventDataSource.start() + NostrSingleUserDataSource.start() + } + + fun newKey() { + login(Persona()) + } + + fun logOff() { + _accountContent.update { AccountState.LoggedOff } + + clearEncryptedStorage() + } + + fun clearEncryptedStorage() { + encryptedPreferences.edit().apply { + remove("nostr_privkey") + remove("nostr_pubkey") + }.apply() + } + + fun saveToEncryptedStorage(login: Persona) { + encryptedPreferences.edit().apply { + login.privKey?.let { putString("nostr_privkey", it.toHex()) } + login.pubKey.let { putString("nostr_pubkey", it.toHex()) } + }.apply() + } + + fun loadFromEncryptedStorage(): Persona? { + encryptedPreferences.apply { + val privKey = getString("nostr_privkey", null) + val pubKey = getString("nostr_pubkey", null) + + if (pubKey != null) { + return Persona(privKey = privKey?.toByteArray(), pubKey = pubKey.toByteArray()) + } else { + return null + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedState.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedState.kt new file mode 100644 index 00000000..665838e7 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedState.kt @@ -0,0 +1,36 @@ +package com.vitorpamplona.amethyst.ui.screen + +import com.vitorpamplona.amethyst.model.Note + +abstract class Card() { + abstract fun createdAt(): Long +} + +class NoteCard(val note: Note): Card() { + override fun createdAt(): Long { + return note.event?.createdAt ?: 0 + } +} + +class LikeSetCard(val note: Note, val likeEvents: List): Card() { + val createdAt = likeEvents.maxOf { it.event?.createdAt ?: 0 } + + override fun createdAt(): Long { + return createdAt + } +} + +class BoostSetCard(val note: Note, val boostEvents: List): Card() { + val createdAt = boostEvents.maxOf { it.event?.createdAt ?: 0 } + + override fun createdAt(): Long { + return createdAt + } +} + +sealed class CardFeedState { + object Loading: CardFeedState() + class Loaded(val feed: List): CardFeedState() + object Empty: CardFeedState() + class FeedError(val errorMessage: String): CardFeedState() +} diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt new file mode 100644 index 00000000..b4d2eaa1 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt @@ -0,0 +1,93 @@ +package com.vitorpamplona.amethyst.ui.screen + +import androidx.compose.animation.Crossfade +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.foundation.lazy.rememberLazyListState +import androidx.compose.material.Button +import androidx.compose.material.OutlinedButton +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi +import androidx.lifecycle.compose.collectAsStateWithLifecycle +import com.google.accompanist.swiperefresh.SwipeRefresh +import com.google.accompanist.swiperefresh.rememberSwipeRefreshState +import com.vitorpamplona.amethyst.ui.note.BoostSetCompose +import com.vitorpamplona.amethyst.ui.note.LikeSetCompose +import com.vitorpamplona.amethyst.ui.note.NoteCompose +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel + +@OptIn(ExperimentalLifecycleComposeApi::class) +@Composable +fun CardFeedView(viewModel: CardFeedViewModel, accountViewModel: AccountViewModel) { + val feedState by viewModel.feedContent.collectAsStateWithLifecycle() + + var isRefreshing by remember { mutableStateOf(false) } + val swipeRefreshState = rememberSwipeRefreshState(isRefreshing) + + val listState = rememberLazyListState() + + LaunchedEffect(isRefreshing) { + if (isRefreshing) { + viewModel.refresh() + isRefreshing = false + } + } + + SwipeRefresh( + state = swipeRefreshState, + onRefresh = { + isRefreshing = true + }, + ) { + Column() { + Crossfade(targetState = feedState) { state -> + when (state) { + is CardFeedState.Empty -> { + FeedEmpty { + isRefreshing = true + } + } + is CardFeedState.FeedError -> { + FeedError(state.errorMessage) { + isRefreshing = true + } + } + is CardFeedState.Loaded -> { + LazyColumn( + contentPadding = PaddingValues( + top = 10.dp, + bottom = 10.dp + ), + state = listState + ) { + itemsIndexed(state.feed) { index, item -> + when (item) { + is NoteCard -> NoteCompose(item.note, isInnerNote = false, accountViewModel = accountViewModel) + is LikeSetCard -> LikeSetCompose(item, isInnerNote = false, accountViewModel = accountViewModel) + is BoostSetCard -> BoostSetCompose(item, isInnerNote = false, accountViewModel = accountViewModel) + } + } + } + } + CardFeedState.Loading -> { + LoadingFeed() + } + } + } + } + } +} diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt new file mode 100644 index 00000000..1d52992f --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt @@ -0,0 +1,107 @@ +package com.vitorpamplona.amethyst.ui.screen + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.vitorpamplona.amethyst.model.LocalCache +import com.vitorpamplona.amethyst.model.LocalCacheState +import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.service.NostrDataSource +import com.vitorpamplona.amethyst.service.model.ReactionEvent +import com.vitorpamplona.amethyst.service.model.RepostEvent +import kotlinx.coroutines.cancel +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch + +class CardFeedViewModel(val dataSource: NostrDataSource): ViewModel() { + private val _feedContent = MutableStateFlow(CardFeedState.Loading) + val feedContent = _feedContent.asStateFlow() + + private var lastNotes: List? = null + + fun refresh() { + // For some reason, view Model Scope doesn't call + viewModelScope.launch { + refreshSuspend() + } + } + + fun refreshSuspend() { + val notes = dataSource.loadTop() + + val lastNotesCopy = lastNotes + + val oldNotesState = feedContent.value + if (lastNotesCopy != null && oldNotesState is CardFeedState.Loaded) { + val newCards = convertToCard(notes.minus(lastNotesCopy)) + if (newCards.isNotEmpty()) { + lastNotes = notes + updateFeed((oldNotesState.feed + newCards).sortedBy { it.createdAt() }.reversed()) + } + } else { + val cards = convertToCard(notes) + lastNotes = notes + updateFeed(cards) + } + } + + private fun convertToCard(notes: List): List { + val reactionsPerEvent = mutableMapOf>() + notes + .filter { it.event is ReactionEvent } + .forEach { + val reactedPost = it.replyTo?.last() + if (reactedPost != null) + reactionsPerEvent.getOrPut(reactedPost, { mutableListOf() }).add(it) + } + + val reactionCards = reactionsPerEvent.map { LikeSetCard(it.key, it.value) } + + val boostsPerEvent = mutableMapOf>() + notes + .filter { it.event is RepostEvent } + .forEach { + val boostedPost = it.replyTo?.last() + if (boostedPost != null) + boostsPerEvent.getOrPut(boostedPost, { mutableListOf() }).add(it) + } + + val boostCards = boostsPerEvent.map { BoostSetCard(it.key, it.value) } + + val textNoteCards = notes.filter { it.event !is ReactionEvent && it.event !is RepostEvent }.map { NoteCard(it) } + + return (reactionCards + boostCards + textNoteCards).sortedBy { it.createdAt() }.reversed() + } + + fun updateFeed(notes: List) { + if (notes.isEmpty()) { + _feedContent.update { CardFeedState.Empty } + } else { + _feedContent.update { CardFeedState.Loaded(notes) } + } + } + + fun refreshCurrentList() { + val state = feedContent.value + if (state is CardFeedState.Loaded) { + _feedContent.update { CardFeedState.Loaded(state.feed) } + } + } + + private val cacheListener: (LocalCacheState) -> Unit = { + refresh() + } + + init { + LocalCache.live.observeForever(cacheListener) + } + + override fun onCleared() { + LocalCache.live.removeObserver(cacheListener) + + dataSource.stop() + viewModelScope.cancel() + super.onCleared() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedState.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedState.kt new file mode 100644 index 00000000..fe3361e7 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedState.kt @@ -0,0 +1,11 @@ +package com.vitorpamplona.amethyst.ui.screen + +import com.vitorpamplona.amethyst.model.Note + + +sealed class FeedState { + object Loading : FeedState() + class Loaded(val feed: List) : FeedState() + object Empty : FeedState() + class FeedError(val errorMessage: String) : FeedState() +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt new file mode 100644 index 00000000..87fdf99b --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt @@ -0,0 +1,188 @@ +package com.vitorpamplona.amethyst.ui.screen + +import androidx.compose.animation.Crossfade +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.foundation.lazy.rememberLazyListState +import androidx.compose.material.Button +import androidx.compose.material.OutlinedButton +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi +import androidx.lifecycle.compose.collectAsStateWithLifecycle +import com.google.accompanist.swiperefresh.SwipeRefresh +import com.google.accompanist.swiperefresh.rememberSwipeRefreshState +import com.vitorpamplona.amethyst.ui.note.NoteCompose +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel + +@OptIn(ExperimentalLifecycleComposeApi::class) +@Composable +fun FeedView(viewModel: FeedViewModel, accountViewModel: AccountViewModel) { + val feedState by viewModel.feedContent.collectAsStateWithLifecycle() + + var isRefreshing by remember { mutableStateOf(false) } + val swipeRefreshState = rememberSwipeRefreshState(isRefreshing) + + val listState = rememberLazyListState() + + LaunchedEffect(isRefreshing) { + if (isRefreshing) { + viewModel.refresh() + isRefreshing = false + } + } + + SwipeRefresh( + state = swipeRefreshState, + onRefresh = { + isRefreshing = true + }, + ) { + Column() { + Crossfade(targetState = feedState) { state -> + when (state) { + is FeedState.Empty -> { + FeedEmpty { + isRefreshing = true + } + } + is FeedState.FeedError -> { + FeedError(state.errorMessage) { + isRefreshing = true + } + } + is FeedState.Loaded -> { + LazyColumn( + contentPadding = PaddingValues( + top = 10.dp, + bottom = 10.dp + ), + state = listState + ) { + itemsIndexed(state.feed, key = { _, item -> item.idHex }) { index, item -> + NoteCompose(item, isInnerNote = false, accountViewModel = accountViewModel) + } + } + } + FeedState.Loading -> { + LoadingFeed() + } + } + } + } + } +} + +@Composable +fun LoadingFeed() { + Column( + Modifier + .fillMaxHeight() + .fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + ) { + Text("Loading feed") + } +} + +@Composable +fun FeedError(errorMessage: String, onRefresh: () -> Unit) { + Column( + Modifier + .fillMaxHeight() + .fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + ) { + Text("Error loading replies: $errorMessage") + Button( + modifier = Modifier.align(Alignment.CenterHorizontally), + onClick = onRefresh + ) { + Text(text = "Try again") + } + } +} + +@Composable +fun FeedEmpty(onRefresh: () -> Unit) { + Column( + Modifier + .fillMaxHeight() + .fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + ) { + Text("Feed is empty.") + OutlinedButton(onClick = onRefresh) { + Text(text = "Refresh") + } + } +} + + +// Bosted code to be deleted: + +/* + + Boosted By: removed because it was ugly + + if (item.event is RepostEvent) { + Row( + modifier = Modifier.padding( + start = 12.dp, + end = 12.dp, + bottom = 8.dp + ), + verticalAlignment = Alignment.CenterVertically + ) { + Icon( + painter = painterResource(R.drawable.ic_retweet), + null, + modifier = Modifier.size(20.dp), + tint = Color.Gray + ) + Text( + text = "Boosted by ${item.author.toBestDisplayName()}", + modifier = Modifier.padding(start = 10.dp), + fontWeight = FontWeight.Bold, + color = Color.Gray, + ) + } + val refNote = item.replyTo.firstOrNull() + if (refNote != null) { + NoteCompose(index, refNote) + } else { + Row( + modifier = Modifier.padding( + start = 40.dp, + end = 40.dp, + bottom = 25.dp, + top = 15.dp + ), + verticalAlignment = Alignment.CenterVertically + ) { + Text( + text = "Could not find referenced event", + modifier = Modifier.padding(30.dp), + color = Color.Gray, + ) + } + } + } else { + NoteCompose(index, item) + }*/ \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedViewModel.kt new file mode 100644 index 00000000..db3cb174 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedViewModel.kt @@ -0,0 +1,71 @@ +package com.vitorpamplona.amethyst.ui.screen + +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope +import com.vitorpamplona.amethyst.model.LocalCache +import com.vitorpamplona.amethyst.model.LocalCacheState +import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.service.NostrDataSource +import com.vitorpamplona.amethyst.service.model.ReactionEvent +import kotlinx.coroutines.cancel +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.update +import kotlinx.coroutines.launch + + +class FeedViewModel(val dataSource: NostrDataSource): ViewModel() { + private val _feedContent = MutableStateFlow(FeedState.Loading) + val feedContent = _feedContent.asStateFlow() + + fun refresh() { + // For some reason, view Model Scope doesn't call + viewModelScope.launch { + refreshSuspend() + } + } + + fun refreshSuspend() { + val notes = dataSource.loadTop() + + val oldNotesState = feedContent.value + if (oldNotesState is FeedState.Loaded) { + if (notes != oldNotesState.feed) { + updateFeed(notes) + } + } else { + updateFeed(notes) + } + } + + fun updateFeed(notes: List) { + if (notes.isEmpty()) { + _feedContent.update { FeedState.Empty } + } else { + _feedContent.update { FeedState.Loaded(notes) } + } + } + + fun refreshCurrentList() { + val state = feedContent.value + if (state is FeedState.Loaded) { + _feedContent.update { FeedState.Loaded(state.feed) } + } + } + + private val cacheListener: (LocalCacheState) -> Unit = { + refresh() + } + + init { + LocalCache.live.observeForever(cacheListener) + } + + override fun onCleared() { + LocalCache.live.removeObserver(cacheListener) + + dataSource.stop() + viewModelScope.cancel() + super.onCleared() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/RelayPoolViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/RelayPoolViewModel.kt new file mode 100644 index 00000000..26c86135 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/RelayPoolViewModel.kt @@ -0,0 +1,12 @@ +package com.vitorpamplona.amethyst.ui.screen + +import androidx.lifecycle.LiveData +import androidx.lifecycle.Transformations +import androidx.lifecycle.ViewModel +import com.vitorpamplona.amethyst.service.relays.RelayPool + +class RelayPoolViewModel: ViewModel() { + val relayPoolLiveData: LiveData = Transformations.map(RelayPool.live) { + it.relays.report() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt new file mode 100644 index 00000000..7fa0aa1e --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt @@ -0,0 +1,22 @@ +package com.vitorpamplona.amethyst.ui.screen.loggedIn + +import androidx.lifecycle.LiveData +import androidx.lifecycle.Transformations +import androidx.lifecycle.ViewModel +import com.vitorpamplona.amethyst.model.Account +import com.vitorpamplona.amethyst.model.AccountState +import com.vitorpamplona.amethyst.model.Note +import com.vitorpamplona.amethyst.model.UserState + +class AccountViewModel(private val account: Account): ViewModel() { + val accountLiveData: LiveData = Transformations.map(account.live) { it } + val userLiveData: LiveData = Transformations.map(account.userProfile().live) { it } + + fun reactTo(note: Note) { + account.reactTo(note) + } + + fun boost(note: Note) { + account.boost(note) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HomeScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HomeScreen.kt new file mode 100644 index 00000000..6f97b1a0 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/HomeScreen.kt @@ -0,0 +1,32 @@ +package com.vitorpamplona.amethyst.ui.screen + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.padding +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi +import androidx.lifecycle.viewmodel.compose.viewModel +import com.vitorpamplona.amethyst.service.NostrHomeDataSource +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel + +@OptIn(ExperimentalLifecycleComposeApi::class) +@Composable +fun HomeScreen(accountViewModel: AccountViewModel) { + val account by accountViewModel.accountLiveData.observeAsState() + + if (account != null) { + val feedViewModel: FeedViewModel = viewModel { FeedViewModel( NostrHomeDataSource ) } + + Column(Modifier.fillMaxHeight()) { + Column( + modifier = Modifier.padding(vertical = 0.dp) + ) { + FeedView(feedViewModel, accountViewModel) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt new file mode 100644 index 00000000..668432e7 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MainScreen.kt @@ -0,0 +1,74 @@ +package com.vitorpamplona.amethyst.ui.screen + +import androidx.compose.animation.Crossfade +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.statusBarsPadding +import androidx.compose.material.* +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.ui.Modifier +import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi +import androidx.lifecycle.compose.collectAsStateWithLifecycle +import androidx.navigation.NavHostController +import androidx.navigation.compose.rememberNavController +import com.vitorpamplona.amethyst.buttons.NewNoteButton +import com.vitorpamplona.amethyst.ui.navigation.AppBottomBar +import com.vitorpamplona.amethyst.ui.navigation.AppNavigation +import com.vitorpamplona.amethyst.ui.navigation.AppTopBar +import com.vitorpamplona.amethyst.ui.navigation.DrawerContent +import com.vitorpamplona.amethyst.ui.navigation.Route +import com.vitorpamplona.amethyst.ui.navigation.currentRoute +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel + +@Composable +fun MainScreen(accountViewModel: AccountViewModel, accountStateViewModel: AccountStateViewModel) { + val navController = rememberNavController() + val scaffoldState = rememberScaffoldState(rememberDrawerState(DrawerValue.Closed)) + + Scaffold( + modifier = Modifier + .background(MaterialTheme.colors.primaryVariant) + .statusBarsPadding(), + bottomBar = { + AppBottomBar(navController) + }, + topBar = { + AppTopBar(navController, scaffoldState, accountViewModel) + }, + drawerContent = { + DrawerContent(navController, scaffoldState, accountViewModel, accountStateViewModel) + }, + floatingActionButton = { + FloatingButton(navController, accountStateViewModel) + }, + scaffoldState = scaffoldState + ) { + Column(modifier = Modifier.padding(bottom = it.calculateBottomPadding())) { + AppNavigation(navController, accountViewModel) + } + } +} + +@OptIn(ExperimentalLifecycleComposeApi::class) +@Composable +fun FloatingButton(navController: NavHostController, accountViewModel: AccountStateViewModel) { + val accountState by accountViewModel.accountContent.collectAsStateWithLifecycle() + + if (currentRoute(navController) == Route.Home.route) { + Crossfade(targetState = accountState) { state -> + when (state) { + is AccountState.LoggedInViewOnly -> { + // Does nothing. + } + is AccountState.LoggedOff -> { + // Does nothing. + } + is AccountState.LoggedIn -> { + NewNoteButton(state.account) + } + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MessageScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MessageScreen.kt new file mode 100644 index 00000000..5b2dc24c --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/MessageScreen.kt @@ -0,0 +1,29 @@ +package com.vitorpamplona.amethyst.ui.screen + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material.Text +import androidx.compose.material.rememberScaffoldState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel + +@Composable +fun MessageScreen(accountViewModel: AccountViewModel) { + val state = rememberScaffoldState() + val scope = rememberCoroutineScope() + + Column( + Modifier + .fillMaxHeight() + .fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + ) { + Text("Message Screen") + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NotificationScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NotificationScreen.kt new file mode 100644 index 00000000..61cd681f --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/NotificationScreen.kt @@ -0,0 +1,33 @@ +package com.vitorpamplona.amethyst.ui.screen + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.padding +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.livedata.observeAsState +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi +import androidx.lifecycle.viewmodel.compose.viewModel +import com.vitorpamplona.amethyst.service.NostrNotificationDataSource +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel + +@OptIn(ExperimentalLifecycleComposeApi::class) +@Composable +fun NotificationScreen(accountViewModel: AccountViewModel) { + val account by accountViewModel.accountLiveData.observeAsState() + + if (account != null) { + val feedViewModel: CardFeedViewModel = + viewModel { CardFeedViewModel( NostrNotificationDataSource ) } + + Column(Modifier.fillMaxHeight()) { + Column( + modifier = Modifier.padding(vertical = 0.dp) + ) { + CardFeedView(feedViewModel, accountViewModel = accountViewModel) + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt new file mode 100644 index 00000000..df3d4c9e --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt @@ -0,0 +1,29 @@ +package com.vitorpamplona.amethyst.ui.screen + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.material.Text +import androidx.compose.material.rememberScaffoldState +import androidx.compose.runtime.Composable +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel + +@Composable +fun ProfileScreen(accountViewModel: AccountViewModel) { + val state = rememberScaffoldState() + val scope = rememberCoroutineScope() + + Column( + Modifier + .fillMaxHeight() + .fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.Center, + ) { + Text("Profile Screen") + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt new file mode 100644 index 00000000..c9cbc7ae --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt @@ -0,0 +1,26 @@ +package com.vitorpamplona.amethyst.ui.screen + +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.padding +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi +import androidx.lifecycle.viewmodel.compose.viewModel +import com.vitorpamplona.amethyst.service.NostrGlobalDataSource +import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel + +@OptIn(ExperimentalLifecycleComposeApi::class) +@Composable +fun SearchScreen(accountViewModel: AccountViewModel) { + val feedViewModel: FeedViewModel = viewModel { FeedViewModel( NostrGlobalDataSource ) } + + Column(Modifier.fillMaxHeight()) { + Column( + modifier = Modifier.padding(vertical = 0.dp) + ) { + FeedView(feedViewModel, accountViewModel) + } + } +} diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/LoginScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/LoginScreen.kt new file mode 100644 index 00000000..8bfc09ce --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedOff/LoginScreen.kt @@ -0,0 +1,104 @@ +package com.vitorpamplona.amethyst.ui.screen + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.ClickableText +import androidx.compose.foundation.text.KeyboardOptions +import androidx.compose.material.Button +import androidx.compose.material.MaterialTheme +import androidx.compose.material.OutlinedTextField +import androidx.compose.material.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.AnnotatedString +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.input.ImeAction +import androidx.compose.ui.text.input.KeyboardType +import androidx.compose.ui.text.input.TextFieldValue +import androidx.compose.ui.text.style.TextDecoration +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.vitorpamplona.amethyst.R +import com.vitorpamplona.amethyst.ui.theme.Purple700 + +@Composable +fun LoginPage(accountViewModel: AccountStateViewModel) { + Box(modifier = Modifier.fillMaxSize()) { + ClickableText( + text = AnnotatedString("Generate a new key"), + modifier = Modifier + .align(Alignment.BottomCenter) + .padding(20.dp), + onClick = { accountViewModel.newKey() }, + style = TextStyle( + fontSize = 14.sp, + textDecoration = TextDecoration.Underline, + color = Purple700 + ) + ) + } + Column( + modifier = Modifier.padding(20.dp).fillMaxSize(), + verticalArrangement = Arrangement.Center, + horizontalAlignment = Alignment.CenterHorizontally, + ) { + + val key = remember { mutableStateOf(TextFieldValue("")) } + + Image( + painterResource(id = R.drawable.amethyst_logo), + contentDescription = "App Logo", + modifier = Modifier.size(300.dp), + contentScale = ContentScale.Inside + ) + + Spacer(modifier = Modifier.height(20.dp)) + + //Text(text = "Insert your private or public key (view-only)") + + OutlinedTextField( + value = key.value, + onValueChange = { key.value = it }, + keyboardOptions = KeyboardOptions( + autoCorrect = false, + keyboardType = KeyboardType.Ascii, + imeAction = ImeAction.Next + ), + placeholder = { + Text( + text = "nsec / npub / hex private key", + color = MaterialTheme.colors.onSurface.copy(alpha = 0.32f) + ) + } + ) + + Spacer(modifier = Modifier.height(20.dp)) + + Box(modifier = Modifier.padding(40.dp, 0.dp, 40.dp, 0.dp)) { + Button( + onClick = { accountViewModel.login(key.value.text) }, + shape = RoundedCornerShape(35.dp), + modifier = Modifier + .fillMaxWidth() + .height(50.dp) + ) { + Text(text = "Login") + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Color.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Color.kt new file mode 100644 index 00000000..74b3e6c4 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Color.kt @@ -0,0 +1,8 @@ +package com.vitorpamplona.amethyst.ui.theme + +import androidx.compose.ui.graphics.Color + +val Purple200 = Color(0xFFBB86FC) +val Purple500 = Color(0xFF6200EE) +val Purple700 = Color(0xFF3700B3) +val Teal200 = Color(0xFF03DAC5) \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt new file mode 100644 index 00000000..809cbc6b --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt @@ -0,0 +1,11 @@ +package com.vitorpamplona.amethyst.ui.theme + +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.Shapes +import androidx.compose.ui.unit.dp + +val Shapes = Shapes( + small = RoundedCornerShape(4.dp), + medium = RoundedCornerShape(4.dp), + large = RoundedCornerShape(0.dp) +) \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Theme.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Theme.kt new file mode 100644 index 00000000..b40bbbe3 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Theme.kt @@ -0,0 +1,56 @@ +package com.vitorpamplona.amethyst.ui.theme + +import android.app.Activity +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material.MaterialTheme +import androidx.compose.material.darkColors +import androidx.compose.material.lightColors +import androidx.compose.runtime.Composable +import androidx.compose.runtime.SideEffect +import androidx.compose.ui.graphics.toArgb +import androidx.compose.ui.platform.LocalView + +private val DarkColorPalette = darkColors( + primary = Purple200, + primaryVariant = Purple700, + secondary = Teal200, +) + +private val LightColorPalette = lightColors( + primary = Purple500, + primaryVariant = Purple700, + secondary = Teal200, + + /* Other default colors to override + background = Color.White, + surface = Color.White, + onPrimary = Color.White, + onSecondary = Color.Black, + onBackground = Color.Black, + onSurface = Color.Black, + */ +) + +@Composable +fun AmethystTheme(darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit) { + val colors = if (darkTheme) { + DarkColorPalette + } else { + LightColorPalette + } + + MaterialTheme( + colors = colors, + typography = Typography, + shapes = Shapes, + content = content + ) + + val view = LocalView.current + if (!view.isInEditMode && darkTheme) { + SideEffect { + val window = (view.context as Activity).window + window.statusBarColor = colors.background.toArgb() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Type.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Type.kt new file mode 100644 index 00000000..c5a8ccc9 --- /dev/null +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Type.kt @@ -0,0 +1,28 @@ +package com.vitorpamplona.amethyst.ui.theme + +import androidx.compose.material.Typography +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +// Set of Material typography styles to start with +val Typography = Typography( + body1 = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 16.sp + ) + /* Other default text styles to override + button = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.W500, + fontSize = 14.sp + ), + caption = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 12.sp + ) + */ +) \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/ic_amethyst.png b/app/src/main/res/drawable-hdpi/ic_amethyst.png new file mode 100644 index 0000000000000000000000000000000000000000..813f42f7fd0ab4669567a17d7a3617a7cd2d4a4d GIT binary patch literal 2733 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_bookmarks.png b/app/src/main/res/drawable-hdpi/ic_bookmarks.png new file mode 100644 index 0000000000000000000000000000000000000000..8a7cf8beaad3b942f18528cb8949b2a6dbd761f5 GIT binary patch literal 1231 zcmV;=1Tg!FP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91EuaGc1ONa40RR91EdT%j07j?; zB6?EL6KN4e?Q0QK6g?KT5TXY-z9tmHC|s4gh+YsSiq9Eq5sA;^Z)+$e4lxmGUY#Pu2h)Y+S+E0jEu}l zWoOsA$K&ZMC@6?n`AY`cRaaLxD<>!CY$B1^gM+D7PHbNL=5o2N3=It(EiW(sg71XU z|G1#T;qc0MJboGDwZ;vTIDX=GyY~hHffvS@ZsUZENr%IzHRG*K;@ldA!xYlQbW>AP zHhJ|C%bCbmq=po^6pO`7pULFyFDJ6HvRtrxfOyronubIGKCiU2^v77&Sz`yPFPBaL zOZ&v8b~b$&9cKO~so4(bG9oQO1c%^xkNj$;^nlT^2Z>|(+bMtT%ut6*DDfn&)(m*G zITL7Q`%fze^kjV=hiQjt3kIC@upr0QC5LHS>9la>Fl|AOtxFEmw$f?g%wgJs99x$h zrfsFu!kNRg1v$1Zjr}9m7RMbO9iD-Kfo(WD#2=}(e!u@_et!OlEzXq_ThpVVp-btQMQ3@ZEanbot=FbpoJjQ{kmmLiR~^$p!K#O#>ro&M<^8X z1FD2nI1a!WXu&46i-l>V%o`^ApAYqC$xO-N0MX)c?$zrTMy0K!C-@|85H3iTjGB_$=@GC^x= zY;5eIM%PMzHR1#KCiZm!Jdm54`+!UOT@2G{X*11bo5$rk$!G2)kOml*2kBp6ZYQ5! z2dv=;27}$h!^1lnoJaJuSi+vpNF;Jf{Aq@1{78#w@^>M=Zxe7eqJ=@n$ybW^1(GJC zlLi1~Wo2)%JHlmsgiSlk9>&u-WCgMrzgsx$JHxi5LsO}@zP^5u&*yuicD$x)x{iJy zzyjzRWWHL9q3`giD@ljvYA&Uce8%T#z;DG^CrzrdRm_LIUhi!5L&nR*8DD9!99sH% zOPL-xpAX>cY&eH#fMF?yR7IoFedz#}piN1ZTd;a zU1V}DpYIx4JGC-;hOR6wF78s}v{gk#MTAYKnwy)S;{Oc&RfrVPw{sYIS>_^1TPmh= z*{K0m?1o@tcTrK%t)w2)Sm5BdsXy;#i@Yv6>k?1mCT*!e>l>pmQkj>R7v#ddN_OFN z<3H8nhu7s*Z*T8G_EaMJ>tgA`lpg#y+&A({UI7;(Z|^0b%-B;-nQuCb(k8YM+ t*Vfkh_y^8{Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91EuaGc1ONa40RR91EdT%j07j?!WDnq`$s+7x#v93bDnd)_dMr$`-O%5m&@?* zaJWz~VsKSXii(OH2?+_&adC0CL`FtF3cw`*od-{ZB6Yyw;o-wWLqo&DrAQxgKg>n- zctk`*1NAScx2;{fwomj#Cy){_=*r5<1%OzE@f8@J4|#zM#Mu>e`uPLLXg`SE`rO>y z<5$q}X&M)FNlA%Bwvdqp&@^b=F+N_#Zx}-5AE;z-aIiQ(KYw7XA!7oluCAVkk#{h# zOf%vkIxR%z6m37jPcj34BU_Ff4u@fvu?CkqI;e(6p*J0V8#d;_XH&l!ihxx43f-6T z^72lohSA(F=&Gu!#SE^*@GKlCy+5cI1L7MDwXIvX&OO>-p!Kq{vN)&HIRo2E8S@G> z!yGH?;52e}PEO7dv(1YsFkX!qyn}^OPvcCpqYu6}CMIT6W@cum*=8GKMyE0>?_%&7 zNM=LI8G^Qoh)d3U6(7*#Z~{5}C0h52Cja^((Ri6%V_$lDdau`L8!Hldd}T0;+cA5+ zY5H5*Rub_`x+|w%5gEX{URR}u78YL*4)#zy04+t1f$oQPLfMd29F~N@ zww4BaLbWmYgYNF`k5xSwoIKx$-*V-P6nRS4m#Pc5Kyz?7QCQ7@DbhhoG5wK?&;}S2GEgwv`M7mD{_dS0i;0ug4&Nfl}Q;uo|7n?Xo7Gg(7$8vVABliVdjUWoPu9fZPZgxK7HvJGu2^CP?FX@r0)!m7S zi7u%dpv_b72c>}WLS&!Il7ypYiUyWSYyyR~k%{yI@_Mewp(@-zW`jc>%~CFbuWm%tB2CiE<^BMQa;V59 zrLeZP*0?+=&&v^*x+%s)h-M|uGNfZOffs!kz8J4ipB zot<*qR99p-xIPhl%Dn|z8d_Uh4+FX$QKF5mBcD?!FPOl21k49;G5(ED6v$2S@$mb6IdpKXoz z+N~To^6%ytTKq5rO|(7BY&3HrxBbNA)pR31zQffl)2BT3a(L=}WY#U_6KT~`US2+z z^pI~J4?*gfm(N#+Fn$;=*TyqUos0d`>$p`m0^!&Suc)Y4j=gQ@-)@ePk2h}-&5I?vu2H?gS?Q1N*Wp(oXyS6b8w!Dvkcmvg!~o(o1C01i|l=9 znNnnIH|cedMgAO5Jg@t+(izPI20eOUT3VXq_0K}AeEFd07qomm0#rV_lDlemKn(kp zaobW-QtC{5(l&0HFz9hDn+m&k@16P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91EuaGc1ONa40RR91EdT%j07j?q zz{o7c>cNMK3c5g$J@lYd5EKQ`g#rU9C@7+Ypn3=iB8_~AD0&ErAYXzY?4b)ibRp>` zbb|_^j4tA}O!M^nmK~Tg?w+%&%W;Z6_%SozeEZFRXJ>ZyoQ#bB_J0NvW*{Dq#{_X^ zC-hj>Kx7V*N@1Q`-lJ>;`wX$!upJ&j8~g;ZW1=?YOcS_(xa;s5*2iM8FO-oRs*-C;sGoxs$`_*SAyzi(_k?RmdJ2YXXA+XS4U*1)J3~y~%5~cy zSI@1M$1|K?K{knLvi8*LsGYiO2-C!O*>p14SbVimX7(j%_tDn@w_zVo?*nCmIctmL zBDNGnplKU$RJ+dolo!kZ+P%=t0CCkv&I#1(VT1p&;K^S{Oa5ea?ea~?sb24xtyo4YoPff(;L!eijDKx4zy^6#o zW^%XPMk%M-E4Tp-tldt^ku_%Q0hlK1^*GFjX&}F>?J&fw1=IR))Id~EGP;{ZR36BN zGVLS|`S!5S5Vi^Q?~4K2avIuch?9?;tDxIs8nf(Fj4H&Z|oWYwHNT2x3m4`<<*$ zC1T6qKKvcCEaDMc3`6-7QNQ=}*AZ>+w?+D=;~yXK4~Somk-eKnsQ>@~07*qoM6N<$ Ef=GPWMgRZ+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_dm.png b/app/src/main/res/drawable-hdpi/ic_dm.png new file mode 100644 index 0000000000000000000000000000000000000000..a611ebc78dfbb288e374451ddf743931382831a1 GIT binary patch literal 1406 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 Xw=u0^6X5Qk00000NkvXXu0mjf?I)5C literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_lists.png b/app/src/main/res/drawable-hdpi/ic_lists.png new file mode 100644 index 0000000000000000000000000000000000000000..521f277faceffe3e4e32cc9647bf9dc3445737ed GIT binary patch literal 927 zcmV;Q17Q4#P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91EuaGc1ONa40RR91EdT%j07j?RwK&<){&-4D`or%D zxtACUJ?Tr@1YRKI=H7F@_mh*877m9uwr}!ryKc2wtz)s+ zuR@_PuxtMZ)oQhF!9c^FwHqGrypO)sVzKyLFi2<<_#GPViAEnCzkuaLfQKz$6k$IC z6C!aDpRpN{rW{5N{g9Q4@^UttY0+qOF6#DuTr3vxL?WTC*XviJZ#-i+DaWH!K@VLd z5)o}70toLK7!Y21a_=-x7z6ur)q*4#8>7X{)`j%a_pmx;=r6 zwDI=fM5tD)T}`Lck70Xu5AOtyZglIDTyCR4SEK6y*&>lN@0uHh34GL;op! z-gEre>4Eon41)5r&k^U^AQ&N2pXI`ibTXOzIGIddKsCcsc4jmneXa`|I+x4Q7qW$0 z>3Xyg=`|Oa?AXvk)M*F8&&?w{r`_!IqFRB3c9b5?X7dW7bc~VLMS~^%=W}E9J1mt- ze`V#C0vo#9?cQE4mmi>a9b?@svixRqNcPb#x(&~OrQwYq5Mb0HzVe!C-ogN zq1ibt!s2A?;ngRf4c+VYjxfr5(r&ji;sUlDbxqUGR8{@7#m;dv8+tmOK7{&f>_^;Q z5b5WQM&m}gT>j1V;n=Zr8ec;lslm~dHh^YLpQHn`z>f5IJnmzT_zd9OIpQ3j=)T)g zrt4xuo0HDB%wTwG#!e4UDIAJlLOTrD&gQ|5G%dGu^|D{ElN{{U~_@O!!1fLj0n002ovPDHLkV1lOC BpOF9n literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_moments.png b/app/src/main/res/drawable-hdpi/ic_moments.png new file mode 100644 index 0000000000000000000000000000000000000000..9f2113103bd81632a8ef518e1c63dff72db7984e GIT binary patch literal 1641 zcmV-v2A27WP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91EuaGc1ONa40RR91EdT%j07j?fRHm!zUTR1%Gbn7hW?i-J#uB2rpf zs0doHD%C3OiqX2UxfDW@-DLg#**RgdPG-)`ZXN^=%%0nS{_~xG{_~$Ro0s<=OaZUV zgwv_nR>m}J-yC+S*~M+ZIPhM|ZQhBXm~rTnU9j$7}^XGi`V_ZD@2= z@+eDxuc14S5P2&Lyup;6OC%CmA1tEF3v?8DBidjwEogwPG5I{F;U#kcS!G(#ykdzQ zwdPDo4hUC&?&;}a4+bAqbS&Tto^+5`jXrZN=-%F5<_pxAbIgUqVb?>Yy1IG?i@jNK zvCyNcoNcZJ%_Knp6!h%M%F1Q8iId5s_;aBtH{IUeuH{m0dZl0MM69Z+iUJ{VTGA}X z`QPcH<8K`cjfe#B)7%d09i`K9GqG6g1g@2IlGTC+SZ;OV*OKBbEiJPg;pv*q@9^+& zh|O9Dtnns+zXP$4ZA3RTA-7ghQPEE0dmB13D!T4*k7e9hU>rA8d3m`kP`QQ-mAYJ< z+@27+Rfv>vwn@v36o8ERFT`^$G6XZ(!|JnoBHQ8;V$VJNoXTQ5GZVA`xdY zUEKWF6}rE_|7sN1FoDu?RuvrbRC9ClH}pTVnG7y;6<;$S(XW6nP`{rG)%0d#RJ*Ht zl$Dj$0<8Rb2}_()gZ<`%gM%gL8N?Wmhz{}vo)-YVprg~((!AoGC{(&G6K@;1@u|9z zv#1rUbPVhMwxPqOA_l;9o+E$CG{!3VVK(+>HsZETuFwG2SVmS*9<|hsqAZHVT^tw~ z*wfwJy^z^&trPklqy8d~%$;EDP-$uD>sA@JvMV%JNLnoIq%RtYM8Zx20PjQJC&;MC za*}#48&@{0c5;R0AbA%nMo@m8jaK<8Ilv=(BhGbo#zw|y8X6j^LPtLp1$+*@&vH__ zp01fX*PS)9L#K{!9%SMVkj)3^cw1ZBeRkt;n@CYn(dYC%#3Kugu@RpzBaGb;$2QmK z;WQfH8|gQ6;6k={i@v_TZN(ckOQbkN82ym)df@j;?&{NLG=I7Xi~$YM4B(4O@zm5* zF^lM<&3F^!zw_tg(~XUdF(s2t?i(7Y2rw!P#<8jaEq4mu!U$0NS&aDmpKREMuC6ZE z(^7XKzM%n@zZ6PkBFb^%`J#k2j`NpjI;a4UIaFI)ds5YNk^A0=z}yC`iX8F6!onqD z@sl)liG_LO>*F0Z-cT+;tvY;L8h6-ZQ52h>pMQY*+rY|SU@71~#Vua8$mFc(8ycY7 zEfnJ4a`iKOoboh2|2)U~`sTFAW?l3JZ5}LjYIdyK0H~aflFsu@c>v%)($(Dm`hwS^Z nl(|yQ_ueiZ`Oy78=~&<&s)r0AIn{NJ00000NkvXXu0mjfSiKcP literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_notifications.png b/app/src/main/res/drawable-hdpi/ic_notifications.png new file mode 100644 index 0000000000000000000000000000000000000000..cd68c7addf3cac6185572804e35e979c58cf0ab4 GIT binary patch literal 1807 zcmV+q2k`ibP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91EuaGc1ONa40RR91EdT%j07j?xTLT1_=t3qr&Pt@=UQ2tKMPMs%Slg}fS#CZ80GerWulqJ@ZowB*s2NTj(b3V{($dn_&d$yj#$vI6&*z)M{yFNI+}zwV!C)|&41bFP-QC@t-qX{Q zpPiju514A|N;gnE#9ur_>%_!FQ%On5#nRH!88_K@{R;-&*4B0(AOvWTx;&mE(|8!Y z1H6sa>gww6P5lY8^9J40(vso#`(MGsc4`jQVgo?`GOK?;!_ei>o1jLYY+pc=aH&CzJ|O@NPT3JLrq40_L=Ju<5;fRk|W>$XqRewEoehSLl5 z$qc#`A8+XzfN$U-cOrDVE+~uh0DapkD=Wv{l+FF==7tv!xR-kuD=;*@Y1#QtkySK5HTp{S_n zIpMvEC+OzpX8B~5DFg8P2L=YdQ0-*UzP`RMnTY+$7K^%!-PQBE?+H2(2oz#$y>9R# z3-5hi-K=tu3@Y}R?M7@}6njj}`mwPw@#|VVL8B$#RJAo9XT|rsT3Xz|0AP=a31)pI zvwg3ZIZx0S*o?CFg~8|vR(9CS*h0s|F1}9a`nd9mU)SOZ8m;?v%^17ZDR{5V!_`Rw z17Oy^)0%xiE5DAauAukr+m}VG73*3t49RCNWrcjE7vl=_&5ezX_I$>l1HULf#Z>kJ ztuXWJ6mO@FpyfIMK`mVr1s3ABcEuF6zf*QuQ+Mb%RF^>=L647*OTMv2Niow06`x{i z_OnLEF~_ANXh7adRWW^zqy7(bG*i&QN$5Cchji1cdBaACn%y~qM&Kb7@%CNE4H%$*W{sc>DWG3%CX1TD^z$WDH%wln(x~R0U}5KxO&{*tyh4> zAxY6siRkGvqM{W$Xw~mYL!r>m2%J_zyuKIZAgtO>R3EQ3jh!AG927hAE(-$9toqowYGyg8Ba}PA9b!js&x^R8!{S+CBkIb}&zG$1X=)aL z-eWf{ZKdSp<$c9JS<|wUg~Q=eKBqN|KL*f%Zug+*$MfMfp3uT`Q{J^}S24#TNpOm& zhAqHF37HEl)&jtqCr08v#Mpxs6&1a1cH{LgC_I$W+S*!iyb+KeLnX=43P9y{|2i9B z8UKVZ*|ZqI;=q_4&D#Qhzf-$Y!$1JJu|cEKMz!R)@ycsIGlqSJz;fL6~+4Eu+N xhl>HYj=G#0=HISg3knK)ll5<{@^!`0{{R|Gn-IN@bOita002ovPDHLkV1hV7X}16X literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_profile.png b/app/src/main/res/drawable-hdpi/ic_profile.png new file mode 100644 index 0000000000000000000000000000000000000000..da70047c2eba9a5e24bdfedf9d73b64b5ca9ef45 GIT binary patch literal 623 zcmV-#0+9WQP)Z&g4U>y~I*dZi z;)6#^a^KJUCcWg6j*R>V)oQh|FbvnB!zhZb@Oev{?}yySFu!q}ZYKXO})#_{v)XQXQjOT}Vwnx6m%@STSCF~flBd~RV=hATEE=K+GAVjAfBiDS&_o?)$FG|AK)D*><&$-;_lCpgkMvww<@s0i8R zbF}fUdBpA9YdDrQ(rlaT-n1WtqHOrhGZ5zlf{!st*YF@ep|#w`eH`=MoHOjK*2ao! z4GNwW5@!?0BR;3i_t+-X%=mF#!=QQiUW*51W-(Ly=qUWS0bXj+ppD!MW@|rOBDQt# zu*~e9W_Wqx>^$ngVVT)IF96uMr-M@PUZ)wpgRg(Qm+OF`nmu&>55R<4)tzaXz3{zj zUw5Qs_QErCraRIyd*K;Meg1UKUU-EyY;X62wCSPodFlTZy#v#+x6C_C^j`n~002ov JPDHLkV1fcFG(P|U literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_qrcode.png b/app/src/main/res/drawable-hdpi/ic_qrcode.png new file mode 100644 index 0000000000000000000000000000000000000000..31b0439c915a5749cd5e62aa3374ab573908434d GIT binary patch literal 1715 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 IM6N<$f?ZeYtN;K2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_theme.png b/app/src/main/res/drawable-hdpi/ic_theme.png new file mode 100644 index 0000000000000000000000000000000000000000..b2b5876a4e27a9070f08382394f320c7cb7cbcec GIT binary patch literal 2174 zcmV-^2!Z#BP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91EuaGc1ONa40RR91EdT%j07j?d~ zNPJWS|ep-7k&28_Vmh-}}yu!tix4iJLHFOqe6Gn8ojj#96d@ zgdsv!!1&6%#4x<(8=cM3 zpU$iSmS<*STE8!Oi!@{>c=hg>_&<|kU3noBdwJ9B98rXdaqA=lyb{5Y*E!nD>W zzPRWtU=@up(plx?Xv4uvACXf20weZuGV?KC*4j1~z*_t99nle1=5`i*Sog7em1G#l zHnb=8yHb>jg05}v2`bBc1R4uIe4&5*;@0D>F<0L$YHiwNV*8ThSnq2);N#d`kZs5K zW^FqMr?FnuEeg8ASA8>%uP!G+JtWKSJHK;v_9_i?>~zO(HKp)3BkKI!Rz%Ck;GdNT6K@n#Hru(?7pwoFlxW9JYhPYK!unP*U9K30NO8)u(TYOO7VBU6U|N3*RH+zdO7TLwRc@qDUaK+0Yug@-ld{lrpvh8k%H+5-GCslM_K>7}H8zEzSd*C= z4h-I|m^PtSO;lHe4?Vw`tYRWl=YX;@|0Y^U>yB>e2s$9eh{cq$m&uHJ*gI|5pNuJz z2XRsrlEmlJ>EYi(I`5}5>p?BDJkK>ooE>$NaC8rAI6Qzlc_=TixZx-Lxc7M@Q%Idb zD>OG2?ayX1I$3z4hK|%y?D7Zm%$LSEHRvSh2s-gFW#CwU$P17P$}c+!&-WOs)R(YO z`+yMvUhi&R;TQxQL2EEX#tW06czfN^k?3T9{#&1G8(ILP4;3_9q+W7MXs)0Wy*1~c z;JmGbC`hB}<~ZU}LFv3c<8c`%Q(NHAc5Z-+yv={`cw6j&2rjv;kk_ukc%OEk-nQ8BCDbc-yibDu_^f*3;h|mUo57#DCie)2Sj51A=YolODy27(NXzW-JZeHVz&!| zO-J7fmDAvNpm%411)m*${PBy?{zBjBSroJu=xPc73irZYXet~b+(bOc)z+hK6_}F| zr!jnzFh)m1h)VPb<~0tj{79lXvNsObbdo8I%?MgECYmD8;M>GwXzK405}y)w#mWX= zuHQdYUmO38V}jCh&cw9t+2qamhJpknb^|NQPn|L8h4S)+O>PlmsxD8UwW2Xq^8-8{ z$5G->6RpMOA1PmPV|U$w4u+6nK?xz z|27^T{eYPnYhuM`6D^TfCj1dEZ2i-3Uf22HvP*@rRc(LtM}sR`agDnVhIUs~bf0>D z^JdT0U&-M9+XUvc({<1GMGX$DP zsS@-%#O~!+&v@$fDK@mE6Ncp%4(S@$&@G)1u|L2K+1413TsZ9wUa{vGU07*qoM6N<$g0D*y A0RR91 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_topics.png b/app/src/main/res/drawable-hdpi/ic_topics.png new file mode 100644 index 0000000000000000000000000000000000000000..1b0973811bd62aa8b5e4e3729c1f2f494bee0e0c GIT binary patch literal 1993 zcmV;)2R8VLP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91EuaGc1ONa40RR91EdT%j07j?6Oix{u`QYws0~TqweR(JrZdg#Ff%*b-I{QdyZ7A3`QQIN_uO;uY(&Hzm?Fc; zxwyD^MqFInV=kBL-qF#~n8?V;0pzx*sHldVoSe3B%@q>qva+)1p`oF~*w|PvgwFx-Q6!@%{35N#tc(!XYudsp!yZM zH8*bDI1c$y|L(xGph;t04_5sYva85bu&y5C8dLsEZlJH1QWi6tG0##ala)jtO}-w= zisp1Br45(CDSvdy_?O?JDmFyr&=cyl}z0T|P{%!^$V_EE6e0v4`FOk#8 z(PXjmH?+UKZr!>@WJk#{>0P^a&3C)qdmu1JMeaa;j|mT~U%$T9$!tQtrlw}b@bK^o zOSFItP_uy6+aIckU^g~{({W{@L>bA+2G+TH- z+G|yWc0gC==jY$FMGUeN;(wx&L+%k(=EyBCFTY!4t7J087ycPyJEz(tb^^t+Lv2fTdx=g;WDRr z1&UwGrDy4OrlhxT-yRD<4ETcEB|pZb`r`@OC5I(}`7bWg2Ut9FPqP9wb&ura3~2}wJviyBsL#;aj3rS*NFU*yJg#RPqt$t5#}5t;u2$u^pZzX;H$jzoXDTftK?&m~RI* z(LP8ng7hn@{uw^UY-7JIX&(EnfYqpAci|$n_?~i8PL!Zg4=X>e&JjiBs&@`2LQ()-lNBF#Z3&Wwv_@h(`;tIEGNH#e_lKDowilj%)nromqb3$aQi zeY2&X$>j3c%1+eE!lcb|%L%OW)Tz1gks0$N&ABm|vA&LnG>&Vx+0 z4L?7JyA(*A)y4)Y8yXtq(0xc&zKSr$n=LIZg6}9fwzP)E!I{n#zJlj?{D3h2;LVd95(rQNF(=?w=m`t{g^%dqr8 zO6`hHL|%f`-l4q+!Znm~h{qFut0h7BOB#f*q;L5n^RqG0`ESscHbUbXb0PQ^?Tg4_ z`8aX{Sq^O*ZY6(1h=t_^CznQ^)ah&FJS^O}abug*gGrXxxKj{FooB4PO+2_w3S_2J zKVsB}U@nVWskS%aKG_o?Eczi^+DK0RddSSoRK6WGOY`ZLj(n7{;*KN8tkqj()OA`9 z+0ua~Vh5gtWEtaxuqI?5Q)odqdisnAitj{?FZ@U>B>$R z$2+Z0wxyFGnxPWDfc&wOFPK2&C)Lur$!~G+yy5z{_5UE9n*o z?XppbVc`<~L%A&khQd1RAy3E<;!a^*`C9*xgO?c&Kh`gDQVt?l`4YM9_|mBlH(@>b bJ4*f!Jud^j69zY>00000NkvXXu0mjf!{Wa| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_trends.png b/app/src/main/res/drawable-hdpi/ic_trends.png new file mode 100644 index 0000000000000000000000000000000000000000..7fa5184a3ac037eddb9ac5655dda2890edfbe577 GIT binary patch literal 2266 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 jH00000NkvXXu0mjfRl-Q| literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_amethyst.png b/app/src/main/res/drawable-mdpi/ic_amethyst.png new file mode 100644 index 0000000000000000000000000000000000000000..32891ab13e9c92de07e1e7882f824ed95def354c GIT binary patch literal 1665 zcmV-{27dX8P)EX>4Tx04R}tkv&MmP!xqvTT4Y+9PA+C5U>h@1yK=4twIqhgj%6h2a}inL6e3g z#l=x@EjakISaoo5*44pP5CnffTwR!Lh4`F!%%BSrKXP4m`HgeYVL#7|8kzJwagga5(r*_wsP2{$R60D>>J{V@!Lc7bNyw!e>UyLkcxo`EZ^?XNa~nNQN| zZ7p^L^lk$e*KJMS11@)f{wG~BBu5I+@)rug`x$*x4(PiDde+>zwa#(+0Ay%ZsT<(n z5Ev;^_PWQryF2IhZ%=D}KVG+TpKZ5UQ~&?~24YJ`L;(K){{a7>y{D4^000SaNLh0L z01FcU01FcV0GgZ_00007bV*G`2j>9=4J_CX>@2HM@dakSAh-}000D7Nkl5R5(+CMRPx8>kD+0d(hn6w_Bu_&UsSW9)7sQ+ zIv?NnIj28-$#<{M-o1AIyZ79Czvq6>Ip2E);LR0p@%GAhD8w4;!}2J_TA<1ESuuWQ zaH)`ePdz=F*4BS;6le{#;gH7NVU4D!!zg!-YntX_a!0tXp*HMa=sCRto;#TGj_nLr zA~Z!Q*100~BD9+^&DSh2!!8`f-yd_uU?Q`{t$9W>n_-4Eh1>7=Hkz**+1<43;H#gab5U z`J{P4OJ2ZaU08y!%9Q0m5EqOHd!rQZc|~lA(v)J|+?#=FQyvnbGPxsMW6GL|bAucI z?FTqof0?%C=yi>F9~hp8k+gVhw1`C_bQo;GSeiL06k)3=3v>3IcOLH!7$)1xXAirR z!?4RrG-5+9V2EQE%1i(=`T>svjR4NE(UjRS+eT@`w*G^?yG3)W-EN5RXKxiILYoF}XXW5zoa2;_;29S%q;TA4ATI zZ~TF#RESWUle<&E_!ydxno^z_E%AId_XHTFO=6YCj8cS$vnV=l8UuER=EG)8$_$G& zVu}dg#jh3XQQAy-!Fe_TyD$Vthz>zB2l*FwZ`Hl`o9oAPQ;9biVK^Z7orwhPclM)|z}3Rg`j zR%MPjHf7D<5}~u30Nktaqk&f7FN95IEV$LFk{8f<)EUgi7;eT$ar~Gml&u;uw>MSF zq@>=Iff&AN{`auMBKl$(zcJa2E6$_Aj3A$c<*+nDJTyaX&w%3CX_h0z#yscCevD}a zVL8rfM2SF&2uQ) zcmVx|!YfOsHeUQK`qWEsMpL{2bo&^29$#z30)vUp<4ZH1&2ziMrVJOy7bSz;g0a&R z&68)0p{wg=_ZNTS+@J&a>Ue$FkiN}opdxd?302B6)IMO!ba8AoWquEUYrP^#j;l!g zUeG71?B(F(^_wk~&Zi1E=RA&>@_d$}Jc0432uE^&&Ui&kn=mV=jRVWu7B4Ow!Gu}C z9zP+YO*xWj;A|P2f^Z(V09+HtvZ1B^ljCOw`|tbL*8R2#12!Dn74EY%9{`K8Wb8F@ zRQrJ(99NO}yO8SjDbOa&3N8VQ8+V86HO+d1t0F9WraJhQ`>=lj^XA9Qhh8fw00000 LNkvXXu0mjf(Ps9R literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_bookmarks.png b/app/src/main/res/drawable-mdpi/ic_bookmarks.png new file mode 100644 index 0000000000000000000000000000000000000000..ecb040b7a77f27e43643e17b0fbf31d58b0f3888 GIT binary patch literal 936 zcmV;Z16TZsP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR919-spN1ONa40RR919smFU0Lno(1poj85=lfsR7ef&mrqEOVI0SM_Xovo zx|5+0C@Dcfry#o5A;N=&qb?;ViWd>WOC8)W57liLL&a9_B~qjg-8$@06hYFZDdd8N zu@#IQ?T@ygrMsOc{EN zMx(`a zb37hDkLe7>mW)tyb#*&wUWyLwH5} z(dG^IE%2@o7tk8OW0QPGv~*+41k?*4M*e(sbkrw+X4}%zQVNZJqPOf(lGOLGt*uQ4 z6eeX~^t~vdn)t)kWzdr?Q_3DCHQl%gZ9~)}V?$*#LOLq7k*XQu9F^Ko*^H3>zf$X` zQzPZ_dc7^Jt*w2++1uL-O-@cWe0(-sYM;;7$tg3)sq>UmN0nSv)y_s;*?cCGS@iq;&uli^hIYd!&(-Y?wc_RFWk)iZyqwSHXEB^Y?HA{^ zmtI2hDdz48MzD3=DklE9VoKWs{wjB-Tl9SxzoE=exSzcg9f!lQ!PqeAMKC?QgbHVE zVq)SOV|80yW4Uo!ES7UHhY=ef%osd2o6TxC9RB2XyK|ySzuMj19pYtf@;C(MHg~sE ztlXc=d zYPD9}0YS{#iQ~j;RMrxW?stJa>a{$9TjL(ZkS<7CDlUz4uKZ<~~3w)4#ns4+0|AKts z6UiJT)_WH0_V)G`pV&jnJPj@=SkV>_ji;A-cXv0=cj#x8AqZ>yB5ksQhJTSnxLo=j zzWvoiBJr7_YsA}hIvtn!ss_On2m~yc>;KwRff^hTEzuP1O6p%`u3iL{lc}o!0000< KMNUMnLSTZg8=6=E literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_comment.png b/app/src/main/res/drawable-mdpi/ic_comment.png new file mode 100644 index 0000000000000000000000000000000000000000..893bb49f96ec4674f7769c1ec8251c8ca031f59e GIT binary patch literal 1388 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 QIRF3v07*qoM6N<$f(#UGp#T5? literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_dm.png b/app/src/main/res/drawable-mdpi/ic_dm.png new file mode 100644 index 0000000000000000000000000000000000000000..25bc3ac94b53a1379f9c72e4269f50b918fd1b23 GIT binary patch literal 1032 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 Eg0)hQe*gdg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_liked.png b/app/src/main/res/drawable-mdpi/ic_liked.png new file mode 100644 index 0000000000000000000000000000000000000000..194ff9f95019c100e43eeb3f6f6596dbc3e9f8db GIT binary patch literal 1148 zcmV-?1cUpDP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR919-spN1ONa40RR919smFU0Lno(1poj8=1D|BR7efQmS1RFRUF69@0=t} zt+DNftv;yP=$NdaXtqk`Lno*(&<7v-Fl1v;tRTvK^U?XJ_%hVOI$Eb=`j7`F8(UEy zTBHe;m8qDPQMT0$=i1=nmbFc8de6`AFPMMk5rM{O+)`t{54bW_MtAron##iDlG|IQV5r4vO! zV7WThf+-pA3kP-NackY@v{G>>Iw4zBq<&%7jv2RkHa0bMw`?YpoQe%Rc_M40(J7Gd){bzi}RtgyQhYV0qL>Y*{UobLDdUXB!s`iQbBluN?s>k z?1<7%67^eJzD6?k88qTD>OBaPmf|bo!V;$L-KR9ZfL_RhzAPF`4hl<{I+ICjd>7Hi zeEh3~CCt)tVY0@*MPrIGOK%Uivthl^n2moGmTN|sI<`G)F^d`h7L6&e4rhd^RU(1? zz$9g3Xw1sHN*G3&31Q;H!v0wdUI+D(cZ9Ut!`SdFoY$9 z5*R1PGLt!n_O(sJ!dn=^s(_^uQR*f$4Wa5tdxOIfZ()>uE63iG6C*j7)VCOry>ugg za`8%vw=mX$rQ_kY$TcGV4AmRug#Z5J8{#S6)n1i1md+g)J}DSu#))|Z&D+(94c2dC z35|%ScvpL@0?WX&KYpHZS$~Cveg@@Ub+VtjXt8X*(PU4H=UVMLuq2F5Mz0vQ@{^CE zEJ>fwSkj6vtgt(HHq~{tmbT{MFs8=%K-ZQ`cxB5Rwo_aV=n06u9-B+Jos4S5ANM>~ zxb(vGAoh**Q4=g_U(C(f16^(NfnwV%Y1N9ZC`uE`{o*dx!x^p2N4fCtKW{sK-mRBh z7c2sSpLpZ7`9Cgae2aJm$M)=x&TKn*vMyA#$n_Qzdk=O5 z*!1Ft_AV}5Jy897?co*JOk)2(wnA$B`Q#~2N33VCOmBAoJ539B{(2-}1Gv1Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR919-spN1ONa40RR919smFU0Lno(1poj7%}GQ-R7efIm(Pn*Q51lE`qBo* zKrup;7P&K`MXOr0nLi*J&_xUcBD#qdu3Clk2e@bvC?Z7ALSx#rYZ0`l)kL##6SfFJ zVkA)}CLMjR@4TKNgV(yl8!ueW^Zq#BIrpA>&(-j`#kOsuR;!tjNW_@8c_{~jfn6vR zriNkIqSt{`tJQO+XsN8jVskj0DO) zJo6Gd*G2sJaOf((QxZqcUSf$z+iOqfP?4@~P=Dgb(;!*|{p;IYHK5sS1~~>BY=M@6 z?5D+Y9%ZvxWvnQ{^?E%z91icIQ~W$Tw0VKmrA80BJfkI)%x6S zx3#X(bUJNkG8t>tMWh6aneIff-t)2&TrQW-$K&x$-QeP;n)Q0UL+1ZdS*!$em0kw; zn2GoBTx+SBXD1Sgm*{vxLin}}t{bh(beyV9>9JVKQaxa)AFXw%#SM3ll>2llSKUcU zkENgEWN@7Ps^f%V67kN9!qxZRLJ6)^DjQsRY2xZiGMQX@fzW@@?RMW`fZSACMG20@ zVi&nGAEIrCstUp{(P;D<{bMaEgO%XPWO7LVd+L-WU+OWd(G7({+TMzhO0Z-V(&7u! z;wx2JWL18W`i@1BZc&0ok(*DIIaL?7I9|1Pi(}5@+X1szvQLJ*2G4|oQdc)9hvhTn zh0iOaL*EuM>%Im(UEYP~?FBd;VH$Et@Swke+@;ZZ&?8TEDKJk}B*_T$J05T6a=AT| t51TBq@4oQY@)t&!f76|KzRo{wzX5ujK8iv^dhh@M002ovPDHLkV1jFafwTYs literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_moments.png b/app/src/main/res/drawable-mdpi/ic_moments.png new file mode 100644 index 0000000000000000000000000000000000000000..a6e689fbae3580de59b469cf2abdebf9ac8d06dc GIT binary patch literal 1202 zcmV;j1Wo&iP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR919-spN1ONa40RR919smFU0Lno(1poj997#k$R7efAmrF>LQ547Lo0m?$ znDQ|-Mrk{%MHEB@g+Z-q6$qL5)=irT+({YK!lK$_=BNeIA|(nUT17_XB7zda-ZU07 znP%mqr!&s1y0%+AhULJnyS^u|evap(fML~{pRrTM&=HHkCT&= z!)kr9enMi-R&)h8b|MEH4#%a6ii#<cv;Si^)I#b|nZ`pYI z!SBHbj_CB4~+1c466B84A(dQF&OpWa-#(S7>BkzHyF{P@b zn_Se~xrkXb$`_BT>|D^&&Y32a_t-t6=Fu2J3ej=-dQ#*j(Eq_a2^xkE^4 z5{VhdCcoeRh;giZc64;uu-lIQ2vQR9TryH|rb|o~_d`&Dqe3x~##qj6EAY{eRWTwm zv(@XcJ%P@G?jn(2NE9hHb4{1Hs;cTE+8YrY*>9!0yL&TZGZA@7s_28S6c!d1Gv5l9 zgUdFX?X;0%qMKYeh-)5?$H9aY6B`i?yIih0;+~!!DXYz33m!(k5HV3m zG06hoz=%8;l1wu*Gy55rvm=i|Yhz>M5Mx8l5HXP~#ajmO@nC$Xve_vh`ygv#&QG?V zYG`Pb!7U{*zrFH_E<3_7LjMpi(*xw6CusrnDT(nZzeMKl zFlT*?{!MwA7Qhv^M7LzBEr{$HgxA0YYVu{a_={TqKl}2>%}UXbGyZ4o7pNDxtaU#2 Q@&Et;07*qoM6N<$f|FS!;s5{u literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_notifications.png b/app/src/main/res/drawable-mdpi/ic_notifications.png new file mode 100644 index 0000000000000000000000000000000000000000..aa8fffa36c2ba756e78a0ad33f41c0b56245cad8 GIT binary patch literal 1359 zcmV-V1+e;wP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR919-spN1ONa40RR919smFU0Lno(1poj9xk*GpR7ee_meEgJRUF56+ft-Z zQb7b9L@HUPac*kdhI=6~&Od+$9%Lb5fJoQ_yy(kJc$hE41Y<@J0>KAS!-M<*iy=+6 zMYBW`8B8-{WD7e&-zHSP3#ZI_hd~ zZ+C5OZn~S*$w~e3&r~y}@A6pGYKLOQlj5(O1DVq;VUR zKcF|u%F6DB!{HeAd+EM{#bb#fFeWD_1LfuAZ&1I2mp00jVHp2Xx14+VRY}{0e49)r zZ|v{ye=|5Z7{xACh`AuK{LjqH90xoAxDTyBe?#xm_dVtBsN@-J6oIp73-w3z&!V69 z_4Tb6BKHWHPo}4*8<@cmef{V*`X!;Bi$oFSdHhPJ1%vGE1B+uZ|U2W0P}ZhU-# zT_oGqs^^{Y*w|QQZEbBAVfz5XIQlXA1vB`|0_H1;P!0dzMu*XI^qSY}{k*%oTT5dT zm#vj?p7JyJobbR=QWyAZ|+x4~p8 zmY0{^*^X?)e!t&1I5@CImIR#0HZG;kpy5lJmj>h>`Oe1MhXnxi@xUMEL()dPgK4bKz-VG#>7Uu_w~#2Ee^|1 zhM1eAf)SpD^jQqT=!#`@)RGKYf&5qS@_9}imM@c-^>AVI97dPuQ10I5%*}h9S-@h- zo}Qi!2=AnQUJ{46gw;+nT3cJ|xkWBx)JFS0y2ZhMp7MVSQQRVmQu({w+}!*TWyDxm zSa9=Tdk2H-bXG#H8UKtHe74Y6ifCO=;=2~#x|iRtuCAW)tgfyaO-)T+erPk%Z?1n8 zbyG0bx*SK9YC80H(0ro&528Bl^yE=WTB0*ss>zgzQ!EBy)idW5YO?Y#BSb=^S8#NS zL0m<3>)4{9(Sm&myASEQM|p#`h-`wd6nc;Sv!OLkr8iRE%``qf9w7Pkq&=M`xYOI) z8_V`MJ3Ff!J&lb_eu~9niz6c=(QF%MJ(Et(4y!#pJp2z1Z_$2;_A}y(>`X0sXb^XOaruSdToJKh@_8q%Th zSSgBFA)K3=3o^5-kmwOeVd%+wj6Q8diqrymdX3x-(`VZQvU5sN!~%(YetzD+ySsaV zW(VyT^&gTIX20n3`EGZ0b;XJyHF5fsB070^yt@ghxj$HfB#-7m|KXtDNC!GG&aUBwRBrqwMD3@Q7* z^Xz83S1V!uNA6h4|_Gg zQwW{Hj|#Jyz04@bDuhM~*~25{ScTP08UQ=ZjB>1s+RTh{ ztU`0CfHpIu9IMPReNu?c>^trlFFY)Q@4e4!8^00000NkvXXu0mjf6H>Eq literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_qrcode.png b/app/src/main/res/drawable-mdpi/ic_qrcode.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1e891620b44239ca5afdae2dd445999ed30fd1 GIT binary patch literal 1675 zcmV;626Xv}P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR919-spN1ONa40RR919smFU0Lno(1pojA^+`lQR7efQS8HrkMHD_W_uk#@ z_T92IS^_FaA}9!vN5Ck?C{V>jk{S{v5F~++0RGhYr$78b{KG%uBe7J8iNzR|*jnQQ zQ6d%y8Ug}sQc8KYrOiUO+wJbm@tfJb+e^5VCMG&b_s%`{JLk-KPX!eh3*zF-y*EPS z(G0$+E{n|b*==JhN0K+M&vCq{Hx(JeB`)=<&JECjQ=t`efE6 zVv!shp5r?1U&KlSFh02;sLgU@Bsa9aRJxT+>V0@B3!dDhd_qJ>Fef7QbAY>mvlEH^ z3Pho?Jtv6{PbPp_&j)r1JY6C*mB7WPb__#?r&zZko2e z@E-bT*f+S7i5Eao;X98h;!is^C7MGS3dDw%!B0r@Odk_e?9=F_mce>BeK8co3{eWH zbJ97sd_!e#XUmNuF1T6Q^s`$wbKXOWX%P#NPa~p~cIkM>hQ!q%*6c$S8>KL4FWg>b zKrC2EJ^p6Lo=cxq*OVC2oonvAm`cgj2*GZsEx1Eo6)biDJT=9}(!5e(wU`26lBMO- zJV_?~LY6!1IwGpekTG%pGvri}%6rYH`A^9Ie^#hs6H^#@n{5E9Xxfm&msiRRuc+Wx zbR-R*-zLZZ9vWklNK&g^Orq2PjZ%l{$5{3Knbc@_a;58QMoasK+iDiq2o$Y0zadRFAn0sl^pUGMQzYn<;>D=*P_TM;#} zfj3yJ+CR9^QSx`VrIT5GG4VNUC!a7`jLk@-^%iDn~!s zv7xTpS}e7T*r^D9ma>pf6u}`IoYX_-iXhV&N)Zi;;=t?R-Iqh)MG`73irR3c0uPo8 zAzaqVXGhWl>rD$R6kw4dY@@+bp7joRrnM51ScZ@J_kS3g4X|B6$NY>(k)CG=G zMN$%Hg1EcwkvTjP%jMc%uNz+3-19lngBF@7C4Ha~0|N&$1jO7KxkhffJRkMMg)_RX zsn!e>5D?>reFFzgqbkQcI=0kx8{w;) zudfp%-+`NFnRfub%8tujKWwc@T8ot{q@(O;J4sp}G@!dKDVCv!J})Fmmi;k7PJP}U zBUsc*&n++V3Q-NE)9_wdpiOt2lw=MV+jqIVTCJ+S`CCP6 zYfoyl2%}g$I?h@3CoHydFwy&%bfTeo=y7wOKon6f+=XFv({LdPyJReGFASlIHStn} z{{y%#?>5*imD)Zw{8S5}DEzg!t1@|P*6>cPa4B#gSLqrcU%@oPb;yWTN05knw7o3g zjm5>vNKMM{hbmS|JJMP)QCzUZ%almr20CvOTn`z)8bM}ZjxW)g-^QUASOSYaR?f%m zTdI5Qd*CPEQv-zmY8z@XrW0z-*0ewMHLfk0%6L|%MkiQoou-FhKqc4!sGO=0j{6JZ z3JXnBqh9v(;x)~K3#~y?_oingPMN+wAthjHPE)5V^;WdO!qo?AH6JCKj(gd}bQ&GJ zSRvx^-Ozw*F`9;S<hdLgh8nB5-S1E}6F><_{S0%<@pl<)OE*y&0V5soa0n!tm{Gu7(PMd+1r!Spoo-n}%Z>MZ zL19mnXxsVlF6Sq9{Yo(YuhA6BAIVC){M{_CIkG1Hsf!n^ejxEDPcoE{{RT6 VWkJ(Cstf=C002ovPDHLkV1npJ_C^2z literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_retweet.png b/app/src/main/res/drawable-mdpi/ic_retweet.png new file mode 100644 index 0000000000000000000000000000000000000000..0e36ae06caa56141d2a6f1ce12f8ed84ec5b3449 GIT binary patch literal 1045 zcmV+w1nT>VP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR919-spN1ONa40RR919smFU0Lno(1poj8e@R3^R7ef&mP<%fVHC%`cgC4f z#xx&U7^Rp&5=0vpK|!tC6ljp3qh*!@MiXtag%DAjBm~V@Iu7VUp;bt$S{N;A5kV+a zk_l3oQ!_c~Jhk7Exx>udF++qvJn-lH?sy#h+A1GcudnsReu)B%Ql>EFT7_@ykXl(;86vwIIBm+x%6dh~!;+toFCmp>#hH{n6u1Roo6u^o6rW!s3+e=D`Lw@o1? zmdWSy?d6sj78Vv}lAR(qcs!m`BgEvITr)6tIM&CLouqnpyWIt})$7R0XqWf6$FVz4 zA256_3I38#}r02e7+^{R#FKR%yw{kVywT z1YS=}Of2gHGswLNKY3Y51wEX=1P*qixFRGugjE#+%xne8G6aGFDl(rwXYz6)Ra_4|DP)Ws1 P00000NkvXXu0mjfc&p5k literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_retweeted.png b/app/src/main/res/drawable-mdpi/ic_retweeted.png new file mode 100644 index 0000000000000000000000000000000000000000..39545e5000e32f187b913d702e341352d48a1689 GIT binary patch literal 1144 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 RbR_@)002ovPDHLkV1mUGX$1fP literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_theme.png b/app/src/main/res/drawable-mdpi/ic_theme.png new file mode 100644 index 0000000000000000000000000000000000000000..616707d87f587c990824281305b5deca6144aa0c GIT binary patch literal 1597 zcmV-D2EzG?P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR919-spN1ONa40RR919smFU0Lno(1pojAr%6OXR7ee-S8HrkRS=#z_wIIg zrIr@jQbT!4eFP&+cT+LHRC2gln5`25o<^Op&{SNnR4>MI=&A%tFEg znEuer$6U65E{N%YLz^pNiL*SW^8#<)A-=vTBbC~+US~EMh@=9x#^CEXAZ^cQ(c~kR z5ca3w*U!W|HM#pM<7L;I8`+)+dqUt9yCo1bhL*AB51?EP!9fxFU5Jkx%DkXWJ)kXO zAE{ECohJ>F7c|K-0GHx+Iz-XOF?aguc~ptH6(L-R>jR|d zv%_zecIL|)jK?7RQ_bF6-G*zw2i^5rXzOS!GKl?)nYtU&j5y~&v}GNzlL00N6z-O^;KNS zRJz;s;Z22|u(THr^uU32J_=SL?`dgG176iK5K`1Ecy{wNm&L1Ii&w-pnB6_J2_Z6q= zrvY1<3egcB1}pnDsjgJP`&lbRU5MNOE49Eh#jEo>BMn$7*UzLt1c|be@Exi9T(CAG z$dgxo(=6>4q?$9`uCSNyoMTl>{{yb;96{G=ulck$t5lLorpZO%O9=2|?3zw;-<#8b6{#r5a19QZ zv7_gu3Z|~bS6GAwQHfqX!+6jrOg&3oyTo%LQwnDPW&1tb|Bp0aw%rKs@GOpJvO!B$ zH+81vC8_3GF@!A{xnOcTZT228kXVAvO4Rgu-`L1-sz4g>!G_XNV)rbX#|?C<BUIf_fCK=XSUolk3HbS^=18_^LI%9dGLCjbz9!9-4m(w-aZmHmgjH#c2PBZ zhGv+G8UR=aJ6$02f%YpUeVJ<6PbWz5Ncg-Il{B%|+fW3X9j%L_2}(?CvOC&0&4{l4IS{gc+P*VK8%uKXAPMTtImwkO;H@p6EK*v%55y{jF$)-b zi56%m)v1E+N4WgO)5|v|1uPczi>WWeS#*>1W}h$)WDOP)t1Fmp<^xQgO$s>vcWF<- z{Gm_qo$$C4U9J@;qnogUva=0UaLra$Z+zzT!KCqgb5__U5?=FFWHy=lOE`@;&#Z8x z+3_i(xTNvmTGa0(#-u#%n+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_topics.png b/app/src/main/res/drawable-mdpi/ic_topics.png new file mode 100644 index 0000000000000000000000000000000000000000..aebed8f6bdb92b7a5000204b4acef9be90bf40c9 GIT binary patch literal 1471 zcmV;w1wi_VP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR919-spN1ONa40RR919smFU0Lno(1pojADM>^@R7ee_mRn3*RTPGqGs6rO z2c+uAbihPPq*5<2A!>cFMXIDt)5NOSJ{ZESSW|q!5bcACK4=S@!hwSp9x~mf3862HRcG)8TOV5tGRj zfqZ;li$o&s#l^)Thr=;nQBkqPT+)#gm|#j{Hcx$h{VWNeoS&b+ zPRtMRDTn^f&(A->_oNX=x>PrC-UQ$)OzsEhD$ZZl)zu9q162b^S;xl4`tcXALFfSf zyLx+jZK{pR*8r38qbT>|5QKgxEG!hzi0Y7vOIar-Ci?OD5nJi{eH=ZP(N9-u+1t6f zxyLcy0q9xE-B(&#x-5<6^?F@2Ql>G0_8Y%IPEO8*9H)+s4mUCOKrdmlm4t3-_gV+M zw6v6o;dTs(VH%)paz@iU9?uR~Eyv1*K5j!|FIBnCdH)`MB`YgyoCcL@?WXkG3JMA? zGcU(5I&`Jx0=OT;t!VCG>{T;lZjm_!&`t1+B&3jB5PjO}G4di#bMX|wb=A_Xn9^D) z=VpKckY57Gp!`FW@FPS4jXS7T8UPE#_)|4N_OpO{#M;cFR~nU^#8b9#FE`<0cI(_*;M!4>LcAtzW!ImsR3W;>^i zp<6LVU`K91eHgt!qm{|o);g?579Wx>Bi?hwxl9=6Xr8thx{V^ zBnkA9jIOc7Pq)W1p$_)C1m|OX?<4^?ayNU`Pe=ci=pWnK+WKHdM#f?6-^2b_>_261 z`_-6Qo)8#EQ+IcF2^k+j-hjKt# zv-fraOUM5XNPwfVjmzP4=H9^WH1wHTeyyKTUUQs`2F7oBbMcP41(4js=1?ef1pYcn z^t10@uLo3OZWvgb2w--;-v#&%{0m+hLt1?@Ibm}pb5eBx%H5p-Z=$0w@iq&qx>WrC zu6P-MuPE^;dG4eF)9N?eT&go~sx}%d#PjCErluy{pGUPx#{YAvxs@6uFrex$Ga1er Z-M`DznO{98SR?=d002ovPDHLkV1k9urNICI literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_trends.png b/app/src/main/res/drawable-mdpi/ic_trends.png new file mode 100644 index 0000000000000000000000000000000000000000..3275536afdfce2fa8c27ac44496e2b68699ef9db GIT binary patch literal 1673 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 + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-xhdpi/ic_amethyst.png b/app/src/main/res/drawable-xhdpi/ic_amethyst.png new file mode 100644 index 0000000000000000000000000000000000000000..21f7a7d2e75d4e365eb5b1f86d8644ec8af35c4a GIT binary patch literal 3357 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_bookmarks.png b/app/src/main/res/drawable-xhdpi/ic_bookmarks.png new file mode 100644 index 0000000000000000000000000000000000000000..5b04fca6c19f783eaac843d9635572449c2a606f GIT binary patch literal 1862 zcmV-M2f6r(P)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91JfH&r1ONa40RR91JOBUy0E^%0TmS$Dut`KgRA>e5nr%##Wf;df=Ku;K z!YXW_X&q$KS|4m~Qnty5T=t>$$&v(=_twS-b<4MgVJR++q@lbfx?UDp*f&<2)6LD+ z0;~<1Q|W~mPD~9Xke74%UF_W313c&OJoKEy(>(Wf?S8+m|Np-3=f0nFo+~2a0ZR@u ze4Cn@TzBr=aV91vnwn?EhMBQo@q)#(Y15{0qw{72?)7>dwY9bJE|=>Or_;II;+Hq;L-U z#<1Cid^$2R^2N=YH?M+^XNo^fSbyW}(hkNbWH~a{(b3V~+}u2klotqQuzyFn1(}v~3Cn5R-`_8aL{$0_k00c4_+kG1`6GAl z-c{{$k|!i2L<|oPN3)IBKynY{pY;Kmz%3l~PH$bpOpHcBB6*C4&G~ur=3UCk$@xpu zHs{4tr%rv3N6$lgf-tyaeAuG_H#8NX?xEG!*XLr=q{X1#&(&m$t*j*>m>~PNwoR}L z2W^`w>k?L-+8m_;?>Ft(P?m4szHQ2!VZx@g+IVo7u#KH#3AC_>Em=kzD+znp#?G+> zTG+#uETfH;ggtCy=U4(Q>|slm(Z))`9=5S_EP)pGuqDfAV>Nv=g*|M^GTKI*6V`rU$;$b|Muw==SVu)5C z8$h=RnIMZd<)iu$^7qL{5J}Rvh_(&L2g%9FZyY~GI#dkAoAkf|XD zE%fb(i;KIWf=viKIm;LPUpTnL+b{V@i4zj=bRLhx({*)qyHitBFJ@$9_zgDm%`=o) z;bBKbMMVP7YY`E9XYkruEGx1SCL!?`Wq3U+H#fIakri}OE-o(aBoZeZg6|+QR)toG zjzx5K8&Cg&T7AAby@l>mN7V|s-8PY^921ggBKsOXla zZ&Fbrg9Zi$4nr=Fj?0L8wj)F*Qi+~Qu_ZPqO*UDX^<=p>iPuU8q#Qs`Y3zEai>F$M zusM>SpWn`6D6eUTO)hTVzI}*!UlYjsEAw_x-pD*T?8GS|S?r+I9B4bReW|3Rq<^vo zV>Q!+Sz#yJcNt(_Lv{mfp~jS)z+JR|f=3#7ZR}+mYq|p$nI{X=#=*Cfh3ur9Mcd=p zm^k<-KZ%@)iHSMHv;BEbPmlJ%3#{DNYidgm4h}AW>~k0uuf98l>^mMz?C z2!YNZnae?T6gzuGCqwROhQ(1nfE?xOTgPdxLL)Up{1**-7{ke|x?CeU$ST07#S*Xd z(*F%@b%1U6Z_aqnwr$&n8T}Po{5p0ED8GU{ia33?U#7f*zDDw7#86V8XB>=?7mya^HS%Ly)6kd4T4e*&Wm~<)D_`@LEn8-F56%S0NWa{{JlAKDU5u{+ zlNO6tunPx0UAly~ZrysH!Eylo?3;8I&&r*9h_|X%o+-I+=QIfhg2dZ+EiD&pfVtuW zB$(TM9HwDZ2hg+*F8^5WLOJ$RIFx!&d@VaW`yU2sy*_Q;95gsipFSPSUq`75D?9Ki z3nEyjCBKAaq`Xy;iFhch>p;3}m;O&!L%MkX0*PCTEFyVdU;qFB07*qoM6N<$f{6lQ AaR2}S literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_comment.png b/app/src/main/res/drawable-xhdpi/ic_comment.png new file mode 100644 index 0000000000000000000000000000000000000000..6687355e0cf252a28577b95b365db97f39ba4033 GIT binary patch literal 2884 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 LNkvXXu0mjfo`DVk literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_dm.png b/app/src/main/res/drawable-xhdpi/ic_dm.png new file mode 100644 index 0000000000000000000000000000000000000000..2c56264dca9a6a97eb0762de48febf5934ba420f GIT binary patch literal 2160 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 Hu0mjfPx&ov literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_like.png b/app/src/main/res/drawable-xhdpi/ic_like.png new file mode 100644 index 0000000000000000000000000000000000000000..89dc58fdc6f32f3c0563c815547a8f71131f0034 GIT binary patch literal 3202 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_liked.png b/app/src/main/res/drawable-xhdpi/ic_liked.png new file mode 100644 index 0000000000000000000000000000000000000000..d6f1bb5c41798bb9123140860f07a0d6019e4dfa GIT binary patch literal 2256 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_notifications.png b/app/src/main/res/drawable-xhdpi/ic_notifications.png new file mode 100644 index 0000000000000000000000000000000000000000..4fe3bcbf68108d99c35ff0934b81891247a986f7 GIT binary patch literal 2866 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 Me_XLo?fsMf3kJSslmGw# literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_retweeted.png b/app/src/main/res/drawable-xhdpi/ic_retweeted.png new file mode 100644 index 0000000000000000000000000000000000000000..2b1222f982e999021842fefba881b83171ca329a GIT binary patch literal 2103 zcmY*aXE+-Q8%>PXO6w7%w%lqFqd`?;q^KZ4iZo41&4}82a}%?~rfEynmfAIIk1Fb> zMy*n#R_hiuI;>vn>Ywj>?sJ~=p7Xxv{C{btSOXB3Fc$y-0HF=_%uiMGH#yFnPW8hn zpHl()nj7c>UJQw@o-TT1BHGc!1OPkr8~|XfGl1=P<&?sw1OQm`fB@E01^&L}vHUO9 z%wzq(|6NR&U%dwaoXtn;>D+c=->`6Y`r`^8q>8E)CZ+dd2-xGWQPK zS3NdrX0lOFcDmaf0t4nwj@wT{RgO-K;*@yU{)^X9fcNFQ8>Fd^_LUPl#XL)e5TtS`*vbO2I+H=8IO9vbc5GWnJPOA!O<$uWR)Qm; z6YS~y)!xcP{Co7+ko@7&D`IGK1~EGCh`!U&*S$52UD;j$@mz zazhi=9X`z8u;92g^RQ(nUtD1WCk!7_ZC13Wa&gBCu1o9)^B$l7=B19V>Y}pfS2u7sqdj0`bfRJ`OHJ+YV7Zq$ zePOQ($uLa#6#e6<38EdB#xcb3DGbf|z@>m&{3Uqn3~h{jy^($8k4CV!5b%If_p%V8 z0E|LxIACknpKmP=SOP~L+aiL)4Vd~vL?P_d^c}mm*(OOTkgi!m#zDVEuCA19?p>$H z8?A@Ycjn-SCAfVF(@+LV^`*VUUY*rIqOB zkX*J}BG0H=r{nt#v;)+fknn$W407b<8V2Hxtgw!zp(xO4hf{8Il6-ByB~5OvV`%EZz_#(lm#igQO*;$gCQs z!i8=~iX)gaVyW@67%HZJ;)2?454p%k^;vtw*K57Tfnu4}?XV2$!91+=A^zQ&HlB^} zWR0e|KGy{kMY)b6G2>nw!`0IQw6~?1j9II@OJ0XrFS?XSQMWD}F+6)C)$0Qfch?dh zA}sl*!jj>r#zNO~%V&C;z!9;;%`Qyb#j|#7SrQ`~BQq08!>VBn&oG2ynqAS!1iZtIG)NFN1 zHNYDbP-4{C5J|ex`@RA%IsYVCpmg}m=##_jhRWzs1Yz*V(n8BPcYkd8>G4Ke5Q?l~ zW?*R|)$+#SagN6 zK!@t*>vt3MrH!S&RagvLsQa|HU{FqFH;lKMcwZwY%k9zflvDRWtnU$2F3e4P$~o5o zGl9Xj+#%B9opovRl|p@x`$bfe8|DLxq6BX9cIGemp@4#@jlXh)57KhulZDNsWT4BW zp`t32ALR(v_k~8Sl?u9Pg&hqr={J|FATCL)RzMAXeuN#*gJy8N>4MbFC46PyMUQS} zQE-9_gV+I{h_}rfbuBt;u7JB^k|k7FNw(!b4;~K90ZBZO9GF``jnKw@F%xBX%mdg| z)!fgpSph>cue{EvqJp~%e_71fWjXoBxQ88;wOg+`!gM|cYmJt^zs55ZehWNvK|E1^ zO|yq~PFf~&_)#>EJiEzPgAg zc8&1ACt?i@14SyBHMtgk0-bbmQ9jCU;3zULgIL8^`qM-wl_rM+sQW>>ZA&~oq}Wkt z$miXZI*7^;A$)R1hBqh;w(?XwNnM+yNR+sA)6Ey5#(6q<-OK5nLN3md)pR<0?ix zdg0;s@bkaM^+krG0@k-;%^T;|OIphh){UnA{>P%fpZ>HW>HFXf2@z}IAHPN(QKB3r fZT|ya7z>qEY$9h|d?`iw_tQqBuzD|aZ6p5$y9vP! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_search.png b/app/src/main/res/drawable-xhdpi/ic_search.png new file mode 100644 index 0000000000000000000000000000000000000000..1da2ab0b47a20d4b9a5cb1803f8843c2c8918ede GIT binary patch literal 2992 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_theme.png b/app/src/main/res/drawable-xhdpi/ic_theme.png new file mode 100644 index 0000000000000000000000000000000000000000..59b9eeee3c4ca53ae7651880b3f7e2203bb71036 GIT binary patch literal 3381 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_trends.png b/app/src/main/res/drawable-xhdpi/ic_trends.png new file mode 100644 index 0000000000000000000000000000000000000000..fb979bb71a4f833b3824a6b39bb334779aa1375a GIT binary patch literal 3573 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_verified.png b/app/src/main/res/drawable-xhdpi/ic_verified.png new file mode 100644 index 0000000000000000000000000000000000000000..27ee31f90a983a795b7bc64d2172e0ebcb77a2b8 GIT binary patch literal 2688 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_comment.png b/app/src/main/res/drawable-xxhdpi/ic_comment.png new file mode 100644 index 0000000000000000000000000000000000000000..b73c0d8806bc9c58f8fb9a4004e96f7f76722272 GIT binary patch literal 3755 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 VNw1*M^iBW(002ovPDHLkV1mmA+2;TN literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_compose.png b/app/src/main/res/drawable-xxhdpi/ic_compose.png new file mode 100644 index 0000000000000000000000000000000000000000..de56c926db2e7f8697a315efe014104e28870541 GIT binary patch literal 2146 zcmV-o2%YzdP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91TA%{}1ONa40RR91S^xk507-m{w*UYK%t=H+RCodHoOy^T$)Bp zEhQb3G_}PtwT+Axl{5u4Bf|=UkwBsZBh;)6%)&pi&8AhPq7X?dsmMafNXjzWG{@1h zMa%`47^mE()amo3cb|9Oyyf0^&%JZsd*=rq-d)c5o!|N1^Ugiz-1}ZxnKi3`Rlq7> z6|f3e1*`&5C{P|nA*EDCQ&ZEa)OP^1gYU}A%TJV2{X?lMqPB;#U@+VVE8!r>v|Zs8 zEY+>~Q~&|HlVuc)fFW=JbOg6`W2cS#fRSwqFNd~Z-no$ogE>jmuZqu?;Sl7qIudjU zR%%La9QJ`_uphRrHZ6={{p=aRqxGMq$bVvN9%p4){ zSHeS}hSLasZ6g^fof1s-(HG&+-DT(|Foc4Z7Sdgpcr^;^1!G|r^nrZs2pOB4%%+4+ z=jRlskV5!Gmmar-2&@KiDJ+D+2IJd@ujCjy=v6Zq zSM;tB`8-O!A8vy)4M(s8f5#o4B`Y){Pe6o4pz*Hh8S*iFZgbzCN=j(Nm7x7#8cYFA zm&355IQ`k}xTJ)p;zL1w@jx)$igB4VjW}wPdu)`1(6r>!sOw~S1~j?|+dik;*yApw z=!Hh)&Qy2-OoAvx){ssYw3!vP(1?64wOtNc_=(Ea(VEw$7UrJKrJgJ3eMG*B3M>Va zW8++!sBeBTU816F(TF^n%DxLxFKn%+%oRC>CcsW48V-ZN&lEactGOBH=Fim+UICj0Kpk0Z`GXYvdO#3a`UJftt9k~fj=CFtrUy`eOUa}CUc&*(C;#_S$-XnwvGTHC%S0MBtC zvReOQ=owMqx}O|`Suh5HSLYI0aV4jr1g!0w;X&vPS-%RLciZXgXtCdI4eWdYx`19x z71#xf2wZpXoJP#&lV};FyBX)q?=ykcFPu@u5@P(#PyVFP%0%F5;hITlv8CBL_On?H zCsS_*KXPmo=<0j5MlY>H&WN=;A74UW?T2U@0WAl8Yqr2&#Hen=m%01svV?Gu^o~$-N(I2Lj1@^z4JK8-SBZ*&>$U@n1<&NEnb z4R62|ts$~vE(oEC^G2AVfb%p>fSyL=KfUJX!nXIC)=RqBcO6t%L%Ep{EF-pkbfU|cLk*%7c`@aUH!ZTRf+?Z(bRpIL z=78@t0hbeX7b9K!VQy*`_#~($`(ART8C zkqI2fQHQ?9T5C3K8d0o**I*@mvF;(IX|yo?Zf_TuGX1VbPxV*B<*lh|+*HdB{!Z$VWoZowkpHE_ukOGLQmtyqS5UKVN2kav$Lpp29-5-8QQCWZY(8p96h2STOaddx#aKB5Z zcain}n||+S&6EPP+=o+IvljF1nAw!Tjvqw*&?U6q$+*)wXFm-pfUtX9Lch({`PIu7-&JMjGTYy!-Dqt0`3RnfK0#*U5Kth54 Y0H@+W4?~a8f#~WvgoE@)W=w&YU=K0 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 RL~Q^7002ovPDHLkV1mtiUuggU literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_lists.png b/app/src/main/res/drawable-xxhdpi/ic_lists.png new file mode 100644 index 0000000000000000000000000000000000000000..a8ae988a81d0ec0c9672a75ddfb01ac595a40473 GIT binary patch literal 1723 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 Hu0mjfki=iJ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_qrcode.png b/app/src/main/res/drawable-xxhdpi/ic_qrcode.png new file mode 100644 index 0000000000000000000000000000000000000000..c35c205d45467df4da728cedd3bbcf799deab14f GIT binary patch literal 2449 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 Ba`XTI literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_retweeted.png b/app/src/main/res/drawable-xxhdpi/ic_retweeted.png new file mode 100644 index 0000000000000000000000000000000000000000..5a3025a57b6ac4f8bdfd0b9d431f68ae28f944b4 GIT binary patch literal 2778 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 Yf2+04U%3BY^Z)<=07*qoM6N<$f-o3b8~^|S literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_share.png b/app/src/main/res/drawable-xxhdpi/ic_share.png new file mode 100644 index 0000000000000000000000000000000000000000..63728b0ed4ede4ce5d021e276dfa1edc3241043e GIT binary patch literal 2204 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 D*scqt literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_theme.png b/app/src/main/res/drawable-xxhdpi/ic_theme.png new file mode 100644 index 0000000000000000000000000000000000000000..d58f977f6780af9661d4fda18a19c21b0506b127 GIT binary patch literal 4335 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 Vjrxmf+?N0V002ovPDHLkV1j1v$_fAg literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_verified.png b/app/src/main/res/drawable-xxhdpi/ic_verified.png new file mode 100644 index 0000000000000000000000000000000000000000..76f539089479b97c5caee3b438c467d50353b32e GIT binary patch literal 3691 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 JPDHLkV1m_lV@I){60^L|Ib+yxU{sYM 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_amethyst.png b/app/src/main/res/drawable-xxxhdpi/ic_amethyst.png new file mode 100644 index 0000000000000000000000000000000000000000..1842fce416a605b2d378e4deed65852839a0d0ff GIT binary patch literal 8052 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 Yz|S)hM<<)A;6Gm+LQ7w>PTe8yzjlxNoB#j- literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_comment.png b/app/src/main/res/drawable-xxxhdpi/ic_comment.png new file mode 100644 index 0000000000000000000000000000000000000000..924df61350be768124669ed0c28250cd99d8755b GIT binary patch literal 5825 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 LNkvXXu0mjfu6ye+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_compose.png b/app/src/main/res/drawable-xxxhdpi/ic_compose.png new file mode 100644 index 0000000000000000000000000000000000000000..f14f01ab7eeaab67604d1d8080ed59eac1819b1c GIT binary patch literal 3367 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_dm.png b/app/src/main/res/drawable-xxxhdpi/ic_dm.png new file mode 100644 index 0000000000000000000000000000000000000000..9172d97179b0f6c4538dd5940828c915b75c2897 GIT binary patch literal 4421 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 Teez)M-v|SVP=jOS%>4fY%IZfL literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_home.png b/app/src/main/res/drawable-xxxhdpi/ic_home.png new file mode 100644 index 0000000000000000000000000000000000000000..4809c13c1ce399fa85c221f83d342b35374e3401 GIT binary patch literal 6620 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 CL8XKM literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_liked.png b/app/src/main/res/drawable-xxxhdpi/ic_liked.png new file mode 100644 index 0000000000000000000000000000000000000000..526a708089bec667f0c75ab7068ec805611efe84 GIT binary patch literal 4479 zcmZ8lc{CK@*PdZ8Lqb`yG-F@K82gZQ>|*Ro8QBSuC9;%k6Otvw*lLCn*~u;0`D?)!$DfvYv$TLM&XSi;!xT!4yh5d^ z1Kp<&oedxHeYAkHTT~l)_>w!=BP}p^WT#=_=#;Xxy+azn2ham?k!TG*0<$St6vRsP z-?TA+c`+LqG}pzcbbPB^{U|I<)_AK!aO6jT6G~7P*Q4B+m9O*5e=Rt|YI5`s+~Ya_ zN(vAh|6W;$JRjd*8Tf5>m}4@uXrhuDL6S^Se7(0 zf!-CjCNjYT8U1Bk-r3|RdK+^h;$I%t!-IrZd3C2QkkxESk~l>bzpQJI}@HW^FbwW z?Q;6EU)f2QNaX&l6Dc(0Bbk%79&~sjb_XBBbzc=!$cbr;q$SfG`_5=|eKxRYz4udI zRqm)WR0IFwqbOWA(xE=`cBf`3&;=c@yAQX znd{21CK^0;y{$=tUXe{{v414tYpY=#I_T>?#uG>0F4jnTcqyjfu9mxUJmcg|oIPu7@nqB4J zn{%rTs|(zd$ao$nT~o*|T8pU>$m^p^45U|Ik$BlkMxn>HZ|F1gM>$xim=K zM5#;$#+{IedlW+EZTZNX1mo93G|C()k?SO6r$RkJ$WzNHd;@#Yj`RDqcTgsYEn(}G z_4}K$V-BrP50v&k={s>9oVS8;h(CUR?jB+g?Ms$FcjoxK_uoFDKgULFA&p&9_=b4w zzI2l25EeY|AIeE5= z#nsfve8SKddSKVvwP=~Xd}XI7b>>y2us!AdC;$n$JA<|HkeH_%tKfqUeVHL~PR98o z)_g;c76F?c=l$cVxG~w-p)Q9Ly2lZ2W%hxPz|I$_s?3!K@BvVv?ylN&-Z27UQjqdd z&czx>efYy|*uL)}*cU!|umD zPO5lRcRW#CYGHN?-K?x{CgoS9exf*WTwfk7{NTEu%|O15QL?-0kL=!Z&+Qn><>krR zMR>umHVQt)83j}Po?Bi z<|0-rd9)F(O9pd`RY+*$Ytv05T)M>2_2#MhcO zJr=aR-$>_Y+`L)>HKx_aO1p!9r@-Lv`>HMn?fw{=ghqS_&GEz+uYB{ zZF8Jv4h32eOD9fEM^S1IqV9wyXxb=msqg^7+Dg&0YOttC_+6Fn`@ynjB8n#YBP=wg?-{ z$NadKH~RH-qN+W7C;xziGvpX&&pU2pK#IjXB7&r>Mbi$0>@*_!bNNC4+4KQ($HkNlnG$b$W^+`w&S)wq%PXtibr{+WC6nBi5=@Z7?84BCLNk|tyf`?~>|c*mqI%8Ydw zziH(DS7_AbE_*_zCJ1(o;`7nQ2PLf8bO#N1IRq8jp$fXlAF`kPR$=fCRI>};?#jSg zaptM@!T8@kpZ?Bi1zsPPSC);|w?$3d$0!EkZT;xpyV%Jm zG%Lb+vRMZ)P3R3m^d(II4~tFL4N+-6h?@H7cy4v*?;oZKmiULvyvZn$ifB69S8n>z z51D4yfF0dxr}zRn2oB)?Dyr0UL=+D1K&h-tWF*gta`Kf%prXW89)kaVT^4^f#B>$t z6qA_lF7Wwc?nfc(rEDF5)cc{^cy59GZH`Pwb9>oe!A4P(zA{enBR_EDqG}FbeOx$Z zi3NgaF5g8e&_8$*;uR!z=}C5Ia84s%GQS(_nd7Y+VxWmll*g$6#B5|d1>pZ}nU+VV zUzNWj1NmmkF6GGS-U@uRcSO(JQne)>kmGI-dK*bu8Dz zeLH-~DM&#Ji!5tXV>cc@4J@;WbxpN460#5e;e)+h_1a4sn8v9$^S%88PKXhH8CzfC z#YAfdL%+=-)qs2q`RgvxsUhG`8jO%D1{VE_emAhqff(y|40uKRMF6#@H-bI- zhS-#|u#MKe(H&K9Qi&~u7cjWG`Gdzc>(b>8QJopoqCM^2yMEUu)*Ci@-4|j2hjq0N zV^#f`g)yHN@nB(yiSKh_$!6}LL>J($_ASgW~YsVg!_D;IK z%yK(~<-;2yw|&kV6g{Xmp ze_#hl>9$s1631SDVhgRs<2br{SVz~!a$}OGD@SFGjji$-wE00E64SL4>xFcCs)Y;( zXPsINRvF$H4#L+}q?B9lzIR!h>*$OL$)-J#Gh%psoEP1cZb^Jyc` zda+vPg}VZ|)!}RMuuL-x+r(74Xd>aDKd@!gefcPs1oS4A+D3rDvhbDm*{^-0--W-I z3wnam3s!@sD9uY>=PhX1Qcj=SOpAi^dcCqMexy8}ghQ0|g$y_2Q_>BQt8(t=-&}4J zs(s-LI7P8@eQk!CKYUIH7umnsoK#(}Q8f_3A8mHJ?XU zs9^3(%iZUKLZCovv1Hh_u}G=(67_jTik}$*0L(#uXmI#4P%%MajJ@&U$Ey$vG}80% z{M=jlhdl-6YX>bQjmOKWzXSRxckD;!+V)bYGqq6K9LdiT`u*JR?Gu}h^oa4@HX`q_W z+)CPt^U&gbVxXBBwna`r&)hB6k-zCx1Q}!Tgk+1E zr!8pt*1IYf(_kESEcL{@l&f#esPQR_Q6lMejB>q9k^0jYjTd|9uIjynXryI`kj#5q zzX-U{z5M#vUD-u8lv4m7xiU3Xv=)4440Ni>TdZkn^GlkUhr92y6YY0@V^n==lB;)7 zo}_N|!PZpKyjdCfOd8;S4bcDD;Z~sl+iywGpW3A$1#RVaar;=0ceJNTg1le$=^OCT zLt5VTTy;vs{Md*l&$bt6pW_zcx=>0}Ov9HbY>k77EZC{m?h95xIBUW0okwY)lvmYd zM@HS1vf{qcBhez54cN176gxT}G7|nn_6yvBzD6=<<2oCa?b*aQ=fb|?MZy2cUjy<_*7O=W4bqGrT z#`}DFR;EzzR&rhfHR@%Qx_X{w3FG>&0BV|{xwcou#FGmjV#E)FZ)jG*&^OG8cfI;x zZhqCQpOO#a-YnA-fNV#&^$`@z317l0#7;-?MRs?C@C@U@dnuW`IPw zRIlF3>b8}o_1_w&ZRg6a15?%l7NrE@g12`NV+8v0K9t9{4XEvyszo;@*qbk6U0(nw z?_E6K`JC5b;wI1(t7~W&5#U%ayt+Il8@|30|1xHdjC2Q^oBiQ=V;@3xYGs3s$!pHb zz+DlNq*i#TB0~=(R(^Ma&719HEn4gNW6;F{rQD|v=$5~WpWW~#RtYER{+84C(Y?M4 z#H8DOt|@U@u*@Xks5V|!ZCwJLnh|Wo*LG)JW%dM^t&+pA@os$)A<&(vCvDW7ERY&V zr6cz&^f=REZM){QG-ctI#56*uYGKi;3=O-v#^r42LiLH8u7IvkosyKT%8ABP{g=n zPshaYNITxrqOdK$nH3pS`TvE4|J4fpr0 zM9{l;?*=>C+wrQ7gDull;{3@-h{HKomlk5qGr|84^0d zlPQ%n?a!Hz&1NEz=tym9s-9oN)x!nGwzjq;E1L67kla?t_?(_8htcOpv!czoF!Vf4N^CFlQAyq`4ds8F#^ats2 zP6dgZ&rHU|#Iz)LxCj2`cT1EX;yZEaOyTX;4U!6?gzlHS^dYwLoml@H@q-d4O%_Ja)Jcd^H zg9={n1XK0?#(E#%8)*dzUqB7b3z4sa6}b8|g?$|6Yfz+vyx%U&z%SlAU!PXZpTwC2 zQZ&g|*I>iC@ej78ryf8fLni>L%Kn$TBq>=1E;aP_XkBP61x*jW41fEny}f;uTk`6- zfq_99WBrW-8Ss*#l0O>opgUxAiM03}I^&r!)-b#P) z{Z5VDF?Jhj)ZtEDBV=t?Hy+}zna4(x#)YeO}(s{DW3jL@B|9mG;6AkvayD8 z+tx`Xl}@-6ic@e+TXoYjh)Po?|9Vz%_S_eah)Ul-ByVvHjZUYR^SKo2@1(g1QBKS` zvjQ%UYt~$axV0iLHir9WW$c(<3n!?qM6XwRUZ|1_L|6_whiPW|;K~{+Dp+^hs=o|< zJ0(jt*t??TrrLP)cR@br{5CY5srTYS!{N-LhV&l(DHpQOR9}MQW2NpT8@+o@Ft?Bp zScAuVb`s!l+kt4Z-~UV zzR~^yzB4e}?Dfzq)dB6&KFVbJ&4y?sYAn=3TwlDIAS{aT{XU*>Z~Yt*_=)4@?wzpa z^wcg`SLxroyIT!jE^$i9S6q5tZr3Yzt9_^6tP-M9tZJJ)Q7RcTB`jmpD@J8cgUP{I z#&R!o>V;@CA|UKP$ztK$a(=VYwN;2y_iIw{g=@AvX(Wx^9LPEy-nEkDr6S4!XZ_YK zj2u(nS@cLNGGHkmbDXRkPlPY9vF|IqM8dzcs$)tZG`3b+wh{+QV?>vnO8T+PkrDEo z4X&5#!k_K7E+ciS4s>7MCC&ym{K9%qz0mbN#H~|0wA;Fh z4WU>iK89Qt=x3Gan^1_1#j~9U1VO!00opTX5|Le8*z?*-k+>xW_lY%X)9mowSRTJsMxjvp~-;v-elovq5WY9tu7Mwn_|sqa=*J% zwU^JOT!6ggIjoy0gP|c!jm@j18=+jdch=#oG7YF9&Dv)2 zW64AfnvRe2dVK2Li!Fb#oWqGGNwpaZH|{I041SVt6#mR{=wK~wcm7zB)Y8%l(6x$W z@n(FF##&I*iG^^=ZJz@c|5HEzyZxcl%bP}&#irr_Pt>|qfl~% z$R}7B8EKSkK|%C!T3_i~1CPyhX#7Bo2+mzCfKV-i52Ieq%2#+T^EaLp|(j|DJ3q|Mi9%Vk%!0s&)%{d%-*^ z`Ujigi^iR-O2Y}7tlms#TpA$9);%Rj?6*$&3w;4f=g+Npo)ZK&RoV!1b~QPZ{}k!Z z*{|1;%sX_hvjps6C5Ls<+rJLwOWH)4*HWLJ zz#N0&Z4Ez+ShR=61q#^En}K2P8>wc@S3!@wHfO!SAp2$BRkn~Xnlog!#+y9yzL~|@ za&HT(?=;*vqPrm*KgwVn7FmNHovD22m7zOe?+Kor^SEf2g(%pV;#&{&MY@0*-yIR@ zmc>O>pX~X5@SMVx88ATyy!hEeQ?FVU6TYwBxM*ymGdu&stSmq7wcE$TsuO literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_moments.png b/app/src/main/res/drawable-xxxhdpi/ic_moments.png new file mode 100644 index 0000000000000000000000000000000000000000..cc2d6490241f333bb3522f905519f4ece3784b68 GIT binary patch literal 4916 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 M07*qoM6N<$g4knuJ^%m! literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_profile.png b/app/src/main/res/drawable-xxxhdpi/ic_profile.png new file mode 100644 index 0000000000000000000000000000000000000000..ee8bcf94fa0db4f127d658ea43994bea3b5aded7 GIT binary patch literal 1648 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 Q+yDRo07*qoM6N<$f>+~$BLDyZ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_share.png b/app/src/main/res/drawable-xxxhdpi/ic_share.png new file mode 100644 index 0000000000000000000000000000000000000000..1b556d7dd0af62fcb97b4856c38a6aeb4c22943a GIT binary patch literal 3261 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%0DK2?`RhbW_)`@X&{zq76om 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 a_Dt}&TjMOW7^V1MNe7ivldXWjgZ>ZL3bNe* literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_verified.png b/app/src/main/res/drawable-xxxhdpi/ic_verified.png new file mode 100644 index 0000000000000000000000000000000000000000..8213c188e77f9f0594a013c277dc6852cee6c68d GIT binary patch literal 6015 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�8>8}1z#*&R+*aOFhewHGobT2dvj_4Pz#~6< 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

##y#$`jVg*4x<_N3Y{dF7h3?n;4`4gcaG??D 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

P!oMPdp^5d*AKPl<{t8=}jLjCmj4RQKtApnx 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%0ACHB%07|3nWJ4oR{Y(n38Kqt=Fl!axK87 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 00000000..eca70cfe --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 00000000..eca70cfe --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..c209e78ecd372343283f4157dcfd918ec5165bb3 GIT binary patch literal 1404 zcmV-?1%vuhNk&F=1pok7MM6+kP&il$0000G0000-002h-06|PpNX!5L00Dqw+t%{r zzW2vH!KF=w&cMnnN@{whkTw+#mAh0SV?YL=)3MimFYCWp#fpdtz~8$hD5VPuQgtcN zXl<@<#Cme5f5yr2h%@8TWh?)bSK`O z^Z@d={gn7J{iyxL_y_%J|L>ep{dUxUP8a{byupH&!UNR*OutO~0{*T4q5R6@ApLF! z5{w?Z150gC7#>(VHFJZ-^6O@PYp{t!jH(_Z*nzTK4 zkc{fLE4Q3|mA2`CWQ3{8;gxGizgM!zccbdQoOLZc8hThi-IhN90RFT|zlxh3Ty&VG z?Fe{#9RrRnxzsu|Lg2ddugg7k%>0JeD+{XZ7>Z~{=|M+sh1MF7~ zz>To~`~LVQe1nNoR-gEzkpe{Ak^7{{ZBk2i_<+`Bq<^GB!RYG+z)h;Y3+<{zlMUYd zrd*W4w&jZ0%kBuDZ1EW&KLpyR7r2=}fF2%0VwHM4pUs}ZI2egi#DRMYZPek*^H9YK zay4Iy3WXFG(F14xYsoDA|KXgGc5%2DhmQ1gFCkrgHBm!lXG8I5h*uf{rn48Z!_@ z4Bk6TJAB2CKYqPjiX&mWoW>OPFGd$wqroa($ne7EUK;#3VYkXaew%Kh^3OrMhtjYN?XEoY`tRPQsAkH-DSL^QqyN0>^ zmC>{#F14jz4GeW{pJoRpLFa_*GI{?T93^rX7SPQgT@LbLqpNA}<@2wH;q493)G=1Y z#-sCiRNX~qf3KgiFzB3I>4Z%AfS(3$`-aMIBU+6?gbgDb!)L~A)je+;fR0jWLL-Fu z4)P{c7{B4Hp91&%??2$v9iRSFnuckHUm}or9seH6 z>%NbT+5*@L5(I9j@06@(!{ZI?U0=pKn8uwIg&L{JV14+8s2hnvbRrU|hZCd}IJu7*;;ECgO%8_*W Kmw_-CKmY()leWbG literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..b2dfe3d1ba5cf3ee31b3ecc1ced89044a1f3b7a9 GIT binary patch literal 2898 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f0f1d64e58ba64d180ce43ee13bf9a17835fbca GIT binary patch literal 982 zcmV;{11bDcNk&G_0{{S5MM6+kP&il$0000G0000l001ul06|PpNU8t;00Dqo+t#w^ z^1csucXz7-Qrhzl9HuHB%l>&>1tG2^vb*E&k^T3$FG1eQZ51g$uv4V+kI`0<^1Z@N zk?Jjh$olyC%l>)Xq;7!>{iBj&BjJ`P&$fsCfpve_epJOBkTF?nu-B7D!hO=2ZR}

C%4 zc_9eOXvPbC4kzU8YowIA8cW~Uv|eB&yYwAObSwL2vY~UYI7NXPvf3b+c^?wcs~_t{ ze_m66-0)^{JdOMKPwjpQ@Sna!*?$wTZ~su*tNv7o!gXT!GRgivP}ec?5>l1!7<(rT zds|8x(qGc673zrvYIz;J23FG{9nHMnAuP}NpAED^laz3mAN1sy+NXK)!6v1FxQ;lh zOBLA>$~P3r4b*NcqR;y6pwyhZ3_PiDb|%n1gGjl3ZU}ujInlP{eks-#oA6>rh&g+!f`hv#_%JrgYPu z(U^&XLW^QX7F9Z*SRPpQl{B%x)_AMp^}_v~?j7 zapvHMKxSf*Mtyx8I}-<*UGn3)oHd(nn=)BZ`d$lDBwq_GL($_TPaS{UeevT(AJ`p0 z9%+hQb6z)U9qjbuXjg|dExCLjpS8$VKQ55VsIC%@{N5t{NsW)=hNGI`J=x97_kbz@ E0Of=7!TQj4N+cqN`nQhxvX7dAV-`K|Ub$-q+H-5I?Tx0g9jWxd@A|?POE8`3b8fO$T))xP* z(X?&brZw({`)WU&rdAs1iTa0x6F@PIxJ&&L|dpySV!ID|iUhjCcKz(@mE z!x@~W#3H<)4Ae(4eQJRk`Iz3<1)6^m)0b_4_TRZ+cz#eD3f8V;2r-1fE!F}W zEi0MEkTTx}8i1{`l_6vo0(Vuh0HD$I4SjZ=?^?k82R51bC)2D_{y8mi_?X^=U?2|F{Vr7s!k(AZC$O#ZMyavHhlQ7 zUR~QXuH~#o#>(b$u4?s~HLF*3IcF7023AlwAYudn0FV~|odGH^05AYPEfR)8p`i{n zwg3zPVp{+wOsxKc>)(pMupKF!Y2HoUqQ3|Yu|8lwR=?5zZuhG6J?H`bSNk_wPoM{u zSL{c@pY7+c2kck>`^q1^^gR0QB7Y?KUD{vz-uVX~;V-rW)PDcI)$_UjgVV?S?=oLR zf4}zz{#*R_{LkiJ#0RdQLNC^2Vp%JPEUvG9ra2BVZ92(p9h7Ka@!yf9(lj#}>+|u* z;^_?KWdzkM`6gqPo9;;r6&JEa)}R3X{(CWv?NvgLeOTq$cZXqf7|sPImi-7cS8DCN zGf;DVt3Am`>hH3{4-WzH43Ftx)SofNe^-#|0HdCo<+8Qs!}TZP{HH8~z5n`ExcHuT zDL1m&|DVpIy=xsLO>8k92HcmfSKhflQ0H~9=^-{#!I1g(;+44xw~=* zxvNz35vfsQE)@)Zsp*6_GjYD};Squ83<_?^SbALb{a`j<0Gn%6JY!zhp=Fg}Ga2|8 z52e1WU%^L1}15Ex0fF$e@eCT(()_P zvV?CA%#Sy08_U6VPt4EtmVQraWJX` zh=N|WQ>LgrvF~R&qOfB$!%D3cGv?;Xh_z$z7k&s4N)$WYf*k=|*jCEkO19{h_(%W4 zPuOqbCw`SeAX*R}UUsbVsgtuG?xs(#Ikx9`JZoQFz0n*7ZG@Fv@kZk`gzO$HoA9kN z8U5{-yY zvV{`&WKU2$mZeoBmiJrEdzUZAv1sRxpePdg1)F*X^Y)zp^Y*R;;z~vOv-z&)&G)JQ{m!C9cmziu1^nHA z`#`0c>@PnQ9CJKgC5NjJD8HM3|KC(g5nnCq$n0Gsu_DXk36@ql%npEye|?%RmG)

FJ$wK}0tWNB{uH;AM~i literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..948a3070fe34c611c42c0d3ad3013a0dce358be0 GIT binary patch literal 1900 zcmV-y2b1_xNk&Fw2LJ$9MM6+kP&il$0000G0001A003VA06|PpNH75a00DqwTbm-~ zullQTcXxO9ki!OCRx^i?oR|n!<8G0=kI^!JSjFi-LL*`V;ET0H2IXfU0*i>o6o6Gy zRq6Ap5(_{XLdXcL-MzlN`ugSdZY_`jXhcENAu)N_0?GhF))9R;E`!bo9p?g?SRgw_ zEXHhFG$0{qYOqhdX<(wE4N@es3VIo$%il%6xP9gjiBri+2pI6aY4 zJbgh-Ud|V%3O!IcHKQx1FQH(_*TK;1>FQWbt^$K1zNn^cczkBs=QHCYZ8b&l!UV{K z{L0$KCf_&KR^}&2Fe|L&?1I7~pBENnCtCuH3sjcx6$c zwqkNkru);ie``q+_QI;IYLD9OV0ZxkuyBz|5<$1BH|vtey$> z5oto4=l-R-Aaq`Dk0}o9N0VrkqW_#;!u{!bJLDq%0092{Ghe=F;(kn} z+sQ@1=UlX30+2nWjkL$B^b!H2^QYO@iFc0{(-~yXj2TWz?VG{v`Jg zg}WyYnwGgn>{HFaG7E~pt=)sOO}*yd(UU-D(E&x{xKEl6OcU?pl)K%#U$dn1mDF19 zSw@l8G!GNFB3c3VVK0?uyqN&utT-D5%NM4g-3@Sii9tSXKtwce~uF zS&Jn746EW^wV~8zdQ1XC28~kXu8+Yo9p!<8h&(Q({J*4DBglPdpe4M_mD8AguZFn~ ztiuO~{6Bx?SfO~_ZV(GIboeR9~hAym{{fV|VM=77MxDrbW6`ujX z<3HF(>Zr;#*uCvC*bpoSr~C$h?_%nXps@A)=l_;({Fo#6Y1+Zv`!T5HB+)#^-Ud_; zBwftPN=d8Vx)*O1Mj+0oO=mZ+NVH*ptNDC-&zZ7Hwho6UQ#l-yNvc0Cm+2$$6YUk2D2t#vdZX-u3>-Be1u9gtTBiMB^xwWQ_rgvGpZ6(C@e23c!^K=>ai-Rqu zhqT`ZQof;9Bu!AD(i^PCbYV%yha9zuoKMp`U^z;3!+&d@Hud&_iy!O-$b9ZLcSRh? z)R|826w}TU!J#X6P%@Zh=La$I6zXa#h!B;{qfug}O%z@K{EZECu6zl)7CiNi%xti0 zB{OKfAj83~iJvmpTU|&q1^?^cIMn2RQ?jeSB95l}{DrEPTW{_gmU_pqTc)h@4T>~& zluq3)GM=xa(#^VU5}@FNqpc$?#SbVsX!~RH*5p0p@w z;~v{QMX0^bFT1!cXGM8K9FP+=9~-d~#TK#ZE{4umGT=;dfvWi?rYj;^l_Zxywze`W z^Cr{55U@*BalS}K%Czii_80e0#0#Zkhlij4-~I@}`-JFJ7$5{>LnoJSs??J8kWVl6|8A}RCGAu9^rAsfCE=2}tHwl93t0C?#+jMpvr7O3`2=tr{Hg$=HlnjVG^ewm|Js0J*kfPa6*GhtB>`fN!m#9J(sU!?(OSfzY*zS(FJ<-Vb zfAIg+`U)YaXv#sY(c--|X zEB+TVyZ%Ie4L$gi#Fc++`h6%vzsS$pjz9aLt+ZL(g;n$Dzy5=m=_TV(3H8^C{r0xd zp#a%}ht55dOq?yhwYPrtp-m1xXp;4X;)NhxxUpgP%XTLmO zcjaFva^}dP3$&sfFTIR_jC=2pHh9kpI@2(6V*GQo7Ws)`j)hd+tr@P~gR*2gO@+1? zG<`_tB+LJuF|SZ9tIec;h%}}6WClT`L>HSW?E{Hp1h^+mlbf_$9zA>!ug>NALJsO{ mU%z=YwVD?}XMya)Bp;vlyE5&E_6!fzx9pwrdz474!~g(M6R?N? literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..1b9a6956b3acdc11f40ce2bb3f6efbd845cc243f GIT binary patch literal 3918 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�(p-{x$&=IACIfoAR!za)F-^da-t3#0Dycnp zwO~NVXwXCl;jE<}>%@xz|=8fIJAB?>+E{7)|4l${4ngA3G|=r z2Dyv;VVWSgZx9Wj>qUjleGl3Ei9K4>h!(lPS%8VOG>Xu0%6VDz^O=bjJmuP7>DeUv zrbI}MlHB^^d?{zv6d=@_ZD2lg1&G7UjnVN{1}9WkaM3H~btX0GtSzB+tZ^qRgWo4m z!GmimlG$=wgXCnr6j@m<1gAL46#T~5Bnm=2{^@>|t&`9mkEPddj zAvG~@Tv~TAm2i%VW}R-g(Z0)z-Y|szHr@rk>4MAyG*Ma*7Yh#H7(!-5>DZ@8r;_dx z{prSe<>~099F8vsYd2xff7uAS%7{S)f(|@me3t2$iy&NEc7OUEchp@9A|X;;IA>8!oX+y(BKJ$EzV* znR$z;!L$s7uy@{OT~nG#B!NRraT8(X##Ho!0r_o@gg0CA-9H^;-uE&?$2$nHv_00o z%cbuUc-tCx$Uh&EZ4Nf4Zgqv)Y6>usG3>GeQnxx_Z6+PcbX-+ysbt1hQ`K1LDpOE? zrAhIZhSN9yVIAOa22gn577tbc&i3|3V8NWy&!tw##`}9*x}gtI^h1DzZRA>UuaJG) zaZ7j)dq!O}{?#8Y7~7i6fHh4{`pL?>-18|p!S75Y#^DM>-S3)vuZG+Q7l@ek zQP~#cBpWgg#mApc_sPYjpw8odQuRokmTkzcNl`^CcKB7e&;zViV;{Y{o^Y$%7i0m# z62%#1Lq!RC?}lK>%mp}T!3Xv;L*0v*>USLm``N%>w>@fwC+#T&Tx2bN4w(20JB}oU zuSa6v^kXi0xPs?pbaOHnyiqq6By1EZY9OZ^^QA>{q-Hsd&m`pbQ%8121aWG-F5xf zlZ%;B{;C>X19|`^_?dVyCq>n+41w7|!tUS!{9rHlbhX=SZO5CQ^;!Du_E7*`GiR^Q w)2!4MKjfSAeNo!9>IaV6aUZ*?W>} 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

UmY2RIYtNPVDpE$%vda+HD#3m z&VuXJ{BK&Qe+rBa7eq}Q(bq|tn(RrJAk|ztj2(i{d>nmQnM?;HF2k&9sA6up5tmjl z7lySlzMbifH17-m-Lwa_F&e7nOH?ESi3#ckR3tsM+jsck3`oG!uMS}|eAwVXv>}qxwq?QY%QJ0}r@^;fhuUA9W z*BVl>TGo&N004@xSiwDUXUvp51sVmqO3m)=B55aPwf@0=e}cN+$-BdKxY`YrT_4)0 z_d10#i44Q*rFr8MC>*)v$EJvz``(pb{e&*6k+b zsMz%($|1+8hn8c2?P(l@;Rb&CsZeYoCI3?2!LqjbwPXW3z4G$Qfj=cT5Yb%vY0(AX oeb?AaKtwrnc|$|zzw9vfvn^aJJ!zd)XFXqqy0000001=f@-~a#s literal 0 HcmV?d00001 diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml new file mode 100644 index 00000000..0589574d --- /dev/null +++ b/app/src/main/res/values-night/themes.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 00000000..f8c6127d --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 00000000..e296a558 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Amethyst + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml new file mode 100644 index 00000000..e3dcd4fc --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/backup_rules.xml b/app/src/main/res/xml/backup_rules.xml new file mode 100644 index 00000000..fa0f996d --- /dev/null +++ b/app/src/main/res/xml/backup_rules.xml @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/data_extraction_rules.xml b/app/src/main/res/xml/data_extraction_rules.xml new file mode 100644 index 00000000..9ee9997b --- /dev/null +++ b/app/src/main/res/xml/data_extraction_rules.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/test/java/com/vitorpamplona/amethyst/ExampleUnitTest.kt b/app/src/test/java/com/vitorpamplona/amethyst/ExampleUnitTest.kt new file mode 100644 index 00000000..664fbe1d --- /dev/null +++ b/app/src/test/java/com/vitorpamplona/amethyst/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.vitorpamplona.amethyst + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 00000000..c22aaf30 --- /dev/null +++ b/build.gradle @@ -0,0 +1,13 @@ +buildscript { + ext { + compose_ui_version = '1.3.2' + nav_version = "2.5.3" + room_version = "2.4.3" + } +}// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + id 'com.android.application' version '7.3.1' apply false + id 'com.android.library' version '7.3.1' apply false + id 'org.jetbrains.kotlin.android' version '1.6.10' apply false + id 'org.jetbrains.kotlin.jvm' version '1.7.20' apply false +} \ No newline at end of file diff --git a/deps.txt b/deps.txt new file mode 100644 index 00000000..9cb0db71 --- /dev/null +++ b/deps.txt @@ -0,0 +1,4330 @@ + +> Task :app:dependencies + +------------------------------------------------------------ +Project ':app' +------------------------------------------------------------ + +androidApis - Configuration providing various types of Android JAR file +No dependencies + +androidJacocoAnt - The Jacoco agent to use to get coverage data. +\--- org.jacoco:org.jacoco.ant:0.8.7 + +--- org.jacoco:org.jacoco.core:0.8.7 + | +--- org.ow2.asm:asm:9.1 + | +--- org.ow2.asm:asm-commons:9.1 + | | +--- org.ow2.asm:asm:9.1 + | | +--- org.ow2.asm:asm-tree:9.1 + | | | \--- org.ow2.asm:asm:9.1 + | | \--- org.ow2.asm:asm-analysis:9.1 + | | \--- org.ow2.asm:asm-tree:9.1 (*) + | \--- org.ow2.asm:asm-tree:9.1 (*) + +--- org.jacoco:org.jacoco.report:0.8.7 + | \--- org.jacoco:org.jacoco.core:0.8.7 (*) + \--- org.jacoco:org.jacoco.agent:0.8.7 + +androidJdkImage - Configuration providing JDK image for compiling Java 9+ sources +No dependencies + +androidTestAnnotationProcessor - Classpath for the annotation processor for 'androidTest'. (n) +No dependencies + +androidTestApi (n) +No dependencies + +androidTestApiDependenciesMetadata +No dependencies + +androidTestCompileOnly - Compile only dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestCompileOnlyDependenciesMetadata +No dependencies + +androidTestDebugAnnotationProcessor - Classpath for the annotation processor for 'androidTestDebug'. (n) +No dependencies + +androidTestDebugApi (n) +No dependencies + +androidTestDebugApiDependenciesMetadata +No dependencies + +androidTestDebugCompileOnly - Compile only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugCompileOnlyDependenciesMetadata +No dependencies + +androidTestDebugImplementation - Implementation only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugImplementationDependenciesMetadata +No dependencies + +androidTestDebugIntransitiveDependenciesMetadata +No dependencies + +androidTestDebugRuntimeOnly - Runtime only dependencies for 'androidTestDebug' sources. (n) +No dependencies + +androidTestDebugRuntimeOnlyDependenciesMetadata +No dependencies + +androidTestDebugWearApp - Link to a wear app to embed for object 'androidTestDebug'. (n) +No dependencies + +androidTestImplementation - Implementation only dependencies for 'androidTest' sources. (n) ++--- androidx.test.ext:junit:1.1.5 (n) ++--- androidx.test.espresso:espresso-core:3.5.1 (n) +\--- androidx.compose.ui:ui-test-junit4:1.3.2 (n) + +androidTestImplementationDependenciesMetadata ++--- androidx.test.ext:junit:1.1.5 +| +--- junit:junit:4.13.2 +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- androidx.test:core:1.5.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 +| | | \--- org.jetbrains:annotations:13.0 +| | +--- androidx.test:monitor:1.6.0 -> 1.6.1 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | +--- androidx.test:annotation:1.0.1 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | \--- androidx.tracing:tracing:1.0.0 +| | +--- androidx.test.services:storage:1.4.2 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | +--- androidx.test:monitor:1.6.0 -> 1.6.1 (*) +| | | +--- com.google.code.findbugs:jsr305:2.0.2 +| | | \--- androidx.test:annotation:1.0.1 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.3.1 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.tracing:tracing:1.0.0 +| | +--- com.google.guava:listenablefuture:1.0 +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 (*) +| | \--- androidx.concurrent:concurrent-futures:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- com.google.guava:listenablefuture:1.0 +| +--- androidx.test:monitor:1.6.1 (*) +| \--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) ++--- androidx.test.espresso:espresso-core:3.5.1 +| +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| +--- androidx.test:core:1.5.0 (*) +| +--- androidx.test:runner:1.5.2 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.test:annotation:1.0.1 (*) +| | +--- androidx.test:monitor:1.6.1 (*) +| | +--- androidx.test.services:storage:1.4.2 (*) +| | +--- androidx.tracing:tracing:1.0.0 +| | \--- junit:junit:4.13.2 (*) +| +--- androidx.test.espresso:espresso-idling-resource:3.5.1 +| +--- com.squareup:javawriter:2.1.1 +| +--- javax.inject:javax.inject:1 +| +--- org.hamcrest:hamcrest-library:1.3 +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- org.hamcrest:hamcrest-integration:1.3 +| | \--- org.hamcrest:hamcrest-library:1.3 (*) +| +--- com.google.code.findbugs:jsr305:2.0.2 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 (*) +| \--- androidx.test:annotation:1.0.1 (*) +\--- androidx.compose.ui:ui-test-junit4:1.3.2 + +--- androidx.activity:activity:1.2.0 + | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | +--- androidx.core:core:1.1.0 + | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.3.0 + | | | +--- androidx.lifecycle:lifecycle-common:2.3.0 -> 2.3.1 (*) + | | | +--- androidx.arch.core:core-common:2.1.0 + | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 + | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | | \--- androidx.collection:collection:1.0.0 + | | | \--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) + | | \--- androidx.collection:collection:1.0.0 (*) + | +--- androidx.lifecycle:lifecycle-runtime:2.3.0 (*) + | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.0 + | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | +--- androidx.savedstate:savedstate:1.1.0 + | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.0 + | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) + | +--- androidx.savedstate:savedstate:1.1.0 (*) + | +--- androidx.lifecycle:lifecycle-livedata-core:2.3.0 + | | \--- androidx.lifecycle:lifecycle-common:2.3.0 -> 2.3.1 (*) + | \--- androidx.lifecycle:lifecycle-viewmodel:2.3.0 (*) + +--- androidx.compose.ui:ui-test:1.3.2 + | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 + | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 + | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 + | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.10 + | | | \--- org.jetbrains.kotlinx:atomicfu:0.17.3 + | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.10 + | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 + | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) + | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) + | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4 (c) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 + | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.10 (*) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21 + | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.10 (*) + | +--- androidx.compose.ui:ui:1.3.2 + | | +--- androidx.annotation:annotation:1.5.0 (*) + | | +--- androidx.compose.runtime:runtime-saveable:1.3.2 + | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | | \--- androidx.compose.runtime:runtime:1.3.2 (*) + | | +--- androidx.compose.ui:ui-geometry:1.3.2 + | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | +--- androidx.compose.ui:ui-graphics:1.3.2 + | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) + | | | \--- androidx.compose.ui:ui-unit:1.3.2 + | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | | \--- androidx.compose.ui:ui-geometry:1.3.2 (*) + | | +--- androidx.compose.ui:ui-text:1.3.2 + | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) + | | | \--- androidx.compose.ui:ui-unit:1.3.2 (*) + | | \--- androidx.compose.ui:ui-unit:1.3.2 (*) + | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) + | +--- androidx.compose.ui:ui-text:1.3.2 (*) + | +--- androidx.compose.ui:ui-unit:1.3.2 (*) + | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 (*) + | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 + | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) + | \--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4 + | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) + | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.10 + | \--- org.jetbrains.kotlinx:atomicfu:0.17.3 (*) + +--- androidx.test.ext:junit:1.1.3 -> 1.1.5 (*) + +--- junit:junit:4.13.2 (*) + +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 (*) + \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 + +androidTestIntransitiveDependenciesMetadata +No dependencies + +androidTestReleaseAnnotationProcessor - Classpath for the annotation processor for 'androidTestRelease'. (n) +No dependencies + +androidTestReleaseApi (n) +No dependencies + +androidTestReleaseApiDependenciesMetadata +No dependencies + +androidTestReleaseCompileOnly - Compile only dependencies for 'androidTestRelease' sources. (n) +No dependencies + +androidTestReleaseCompileOnlyDependenciesMetadata +No dependencies + +androidTestReleaseImplementation - Implementation only dependencies for 'androidTestRelease' sources. (n) +No dependencies + +androidTestReleaseImplementationDependenciesMetadata +No dependencies + +androidTestReleaseIntransitiveDependenciesMetadata +No dependencies + +androidTestReleaseRuntimeOnly - Runtime only dependencies for 'androidTestRelease' sources. (n) +No dependencies + +androidTestReleaseRuntimeOnlyDependenciesMetadata +No dependencies + +androidTestReleaseWearApp - Link to a wear app to embed for object 'androidTestRelease'. (n) +No dependencies + +androidTestRuntimeOnly - Runtime only dependencies for 'androidTest' sources. (n) +No dependencies + +androidTestRuntimeOnlyDependenciesMetadata +No dependencies + +androidTestUtil - Additional APKs used during instrumentation testing. +No dependencies + +androidTestWearApp - Link to a wear app to embed for object 'androidTest'. (n) +No dependencies + +annotationProcessor - Classpath for the annotation processor for 'main'. (n) +No dependencies + +api - API dependencies for 'main' sources. (n) +No dependencies + +apiDependenciesMetadata +\--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 + +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 + | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 + | \--- org.jetbrains:annotations:13.0 + \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 + \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) + +archives - Configuration for archive artifacts. (n) +No dependencies + +compileOnly - Compile only dependencies for 'main' sources. (n) +No dependencies + +compileOnlyDependenciesMetadata +No dependencies + +coreLibraryDesugaring - Configuration to desugar libraries +No dependencies + +debugAabPublication - Bundle Publication for debug (n) +No dependencies + +debugAndroidTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debugAndroidTest +No dependencies + +debugAndroidTestApi - API dependencies for compilation 'debugAndroidTest' (target (androidJvm)). (n) +No dependencies + +debugAndroidTestApiDependenciesMetadata +No dependencies + +debugAndroidTestCompileClasspath - Compile classpath for compilation 'debugAndroidTest' (target (androidJvm)). ++--- androidx.test.ext:junit:1.1.5 +| +--- junit:junit:4.13.2 +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- androidx.test:core:1.5.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 +| | | \--- org.jetbrains:annotations:13.0 +| | +--- androidx.test:monitor:1.6.0 -> 1.6.1 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | +--- androidx.test:annotation:1.0.1 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | \--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | \--- androidx.tracing:tracing:1.0.0 +| | +--- androidx.test.services:storage:1.4.2 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | +--- androidx.test:monitor:1.6.0 -> 1.6.1 (*) +| | | +--- com.google.code.findbugs:jsr305:2.0.2 +| | | \--- androidx.test:annotation:1.0.1 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.3.1 -> 2.5.1 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.tracing:tracing:1.0.0 +| | +--- com.google.guava:listenablefuture:1.0 +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | \--- androidx.concurrent:concurrent-futures:1.1.0 -> 1.0.0 +| | +--- com.google.guava:listenablefuture:1.0 +| | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| +--- androidx.test:monitor:1.6.1 (*) +| \--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) ++--- androidx.test.espresso:espresso-core:3.5.1 +| +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| +--- androidx.test:core:1.5.0 (*) +| +--- androidx.test:runner:1.5.2 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.test:annotation:1.0.1 (*) +| | +--- androidx.test:monitor:1.6.1 (*) +| | +--- androidx.test.services:storage:1.4.2 (*) +| | +--- androidx.tracing:tracing:1.0.0 +| | \--- junit:junit:4.13.2 (*) +| +--- androidx.test.espresso:espresso-idling-resource:3.5.1 +| +--- com.squareup:javawriter:2.1.1 +| +--- javax.inject:javax.inject:1 +| +--- org.hamcrest:hamcrest-library:1.3 +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- org.hamcrest:hamcrest-integration:1.3 +| | \--- org.hamcrest:hamcrest-library:1.3 (*) +| +--- com.google.code.findbugs:jsr305:2.0.2 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| \--- androidx.test:annotation:1.0.1 (*) ++--- androidx.compose.ui:ui-test-junit4:1.3.2 +| +--- androidx.activity:activity:1.2.0 -> 1.6.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.core:core:1.8.0 -> 1.9.0 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | +--- androidx.annotation:annotation-experimental:1.3.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | \--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | +--- androidx.core:core-ktx:1.2.0 -> 1.9.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.core:core:1.9.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.5.1 +| | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | +--- androidx.savedstate:savedstate:1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 (c) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.6.4 (c) +| | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4 (c) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.ui:ui-test:1.3.2 +| | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | +--- androidx.compose.ui:ui:1.3.2 +| | | +--- androidx.annotation:annotation:1.5.0 (*) +| | | +--- androidx.compose.runtime:runtime-saveable:1.3.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.compose.runtime:runtime:1.3.2 (*) +| | | +--- androidx.compose.ui:ui-geometry:1.3.2 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.ui:ui-graphics:1.3.2 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | \--- androidx.compose.ui:ui-unit:1.3.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.compose.ui:ui-geometry:1.3.2 (*) +| | | +--- androidx.compose.ui:ui-text:1.3.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) +| | | | \--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | | \--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) +| | +--- androidx.compose.ui:ui-text:1.3.2 (*) +| | +--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4 +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.6.4 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| +--- androidx.test.ext:junit:1.1.3 -> 1.1.5 (*) +| +--- junit:junit:4.13.2 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 (*) ++--- project :app (*) ++--- androidx.test.ext:junit:{strictly 1.1.5} -> 1.1.5 (c) ++--- androidx.test.espresso:espresso-core:{strictly 3.5.1} -> 3.5.1 (c) ++--- androidx.compose.ui:ui-test-junit4:{strictly 1.3.2} -> 1.3.2 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:{strictly 1.7.20} -> 1.7.20 (c) ++--- androidx.compose.ui:ui-tooling:1.3.2 +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.3.2 (*) +| +--- androidx.compose.ui:ui-tooling-data:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| | \--- androidx.compose.ui:ui:1.3.2 (*) +| \--- androidx.compose.ui:ui-tooling-preview:1.3.2 +| +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) ++--- androidx.compose.ui:ui-test-manifest:1.3.2 +| \--- androidx.activity:activity:1.2.0 -> 1.6.1 (*) ++--- androidx.core:core-ktx:1.9.0 (*) ++--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 +| +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) ++--- androidx.activity:activity-compose:1.6.1 +| +--- androidx.activity:activity-ktx:1.6.1 +| | +--- androidx.activity:activity:1.6.1 (*) +| | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| \--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) ++--- androidx.compose.ui:ui:1.3.2 (*) ++--- androidx.compose.ui:ui-tooling-preview:1.3.2 (*) ++--- androidx.compose.material:material:1.3.1 +| +--- androidx.compose.animation:animation-core:1.0.0 -> 1.1.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 -> 1.6.4 (*) +| +--- androidx.compose.foundation:foundation:1.2.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.animation:animation:1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.animation:animation-core:1.1.1 (*) +| | | +--- androidx.compose.foundation:foundation-layout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | \--- androidx.compose.ui:ui-geometry:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | \--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| +--- androidx.compose.material:material-icons-core:1.3.1 +| | \--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| +--- androidx.compose.material:material-ripple:1.3.1 +| | +--- androidx.compose.foundation:foundation:1.1.1 -> 1.2.1 (*) +| | \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.2.0 -> 1.3.2 (*) +| \--- androidx.compose.ui:ui-text:1.2.0 -> 1.3.2 (*) ++--- androidx.navigation:navigation-compose:2.5.3 +| +--- androidx.activity:activity-compose:1.5.1 -> 1.6.1 (*) +| +--- androidx.compose.animation:animation:1.0.1 -> 1.1.1 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1 +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| \--- androidx.navigation:navigation-runtime-ktx:2.5.3 +| +--- androidx.navigation:navigation-common-ktx:2.5.3 +| | \--- androidx.navigation:navigation-common:2.5.3 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- androidx.navigation:navigation-runtime:2.5.3 +| +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| +--- androidx.navigation:navigation-common:2.5.3 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) ++--- io.coil-kt:coil-compose:2.2.2 +| +--- io.coil-kt:coil-compose-base:2.2.2 +| | +--- io.coil-kt:coil-base:2.2.2 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.5.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.7.20 (*) +| | | +--- com.squareup.okhttp3:okhttp:4.10.0 +| | | | +--- com.squareup.okio:okio:3.0.0 -> 3.2.0 +| | | | | \--- com.squareup.okio:okio-jvm:3.2.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20 -> 1.7.20 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.20 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | \--- com.squareup.okio:okio:3.2.0 (*) +| | \--- androidx.compose.foundation:foundation:1.2.1 (*) +| \--- io.coil-kt:coil:2.2.2 +| \--- io.coil-kt:coil-base:2.2.2 (*) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:0.7.0 +| +--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:0.7.0 +| | +--- fr.acinq.secp256k1:secp256k1-kmp:0.7.0 +| | | \--- fr.acinq.secp256k1:secp256k1-kmp-jvm:0.7.0 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) ++--- com.github.Giszmo.NostrPostr:nostrpostrlib:master-SNAPSHOT ++--- androidx.core:core-ktx:{strictly 1.9.0} -> 1.9.0 (c) ++--- androidx.lifecycle:lifecycle-runtime-ktx:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.activity:activity-compose:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.compose.ui:ui:{strictly 1.3.2} -> 1.3.2 (c) ++--- junit:junit:{strictly 4.13.2} -> 4.13.2 (c) ++--- androidx.test:core:{strictly 1.5.0} -> 1.5.0 (c) ++--- androidx.test:monitor:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.annotation:annotation:{strictly 1.5.0} -> 1.5.0 (c) ++--- androidx.test:runner:{strictly 1.5.2} -> 1.5.2 (c) ++--- androidx.test.espresso:espresso-idling-resource:{strictly 3.5.1} -> 3.5.1 (c) ++--- com.squareup:javawriter:{strictly 2.1.1} -> 2.1.1 (c) ++--- javax.inject:javax.inject:{strictly 1} -> 1 (c) ++--- org.hamcrest:hamcrest-library:{strictly 1.3} -> 1.3 (c) ++--- org.hamcrest:hamcrest-integration:{strictly 1.3} -> 1.3 (c) ++--- com.google.code.findbugs:jsr305:{strictly 2.0.2} -> 2.0.2 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib:{strictly 1.7.20} -> 1.7.20 (c) ++--- androidx.test:annotation:{strictly 1.0.1} -> 1.0.1 (c) ++--- androidx.activity:activity:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.compose.ui:ui-test:{strictly 1.3.2} -> 1.3.2 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-common:{strictly 1.7.20} -> 1.7.20 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:{strictly 1.7.20} -> 1.7.20 (c) ++--- androidx.compose.runtime:runtime:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-text:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.runtime:runtime-saveable:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.core:core:{strictly 1.9.0} -> 1.9.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.5.1} -> 2.5.1 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-android:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.activity:activity-ktx:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.compose.ui:ui-geometry:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-graphics:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-unit:{strictly 1.3.2} -> 1.3.2 (c) ++--- org.hamcrest:hamcrest-core:{strictly 1.3} -> 1.3 (c) ++--- androidx.test.services:storage:{strictly 1.4.2} -> 1.4.2 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.tracing:tracing:{strictly 1.0.0} -> 1.0.0 (c) ++--- com.google.guava:listenablefuture:{strictly 1.0} -> 1.0 (c) ++--- androidx.concurrent:concurrent-futures:{strictly 1.0.0} -> 1.0.0 (c) ++--- org.jetbrains:annotations:{strictly 13.0} -> 13.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.3.0} -> 1.3.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.savedstate:savedstate:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core:{strictly 1.6.4} -> 1.6.4 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-test:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.lifecycle:lifecycle-common-java8:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-ktx:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.savedstate:savedstate-ktx:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.5.1} -> 2.5.1 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:{strictly 1.6.4} -> 1.6.4 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:{strictly 1.6.4} -> 1.6.4 (c) +\--- androidx.collection:collection:{strictly 1.2.0} -> 1.2.0 (c) + +debugAndroidTestCompileOnly - Compile only dependencies for compilation 'debugAndroidTest' (target (androidJvm)). (n) +No dependencies + +debugAndroidTestCompileOnlyDependenciesMetadata +No dependencies + +debugAndroidTestImplementation - Implementation only dependencies for compilation 'debugAndroidTest' (target (androidJvm)). (n) +No dependencies + +debugAndroidTestImplementationDependenciesMetadata ++--- androidx.test.ext:junit:1.1.5 +| +--- junit:junit:4.13.2 +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- androidx.test:core:1.5.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 +| | | \--- org.jetbrains:annotations:13.0 +| | +--- androidx.test:monitor:1.6.0 -> 1.6.1 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | +--- androidx.test:annotation:1.0.1 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | \--- androidx.annotation:annotation-experimental:1.1.0 +| | | \--- androidx.tracing:tracing:1.0.0 +| | +--- androidx.test.services:storage:1.4.2 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | +--- androidx.test:monitor:1.6.0 -> 1.6.1 (*) +| | | +--- com.google.code.findbugs:jsr305:2.0.2 +| | | \--- androidx.test:annotation:1.0.1 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.3.1 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.tracing:tracing:1.0.0 +| | +--- com.google.guava:listenablefuture:1.0 +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 (*) +| | \--- androidx.concurrent:concurrent-futures:1.1.0 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- com.google.guava:listenablefuture:1.0 +| +--- androidx.test:monitor:1.6.1 (*) +| \--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) ++--- androidx.test.espresso:espresso-core:3.5.1 +| +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| +--- androidx.test:core:1.5.0 (*) +| +--- androidx.test:runner:1.5.2 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.test:annotation:1.0.1 (*) +| | +--- androidx.test:monitor:1.6.1 (*) +| | +--- androidx.test.services:storage:1.4.2 (*) +| | +--- androidx.tracing:tracing:1.0.0 +| | \--- junit:junit:4.13.2 (*) +| +--- androidx.test.espresso:espresso-idling-resource:3.5.1 +| +--- com.squareup:javawriter:2.1.1 +| +--- javax.inject:javax.inject:1 +| +--- org.hamcrest:hamcrest-library:1.3 +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- org.hamcrest:hamcrest-integration:1.3 +| | \--- org.hamcrest:hamcrest-library:1.3 (*) +| +--- com.google.code.findbugs:jsr305:2.0.2 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 (*) +| \--- androidx.test:annotation:1.0.1 (*) +\--- androidx.compose.ui:ui-test-junit4:1.3.2 + +--- androidx.activity:activity:1.2.0 + | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | +--- androidx.core:core:1.1.0 + | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | +--- androidx.lifecycle:lifecycle-runtime:2.0.0 -> 2.3.0 + | | | +--- androidx.lifecycle:lifecycle-common:2.3.0 -> 2.3.1 (*) + | | | +--- androidx.arch.core:core-common:2.1.0 + | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | +--- androidx.versionedparcelable:versionedparcelable:1.1.0 + | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | | \--- androidx.collection:collection:1.0.0 + | | | \--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) + | | \--- androidx.collection:collection:1.0.0 (*) + | +--- androidx.lifecycle:lifecycle-runtime:2.3.0 (*) + | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.0 + | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | +--- androidx.savedstate:savedstate:1.1.0 + | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.0 + | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) + | +--- androidx.savedstate:savedstate:1.1.0 (*) + | +--- androidx.lifecycle:lifecycle-livedata-core:2.3.0 + | | \--- androidx.lifecycle:lifecycle-common:2.3.0 -> 2.3.1 (*) + | \--- androidx.lifecycle:lifecycle-viewmodel:2.3.0 (*) + +--- androidx.compose.ui:ui-test:1.3.2 + | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 + | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 + | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 + | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.10 + | | | \--- org.jetbrains.kotlinx:atomicfu:0.17.3 + | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.10 + | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 + | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) + | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) + | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4 (c) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 + | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.10 (*) + | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.21 + | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.10 (*) + | +--- androidx.compose.ui:ui:1.3.2 + | | +--- androidx.annotation:annotation:1.5.0 (*) + | | +--- androidx.compose.runtime:runtime-saveable:1.3.2 + | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | | \--- androidx.compose.runtime:runtime:1.3.2 (*) + | | +--- androidx.compose.ui:ui-geometry:1.3.2 + | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | +--- androidx.compose.ui:ui-graphics:1.3.2 + | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) + | | | \--- androidx.compose.ui:ui-unit:1.3.2 + | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | | \--- androidx.compose.ui:ui-geometry:1.3.2 (*) + | | +--- androidx.compose.ui:ui-text:1.3.2 + | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) + | | | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) + | | | \--- androidx.compose.ui:ui-unit:1.3.2 (*) + | | \--- androidx.compose.ui:ui-unit:1.3.2 (*) + | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) + | +--- androidx.compose.ui:ui-text:1.3.2 (*) + | +--- androidx.compose.ui:ui-unit:1.3.2 (*) + | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 (*) + | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 + | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) + | \--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4 + | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) + | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.10 + | \--- org.jetbrains.kotlinx:atomicfu:0.17.3 (*) + +--- androidx.test.ext:junit:1.1.3 -> 1.1.5 (*) + +--- junit:junit:4.13.2 (*) + +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 (*) + \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 + +debugAndroidTestIntransitiveDependenciesMetadata +No dependencies + +debugAndroidTestRuntimeClasspath - Runtime classpath of compilation 'debugAndroidTest' (target (androidJvm)). ++--- androidx.test.ext:junit:1.1.5 +| +--- junit:junit:4.13.2 +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- androidx.test:core:1.5.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 +| | | \--- org.jetbrains:annotations:13.0 +| | +--- androidx.test:monitor:1.6.0 -> 1.6.1 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | +--- androidx.test:annotation:1.0.1 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | \--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | \--- androidx.tracing:tracing:1.0.0 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.test.services:storage:1.4.2 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | +--- androidx.test:monitor:1.6.0 -> 1.6.1 (*) +| | | +--- com.google.code.findbugs:jsr305:2.0.2 +| | | \--- androidx.test:annotation:1.0.1 (*) +| | +--- androidx.lifecycle:lifecycle-common:2.3.1 -> 2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (c) +| | +--- androidx.tracing:tracing:1.0.0 (*) +| | +--- com.google.guava:listenablefuture:1.0 +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | \--- androidx.concurrent:concurrent-futures:1.1.0 -> 1.0.0 +| | +--- com.google.guava:listenablefuture:1.0 +| | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| +--- androidx.test:monitor:1.6.1 (*) +| \--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) ++--- androidx.test.espresso:espresso-core:3.5.1 +| +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| +--- androidx.test:core:1.5.0 (*) +| +--- androidx.test:runner:1.5.2 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.test:annotation:1.0.1 (*) +| | +--- androidx.test:monitor:1.6.1 (*) +| | +--- androidx.test.services:storage:1.4.2 (*) +| | +--- androidx.tracing:tracing:1.0.0 (*) +| | \--- junit:junit:4.13.2 (*) +| +--- androidx.test.espresso:espresso-idling-resource:3.5.1 +| +--- com.squareup:javawriter:2.1.1 +| +--- javax.inject:javax.inject:1 +| +--- org.hamcrest:hamcrest-library:1.3 +| | \--- org.hamcrest:hamcrest-core:1.3 +| +--- org.hamcrest:hamcrest-integration:1.3 +| | \--- org.hamcrest:hamcrest-library:1.3 (*) +| +--- com.google.code.findbugs:jsr305:2.0.2 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| \--- androidx.test:annotation:1.0.1 (*) ++--- androidx.compose.ui:ui-test-junit4:1.3.2 +| +--- androidx.activity:activity:1.2.0 -> 1.6.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.core:core:1.8.0 -> 1.9.0 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | +--- androidx.annotation:annotation-experimental:1.3.0 (*) +| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.concurrent:concurrent-futures:1.0.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | \--- androidx.core:core-ktx:1.9.0 (c) +| | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (c) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 +| | | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | +--- androidx.core:core-ktx:1.2.0 -> 1.9.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.core:core:1.9.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | \--- androidx.core:core:1.9.0 (c) +| | | +--- androidx.lifecycle:lifecycle-livedata-core:2.5.1 +| | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | +--- androidx.savedstate:savedstate:1.2.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-common:2.4.0 -> 2.5.1 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 (c) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.6.4 (c) +| | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4 (c) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | +--- androidx.tracing:tracing:1.0.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | \--- androidx.activity:activity-ktx:1.6.1 (c) +| +--- androidx.activity:activity-compose:1.3.0 -> 1.6.1 +| | +--- androidx.activity:activity-ktx:1.6.1 +| | | +--- androidx.activity:activity:1.6.1 (*) +| | | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | | +--- androidx.savedstate:savedstate-ktx:1.2.0 +| | | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | \--- androidx.activity:activity:1.6.1 (c) +| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.runtime:runtime:1.3.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 +| | | +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| | | +--- androidx.annotation:annotation:1.5.0 (*) +| | | +--- androidx.autofill:autofill:1.0.0 +| | | | \--- androidx.core:core:1.1.0 -> 1.9.0 (*) +| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.compose.runtime:runtime:1.3.2 (*) +| | | +--- androidx.compose.runtime:runtime-saveable:1.3.2 (*) +| | | +--- androidx.compose.ui:ui-geometry:1.3.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-util:1.3.2 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | +--- androidx.compose.ui:ui-graphics:1.3.2 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-unit:1.3.2 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | | | +--- androidx.compose.ui:ui-geometry:1.3.2 (*) +| | | | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | | +--- androidx.compose.ui:ui-text:1.3.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | | +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| | | | +--- androidx.compose.runtime:runtime-saveable:1.2.0 -> 1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | | +--- androidx.core:core:1.7.0 -> 1.9.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| | | +--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | +--- androidx.core:core:1.5.0 -> 1.9.0 (*) +| | | +--- androidx.customview:customview-poolingcontainer:1.0.0 +| | | | +--- androidx.core:core-ktx:1.5.0 -> 1.9.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | +--- androidx.lifecycle:lifecycle-common-java8:2.3.0 -> 2.5.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.3.0 -> 2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.0 -> 2.5.1 (*) +| | | +--- androidx.profileinstaller:profileinstaller:1.2.0 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | \--- androidx.startup:startup-runtime:1.1.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.tracing:tracing:1.0.0 (*) +| | | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.1.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui-test:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.3.2 (*) +| | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) +| | +--- androidx.compose.ui:ui-text:1.3.2 (*) +| | +--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | +--- androidx.test:monitor:1.5.0 -> 1.6.1 (*) +| | +--- androidx.test.espresso:espresso-core:3.3.0 -> 3.5.1 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4 +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.6.4 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| +--- androidx.lifecycle:lifecycle-common:2.3.0 -> 2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.3.0 -> 2.5.1 (*) +| +--- androidx.test:core:1.4.0 -> 1.5.0 (*) +| +--- androidx.test:monitor:1.5.0 -> 1.6.1 (*) +| +--- androidx.test.espresso:espresso-core:3.3.0 -> 3.5.1 (*) +| +--- androidx.test.espresso:espresso-idling-resource:3.3.0 -> 3.5.1 +| +--- androidx.test.ext:junit:1.1.3 -> 1.1.5 (*) +| +--- junit:junit:4.13.2 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| \--- org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4 (*) ++--- androidx.annotation:annotation:{strictly 1.5.0} -> 1.5.0 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib:{strictly 1.7.20} -> 1.7.20 (c) ++--- androidx.activity:activity:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.activity:activity-compose:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.compose.runtime:runtime-saveable:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.5.1} -> 2.5.1 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-common:{strictly 1.7.20} -> 1.7.20 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.tracing:tracing:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.concurrent:concurrent-futures:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.3.0} -> 1.3.0 (c) ++--- org.jetbrains:annotations:{strictly 13.0} -> 13.0 (c) ++--- androidx.compose.runtime:runtime:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-graphics:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-text:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-unit:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-util:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.core:core-ktx:{strictly 1.9.0} -> 1.9.0 (c) ++--- androidx.collection:collection:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.core:core:{strictly 1.9.0} -> 1.9.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.savedstate:savedstate:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.activity:activity-ktx:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.lifecycle:lifecycle-common-java8:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.arch.core:core-runtime:{strictly 2.1.0} -> 2.1.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:{strictly 1.6.4} -> 1.6.4 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-android:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.autofill:autofill:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.compose.ui:ui-geometry:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.customview:customview-poolingcontainer:{strictly 1.0.0} -> 1.0.0 (c) ++--- androidx.profileinstaller:profileinstaller:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.savedstate:savedstate-ktx:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:{strictly 1.6.4} -> 1.6.4 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:{strictly 1.7.20} -> 1.7.20 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.lifecycle:lifecycle-runtime-ktx:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-ktx:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.startup:startup-runtime:{strictly 1.1.1} -> 1.1.1 (c) +\--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:{strictly 1.7.20} -> 1.7.20 (c) + +debugAndroidTestRuntimeOnly - Runtime only dependencies for compilation 'debugAndroidTest' (target (androidJvm)). (n) +No dependencies + +debugAndroidTestRuntimeOnlyDependenciesMetadata +No dependencies + +debugAnnotationProcessor - Classpath for the annotation processor for 'debug'. (n) +No dependencies + +debugAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debug +No dependencies + +debugApi - API dependencies for compilation 'debug' (target (androidJvm)). (n) +No dependencies + +debugApiDependenciesMetadata +\--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 + +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 + | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 + | \--- org.jetbrains:annotations:13.0 + \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 + \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) + +debugApiElements - API elements for debug (n) +No dependencies + +debugApkPublication - APK publication for debug (n) +No dependencies + +debugCompileClasspath - Compile classpath for compilation 'debug' (target (androidJvm)). ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 +| | \--- org.jetbrains:annotations:13.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:{strictly 1.7.20} -> 1.7.20 (c) ++--- androidx.compose.ui:ui-tooling:1.3.2 +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 (c) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| +--- androidx.compose.ui:ui:1.3.2 +| | +--- androidx.annotation:annotation:1.5.0 (*) +| | +--- androidx.compose.runtime:runtime-saveable:1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.compose.runtime:runtime:1.3.2 (*) +| | +--- androidx.compose.ui:ui-geometry:1.3.2 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.ui:ui-graphics:1.3.2 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | \--- androidx.compose.ui:ui-unit:1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.compose.ui:ui-geometry:1.3.2 (*) +| | +--- androidx.compose.ui:ui-text:1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) +| | | \--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | \--- androidx.compose.ui:ui-unit:1.3.2 (*) +| +--- androidx.compose.ui:ui-tooling-data:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| | \--- androidx.compose.ui:ui:1.3.2 (*) +| \--- androidx.compose.ui:ui-tooling-preview:1.3.2 +| +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) ++--- androidx.compose.ui:ui-test-manifest:1.3.2 +| \--- androidx.activity:activity:1.2.0 -> 1.6.1 +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| +--- androidx.core:core:1.8.0 -> 1.9.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.annotation:annotation-experimental:1.3.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.2.0 +| | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | +--- androidx.core:core-ktx:1.2.0 -> 1.9.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.core:core:1.9.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.5.1 +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | +--- androidx.savedstate:savedstate:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| +--- androidx.savedstate:savedstate:1.2.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) ++--- androidx.core:core-ktx:1.9.0 (*) ++--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 +| +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) ++--- androidx.activity:activity-compose:1.6.1 +| +--- androidx.activity:activity-ktx:1.6.1 +| | +--- androidx.activity:activity:1.6.1 (*) +| | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| \--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) ++--- androidx.compose.ui:ui:1.3.2 (*) ++--- androidx.compose.ui:ui-tooling-preview:1.3.2 (*) ++--- androidx.compose.material:material:1.3.1 +| +--- androidx.compose.animation:animation-core:1.0.0 -> 1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| +--- androidx.compose.foundation:foundation:1.2.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.animation:animation:1.1.1 -> 1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.animation:animation-core:1.3.2 (*) +| | | +--- androidx.compose.foundation:foundation-layout:1.0.0 -> 1.2.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| | | | \--- androidx.compose.ui:ui-unit:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | \--- androidx.compose.ui:ui-geometry:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | \--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| +--- androidx.compose.material:material-icons-core:1.3.1 +| | \--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| +--- androidx.compose.material:material-ripple:1.3.1 +| | +--- androidx.compose.foundation:foundation:1.1.1 -> 1.2.1 (*) +| | \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.2.0 -> 1.3.2 (*) +| \--- androidx.compose.ui:ui-text:1.2.0 -> 1.3.2 (*) ++--- androidx.navigation:navigation-compose:2.5.3 +| +--- androidx.activity:activity-compose:1.5.1 -> 1.6.1 (*) +| +--- androidx.compose.animation:animation:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1 +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| \--- androidx.navigation:navigation-runtime-ktx:2.5.3 +| +--- androidx.navigation:navigation-common-ktx:2.5.3 +| | \--- androidx.navigation:navigation-common:2.5.3 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- androidx.navigation:navigation-runtime:2.5.3 +| +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| +--- androidx.navigation:navigation-common:2.5.3 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) ++--- io.coil-kt:coil-compose:2.2.2 +| +--- io.coil-kt:coil-compose-base:2.2.2 +| | +--- io.coil-kt:coil-base:2.2.2 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.5.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.7.20 (*) +| | | +--- com.squareup.okhttp3:okhttp:4.10.0 +| | | | +--- com.squareup.okio:okio:3.0.0 -> 3.2.0 +| | | | | \--- com.squareup.okio:okio-jvm:3.2.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20 -> 1.7.20 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.20 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | \--- com.squareup.okio:okio:3.2.0 (*) +| | \--- androidx.compose.foundation:foundation:1.2.1 (*) +| \--- io.coil-kt:coil:2.2.2 +| \--- io.coil-kt:coil-base:2.2.2 (*) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:0.7.0 +| +--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:0.7.0 +| | +--- fr.acinq.secp256k1:secp256k1-kmp:0.7.0 +| | | \--- fr.acinq.secp256k1:secp256k1-kmp-jvm:0.7.0 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) ++--- com.github.Giszmo.NostrPostr:nostrpostrlib:master-SNAPSHOT ++--- androidx.compose.ui:ui-tooling:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-test-manifest:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.core:core-ktx:{strictly 1.9.0} -> 1.9.0 (c) ++--- androidx.lifecycle:lifecycle-runtime-ktx:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.activity:activity-compose:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.compose.ui:ui:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-tooling-preview:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.material:material:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.navigation:navigation-compose:{strictly 2.5.3} -> 2.5.3 (c) ++--- io.coil-kt:coil-compose:{strictly 2.2.2} -> 2.2.2 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:{strictly 0.7.0} -> 0.7.0 (c) ++--- com.github.Giszmo.NostrPostr:nostrpostrlib:{strictly master-SNAPSHOT} -> master-SNAPSHOT (c) ++--- org.jetbrains.kotlin:kotlin-stdlib:{strictly 1.7.20} -> 1.7.20 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:{strictly 1.7.20} -> 1.7.20 (c) ++--- androidx.annotation:annotation:{strictly 1.5.0} -> 1.5.0 (c) ++--- androidx.compose.runtime:runtime:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-tooling-data:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.activity:activity:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.core:core:{strictly 1.9.0} -> 1.9.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.5.1} -> 2.5.1 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-android:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.activity:activity-ktx:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.compose.runtime:runtime-saveable:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-geometry:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-graphics:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-text:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-unit:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.animation:animation-core:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.foundation:foundation:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.compose.material:material-icons-core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.compose.material:material-ripple:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.compose.animation:animation:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-compose:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.navigation:navigation-runtime-ktx:{strictly 2.5.3} -> 2.5.3 (c) ++--- io.coil-kt:coil-compose-base:{strictly 2.2.2} -> 2.2.2 (c) ++--- io.coil-kt:coil:{strictly 2.2.2} -> 2.2.2 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:{strictly 0.7.0} -> 0.7.0 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-common:{strictly 1.7.20} -> 1.7.20 (c) ++--- org.jetbrains:annotations:{strictly 13.0} -> 13.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.savedstate:savedstate:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.3.0} -> 1.3.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.5.1} -> 2.5.1 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core:{strictly 1.6.4} -> 1.6.4 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-ktx:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.savedstate:savedstate-ktx:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.compose.foundation:foundation-layout:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.lifecycle:lifecycle-common-java8:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.navigation:navigation-common-ktx:{strictly 2.5.3} -> 2.5.3 (c) ++--- androidx.navigation:navigation-runtime:{strictly 2.5.3} -> 2.5.3 (c) ++--- io.coil-kt:coil-base:{strictly 2.2.2} -> 2.2.2 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp:{strictly 0.7.0} -> 0.7.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.collection:collection:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.navigation:navigation-common:{strictly 2.5.3} -> 2.5.3 (c) ++--- com.squareup.okhttp3:okhttp:{strictly 4.10.0} -> 4.10.0 (c) ++--- com.squareup.okio:okio:{strictly 3.2.0} -> 3.2.0 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp-jvm:{strictly 0.7.0} -> 0.7.0 (c) +\--- com.squareup.okio:okio-jvm:{strictly 3.2.0} -> 3.2.0 (c) + +debugCompileOnly - Compile only dependencies for compilation 'debug' (target (androidJvm)). (n) +No dependencies + +debugCompileOnlyDependenciesMetadata +No dependencies + +debugImplementation - Implementation only dependencies for compilation 'debug' (target (androidJvm)). (n) ++--- androidx.compose.ui:ui-tooling:1.3.2 (n) +\--- androidx.compose.ui:ui-test-manifest:1.3.2 (n) + +debugImplementationDependenciesMetadata ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 +| | \--- org.jetbrains:annotations:13.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) ++--- androidx.compose.ui:ui-tooling:1.3.2 +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | | \--- org.jetbrains.kotlinx:atomicfu:0.17.3 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.20 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| +--- androidx.compose.ui:ui:1.3.2 +| | +--- androidx.annotation:annotation:1.5.0 (*) +| | +--- androidx.compose.runtime:runtime-saveable:1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.compose.runtime:runtime:1.3.2 (*) +| | +--- androidx.compose.ui:ui-geometry:1.3.2 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.ui:ui-graphics:1.3.2 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | \--- androidx.compose.ui:ui-unit:1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.compose.ui:ui-geometry:1.3.2 (*) +| | +--- androidx.compose.ui:ui-text:1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) +| | | \--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | \--- androidx.compose.ui:ui-unit:1.3.2 (*) +| +--- androidx.compose.ui:ui-tooling-data:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| | \--- androidx.compose.ui:ui:1.3.2 (*) +| \--- androidx.compose.ui:ui-tooling-preview:1.3.2 +| +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) ++--- androidx.compose.ui:ui-test-manifest:1.3.2 +| \--- androidx.activity:activity:1.2.0 -> 1.6.1 +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| +--- androidx.core:core:1.8.0 -> 1.9.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.annotation:annotation-experimental:1.3.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.collection:collection:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | +--- androidx.core:core-ktx:1.2.0 -> 1.9.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.core:core:1.9.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.5.1 +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | +--- androidx.savedstate:savedstate:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| +--- androidx.savedstate:savedstate:1.2.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) ++--- androidx.core:core-ktx:1.9.0 (*) ++--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 +| +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) ++--- androidx.activity:activity-compose:1.6.1 +| +--- androidx.activity:activity-ktx:1.6.1 +| | +--- androidx.activity:activity:1.6.1 (*) +| | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| \--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) ++--- androidx.compose.ui:ui:1.3.2 (*) ++--- androidx.compose.ui:ui-tooling-preview:1.3.2 (*) ++--- androidx.compose.material:material:1.3.1 +| +--- androidx.compose.animation:animation-core:1.0.0 -> 1.1.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 -> 1.6.4 (*) +| +--- androidx.compose.foundation:foundation:1.2.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.animation:animation:1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.animation:animation-core:1.1.1 (*) +| | | +--- androidx.compose.foundation:foundation-layout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | \--- androidx.compose.ui:ui-geometry:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | \--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| +--- androidx.compose.material:material-icons-core:1.3.1 +| | \--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| +--- androidx.compose.material:material-ripple:1.3.1 +| | +--- androidx.compose.foundation:foundation:1.1.1 -> 1.2.1 (*) +| | \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.2.0 -> 1.3.2 (*) +| \--- androidx.compose.ui:ui-text:1.2.0 -> 1.3.2 (*) ++--- androidx.navigation:navigation-compose:2.5.3 +| +--- androidx.activity:activity-compose:1.5.1 -> 1.6.1 (*) +| +--- androidx.compose.animation:animation:1.0.1 -> 1.1.1 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1 +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| \--- androidx.navigation:navigation-runtime-ktx:2.5.3 +| +--- androidx.navigation:navigation-common-ktx:2.5.3 +| | \--- androidx.navigation:navigation-common:2.5.3 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- androidx.navigation:navigation-runtime:2.5.3 +| +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| +--- androidx.navigation:navigation-common:2.5.3 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) ++--- io.coil-kt:coil-compose:2.2.2 +| +--- io.coil-kt:coil-compose-base:2.2.2 +| | +--- io.coil-kt:coil-base:2.2.2 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.5.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.7.20 (*) +| | | +--- com.squareup.okhttp3:okhttp:4.10.0 +| | | | +--- com.squareup.okio:okio:3.0.0 -> 3.2.0 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.20 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | \--- com.squareup.okio:okio:3.2.0 (*) +| | \--- androidx.compose.foundation:foundation:1.2.1 (*) +| \--- io.coil-kt:coil:2.2.2 +| \--- io.coil-kt:coil-base:2.2.2 (*) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:0.7.0 +| +--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:0.7.0 +| | +--- fr.acinq.secp256k1:secp256k1-kmp:0.7.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +\--- com.github.Giszmo.NostrPostr:nostrpostrlib:master-SNAPSHOT + +debugIntransitiveDependenciesMetadata +No dependencies + +debugReverseMetadataValues - Metadata Values dependencies for the base Split +No dependencies + +debugRuntimeClasspath - Runtime classpath of compilation 'debug' (target (androidJvm)). ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 +| | \--- org.jetbrains:annotations:13.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) ++--- androidx.compose.ui:ui-tooling:1.3.2 +| +--- androidx.activity:activity-compose:1.3.0 -> 1.6.1 +| | +--- androidx.activity:activity-ktx:1.6.1 +| | | +--- androidx.activity:activity:1.6.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.core:core:1.8.0 -> 1.9.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | | +--- androidx.annotation:annotation-experimental:1.3.0 +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | | | +--- androidx.concurrent:concurrent-futures:1.0.0 +| | | | | | +--- com.google.guava:listenablefuture:1.0 +| | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | | \--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (c) +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | | | \--- androidx.core:core-ktx:1.9.0 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | | | +--- androidx.core:core-ktx:1.2.0 -> 1.9.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | | +--- androidx.core:core:1.9.0 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | | | \--- androidx.core:core:1.9.0 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.5.1 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | | | +--- androidx.savedstate:savedstate:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.4.0 -> 2.5.1 (*) +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 +| | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 (c) +| | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | | +--- androidx.tracing:tracing:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | \--- androidx.activity:activity-ktx:1.6.1 (c) +| | | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | | +--- androidx.savedstate:savedstate-ktx:1.2.0 +| | | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | \--- androidx.activity:activity:1.6.1 (c) +| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.runtime:runtime:1.3.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 +| | | +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| | | +--- androidx.annotation:annotation:1.5.0 (*) +| | | +--- androidx.autofill:autofill:1.0.0 +| | | | \--- androidx.core:core:1.1.0 -> 1.9.0 (*) +| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.compose.runtime:runtime:1.3.2 (*) +| | | +--- androidx.compose.runtime:runtime-saveable:1.3.2 (*) +| | | +--- androidx.compose.ui:ui-geometry:1.3.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-util:1.3.2 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | +--- androidx.compose.ui:ui-graphics:1.3.2 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-unit:1.3.2 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | | | +--- androidx.compose.ui:ui-geometry:1.3.2 (*) +| | | | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | | +--- androidx.compose.ui:ui-text:1.3.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | | +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| | | | +--- androidx.compose.runtime:runtime-saveable:1.2.0 -> 1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | | +--- androidx.core:core:1.7.0 -> 1.9.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| | | +--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | +--- androidx.core:core:1.5.0 -> 1.9.0 (*) +| | | +--- androidx.customview:customview-poolingcontainer:1.0.0 +| | | | +--- androidx.core:core-ktx:1.5.0 -> 1.9.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | +--- androidx.lifecycle:lifecycle-common-java8:2.3.0 -> 2.5.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.3.0 -> 2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.0 -> 2.5.1 (*) +| | | +--- androidx.profileinstaller:profileinstaller:1.2.0 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | \--- androidx.startup:startup-runtime:1.1.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.tracing:tracing:1.0.0 (*) +| | | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| +--- androidx.compose.animation:animation:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.animation:animation-core:1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.2.0 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-unit:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| | +--- androidx.compose.foundation:foundation-layout:1.0.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.animation:animation-core:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-unit:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.core:core:1.7.0 -> 1.9.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-geometry:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| +--- androidx.compose.material:material:1.0.0 -> 1.3.1 +| | +--- androidx.compose.animation:animation:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.animation:animation-core:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.foundation:foundation:1.2.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.animation:animation:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.foundation:foundation-layout:1.2.1 (*) +| | | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-graphics:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-text:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | +--- androidx.compose.foundation:foundation-layout:1.1.1 -> 1.2.1 (*) +| | +--- androidx.compose.material:material-icons-core:1.3.1 +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.compose.material:material-ripple:1.3.1 +| | | +--- androidx.compose.animation:animation:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.compose.foundation:foundation:1.1.1 -> 1.2.1 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.2.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-text:1.2.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.3.0 -> 2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.0 -> 2.5.1 (*) +| | +--- androidx.savedstate:savedstate:1.1.0 -> 1.2.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.3.2 (*) +| +--- androidx.compose.ui:ui-tooling-data:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.ui:ui-tooling-preview:1.3.2 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) ++--- androidx.compose.ui:ui-test-manifest:1.3.2 +| \--- androidx.activity:activity:1.2.0 -> 1.6.1 (*) ++--- androidx.core:core-ktx:1.9.0 (*) ++--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) ++--- androidx.activity:activity-compose:1.6.1 (*) ++--- androidx.compose.ui:ui:1.3.2 (*) ++--- androidx.compose.ui:ui-tooling-preview:1.3.2 (*) ++--- androidx.compose.material:material:1.3.1 (*) ++--- androidx.navigation:navigation-compose:2.5.3 +| +--- androidx.activity:activity-compose:1.5.1 -> 1.6.1 (*) +| +--- androidx.compose.animation:animation:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.foundation:foundation-layout:1.0.1 -> 1.2.1 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1 +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| +--- androidx.navigation:navigation-runtime-ktx:2.5.3 +| | +--- androidx.navigation:navigation-common-ktx:2.5.3 +| | | \--- androidx.navigation:navigation-common:2.5.3 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.collection:collection-ktx:1.1.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.20 -> 1.7.20 (*) +| | | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | \--- androidx.navigation:navigation-runtime:2.5.3 +| | +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.navigation:navigation-common:2.5.3 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) ++--- io.coil-kt:coil-compose:2.2.2 +| +--- io.coil-kt:coil-compose-base:2.2.2 +| | +--- io.coil-kt:coil-base:2.2.2 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.5.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.7.20 (*) +| | | +--- com.squareup.okhttp3:okhttp:4.10.0 +| | | | +--- com.squareup.okio:okio:3.0.0 -> 3.2.0 +| | | | | \--- com.squareup.okio:okio-jvm:3.2.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20 -> 1.7.20 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.20 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | +--- com.squareup.okio:okio:3.2.0 (*) +| | | +--- androidx.annotation:annotation:1.5.0 (*) +| | | +--- androidx.appcompat:appcompat-resources:1.4.2 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | +--- androidx.core:core:1.0.1 -> 1.9.0 (*) +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | +--- androidx.core:core:1.1.0 -> 1.9.0 (*) +| | | | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*) +| | | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.collection:collection:1.2.0 (*) +| | | +--- androidx.core:core-ktx:1.8.0 -> 1.9.0 (*) +| | | \--- androidx.exifinterface:exifinterface:1.3.3 +| | | \--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.compose.foundation:foundation:1.2.1 (*) +| | +--- androidx.core:core-ktx:1.8.0 -> 1.9.0 (*) +| | \--- com.google.accompanist:accompanist-drawablepainter:0.25.1 +| | \--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| \--- io.coil-kt:coil:2.2.2 +| \--- io.coil-kt:coil-base:2.2.2 (*) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:0.7.0 +| +--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:0.7.0 +| | +--- fr.acinq.secp256k1:secp256k1-kmp:0.7.0 +| | | \--- fr.acinq.secp256k1:secp256k1-kmp-jvm:0.7.0 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +\--- com.github.Giszmo.NostrPostr:nostrpostrlib:master-SNAPSHOT + +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10 -> 1.7.20 (*) + +--- com.squareup.retrofit2:retrofit:2.8.1 + | \--- com.squareup.okhttp3:okhttp:3.14.7 -> 4.10.0 (*) + +--- com.squareup.retrofit2:converter-gson:2.8.1 + | +--- com.squareup.retrofit2:retrofit:2.8.1 (*) + | \--- com.google.code.gson:gson:2.8.5 + +--- com.squareup.okhttp3:okhttp:4.9.3 -> 4.10.0 (*) + +--- com.madgag.spongycastle:core:1.51.0.0 + +--- com.madgag.spongycastle:prov:1.51.0.0 + | \--- com.madgag.spongycastle:core:1.51.0.0 + \--- com.github.mgunlogson:cuckoofilter4j:1.0.1 + \--- com.google.guava:guava:19.0 + +debugRuntimeElements - Runtime elements for debug (n) +No dependencies + +debugRuntimeOnly - Runtime only dependencies for compilation 'debug' (target (androidJvm)). (n) +No dependencies + +debugRuntimeOnlyDependenciesMetadata +No dependencies + +debugUnitTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: debugUnitTest +No dependencies + +debugUnitTestApi - API dependencies for compilation 'debugUnitTest' (target (androidJvm)). (n) +No dependencies + +debugUnitTestApiDependenciesMetadata +No dependencies + +debugUnitTestCompileClasspath - Compile classpath for compilation 'debugUnitTest' (target (androidJvm)). ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 +| | \--- org.jetbrains:annotations:13.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) ++--- androidx.compose.ui:ui-tooling:1.3.2 +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) +| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 (c) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| +--- androidx.compose.ui:ui:1.3.2 +| | +--- androidx.annotation:annotation:1.5.0 (*) +| | +--- androidx.compose.runtime:runtime-saveable:1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.compose.runtime:runtime:1.3.2 (*) +| | +--- androidx.compose.ui:ui-geometry:1.3.2 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.ui:ui-graphics:1.3.2 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | \--- androidx.compose.ui:ui-unit:1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.compose.ui:ui-geometry:1.3.2 (*) +| | +--- androidx.compose.ui:ui-text:1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) +| | | \--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | \--- androidx.compose.ui:ui-unit:1.3.2 (*) +| +--- androidx.compose.ui:ui-tooling-data:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| | \--- androidx.compose.ui:ui:1.3.2 (*) +| \--- androidx.compose.ui:ui-tooling-preview:1.3.2 +| +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) ++--- androidx.compose.ui:ui-test-manifest:1.3.2 +| \--- androidx.activity:activity:1.2.0 -> 1.6.1 +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| +--- androidx.core:core:1.8.0 -> 1.9.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.annotation:annotation-experimental:1.3.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.2.0 +| | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 +| | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | +--- androidx.core:core-ktx:1.2.0 -> 1.9.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.core:core:1.9.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.lifecycle:lifecycle-livedata-core:2.5.1 +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | +--- androidx.savedstate:savedstate:1.2.0 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| +--- androidx.savedstate:savedstate:1.2.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) ++--- project :app (*) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:{strictly 1.7.20} -> 1.7.20 (c) ++--- androidx.compose.ui:ui-tooling:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-test-manifest:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.core:core-ktx:1.9.0 (*) ++--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 +| +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) ++--- androidx.activity:activity-compose:1.6.1 +| +--- androidx.activity:activity-ktx:1.6.1 +| | +--- androidx.activity:activity:1.6.1 (*) +| | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| \--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) ++--- androidx.compose.ui:ui:1.3.2 (*) ++--- androidx.compose.ui:ui-tooling-preview:1.3.2 (*) ++--- androidx.compose.material:material:1.3.1 +| +--- androidx.compose.animation:animation-core:1.0.0 -> 1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| +--- androidx.compose.foundation:foundation:1.2.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.animation:animation:1.1.1 -> 1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.animation:animation-core:1.3.2 (*) +| | | +--- androidx.compose.foundation:foundation-layout:1.0.0 -> 1.2.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| | | | \--- androidx.compose.ui:ui-unit:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | \--- androidx.compose.ui:ui-geometry:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | \--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| +--- androidx.compose.material:material-icons-core:1.3.1 +| | \--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| +--- androidx.compose.material:material-ripple:1.3.1 +| | +--- androidx.compose.foundation:foundation:1.1.1 -> 1.2.1 (*) +| | \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.2.0 -> 1.3.2 (*) +| \--- androidx.compose.ui:ui-text:1.2.0 -> 1.3.2 (*) ++--- androidx.navigation:navigation-compose:2.5.3 +| +--- androidx.activity:activity-compose:1.5.1 -> 1.6.1 (*) +| +--- androidx.compose.animation:animation:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1 +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| \--- androidx.navigation:navigation-runtime-ktx:2.5.3 +| +--- androidx.navigation:navigation-common-ktx:2.5.3 +| | \--- androidx.navigation:navigation-common:2.5.3 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- androidx.navigation:navigation-runtime:2.5.3 +| +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| +--- androidx.navigation:navigation-common:2.5.3 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) ++--- io.coil-kt:coil-compose:2.2.2 +| +--- io.coil-kt:coil-compose-base:2.2.2 +| | +--- io.coil-kt:coil-base:2.2.2 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.5.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.7.20 (*) +| | | +--- com.squareup.okhttp3:okhttp:4.10.0 +| | | | +--- com.squareup.okio:okio:3.0.0 -> 3.2.0 +| | | | | \--- com.squareup.okio:okio-jvm:3.2.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20 -> 1.7.20 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.20 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | \--- com.squareup.okio:okio:3.2.0 (*) +| | \--- androidx.compose.foundation:foundation:1.2.1 (*) +| \--- io.coil-kt:coil:2.2.2 +| \--- io.coil-kt:coil-base:2.2.2 (*) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:0.7.0 +| +--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:0.7.0 +| | +--- fr.acinq.secp256k1:secp256k1-kmp:0.7.0 +| | | \--- fr.acinq.secp256k1:secp256k1-kmp-jvm:0.7.0 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) ++--- com.github.Giszmo.NostrPostr:nostrpostrlib:master-SNAPSHOT ++--- junit:junit:4.13.2 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- androidx.core:core-ktx:{strictly 1.9.0} -> 1.9.0 (c) ++--- androidx.lifecycle:lifecycle-runtime-ktx:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.activity:activity-compose:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.compose.ui:ui:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-tooling-preview:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.material:material:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.navigation:navigation-compose:{strictly 2.5.3} -> 2.5.3 (c) ++--- io.coil-kt:coil-compose:{strictly 2.2.2} -> 2.2.2 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:{strictly 0.7.0} -> 0.7.0 (c) ++--- com.github.Giszmo.NostrPostr:nostrpostrlib:{strictly master-SNAPSHOT} -> master-SNAPSHOT (c) ++--- junit:junit:{strictly 4.13.2} -> 4.13.2 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib:{strictly 1.7.20} -> 1.7.20 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:{strictly 1.7.20} -> 1.7.20 (c) ++--- androidx.annotation:annotation:{strictly 1.5.0} -> 1.5.0 (c) ++--- androidx.compose.runtime:runtime:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-tooling-data:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.activity:activity:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.core:core:{strictly 1.9.0} -> 1.9.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.5.1} -> 2.5.1 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-android:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.activity:activity-ktx:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.compose.runtime:runtime-saveable:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-geometry:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-graphics:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-text:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-unit:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.animation:animation-core:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.foundation:foundation:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.compose.material:material-icons-core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.compose.material:material-ripple:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.compose.animation:animation:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-compose:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.navigation:navigation-runtime-ktx:{strictly 2.5.3} -> 2.5.3 (c) ++--- io.coil-kt:coil-compose-base:{strictly 2.2.2} -> 2.2.2 (c) ++--- io.coil-kt:coil:{strictly 2.2.2} -> 2.2.2 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:{strictly 0.7.0} -> 0.7.0 (c) ++--- org.hamcrest:hamcrest-core:{strictly 1.3} -> 1.3 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-common:{strictly 1.7.20} -> 1.7.20 (c) ++--- org.jetbrains:annotations:{strictly 13.0} -> 13.0 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.savedstate:savedstate:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.3.0} -> 1.3.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.5.1} -> 2.5.1 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core:{strictly 1.6.4} -> 1.6.4 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-ktx:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.savedstate:savedstate-ktx:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.compose.foundation:foundation-layout:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.lifecycle:lifecycle-common-java8:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.navigation:navigation-common-ktx:{strictly 2.5.3} -> 2.5.3 (c) ++--- androidx.navigation:navigation-runtime:{strictly 2.5.3} -> 2.5.3 (c) ++--- io.coil-kt:coil-base:{strictly 2.2.2} -> 2.2.2 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp:{strictly 0.7.0} -> 0.7.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.collection:collection:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.navigation:navigation-common:{strictly 2.5.3} -> 2.5.3 (c) ++--- com.squareup.okhttp3:okhttp:{strictly 4.10.0} -> 4.10.0 (c) ++--- com.squareup.okio:okio:{strictly 3.2.0} -> 3.2.0 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp-jvm:{strictly 0.7.0} -> 0.7.0 (c) +\--- com.squareup.okio:okio-jvm:{strictly 3.2.0} -> 3.2.0 (c) + +debugUnitTestCompileOnly - Compile only dependencies for compilation 'debugUnitTest' (target (androidJvm)). (n) +No dependencies + +debugUnitTestCompileOnlyDependenciesMetadata +No dependencies + +debugUnitTestImplementation - Implementation only dependencies for compilation 'debugUnitTest' (target (androidJvm)). (n) +No dependencies + +debugUnitTestImplementationDependenciesMetadata +\--- junit:junit:4.13.2 + \--- org.hamcrest:hamcrest-core:1.3 + +debugUnitTestIntransitiveDependenciesMetadata +No dependencies + +debugUnitTestRuntimeClasspath - Runtime classpath of compilation 'debugUnitTest' (target (androidJvm)). ++--- project :app (*) ++--- junit:junit:4.13.2 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 +| | \--- org.jetbrains:annotations:13.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) ++--- androidx.compose.ui:ui-tooling:1.3.2 +| +--- androidx.activity:activity-compose:1.3.0 -> 1.6.1 +| | +--- androidx.activity:activity-ktx:1.6.1 +| | | +--- androidx.activity:activity:1.6.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.core:core:1.8.0 -> 1.9.0 +| | | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | | +--- androidx.annotation:annotation-experimental:1.3.0 +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | | | +--- androidx.concurrent:concurrent-futures:1.0.0 +| | | | | | +--- com.google.guava:listenablefuture:1.0 +| | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 +| | | | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | | \--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (c) +| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | | | \--- androidx.core:core-ktx:1.9.0 (c) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (c) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 +| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | | | +--- androidx.core:core-ktx:1.2.0 -> 1.9.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | | +--- androidx.core:core:1.9.0 (*) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | | | \--- androidx.core:core:1.9.0 (c) +| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.5.1 +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | | | +--- androidx.savedstate:savedstate:1.2.0 +| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | | +--- androidx.lifecycle:lifecycle-common:2.4.0 -> 2.5.1 (*) +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 +| | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 +| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) +| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 (c) +| | | | | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) +| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | | +--- androidx.tracing:tracing:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | \--- androidx.activity:activity-ktx:1.6.1 (c) +| | | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | | +--- androidx.savedstate:savedstate-ktx:1.2.0 +| | | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | \--- androidx.activity:activity:1.6.1 (c) +| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.runtime:runtime:1.3.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 +| | | +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| | | +--- androidx.annotation:annotation:1.5.0 (*) +| | | +--- androidx.autofill:autofill:1.0.0 +| | | | \--- androidx.core:core:1.1.0 -> 1.9.0 (*) +| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.compose.runtime:runtime:1.3.2 (*) +| | | +--- androidx.compose.runtime:runtime-saveable:1.3.2 (*) +| | | +--- androidx.compose.ui:ui-geometry:1.3.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-util:1.3.2 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | +--- androidx.compose.ui:ui-graphics:1.3.2 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-unit:1.3.2 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | | | +--- androidx.compose.ui:ui-geometry:1.3.2 (*) +| | | | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | | +--- androidx.compose.ui:ui-text:1.3.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | | +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| | | | +--- androidx.compose.runtime:runtime-saveable:1.2.0 -> 1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | | +--- androidx.core:core:1.7.0 -> 1.9.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| | | +--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | +--- androidx.core:core:1.5.0 -> 1.9.0 (*) +| | | +--- androidx.customview:customview-poolingcontainer:1.0.0 +| | | | +--- androidx.core:core-ktx:1.5.0 -> 1.9.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | +--- androidx.lifecycle:lifecycle-common-java8:2.3.0 -> 2.5.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.3.0 -> 2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.0 -> 2.5.1 (*) +| | | +--- androidx.profileinstaller:profileinstaller:1.2.0 +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | \--- androidx.startup:startup-runtime:1.1.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.tracing:tracing:1.0.0 (*) +| | | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| +--- androidx.compose.animation:animation:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.animation:animation-core:1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.2.0 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-unit:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| | +--- androidx.compose.foundation:foundation-layout:1.0.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.animation:animation-core:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-unit:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.core:core:1.7.0 -> 1.9.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-geometry:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| +--- androidx.compose.material:material:1.0.0 -> 1.3.1 +| | +--- androidx.compose.animation:animation:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.animation:animation-core:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.foundation:foundation:1.2.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.animation:animation:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.foundation:foundation-layout:1.2.1 (*) +| | | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-graphics:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-text:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | +--- androidx.compose.foundation:foundation-layout:1.1.1 -> 1.2.1 (*) +| | +--- androidx.compose.material:material-icons-core:1.3.1 +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.compose.material:material-ripple:1.3.1 +| | | +--- androidx.compose.animation:animation:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.compose.foundation:foundation:1.1.1 -> 1.2.1 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.2.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-text:1.2.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.3.0 -> 2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.0 -> 2.5.1 (*) +| | +--- androidx.savedstate:savedstate:1.1.0 -> 1.2.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.3.2 (*) +| +--- androidx.compose.ui:ui-tooling-data:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.ui:ui-tooling-preview:1.3.2 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) ++--- androidx.compose.ui:ui-test-manifest:1.3.2 +| \--- androidx.activity:activity:1.2.0 -> 1.6.1 (*) ++--- androidx.core:core-ktx:1.9.0 (*) ++--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) ++--- androidx.activity:activity-compose:1.6.1 (*) ++--- androidx.compose.ui:ui:1.3.2 (*) ++--- androidx.compose.ui:ui-tooling-preview:1.3.2 (*) ++--- androidx.compose.material:material:1.3.1 (*) ++--- androidx.navigation:navigation-compose:2.5.3 +| +--- androidx.activity:activity-compose:1.5.1 -> 1.6.1 (*) +| +--- androidx.compose.animation:animation:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.foundation:foundation-layout:1.0.1 -> 1.2.1 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1 +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| +--- androidx.navigation:navigation-runtime-ktx:2.5.3 +| | +--- androidx.navigation:navigation-common-ktx:2.5.3 +| | | \--- androidx.navigation:navigation-common:2.5.3 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.collection:collection-ktx:1.1.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.20 -> 1.7.20 (*) +| | | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | \--- androidx.navigation:navigation-runtime:2.5.3 +| | +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.navigation:navigation-common:2.5.3 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) ++--- io.coil-kt:coil-compose:2.2.2 +| +--- io.coil-kt:coil-compose-base:2.2.2 +| | +--- io.coil-kt:coil-base:2.2.2 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.5.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.7.20 (*) +| | | +--- com.squareup.okhttp3:okhttp:4.10.0 +| | | | +--- com.squareup.okio:okio:3.0.0 -> 3.2.0 +| | | | | \--- com.squareup.okio:okio-jvm:3.2.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20 -> 1.7.20 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.20 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | +--- com.squareup.okio:okio:3.2.0 (*) +| | | +--- androidx.annotation:annotation:1.5.0 (*) +| | | +--- androidx.appcompat:appcompat-resources:1.4.2 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | +--- androidx.core:core:1.0.1 -> 1.9.0 (*) +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | +--- androidx.core:core:1.1.0 -> 1.9.0 (*) +| | | | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*) +| | | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.collection:collection:1.2.0 (*) +| | | +--- androidx.core:core-ktx:1.8.0 -> 1.9.0 (*) +| | | \--- androidx.exifinterface:exifinterface:1.3.3 +| | | \--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.compose.foundation:foundation:1.2.1 (*) +| | +--- androidx.core:core-ktx:1.8.0 -> 1.9.0 (*) +| | \--- com.google.accompanist:accompanist-drawablepainter:0.25.1 +| | \--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| \--- io.coil-kt:coil:2.2.2 +| \--- io.coil-kt:coil-base:2.2.2 (*) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:0.7.0 +| +--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:0.7.0 +| | +--- fr.acinq.secp256k1:secp256k1-kmp:0.7.0 +| | | \--- fr.acinq.secp256k1:secp256k1-kmp-jvm:0.7.0 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +\--- com.github.Giszmo.NostrPostr:nostrpostrlib:master-SNAPSHOT + +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10 -> 1.7.20 (*) + +--- com.squareup.retrofit2:retrofit:2.8.1 + | \--- com.squareup.okhttp3:okhttp:3.14.7 -> 4.10.0 (*) + +--- com.squareup.retrofit2:converter-gson:2.8.1 + | +--- com.squareup.retrofit2:retrofit:2.8.1 (*) + | \--- com.google.code.gson:gson:2.8.5 + +--- com.squareup.okhttp3:okhttp:4.9.3 -> 4.10.0 (*) + +--- com.madgag.spongycastle:core:1.51.0.0 + +--- com.madgag.spongycastle:prov:1.51.0.0 + | \--- com.madgag.spongycastle:core:1.51.0.0 + \--- com.github.mgunlogson:cuckoofilter4j:1.0.1 + \--- com.google.guava:guava:19.0 + +debugUnitTestRuntimeOnly - Runtime only dependencies for compilation 'debugUnitTest' (target (androidJvm)). (n) +No dependencies + +debugUnitTestRuntimeOnlyDependenciesMetadata +No dependencies + +debugWearApp - Link to a wear app to embed for object 'debug'. (n) +No dependencies + +debugWearBundling - Resolved Configuration for wear app bundling for variant: debug +No dependencies + +default - Configuration for default artifacts. (n) +No dependencies + +implementation - Implementation only dependencies for 'main' sources. (n) ++--- androidx.core:core-ktx:1.9.0 (n) ++--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (n) ++--- androidx.activity:activity-compose:1.6.1 (n) ++--- androidx.compose.ui:ui:1.3.2 (n) ++--- androidx.compose.ui:ui-tooling-preview:1.3.2 (n) ++--- androidx.compose.material:material:1.3.1 (n) ++--- androidx.navigation:navigation-compose:2.5.3 (n) ++--- io.coil-kt:coil-compose:2.2.2 (n) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:0.7.0 (n) +\--- com.github.Giszmo.NostrPostr:nostrpostrlib:master-SNAPSHOT (n) + +implementationDependenciesMetadata ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 +| | \--- org.jetbrains:annotations:13.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) ++--- androidx.core:core-ktx:1.9.0 +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.core:core:1.9.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.annotation:annotation-experimental:1.3.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.collection:collection:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) ++--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 +| +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | \--- org.jetbrains.kotlinx:atomicfu:0.17.3 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.20 +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) ++--- androidx.activity:activity-compose:1.6.1 +| +--- androidx.activity:activity-ktx:1.6.1 +| | +--- androidx.activity:activity:1.6.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.core:core:1.8.0 -> 1.9.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.9.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.5.1 +| | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.compose.runtime:runtime:1.3.2 (*) +| \--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 +| +--- androidx.annotation:annotation:1.5.0 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.3.2 (*) +| +--- androidx.compose.ui:ui-geometry:1.3.2 +| | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| +--- androidx.compose.ui:ui-graphics:1.3.2 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | \--- androidx.compose.ui:ui-unit:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.compose.ui:ui-geometry:1.3.2 (*) +| +--- androidx.compose.ui:ui-text:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) +| | \--- androidx.compose.ui:ui-unit:1.3.2 (*) +| \--- androidx.compose.ui:ui-unit:1.3.2 (*) ++--- androidx.compose.ui:ui:1.3.2 (*) ++--- androidx.compose.ui:ui-tooling-preview:1.3.2 +| +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) ++--- androidx.compose.material:material:1.3.1 +| +--- androidx.compose.animation:animation-core:1.0.0 -> 1.1.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 -> 1.6.4 (*) +| +--- androidx.compose.foundation:foundation:1.2.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.animation:animation:1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.animation:animation-core:1.1.1 (*) +| | | +--- androidx.compose.foundation:foundation-layout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | \--- androidx.compose.ui:ui-geometry:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | \--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| +--- androidx.compose.material:material-icons-core:1.3.1 +| | \--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| +--- androidx.compose.material:material-ripple:1.3.1 +| | +--- androidx.compose.foundation:foundation:1.1.1 -> 1.2.1 (*) +| | \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.2.0 -> 1.3.2 (*) +| \--- androidx.compose.ui:ui-text:1.2.0 -> 1.3.2 (*) ++--- androidx.navigation:navigation-compose:2.5.3 +| +--- androidx.activity:activity-compose:1.5.1 -> 1.6.1 (*) +| +--- androidx.compose.animation:animation:1.0.1 -> 1.1.1 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1 +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| \--- androidx.navigation:navigation-runtime-ktx:2.5.3 +| +--- androidx.navigation:navigation-common-ktx:2.5.3 +| | \--- androidx.navigation:navigation-common:2.5.3 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- androidx.navigation:navigation-runtime:2.5.3 +| +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| +--- androidx.navigation:navigation-common:2.5.3 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) ++--- io.coil-kt:coil-compose:2.2.2 +| +--- io.coil-kt:coil-compose-base:2.2.2 +| | +--- io.coil-kt:coil-base:2.2.2 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.5.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.7.20 (*) +| | | +--- com.squareup.okhttp3:okhttp:4.10.0 +| | | | +--- com.squareup.okio:okio:3.0.0 -> 3.2.0 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.20 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | \--- com.squareup.okio:okio:3.2.0 (*) +| | \--- androidx.compose.foundation:foundation:1.2.1 (*) +| \--- io.coil-kt:coil:2.2.2 +| \--- io.coil-kt:coil-base:2.2.2 (*) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:0.7.0 +| +--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:0.7.0 +| | +--- fr.acinq.secp256k1:secp256k1-kmp:0.7.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +\--- com.github.Giszmo.NostrPostr:nostrpostrlib:master-SNAPSHOT + +intransitiveDependenciesMetadata +No dependencies + +kotlin-extension - Configuration for Compose related kotlin compiler extension +\--- androidx.compose.compiler:compiler:1.3.2 + +kotlinCompilerClasspath +\--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.20 + +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 + | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 + | \--- org.jetbrains:annotations:13.0 + +--- org.jetbrains.kotlin:kotlin-script-runtime:1.7.20 + +--- org.jetbrains.kotlin:kotlin-reflect:1.7.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) + +--- org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.20 + +--- org.jetbrains.intellij.deps:trove4j:1.0.20200330 + \--- net.java.dev.jna:jna:5.6.0 + +kotlinCompilerPluginClasspath +No dependencies + +kotlinCompilerPluginClasspathDebug - Kotlin compiler plugins for compilation 'debug' (target (androidJvm)) +No dependencies + +kotlinCompilerPluginClasspathDebugAndroidTest - Kotlin compiler plugins for compilation 'debugAndroidTest' (target (androidJvm)) +No dependencies + +kotlinCompilerPluginClasspathDebugUnitTest - Kotlin compiler plugins for compilation 'debugUnitTest' (target (androidJvm)) +No dependencies + +kotlinCompilerPluginClasspathRelease - Kotlin compiler plugins for compilation 'release' (target (androidJvm)) +No dependencies + +kotlinCompilerPluginClasspathReleaseUnitTest - Kotlin compiler plugins for compilation 'releaseUnitTest' (target (androidJvm)) +No dependencies + +kotlinKlibCommonizerClasspath +\--- org.jetbrains.kotlin:kotlin-klib-commonizer-embeddable:1.7.20 + +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 + | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 + | \--- org.jetbrains:annotations:13.0 + \--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.7.20 + +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) + +--- org.jetbrains.kotlin:kotlin-script-runtime:1.7.20 + +--- org.jetbrains.kotlin:kotlin-reflect:1.7.20 + | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) + +--- org.jetbrains.kotlin:kotlin-daemon-embeddable:1.7.20 + +--- org.jetbrains.intellij.deps:trove4j:1.0.20200330 + \--- net.java.dev.jna:jna:5.6.0 + +kotlinNativeCompilerPluginClasspath +No dependencies + +lintChecks - Configuration to apply external lint check jar +No dependencies + +lintPublish - Configuration to publish external lint check jar +No dependencies + +releaseAabPublication - Bundle Publication for release (n) +No dependencies + +releaseAnnotationProcessor - Classpath for the annotation processor for 'release'. (n) +No dependencies + +releaseAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: release +No dependencies + +releaseApi - API dependencies for compilation 'release' (target (androidJvm)). (n) +No dependencies + +releaseApiDependenciesMetadata +\--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 + +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 + | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 + | \--- org.jetbrains:annotations:13.0 + \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 + \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) + +releaseApiElements - API elements for release (n) +No dependencies + +releaseApkPublication - APK publication for release (n) +No dependencies + +releaseCompileClasspath - Compile classpath for compilation 'release' (target (androidJvm)). ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 +| | \--- org.jetbrains:annotations:13.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) ++--- androidx.core:core-ktx:1.9.0 +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.core:core:1.9.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.annotation:annotation-experimental:1.3.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.2.0 +| | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) ++--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 +| +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 (c) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) ++--- androidx.activity:activity-compose:1.6.1 +| +--- androidx.activity:activity-ktx:1.6.1 +| | +--- androidx.activity:activity:1.6.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.core:core:1.8.0 -> 1.9.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.9.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.5.1 +| | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.compose.runtime:runtime:1.3.2 (*) +| \--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 +| +--- androidx.annotation:annotation:1.5.0 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.3.2 (*) +| +--- androidx.compose.ui:ui-geometry:1.3.2 +| | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| +--- androidx.compose.ui:ui-graphics:1.3.2 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | \--- androidx.compose.ui:ui-unit:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.compose.ui:ui-geometry:1.3.2 (*) +| +--- androidx.compose.ui:ui-text:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) +| | \--- androidx.compose.ui:ui-unit:1.3.2 (*) +| \--- androidx.compose.ui:ui-unit:1.3.2 (*) ++--- androidx.compose.ui:ui:1.3.2 (*) ++--- androidx.compose.ui:ui-tooling-preview:1.3.2 +| +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) ++--- androidx.compose.material:material:1.3.1 +| +--- androidx.compose.animation:animation-core:1.0.0 -> 1.1.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 -> 1.6.4 (*) +| +--- androidx.compose.foundation:foundation:1.2.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.animation:animation:1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.animation:animation-core:1.1.1 (*) +| | | +--- androidx.compose.foundation:foundation-layout:1.0.0 -> 1.2.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| | | | \--- androidx.compose.ui:ui-unit:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | \--- androidx.compose.ui:ui-geometry:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | \--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| +--- androidx.compose.material:material-icons-core:1.3.1 +| | \--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| +--- androidx.compose.material:material-ripple:1.3.1 +| | +--- androidx.compose.foundation:foundation:1.1.1 -> 1.2.1 (*) +| | \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.2.0 -> 1.3.2 (*) +| \--- androidx.compose.ui:ui-text:1.2.0 -> 1.3.2 (*) ++--- androidx.navigation:navigation-compose:2.5.3 +| +--- androidx.activity:activity-compose:1.5.1 -> 1.6.1 (*) +| +--- androidx.compose.animation:animation:1.0.1 -> 1.1.1 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1 +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| \--- androidx.navigation:navigation-runtime-ktx:2.5.3 +| +--- androidx.navigation:navigation-common-ktx:2.5.3 +| | \--- androidx.navigation:navigation-common:2.5.3 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- androidx.navigation:navigation-runtime:2.5.3 +| +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| +--- androidx.navigation:navigation-common:2.5.3 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) ++--- io.coil-kt:coil-compose:2.2.2 +| +--- io.coil-kt:coil-compose-base:2.2.2 +| | +--- io.coil-kt:coil-base:2.2.2 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.5.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.7.20 (*) +| | | +--- com.squareup.okhttp3:okhttp:4.10.0 +| | | | +--- com.squareup.okio:okio:3.0.0 -> 3.2.0 +| | | | | \--- com.squareup.okio:okio-jvm:3.2.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20 -> 1.7.20 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.20 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | \--- com.squareup.okio:okio:3.2.0 (*) +| | \--- androidx.compose.foundation:foundation:1.2.1 (*) +| \--- io.coil-kt:coil:2.2.2 +| \--- io.coil-kt:coil-base:2.2.2 (*) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:0.7.0 +| +--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:0.7.0 +| | +--- fr.acinq.secp256k1:secp256k1-kmp:0.7.0 +| | | \--- fr.acinq.secp256k1:secp256k1-kmp-jvm:0.7.0 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) ++--- com.github.Giszmo.NostrPostr:nostrpostrlib:master-SNAPSHOT ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:{strictly 1.7.20} -> 1.7.20 (c) ++--- androidx.core:core-ktx:{strictly 1.9.0} -> 1.9.0 (c) ++--- androidx.lifecycle:lifecycle-runtime-ktx:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.activity:activity-compose:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.compose.ui:ui:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-tooling-preview:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.material:material:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.navigation:navigation-compose:{strictly 2.5.3} -> 2.5.3 (c) ++--- io.coil-kt:coil-compose:{strictly 2.2.2} -> 2.2.2 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:{strictly 0.7.0} -> 0.7.0 (c) ++--- com.github.Giszmo.NostrPostr:nostrpostrlib:{strictly master-SNAPSHOT} -> master-SNAPSHOT (c) ++--- org.jetbrains.kotlin:kotlin-stdlib:{strictly 1.7.20} -> 1.7.20 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:{strictly 1.7.20} -> 1.7.20 (c) ++--- androidx.annotation:annotation:{strictly 1.5.0} -> 1.5.0 (c) ++--- androidx.core:core:{strictly 1.9.0} -> 1.9.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.5.1} -> 2.5.1 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-android:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.activity:activity-ktx:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.compose.runtime:runtime:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.runtime:runtime-saveable:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-geometry:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-graphics:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-text:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-unit:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.animation:animation-core:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.compose.foundation:foundation:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.compose.material:material-icons-core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.compose.material:material-ripple:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.compose.animation:animation:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-compose:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.navigation:navigation-runtime-ktx:{strictly 2.5.3} -> 2.5.3 (c) ++--- io.coil-kt:coil-compose-base:{strictly 2.2.2} -> 2.2.2 (c) ++--- io.coil-kt:coil:{strictly 2.2.2} -> 2.2.2 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:{strictly 0.7.0} -> 0.7.0 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-common:{strictly 1.7.20} -> 1.7.20 (c) ++--- org.jetbrains:annotations:{strictly 13.0} -> 13.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.3.0} -> 1.3.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.5.1} -> 2.5.1 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core:{strictly 1.6.4} -> 1.6.4 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.activity:activity:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-ktx:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.savedstate:savedstate-ktx:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.compose.foundation:foundation-layout:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.lifecycle:lifecycle-common-java8:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.navigation:navigation-common-ktx:{strictly 2.5.3} -> 2.5.3 (c) ++--- androidx.navigation:navigation-runtime:{strictly 2.5.3} -> 2.5.3 (c) ++--- io.coil-kt:coil-base:{strictly 2.2.2} -> 2.2.2 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp:{strictly 0.7.0} -> 0.7.0 (c) ++--- androidx.collection:collection:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.savedstate:savedstate:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.navigation:navigation-common:{strictly 2.5.3} -> 2.5.3 (c) ++--- com.squareup.okhttp3:okhttp:{strictly 4.10.0} -> 4.10.0 (c) ++--- com.squareup.okio:okio:{strictly 3.2.0} -> 3.2.0 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp-jvm:{strictly 0.7.0} -> 0.7.0 (c) +\--- com.squareup.okio:okio-jvm:{strictly 3.2.0} -> 3.2.0 (c) + +releaseCompileOnly - Compile only dependencies for compilation 'release' (target (androidJvm)). (n) +No dependencies + +releaseCompileOnlyDependenciesMetadata +No dependencies + +releaseImplementation - Implementation only dependencies for compilation 'release' (target (androidJvm)). (n) +No dependencies + +releaseImplementationDependenciesMetadata ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 +| | \--- org.jetbrains:annotations:13.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) ++--- androidx.core:core-ktx:1.9.0 +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.core:core:1.9.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.annotation:annotation-experimental:1.3.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.collection:collection:1.0.0 +| | \--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) ++--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 +| +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | \--- org.jetbrains.kotlinx:atomicfu:0.17.3 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.20 +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) ++--- androidx.activity:activity-compose:1.6.1 +| +--- androidx.activity:activity-ktx:1.6.1 +| | +--- androidx.activity:activity:1.6.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.core:core:1.8.0 -> 1.9.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.9.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.5.1 +| | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.compose.runtime:runtime:1.3.2 (*) +| \--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 +| +--- androidx.annotation:annotation:1.5.0 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.3.2 (*) +| +--- androidx.compose.ui:ui-geometry:1.3.2 +| | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| +--- androidx.compose.ui:ui-graphics:1.3.2 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | \--- androidx.compose.ui:ui-unit:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.compose.ui:ui-geometry:1.3.2 (*) +| +--- androidx.compose.ui:ui-text:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) +| | \--- androidx.compose.ui:ui-unit:1.3.2 (*) +| \--- androidx.compose.ui:ui-unit:1.3.2 (*) ++--- androidx.compose.ui:ui:1.3.2 (*) ++--- androidx.compose.ui:ui-tooling-preview:1.3.2 +| +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) ++--- androidx.compose.material:material:1.3.1 +| +--- androidx.compose.animation:animation-core:1.0.0 -> 1.1.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 -> 1.6.4 (*) +| +--- androidx.compose.foundation:foundation:1.2.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.animation:animation:1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.animation:animation-core:1.1.1 (*) +| | | +--- androidx.compose.foundation:foundation-layout:1.0.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | \--- androidx.compose.ui:ui-geometry:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | \--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| +--- androidx.compose.material:material-icons-core:1.3.1 +| | \--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| +--- androidx.compose.material:material-ripple:1.3.1 +| | +--- androidx.compose.foundation:foundation:1.1.1 -> 1.2.1 (*) +| | \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.2.0 -> 1.3.2 (*) +| \--- androidx.compose.ui:ui-text:1.2.0 -> 1.3.2 (*) ++--- androidx.navigation:navigation-compose:2.5.3 +| +--- androidx.activity:activity-compose:1.5.1 -> 1.6.1 (*) +| +--- androidx.compose.animation:animation:1.0.1 -> 1.1.1 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1 +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| \--- androidx.navigation:navigation-runtime-ktx:2.5.3 +| +--- androidx.navigation:navigation-common-ktx:2.5.3 +| | \--- androidx.navigation:navigation-common:2.5.3 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- androidx.navigation:navigation-runtime:2.5.3 +| +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| +--- androidx.navigation:navigation-common:2.5.3 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) ++--- io.coil-kt:coil-compose:2.2.2 +| +--- io.coil-kt:coil-compose-base:2.2.2 +| | +--- io.coil-kt:coil-base:2.2.2 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.5.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.7.20 (*) +| | | +--- com.squareup.okhttp3:okhttp:4.10.0 +| | | | +--- com.squareup.okio:okio:3.0.0 -> 3.2.0 +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.20 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | \--- com.squareup.okio:okio:3.2.0 (*) +| | \--- androidx.compose.foundation:foundation:1.2.1 (*) +| \--- io.coil-kt:coil:2.2.2 +| \--- io.coil-kt:coil-base:2.2.2 (*) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:0.7.0 +| +--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:0.7.0 +| | +--- fr.acinq.secp256k1:secp256k1-kmp:0.7.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +\--- com.github.Giszmo.NostrPostr:nostrpostrlib:master-SNAPSHOT + +releaseIntransitiveDependenciesMetadata +No dependencies + +releaseReverseMetadataValues - Metadata Values dependencies for the base Split +No dependencies + +releaseRuntimeClasspath - Runtime classpath of compilation 'release' (target (androidJvm)). ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 +| | \--- org.jetbrains:annotations:13.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) ++--- androidx.core:core-ktx:1.9.0 +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.core:core:1.9.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.annotation:annotation-experimental:1.3.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.concurrent:concurrent-futures:1.0.0 +| | | +--- com.google.guava:listenablefuture:1.0 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (c) +| | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | \--- androidx.core:core-ktx:1.9.0 (c) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| \--- androidx.core:core:1.9.0 (c) ++--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 +| +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 (c) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) ++--- androidx.activity:activity-compose:1.6.1 +| +--- androidx.activity:activity-ktx:1.6.1 +| | +--- androidx.activity:activity:1.6.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.core:core:1.8.0 -> 1.9.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.9.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.5.1 +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.4.0 -> 2.5.1 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | +--- androidx.tracing:tracing:1.0.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | \--- androidx.activity:activity-ktx:1.6.1 (c) +| | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | \--- androidx.activity:activity:1.6.1 (c) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.runtime:runtime:1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 +| | +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| | +--- androidx.annotation:annotation:1.5.0 (*) +| | +--- androidx.autofill:autofill:1.0.0 +| | | \--- androidx.core:core:1.1.0 -> 1.9.0 (*) +| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | +--- androidx.compose.runtime:runtime:1.3.2 (*) +| | +--- androidx.compose.runtime:runtime-saveable:1.3.2 (*) +| | +--- androidx.compose.ui:ui-geometry:1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.3.2 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.compose.ui:ui-graphics:1.3.2 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-unit:1.3.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-geometry:1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | +--- androidx.compose.ui:ui-text:1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| | | +--- androidx.compose.runtime:runtime-saveable:1.2.0 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) +| | | +--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | +--- androidx.core:core:1.7.0 -> 1.9.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| | +--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | +--- androidx.core:core:1.5.0 -> 1.9.0 (*) +| | +--- androidx.customview:customview-poolingcontainer:1.0.0 +| | | +--- androidx.core:core-ktx:1.5.0 -> 1.9.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.3.0 -> 2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.3.0 -> 2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.0 -> 2.5.1 (*) +| | +--- androidx.profileinstaller:profileinstaller:1.2.0 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | \--- androidx.startup:startup-runtime:1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.tracing:tracing:1.0.0 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) ++--- androidx.compose.ui:ui:1.3.2 (*) ++--- androidx.compose.ui:ui-tooling-preview:1.3.2 +| +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) ++--- androidx.compose.material:material:1.3.1 +| +--- androidx.compose.animation:animation:1.0.0 -> 1.1.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.animation:animation-core:1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 -> 1.6.4 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-unit:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 -> 1.7.20 (*) +| | +--- androidx.compose.foundation:foundation-layout:1.0.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.animation:animation-core:1.1.1 (*) +| | | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-unit:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.core:core:1.7.0 -> 1.9.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-geometry:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10 -> 1.7.20 +| +--- androidx.compose.animation:animation-core:1.0.0 -> 1.1.1 (*) +| +--- androidx.compose.foundation:foundation:1.2.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.animation:animation:1.1.1 (*) +| | +--- androidx.compose.foundation:foundation-layout:1.2.1 (*) +| | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-graphics:1.1.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-text:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| +--- androidx.compose.foundation:foundation-layout:1.1.1 -> 1.2.1 (*) +| +--- androidx.compose.material:material-icons-core:1.3.1 +| | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.material:material-ripple:1.3.1 +| | +--- androidx.compose.animation:animation:1.0.0 -> 1.1.1 (*) +| | +--- androidx.compose.foundation:foundation:1.1.1 -> 1.2.1 (*) +| | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.2.0 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui-text:1.2.0 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.3.0 -> 2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel:2.3.0 -> 2.5.1 (*) +| +--- androidx.savedstate:savedstate:1.1.0 -> 1.2.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 ++--- androidx.navigation:navigation-compose:2.5.3 +| +--- androidx.activity:activity-compose:1.5.1 -> 1.6.1 (*) +| +--- androidx.compose.animation:animation:1.0.1 -> 1.1.1 (*) +| +--- androidx.compose.foundation:foundation-layout:1.0.1 -> 1.2.1 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1 +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| +--- androidx.navigation:navigation-runtime-ktx:2.5.3 +| | +--- androidx.navigation:navigation-common-ktx:2.5.3 +| | | \--- androidx.navigation:navigation-common:2.5.3 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.collection:collection-ktx:1.1.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.20 -> 1.7.20 (*) +| | | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | \--- androidx.navigation:navigation-runtime:2.5.3 +| | +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.navigation:navigation-common:2.5.3 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) ++--- io.coil-kt:coil-compose:2.2.2 +| +--- io.coil-kt:coil-compose-base:2.2.2 +| | +--- io.coil-kt:coil-base:2.2.2 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.5.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.7.20 (*) +| | | +--- com.squareup.okhttp3:okhttp:4.10.0 +| | | | +--- com.squareup.okio:okio:3.0.0 -> 3.2.0 +| | | | | \--- com.squareup.okio:okio-jvm:3.2.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20 -> 1.7.20 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.20 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | +--- com.squareup.okio:okio:3.2.0 (*) +| | | +--- androidx.annotation:annotation:1.5.0 (*) +| | | +--- androidx.appcompat:appcompat-resources:1.4.2 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | +--- androidx.core:core:1.0.1 -> 1.9.0 (*) +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | +--- androidx.core:core:1.1.0 -> 1.9.0 (*) +| | | | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*) +| | | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.collection:collection:1.2.0 (*) +| | | +--- androidx.core:core-ktx:1.8.0 -> 1.9.0 (*) +| | | \--- androidx.exifinterface:exifinterface:1.3.3 +| | | \--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.compose.foundation:foundation:1.2.1 (*) +| | +--- androidx.core:core-ktx:1.8.0 -> 1.9.0 (*) +| | \--- com.google.accompanist:accompanist-drawablepainter:0.25.1 +| | \--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| \--- io.coil-kt:coil:2.2.2 +| \--- io.coil-kt:coil-base:2.2.2 (*) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:0.7.0 +| +--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:0.7.0 +| | +--- fr.acinq.secp256k1:secp256k1-kmp:0.7.0 +| | | \--- fr.acinq.secp256k1:secp256k1-kmp-jvm:0.7.0 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +\--- com.github.Giszmo.NostrPostr:nostrpostrlib:master-SNAPSHOT + +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10 -> 1.7.20 (*) + +--- com.squareup.retrofit2:retrofit:2.8.1 + | \--- com.squareup.okhttp3:okhttp:3.14.7 -> 4.10.0 (*) + +--- com.squareup.retrofit2:converter-gson:2.8.1 + | +--- com.squareup.retrofit2:retrofit:2.8.1 (*) + | \--- com.google.code.gson:gson:2.8.5 + +--- com.squareup.okhttp3:okhttp:4.9.3 -> 4.10.0 (*) + +--- com.madgag.spongycastle:core:1.51.0.0 + +--- com.madgag.spongycastle:prov:1.51.0.0 + | \--- com.madgag.spongycastle:core:1.51.0.0 + \--- com.github.mgunlogson:cuckoofilter4j:1.0.1 + \--- com.google.guava:guava:19.0 + +releaseRuntimeElements - Runtime elements for release (n) +No dependencies + +releaseRuntimeOnly - Runtime only dependencies for compilation 'release' (target (androidJvm)). (n) +No dependencies + +releaseRuntimeOnlyDependenciesMetadata +No dependencies + +releaseUnitTestAnnotationProcessorClasspath - Resolved configuration for annotation-processor for variant: releaseUnitTest +No dependencies + +releaseUnitTestApi - API dependencies for compilation 'releaseUnitTest' (target (androidJvm)). (n) +No dependencies + +releaseUnitTestApiDependenciesMetadata +No dependencies + +releaseUnitTestCompileClasspath - Compile classpath for compilation 'releaseUnitTest' (target (androidJvm)). ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 +| | \--- org.jetbrains:annotations:13.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) ++--- androidx.core:core-ktx:1.9.0 +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.core:core:1.9.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.annotation:annotation-experimental:1.3.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.collection:collection:1.0.0 -> 1.2.0 +| | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) ++--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 +| +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 (c) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) ++--- androidx.activity:activity-compose:1.6.1 +| +--- androidx.activity:activity-ktx:1.6.1 +| | +--- androidx.activity:activity:1.6.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.core:core:1.8.0 -> 1.9.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.9.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.5.1 +| | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.compose.runtime:runtime:1.3.2 (*) +| \--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 +| +--- androidx.annotation:annotation:1.5.0 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.3.2 (*) +| +--- androidx.compose.ui:ui-geometry:1.3.2 +| | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| +--- androidx.compose.ui:ui-graphics:1.3.2 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | \--- androidx.compose.ui:ui-unit:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- androidx.compose.ui:ui-geometry:1.3.2 (*) +| +--- androidx.compose.ui:ui-text:1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) +| | \--- androidx.compose.ui:ui-unit:1.3.2 (*) +| \--- androidx.compose.ui:ui-unit:1.3.2 (*) ++--- androidx.compose.ui:ui:1.3.2 (*) ++--- androidx.compose.ui:ui-tooling-preview:1.3.2 +| +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) ++--- androidx.compose.material:material:1.3.1 +| +--- androidx.compose.animation:animation-core:1.0.0 -> 1.1.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 -> 1.6.4 (*) +| +--- androidx.compose.foundation:foundation:1.2.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.animation:animation:1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.animation:animation-core:1.1.1 (*) +| | | +--- androidx.compose.foundation:foundation-layout:1.0.0 -> 1.2.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| | | | \--- androidx.compose.ui:ui-unit:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | \--- androidx.compose.ui:ui-geometry:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | \--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| +--- androidx.compose.material:material-icons-core:1.3.1 +| | \--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| +--- androidx.compose.material:material-ripple:1.3.1 +| | +--- androidx.compose.foundation:foundation:1.1.1 -> 1.2.1 (*) +| | \--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.2.0 -> 1.3.2 (*) +| \--- androidx.compose.ui:ui-text:1.2.0 -> 1.3.2 (*) ++--- androidx.navigation:navigation-compose:2.5.3 +| +--- androidx.activity:activity-compose:1.5.1 -> 1.6.1 (*) +| +--- androidx.compose.animation:animation:1.0.1 -> 1.1.1 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1 +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| \--- androidx.navigation:navigation-runtime-ktx:2.5.3 +| +--- androidx.navigation:navigation-common-ktx:2.5.3 +| | \--- androidx.navigation:navigation-common:2.5.3 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- androidx.navigation:navigation-runtime:2.5.3 +| +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| +--- androidx.navigation:navigation-common:2.5.3 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) ++--- io.coil-kt:coil-compose:2.2.2 +| +--- io.coil-kt:coil-compose-base:2.2.2 +| | +--- io.coil-kt:coil-base:2.2.2 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.5.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.7.20 (*) +| | | +--- com.squareup.okhttp3:okhttp:4.10.0 +| | | | +--- com.squareup.okio:okio:3.0.0 -> 3.2.0 +| | | | | \--- com.squareup.okio:okio-jvm:3.2.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20 -> 1.7.20 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.20 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | \--- com.squareup.okio:okio:3.2.0 (*) +| | \--- androidx.compose.foundation:foundation:1.2.1 (*) +| \--- io.coil-kt:coil:2.2.2 +| \--- io.coil-kt:coil-base:2.2.2 (*) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:0.7.0 +| +--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:0.7.0 +| | +--- fr.acinq.secp256k1:secp256k1-kmp:0.7.0 +| | | \--- fr.acinq.secp256k1:secp256k1-kmp-jvm:0.7.0 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) ++--- com.github.Giszmo.NostrPostr:nostrpostrlib:master-SNAPSHOT ++--- project :app (*) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:{strictly 1.7.20} -> 1.7.20 (c) ++--- androidx.core:core-ktx:{strictly 1.9.0} -> 1.9.0 (c) ++--- androidx.lifecycle:lifecycle-runtime-ktx:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.activity:activity-compose:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.compose.ui:ui:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-tooling-preview:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.material:material:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.navigation:navigation-compose:{strictly 2.5.3} -> 2.5.3 (c) ++--- io.coil-kt:coil-compose:{strictly 2.2.2} -> 2.2.2 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:{strictly 0.7.0} -> 0.7.0 (c) ++--- com.github.Giszmo.NostrPostr:nostrpostrlib:{strictly master-SNAPSHOT} -> master-SNAPSHOT (c) ++--- junit:junit:4.13.2 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- junit:junit:{strictly 4.13.2} -> 4.13.2 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib:{strictly 1.7.20} -> 1.7.20 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:{strictly 1.7.20} -> 1.7.20 (c) ++--- androidx.annotation:annotation:{strictly 1.5.0} -> 1.5.0 (c) ++--- androidx.core:core:{strictly 1.9.0} -> 1.9.0 (c) ++--- androidx.lifecycle:lifecycle-runtime:{strictly 2.5.1} -> 2.5.1 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-android:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.activity:activity-ktx:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.compose.runtime:runtime:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.runtime:runtime-saveable:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-geometry:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-graphics:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-text:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.ui:ui-unit:{strictly 1.3.2} -> 1.3.2 (c) ++--- androidx.compose.animation:animation-core:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.compose.foundation:foundation:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.compose.material:material-icons-core:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.compose.material:material-ripple:{strictly 1.3.1} -> 1.3.1 (c) ++--- androidx.compose.animation:animation:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-compose:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.navigation:navigation-runtime-ktx:{strictly 2.5.3} -> 2.5.3 (c) ++--- io.coil-kt:coil-compose-base:{strictly 2.2.2} -> 2.2.2 (c) ++--- io.coil-kt:coil:{strictly 2.2.2} -> 2.2.2 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:{strictly 0.7.0} -> 0.7.0 (c) ++--- org.hamcrest:hamcrest-core:{strictly 1.3} -> 1.3 (c) ++--- org.jetbrains.kotlin:kotlin-stdlib-common:{strictly 1.7.20} -> 1.7.20 (c) ++--- org.jetbrains:annotations:{strictly 13.0} -> 13.0 (c) ++--- androidx.annotation:annotation-experimental:{strictly 1.3.0} -> 1.3.0 (c) ++--- androidx.versionedparcelable:versionedparcelable:{strictly 1.1.1} -> 1.1.1 (c) ++--- androidx.arch.core:core-common:{strictly 2.1.0} -> 2.1.0 (c) ++--- androidx.lifecycle:lifecycle-common:{strictly 2.5.1} -> 2.5.1 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core:{strictly 1.6.4} -> 1.6.4 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.activity:activity:{strictly 1.6.1} -> 1.6.1 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-ktx:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.savedstate:savedstate-ktx:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.compose.foundation:foundation-layout:{strictly 1.2.1} -> 1.2.1 (c) ++--- androidx.lifecycle:lifecycle-common-java8:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.lifecycle:lifecycle-viewmodel-savedstate:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.navigation:navigation-common-ktx:{strictly 2.5.3} -> 2.5.3 (c) ++--- androidx.navigation:navigation-runtime:{strictly 2.5.3} -> 2.5.3 (c) ++--- io.coil-kt:coil-base:{strictly 2.2.2} -> 2.2.2 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp:{strictly 0.7.0} -> 0.7.0 (c) ++--- androidx.collection:collection:{strictly 1.2.0} -> 1.2.0 (c) ++--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:{strictly 1.6.4} -> 1.6.4 (c) ++--- androidx.lifecycle:lifecycle-viewmodel:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.savedstate:savedstate:{strictly 1.2.0} -> 1.2.0 (c) ++--- androidx.lifecycle:lifecycle-livedata-core:{strictly 2.5.1} -> 2.5.1 (c) ++--- androidx.navigation:navigation-common:{strictly 2.5.3} -> 2.5.3 (c) ++--- com.squareup.okhttp3:okhttp:{strictly 4.10.0} -> 4.10.0 (c) ++--- com.squareup.okio:okio:{strictly 3.2.0} -> 3.2.0 (c) ++--- fr.acinq.secp256k1:secp256k1-kmp-jvm:{strictly 0.7.0} -> 0.7.0 (c) +\--- com.squareup.okio:okio-jvm:{strictly 3.2.0} -> 3.2.0 (c) + +releaseUnitTestCompileOnly - Compile only dependencies for compilation 'releaseUnitTest' (target (androidJvm)). (n) +No dependencies + +releaseUnitTestCompileOnlyDependenciesMetadata +No dependencies + +releaseUnitTestImplementation - Implementation only dependencies for compilation 'releaseUnitTest' (target (androidJvm)). (n) +No dependencies + +releaseUnitTestImplementationDependenciesMetadata +\--- junit:junit:4.13.2 + \--- org.hamcrest:hamcrest-core:1.3 + +releaseUnitTestIntransitiveDependenciesMetadata +No dependencies + +releaseUnitTestRuntimeClasspath - Runtime classpath of compilation 'releaseUnitTest' (target (androidJvm)). ++--- project :app (*) ++--- junit:junit:4.13.2 +| \--- org.hamcrest:hamcrest-core:1.3 ++--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.20 +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.20 +| | \--- org.jetbrains:annotations:13.0 +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.20 (*) ++--- androidx.core:core-ktx:1.9.0 +| +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.core:core:1.9.0 +| | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.annotation:annotation-experimental:1.3.0 +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.concurrent:concurrent-futures:1.0.0 +| | | +--- com.google.guava:listenablefuture:1.0 +| | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.3.1 -> 2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.arch.core:core-common:2.1.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.arch.core:core-runtime:2.1.0 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | \--- androidx.arch.core:core-common:2.1.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (c) +| | +--- androidx.versionedparcelable:versionedparcelable:1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | \--- androidx.core:core-ktx:1.9.0 (c) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| \--- androidx.core:core:1.9.0 (c) ++--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 +| +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (c) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.6.4 (c) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (c) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) ++--- androidx.activity:activity-compose:1.6.1 +| +--- androidx.activity:activity-ktx:1.6.1 +| | +--- androidx.activity:activity:1.6.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.core:core:1.8.0 -> 1.9.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (c) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 +| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.9.0 (*) +| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.5.1 +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | +--- androidx.arch.core:core-runtime:2.1.0 (*) +| | | | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | | +--- androidx.savedstate:savedstate:1.2.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | +--- androidx.arch.core:core-common:2.1.0 (*) +| | | | | +--- androidx.lifecycle:lifecycle-common:2.4.0 -> 2.5.1 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | +--- androidx.tracing:tracing:1.0.0 +| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | \--- androidx.activity:activity-ktx:1.6.1 (c) +| | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 +| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.5.1 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1 -> 1.6.4 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 +| | | +--- androidx.savedstate:savedstate:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | \--- androidx.activity:activity:1.6.1 (c) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.runtime:runtime:1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 +| | +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| | +--- androidx.annotation:annotation:1.5.0 (*) +| | +--- androidx.autofill:autofill:1.0.0 +| | | \--- androidx.core:core:1.1.0 -> 1.9.0 (*) +| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | +--- androidx.compose.runtime:runtime:1.3.2 (*) +| | +--- androidx.compose.runtime:runtime-saveable:1.3.2 (*) +| | +--- androidx.compose.ui:ui-geometry:1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.3.2 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- androidx.compose.ui:ui-graphics:1.3.2 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-unit:1.3.2 +| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-geometry:1.3.2 (*) +| | | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | +--- androidx.compose.ui:ui-text:1.3.2 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| | | +--- androidx.compose.runtime:runtime-saveable:1.2.0 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-graphics:1.3.2 (*) +| | | +--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | | +--- androidx.core:core:1.7.0 -> 1.9.0 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| | +--- androidx.compose.ui:ui-unit:1.3.2 (*) +| | +--- androidx.compose.ui:ui-util:1.3.2 (*) +| | +--- androidx.core:core:1.5.0 -> 1.9.0 (*) +| | +--- androidx.customview:customview-poolingcontainer:1.0.0 +| | | +--- androidx.core:core-ktx:1.5.0 -> 1.9.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.3.0 -> 2.5.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.lifecycle:lifecycle-common:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-runtime:2.3.0 -> 2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel:2.3.0 -> 2.5.1 (*) +| | +--- androidx.profileinstaller:profileinstaller:1.2.0 +| | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | \--- androidx.startup:startup-runtime:1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | \--- androidx.tracing:tracing:1.0.0 (*) +| | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4 (*) +| +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) ++--- androidx.compose.ui:ui:1.3.2 (*) ++--- androidx.compose.ui:ui-tooling-preview:1.3.2 +| +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) ++--- androidx.compose.material:material:1.3.1 +| +--- androidx.compose.animation:animation:1.0.0 -> 1.1.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.animation:animation-core:1.1.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2 -> 1.6.4 (*) +| | | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-unit:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 -> 1.7.20 (*) +| | +--- androidx.compose.foundation:foundation-layout:1.0.0 -> 1.2.1 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.compose.animation:animation-core:1.1.1 (*) +| | | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-unit:1.1.1 -> 1.3.2 (*) +| | | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | | +--- androidx.core:core:1.7.0 -> 1.9.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-geometry:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10 -> 1.7.20 +| +--- androidx.compose.animation:animation-core:1.0.0 -> 1.1.1 (*) +| +--- androidx.compose.foundation:foundation:1.2.0 -> 1.2.1 +| | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | +--- androidx.compose.animation:animation:1.1.1 (*) +| | +--- androidx.compose.foundation:foundation-layout:1.2.1 (*) +| | +--- androidx.compose.runtime:runtime:1.2.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-graphics:1.1.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-text:1.0.0 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| +--- androidx.compose.foundation:foundation-layout:1.1.1 -> 1.2.1 (*) +| +--- androidx.compose.material:material-icons-core:1.3.1 +| | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.0 -> 1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 1.7.20 (*) +| +--- androidx.compose.material:material-ripple:1.3.1 +| | +--- androidx.compose.animation:animation:1.0.0 -> 1.1.1 (*) +| | +--- androidx.compose.foundation:foundation:1.1.1 -> 1.2.1 (*) +| | +--- androidx.compose.runtime:runtime:1.1.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 +| +--- androidx.compose.runtime:runtime:1.2.0 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.2.0 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui-text:1.2.0 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui-util:1.0.0 -> 1.3.2 (*) +| +--- androidx.lifecycle:lifecycle-runtime:2.3.0 -> 2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel:2.3.0 -> 2.5.1 (*) +| +--- androidx.savedstate:savedstate:1.1.0 -> 1.2.0 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.7.10 -> 1.7.20 ++--- androidx.navigation:navigation-compose:2.5.3 +| +--- androidx.activity:activity-compose:1.5.1 -> 1.6.1 (*) +| +--- androidx.compose.animation:animation:1.0.1 -> 1.1.1 (*) +| +--- androidx.compose.foundation:foundation-layout:1.0.1 -> 1.2.1 (*) +| +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.runtime:runtime-saveable:1.0.1 -> 1.3.2 (*) +| +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (*) +| +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1 +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.compose.runtime:runtime:1.0.1 -> 1.3.2 (*) +| | +--- androidx.compose.ui:ui:1.0.1 -> 1.3.2 (*) +| | +--- androidx.lifecycle:lifecycle-common-java8:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| +--- androidx.navigation:navigation-runtime-ktx:2.5.3 +| | +--- androidx.navigation:navigation-common-ktx:2.5.3 +| | | \--- androidx.navigation:navigation-common:2.5.3 +| | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | +--- androidx.collection:collection-ktx:1.1.0 +| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.20 -> 1.7.20 (*) +| | | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.core:core-ktx:1.1.0 -> 1.9.0 (*) +| | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1 (*) +| | | +--- androidx.savedstate:savedstate-ktx:1.2.0 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| | \--- androidx.navigation:navigation-runtime:2.5.3 +| | +--- androidx.activity:activity-ktx:1.5.1 -> 1.6.1 (*) +| | +--- androidx.annotation:annotation-experimental:1.1.0 -> 1.3.0 (*) +| | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.5.1 (*) +| | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1 (*) +| | +--- androidx.navigation:navigation-common:2.5.3 (*) +| | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.21 -> 1.7.20 (*) ++--- io.coil-kt:coil-compose:2.2.2 +| +--- io.coil-kt:coil-compose-base:2.2.2 +| | +--- io.coil-kt:coil-base:2.2.2 +| | | +--- androidx.lifecycle:lifecycle-runtime:2.4.1 -> 2.5.1 (*) +| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4 (*) +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.7.20 (*) +| | | +--- com.squareup.okhttp3:okhttp:4.10.0 +| | | | +--- com.squareup.okio:okio:3.0.0 -> 3.2.0 +| | | | | \--- com.squareup.okio:okio-jvm:3.2.0 +| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.20 -> 1.7.20 (*) +| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.20 -> 1.7.20 +| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.20 -> 1.7.20 (*) +| | | +--- com.squareup.okio:okio:3.2.0 (*) +| | | +--- androidx.annotation:annotation:1.5.0 (*) +| | | +--- androidx.appcompat:appcompat-resources:1.4.2 +| | | | +--- androidx.collection:collection:1.0.0 -> 1.2.0 (*) +| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | | | +--- androidx.core:core:1.0.1 -> 1.9.0 (*) +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 +| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.5.0 (*) +| | | | | +--- androidx.core:core:1.1.0 -> 1.9.0 (*) +| | | | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*) +| | | | \--- androidx.vectordrawable:vectordrawable-animated:1.1.0 +| | | | +--- androidx.vectordrawable:vectordrawable:1.1.0 (*) +| | | | +--- androidx.interpolator:interpolator:1.0.0 +| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.5.0 (*) +| | | | \--- androidx.collection:collection:1.1.0 -> 1.2.0 (*) +| | | +--- androidx.collection:collection:1.2.0 (*) +| | | +--- androidx.core:core-ktx:1.8.0 -> 1.9.0 (*) +| | | \--- androidx.exifinterface:exifinterface:1.3.3 +| | | \--- androidx.annotation:annotation:1.2.0 -> 1.5.0 (*) +| | +--- androidx.compose.foundation:foundation:1.2.1 (*) +| | +--- androidx.core:core-ktx:1.8.0 -> 1.9.0 (*) +| | \--- com.google.accompanist:accompanist-drawablepainter:0.25.1 +| | \--- androidx.compose.ui:ui:1.2.1 -> 1.3.2 (*) +| \--- io.coil-kt:coil:2.2.2 +| \--- io.coil-kt:coil-base:2.2.2 (*) ++--- fr.acinq.secp256k1:secp256k1-kmp-jni-android:0.7.0 +| +--- fr.acinq.secp256k1:secp256k1-kmp-jni-common:0.7.0 +| | +--- fr.acinq.secp256k1:secp256k1-kmp:0.7.0 +| | | \--- fr.acinq.secp256k1:secp256k1-kmp-jvm:0.7.0 +| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.21 -> 1.7.20 +| | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.21 -> 1.7.20 (*) +\--- com.github.Giszmo.NostrPostr:nostrpostrlib:master-SNAPSHOT + +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10 -> 1.7.20 (*) + +--- com.squareup.retrofit2:retrofit:2.8.1 + | \--- com.squareup.okhttp3:okhttp:3.14.7 -> 4.10.0 (*) + +--- com.squareup.retrofit2:converter-gson:2.8.1 + | +--- com.squareup.retrofit2:retrofit:2.8.1 (*) + | \--- com.google.code.gson:gson:2.8.5 + +--- com.squareup.okhttp3:okhttp:4.9.3 -> 4.10.0 (*) + +--- com.madgag.spongycastle:core:1.51.0.0 + +--- com.madgag.spongycastle:prov:1.51.0.0 + | \--- com.madgag.spongycastle:core:1.51.0.0 + \--- com.github.mgunlogson:cuckoofilter4j:1.0.1 + \--- com.google.guava:guava:19.0 + +releaseUnitTestRuntimeOnly - Runtime only dependencies for compilation 'releaseUnitTest' (target (androidJvm)). (n) +No dependencies + +releaseUnitTestRuntimeOnlyDependenciesMetadata +No dependencies + +releaseWearApp - Link to a wear app to embed for object 'release'. (n) +No dependencies + +releaseWearBundling - Resolved Configuration for wear app bundling for variant: release +No dependencies + +runtimeOnly - Runtime only dependencies for 'main' sources. (n) +No dependencies + +runtimeOnlyDependenciesMetadata +No dependencies + +testAnnotationProcessor - Classpath for the annotation processor for 'test'. (n) +No dependencies + +testApi (n) +No dependencies + +testApiDependenciesMetadata +No dependencies + +testCompileOnly - Compile only dependencies for 'test' sources. (n) +No dependencies + +testCompileOnlyDependenciesMetadata +No dependencies + +testDebugAnnotationProcessor - Classpath for the annotation processor for 'testDebug'. (n) +No dependencies + +testDebugApi (n) +No dependencies + +testDebugApiDependenciesMetadata +No dependencies + +testDebugCompileOnly - Compile only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugCompileOnlyDependenciesMetadata +No dependencies + +testDebugImplementation - Implementation only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugImplementationDependenciesMetadata +No dependencies + +testDebugIntransitiveDependenciesMetadata +No dependencies + +testDebugRuntimeOnly - Runtime only dependencies for 'testDebug' sources. (n) +No dependencies + +testDebugRuntimeOnlyDependenciesMetadata +No dependencies + +testDebugWearApp - Link to a wear app to embed for object 'testDebug'. (n) +No dependencies + +testFixturesAnnotationProcessor - Classpath for the annotation processor for 'testFixtures'. (n) +No dependencies + +testFixturesApi - API dependencies for 'testFixtures' sources. (n) +No dependencies + +testFixturesApiDependenciesMetadata +No dependencies + +testFixturesCompileOnly - Compile only dependencies for 'testFixtures' sources. (n) +No dependencies + +testFixturesCompileOnlyDependenciesMetadata +No dependencies + +testFixturesDebugAnnotationProcessor - Classpath for the annotation processor for 'testFixturesDebug'. (n) +No dependencies + +testFixturesDebugApi - API dependencies for 'testFixturesDebug' sources. (n) +No dependencies + +testFixturesDebugApiDependenciesMetadata +No dependencies + +testFixturesDebugCompileOnly - Compile only dependencies for 'testFixturesDebug' sources. (n) +No dependencies + +testFixturesDebugCompileOnlyDependenciesMetadata +No dependencies + +testFixturesDebugImplementation - Implementation only dependencies for 'testFixturesDebug' sources. (n) +No dependencies + +testFixturesDebugImplementationDependenciesMetadata +No dependencies + +testFixturesDebugIntransitiveDependenciesMetadata +No dependencies + +testFixturesDebugRuntimeOnly - Runtime only dependencies for 'testFixturesDebug' sources. (n) +No dependencies + +testFixturesDebugRuntimeOnlyDependenciesMetadata +No dependencies + +testFixturesDebugWearApp - Link to a wear app to embed for object 'testFixturesDebug'. (n) +No dependencies + +testFixturesImplementation - Implementation only dependencies for 'testFixtures' sources. (n) +No dependencies + +testFixturesImplementationDependenciesMetadata +No dependencies + +testFixturesIntransitiveDependenciesMetadata +No dependencies + +testFixturesReleaseAnnotationProcessor - Classpath for the annotation processor for 'testFixturesRelease'. (n) +No dependencies + +testFixturesReleaseApi - API dependencies for 'testFixturesRelease' sources. (n) +No dependencies + +testFixturesReleaseApiDependenciesMetadata +No dependencies + +testFixturesReleaseCompileOnly - Compile only dependencies for 'testFixturesRelease' sources. (n) +No dependencies + +testFixturesReleaseCompileOnlyDependenciesMetadata +No dependencies + +testFixturesReleaseImplementation - Implementation only dependencies for 'testFixturesRelease' sources. (n) +No dependencies + +testFixturesReleaseImplementationDependenciesMetadata +No dependencies + +testFixturesReleaseIntransitiveDependenciesMetadata +No dependencies + +testFixturesReleaseRuntimeOnly - Runtime only dependencies for 'testFixturesRelease' sources. (n) +No dependencies + +testFixturesReleaseRuntimeOnlyDependenciesMetadata +No dependencies + +testFixturesReleaseWearApp - Link to a wear app to embed for object 'testFixturesRelease'. (n) +No dependencies + +testFixturesRuntimeOnly - Runtime only dependencies for 'testFixtures' sources. (n) +No dependencies + +testFixturesRuntimeOnlyDependenciesMetadata +No dependencies + +testFixturesWearApp - Link to a wear app to embed for object 'testFixtures'. (n) +No dependencies + +testImplementation - Implementation only dependencies for 'test' sources. (n) +\--- junit:junit:4.13.2 (n) + +testImplementationDependenciesMetadata +\--- junit:junit:4.13.2 + \--- org.hamcrest:hamcrest-core:1.3 + +testIntransitiveDependenciesMetadata +No dependencies + +testReleaseAnnotationProcessor - Classpath for the annotation processor for 'testRelease'. (n) +No dependencies + +testReleaseApi (n) +No dependencies + +testReleaseApiDependenciesMetadata +No dependencies + +testReleaseCompileOnly - Compile only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseCompileOnlyDependenciesMetadata +No dependencies + +testReleaseImplementation - Implementation only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseImplementationDependenciesMetadata +No dependencies + +testReleaseIntransitiveDependenciesMetadata +No dependencies + +testReleaseRuntimeOnly - Runtime only dependencies for 'testRelease' sources. (n) +No dependencies + +testReleaseRuntimeOnlyDependenciesMetadata +No dependencies + +testReleaseWearApp - Link to a wear app to embed for object 'testRelease'. (n) +No dependencies + +testRuntimeOnly - Runtime only dependencies for 'test' sources. (n) +No dependencies + +testRuntimeOnlyDependenciesMetadata +No dependencies + +testWearApp - Link to a wear app to embed for object 'test'. (n) +No dependencies + +wearApp - Link to a wear app to embed for object 'main'. (n) +No dependencies + +(c) - dependency constraint +(*) - dependencies omitted (listed previously) + +(n) - Not resolved (configuration is not meant to be resolved) + +A web-based, searchable dependency report is available by adding the --scan option. + +BUILD SUCCESSFUL in 2s +1 actionable task: 1 executed diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 00000000..3c5031eb --- /dev/null +++ b/gradle.properties @@ -0,0 +1,23 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app's APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..898b49ae --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Jan 04 09:23:50 EST 2023 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew new file mode 100755 index 00000000..4f906e0c --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 00000000..ac1b06f9 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 00000000..a62027f5 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,18 @@ +pluginManagement { + repositories { + gradlePluginPortal() + google() + mavenCentral() + maven { url "https://jitpack.io" } + } +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + maven { url "https://jitpack.io" } + } +} +rootProject.name = "Amethyst" +include ':app'