From 97a00ff83cad46e0c15bcc1303de086c1344f11d Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Mon, 12 Aug 2024 11:07:48 +0200 Subject: [PATCH 1/3] First pass updating Twitter verification to X --- .../amethyst/service/CachedRichTextParser.kt | 6 ++---- .../amethyst/ui/screen/loggedIn/ProfileScreen.kt | 2 +- amethyst/src/main/res/drawable/x.xml | 9 +++++++++ amethyst/src/main/res/values/strings.xml | 4 ++-- .../com/vitorpamplona/quartz/events/MetadataEvent.kt | 4 ++-- 5 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 amethyst/src/main/res/drawable/x.xml diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/CachedRichTextParser.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/CachedRichTextParser.kt index 553b26d3e..2ac35e33c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/CachedRichTextParser.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/CachedRichTextParser.kt @@ -26,11 +26,9 @@ import com.vitorpamplona.amethyst.commons.richtext.RichTextViewerState import com.vitorpamplona.quartz.events.ImmutableListOfLists object CachedRichTextParser { - val richTextCache = LruCache(50) + private val richTextCache = LruCache(50) - // fun getCached(content: String): RichTextViewerState? = richTextCache[content] - - fun hashCodeCache( + private fun hashCodeCache( content: String, tags: ImmutableListOfLists, callbackUri: String?, diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt index 57b0a481b..a6aeb7f03 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt @@ -954,7 +954,7 @@ fun WatchIsHiddenUser( fun getIdentityClaimIcon(identity: IdentityClaim): Int = when (identity) { - is TwitterIdentity -> R.drawable.twitter + is TwitterIdentity -> R.drawable.x is TelegramIdentity -> R.drawable.telegram is MastodonIdentity -> R.drawable.mastodon is GitHubIdentity -> R.drawable.github diff --git a/amethyst/src/main/res/drawable/x.xml b/amethyst/src/main/res/drawable/x.xml new file mode 100644 index 000000000..39aa7a6d8 --- /dev/null +++ b/amethyst/src/main/res/drawable/x.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/amethyst/src/main/res/values/strings.xml b/amethyst/src/main/res/values/strings.xml index 4745ce130..d204eeeda 100644 --- a/amethyst/src/main/res/values/strings.xml +++ b/amethyst/src/main/res/values/strings.xml @@ -250,11 +250,11 @@ Github Gist w/ Proof Telegram Mastodon Post ID w/ Proof - Twitter Status w/ Proof + X Status w/ Proof https://gist.github.com/<user>/<gist> https://t.me/<proof post> https://<server>/<user>/<proof post> - https://twitter.com/<user>/status/<proof post> + https://x.com/<user>/status/<proof post> "<Unable to decrypt private message>\n\nYou were cited in a private/encrypted conversation between %1$s and %2$s." Add New Account Accounts diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/MetadataEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/MetadataEvent.kt index b0af7212e..7237426e9 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/MetadataEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/MetadataEvent.kt @@ -87,7 +87,7 @@ class TwitterIdentity( identity: String, proof: String, ) : IdentityClaim(identity, proof) { - override fun toProofUrl() = "https://twitter.com/$identity/status/$proof" + override fun toProofUrl() = "https://x.com/$identity/status/$proof" override fun platform() = platform @@ -97,7 +97,7 @@ class TwitterIdentity( fun parseProofUrl(proofUrl: String): TwitterIdentity? { return try { if (proofUrl.isBlank()) return null - val path = proofUrl.removePrefix("https://twitter.com/").split("?")[0].split("/") + val path = proofUrl.removePrefix("https://x.com/").split("?")[0].split("/") TwitterIdentity(path[0], path[2]) } catch (e: Exception) { From d6d26d466b194661f84ee9d56676e944752f1f0c Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Wed, 14 Aug 2024 08:11:28 +0100 Subject: [PATCH 2/3] clean up code in MetadataEvent.kt update x drawable --- amethyst/src/main/res/drawable/x.xml | 15 +++++------ .../quartz/events/MetadataEvent.kt | 25 ++----------------- 2 files changed, 10 insertions(+), 30 deletions(-) diff --git a/amethyst/src/main/res/drawable/x.xml b/amethyst/src/main/res/drawable/x.xml index 39aa7a6d8..0c0f6adff 100644 --- a/amethyst/src/main/res/drawable/x.xml +++ b/amethyst/src/main/res/drawable/x.xml @@ -1,9 +1,10 @@ - + + android:fillColor="@color/white" + android:pathData="M10.053 7.988l5.631 8.024h-1.497L8.566 7.988H10.053zM21 6v12c0 1.657 -1.343 3 -3 3H6c-1.657 0 -3 -1.343 -3 -3V6c0 -1.657 1.343 -3 3 -3h12C19.657 3 21 4.343 21 6zM17.538 17l-4.186 -5.99L16.774 7h-1.311l-2.704 3.16L10.552 7H6.702l3.941 5.633L6.906 17h1.333l3.001 -3.516L13.698 17H17.538z" /> \ No newline at end of file diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/events/MetadataEvent.kt b/quartz/src/main/java/com/vitorpamplona/quartz/events/MetadataEvent.kt index 7237426e9..b37017d8b 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/events/MetadataEvent.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/events/MetadataEvent.kt @@ -45,7 +45,7 @@ abstract class IdentityClaim( fun create( platformIdentity: String, proof: String, - ): IdentityClaim? { + ): IdentityClaim { val (platform, identity) = platformIdentity.split(':') return when (platform.lowercase()) { @@ -166,7 +166,7 @@ class MetadataEvent( .filter { it.firstOrNull() == "i" } .mapNotNull { try { - IdentityClaim.create(it.get(1), it.get(2)) + IdentityClaim.create(it[1], it[2]) } catch (e: Exception) { Log.e("MetadataEvent", "Can't parse identity [${it.joinToString { "," }}]", e) null @@ -265,26 +265,5 @@ class MetadataEvent( currentJson.put(key, value.trim()) } } - - fun createFromScratch( - newName: String, - signer: NostrSigner, - createdAt: Long = TimeUtils.now(), - onReady: (MetadataEvent) -> Unit, - ) { - val prop = ObjectMapper().createObjectNode() - prop.put("name", newName.trim()) - - val writer = StringWriter() - ObjectMapper().writeValue(writer, prop) - - val tags = mutableListOf>() - - tags.add( - arrayOf("alt", "User profile for $newName"), - ) - - signer.sign(createdAt, KIND, tags.toTypedArray(), writer.buffer.toString(), onReady) - } } } From 668d604aa9322932a582a5418b771f2411744ff8 Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Wed, 21 Aug 2024 11:56:45 +0100 Subject: [PATCH 3/3] use original twitter colour in x.xml because I can't get the theme switching working --- amethyst/src/main/res/drawable/twitter.xml | 7 ------- amethyst/src/main/res/drawable/x.xml | 7 +++---- 2 files changed, 3 insertions(+), 11 deletions(-) delete mode 100644 amethyst/src/main/res/drawable/twitter.xml diff --git a/amethyst/src/main/res/drawable/twitter.xml b/amethyst/src/main/res/drawable/twitter.xml deleted file mode 100644 index 82cf785b6..000000000 --- a/amethyst/src/main/res/drawable/twitter.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/amethyst/src/main/res/drawable/x.xml b/amethyst/src/main/res/drawable/x.xml index 0c0f6adff..5548bf909 100644 --- a/amethyst/src/main/res/drawable/x.xml +++ b/amethyst/src/main/res/drawable/x.xml @@ -1,10 +1,9 @@ + android:width="128dp" + android:height="128dp"> \ No newline at end of file