pantasystem / Milktea

Misskey, MastodonのAndroidクライアント「Milktea」のソースコード
GNU General Public License v3.0
251 stars 22 forks source link

チャンネル一覧でページネーションできるようにする #1896

Open pantasystem opened 1 year ago

pantasystem commented 1 year ago

概要

MisskeyのAPIの不具合が原因でページネーションが機能しないため、 これまでページネーションのロジックを未実装なままにして封印していました。 MisskeyのAPIが修正され、「自分のチャンネル」と「フォローしてるチャンネル」一覧でページネーションできるようになりました。 そこでViewModelとCompose側にページネーションのためのロジックを追加し、チャンネル一覧画面でページネーションできるようにしたいです。

pantasystem commented 1 year ago

実装方法としては ChannelViewModelのclearAndLoadのmodel.clear()のないバージョンを ChannelViewModelに作成します。 それをUserDetailCardPageableListの要領で、ページの末端判定を行い、 新たに作成したChannelViewModelの次のページを読み込む処理を呼び出すだけです。

sanao1006 commented 1 year ago

アサインお願いします!

pantasystem commented 1 year ago

よろしくお願いします🙇

sanao1006 commented 12 months ago

すみません質問いいですか!

ChannelViewModelとFollowFollowerViewModelでは clearAndLoadloadInitに対応していて、

ChannelViewModelのclearAndLoadのmodel.clear()のないバージョン

(これを仮にloadとする) がloadOldに対応している認識で合っていますか?

というのも、loadはチャンネル一覧画面で画面の一番下まで行ったときに実行させて次々にチャンネルを表示させるようにして、clearAndLoadはスワイプ時と https://github.com/pantasystem/Milktea/blob/e5348b42373f291fb5e470aac3f56237284108ce/modules/features/user/src/main/java/net/pantasystem/milktea/user/compose/screen/FollowFollowerScreen.kt#L46-L48 のように初回読み込み時に実行させればいいかなと思ったからです。が、初回入場時スワイプしないとなぜかチャンネルが表示されない&一気にすべてのフォローしてるチャンネルを表示してしまう状態です

ちょっと詰まっている状態なので助言いただけるとありがたいです。必要ならばここまでをWIPでドラフトPR作成します!

pantasystem commented 12 months ago

ChannelViewModelとFollowFollowerViewModelでは clearAndLoadloadInitに対応していて、

その認識であっています

(これを仮にloadとする) がloadOldに対応している認識で合っていますか?

これもあっています

チャンネル一覧画面でもLaunchEffectでclearAndLoadを呼び出しています https://github.com/pantasystem/Milktea/blob/7c63c59c1ae153291f22e999fc47ddc31c276e34/modules/features/channel/src/main/java/net/pantasystem/milktea/channel/ChannelListStatePage.kt#L32-L34

sanao1006 commented 12 months ago

ひとまずWIPでPR立てたのでお手すきの際にチェックよろしくお願いします!