shibafu528/Yukari

リモートのMisskeyサーバにアップロードされている画像がプレビューできない

Opened this issue · 1 comments

Misskeyユーザをリモートフォローしている場合、そのユーザが投稿した画像を開こうとすると「画像の読み込みに失敗しました」と表示されてプレビューすることができない。サムネイルは表示される。

デバッガーで見てみた感じだと、一応media内には入っているっぽい。
スクリーンショット 2023-02-23 11 37 34

ただ remoteUrl がUUIDになっていて拡張子がないため、MediaFactory.newInstance で適切なリゾルバが判定できていないものと思われる。

レスポンスデシリアライズの段階ではMastodonサーバ経由で受け取りmediaであることが分かっているのでSimplePictureとして処理できそうだが、PreviewActivityに渡す時はURLしか渡していないので、ここで文脈が欠落してURLから再解釈するしかなくなっている。
この辺のいびつさに問題がある気がする。

MediaFactory.newInstanceがnullを返すのは、メディアかもしれないURLをとりあえず渡してみて、URLのパターンからメディアであると断定できるかを確認するという用途のため。

PreviewActivityでは基本的にメディアであると断定して通信を開始してみて、実際にメディアじゃないものがリモートから落ちてきてから考えるのでも問題ないので、nullが返ってきたらSimplePictureとして処理を続行しても大丈夫そう。