├── .github
└── workflows
│ └── ci.yml
├── .gitignore
├── app
├── .gitignore
├── build.gradle.kts
├── proguard-rules.pro
├── schemas
│ └── io.github.a13e300.ro_tieba.db.AppDataBase
│ │ ├── 1.json
│ │ ├── 2.json
│ │ └── 3.json
└── src
│ ├── debug
│ └── res
│ │ └── values
│ │ └── strings.xml
│ └── main
│ ├── AndroidManifest.xml
│ ├── ic_launcher-playstore.png
│ ├── java
│ └── io
│ │ └── github
│ │ └── a13e300
│ │ └── ro_tieba
│ │ ├── App.kt
│ │ ├── BaseActivity.kt
│ │ ├── BaseFragment.kt
│ │ ├── Constants.kt
│ │ ├── Emotions.kt
│ │ ├── Logger.kt
│ │ ├── MainActivity.kt
│ │ ├── account
│ │ └── AccountManager.kt
│ │ ├── api
│ │ ├── TiebaApiError.kt
│ │ ├── TiebaClient.kt
│ │ ├── TiebaJsonAPI.kt
│ │ ├── TiebaLoginAPI.kt
│ │ ├── TiebaLoginClient.kt
│ │ ├── TiebaProtobufAPI.kt
│ │ ├── TiebaWebAPI.kt
│ │ ├── WebAPIResultConverter.kt
│ │ ├── adapters
│ │ │ ├── IntBooleanAdapter.kt
│ │ │ ├── IntStringAdapter.kt
│ │ │ └── NullAdapter.kt
│ │ ├── json
│ │ │ ├── GetFollowForums.kt
│ │ │ ├── LoginInfo.kt
│ │ │ ├── SearchForumPost.kt
│ │ │ ├── TiebaApiErrorInfo.kt
│ │ │ └── UserPostResponse.kt
│ │ ├── protobuf
│ │ │ ├── FrsPageSortType.kt
│ │ │ └── GeneralTabListSortType.kt
│ │ └── web
│ │ │ ├── GetFid.kt
│ │ │ ├── SearchForum.kt
│ │ │ ├── SearchThread.kt
│ │ │ ├── SearchUser.kt
│ │ │ └── WebApiResult.kt
│ │ ├── arch
│ │ └── Event.kt
│ │ ├── cache
│ │ └── CachedThread.kt
│ │ ├── db
│ │ ├── AccountDao.kt
│ │ ├── AppDataBase.kt
│ │ └── HistoryDao.kt
│ │ ├── history
│ │ └── HistoryManager.kt
│ │ ├── misc
│ │ ├── BounceScrollHelper.kt
│ │ ├── ContainerBehavior.kt
│ │ ├── EmojiSpan.kt
│ │ ├── IconSpan.kt
│ │ ├── MyChangeImageTransform.kt
│ │ ├── MyURLSpan.kt
│ │ ├── OnPreImeBackPressedListener.kt
│ │ ├── PauseLoadOnQuickScrollListener.kt
│ │ ├── PhotoDescScrollBehavior.kt
│ │ └── RoundSpan.kt
│ │ ├── models
│ │ ├── Comment.kt
│ │ ├── Content.kt
│ │ ├── Forum.kt
│ │ ├── ForumSortType.kt
│ │ ├── ForumTab.kt
│ │ ├── IPost.kt
│ │ ├── Photo.kt
│ │ ├── Post.kt
│ │ ├── PostId.kt
│ │ ├── Reply.kt
│ │ ├── SearchedPost.kt
│ │ ├── ThreadType.kt
│ │ ├── TiebaThread.kt
│ │ └── User.kt
│ │ ├── serializer
│ │ ├── SearchHistorySerializer.kt
│ │ └── Settings.kt
│ │ ├── ui
│ │ ├── DetailDialogFragment.kt
│ │ ├── HomePageFragment.kt
│ │ ├── account
│ │ │ └── AccountFragment.kt
│ │ ├── comment
│ │ │ ├── CommentFragment.kt
│ │ │ └── CommentViewModel.kt
│ │ ├── dashboard
│ │ │ ├── DashboardFragment.kt
│ │ │ └── DashboardViewModel.kt
│ │ ├── forum
│ │ │ ├── ForumFragment.kt
│ │ │ └── ForumViewModel.kt
│ │ ├── history
│ │ │ ├── HistoryFragment.kt
│ │ │ └── HistoryViewModel.kt
│ │ ├── home
│ │ │ ├── HomeFragment.kt
│ │ │ └── HomeViewModel.kt
│ │ ├── login
│ │ │ └── LoginFragment.kt
│ │ ├── photo
│ │ │ ├── PhotoFragment.kt
│ │ │ └── PhotoViewModel.kt
│ │ ├── profile
│ │ │ ├── ProfileForumsFragment.kt
│ │ │ ├── ProfileFragment.kt
│ │ │ ├── ProfileReplyFragment.kt
│ │ │ ├── ProfileThreadsFragment.kt
│ │ │ └── ProfileViewModel.kt
│ │ ├── search
│ │ │ ├── SearchForumFragment.kt
│ │ │ ├── SearchFragment.kt
│ │ │ ├── SearchPostFragment.kt
│ │ │ ├── SearchUserFragment.kt
│ │ │ └── SearchViewModel.kt
│ │ ├── settings
│ │ │ └── SettingsFragment.kt
│ │ └── thread
│ │ │ ├── ThreadFragment.kt
│ │ │ └── ThreadViewModel.kt
│ │ ├── utils
│ │ ├── AnimUtils.kt
│ │ ├── PhotoUtils.kt
│ │ ├── SpanUtils.kt
│ │ ├── UriUtils.kt
│ │ └── Utils.kt
│ │ └── view
│ │ ├── BounceScrollView.kt
│ │ ├── ContentTextView.kt
│ │ ├── InPagerCoordinatorLayout.kt
│ │ ├── ItemView.kt
│ │ ├── MyImageFilterView.kt
│ │ ├── MySearchView.kt
│ │ └── PreImeBackInterceptorView.kt
│ ├── protobuf
│ ├── datastore
│ │ ├── SearchHistory.proto
│ │ └── Settings.proto
│ └── tbclient
│ │ ├── Abstract.proto
│ │ ├── Agree.proto
│ │ ├── CommitPersonalMsgReqIdl.proto
│ │ ├── CommitPersonalMsgResIdl.proto
│ │ ├── CommitReceivedPmsgReqIdl.proto
│ │ ├── CommitReceivedPmsgResIdl.proto
│ │ ├── CommonReq.proto
│ │ ├── Error.proto
│ │ ├── ForumList.proto
│ │ ├── FrsPageReqIdl.proto
│ │ ├── FrsPageResIdl.proto
│ │ ├── FrsTabInfo.proto
│ │ ├── GeneralTabListReqIdl.proto
│ │ ├── GeneralTabListResIdl.proto
│ │ ├── GetBawuInfoReqIdl.proto
│ │ ├── GetBawuInfoResIdl.proto
│ │ ├── GetDislikeListReqIdl.proto
│ │ ├── GetDislikeListResIdl.proto
│ │ ├── GetForumSquareReqIdl.proto
│ │ ├── GetForumSquareResIdl.proto
│ │ ├── GetGroupMsgReqIdl.proto
│ │ ├── GetGroupMsgResIdl.proto
│ │ ├── GetUserByTiebaUidReqIdl.proto
│ │ ├── GetUserByTiebaUidResIdl.proto
│ │ ├── GetUserInfoReqIdl.proto
│ │ ├── GetUserInfoResIdl.proto
│ │ ├── Media.proto
│ │ ├── Page.proto
│ │ ├── PbContent.proto
│ │ ├── PbFloorReqIdl.proto
│ │ ├── PbFloorResIdl.proto
│ │ ├── PbPageReqIdl.proto
│ │ ├── PbPageResIdl.proto
│ │ ├── PollInfo.proto
│ │ ├── Post.proto
│ │ ├── PostInfoList.proto
│ │ ├── ProfileReqIdl.proto
│ │ ├── ProfileResIdl.proto
│ │ ├── PushNotifyResIdl.proto
│ │ ├── ReplyMeReqIdl.proto
│ │ ├── ReplyMeResIdl.proto
│ │ ├── SearchPostForumReqIdl.proto
│ │ ├── SearchPostForumResIdl.proto
│ │ ├── SimpleForum.proto
│ │ ├── SubPostList.proto
│ │ ├── ThreadInfo.proto
│ │ ├── UpdateClientInfoReqIdl.proto
│ │ ├── UpdateClientInfoResIdl.proto
│ │ ├── User.proto
│ │ ├── UserPostReqIdl.proto
│ │ └── UserPostResIdl.proto
│ └── res
│ ├── anim
│ ├── fade_enter_anim.xml
│ ├── fade_exit_anim.xml
│ ├── fade_pop_enter_anim.xml
│ ├── fade_pop_exit_anim.xml
│ ├── nav_default_enter_anim.xml
│ ├── nav_default_exit_anim.xml
│ ├── nav_default_pop_enter_anim.xml
│ ├── nav_default_pop_exit_anim.xml
│ ├── slide_in_down.xml
│ ├── slide_in_up.xml
│ ├── slide_out_down.xml
│ └── slide_out_up.xml
│ ├── drawable
│ ├── background.xml
│ ├── background_with_divider.xml
│ ├── emoji_bearchildren_01.webp
│ ├── emoji_bearchildren_02.webp
│ ├── emoji_bearchildren_03.webp
│ ├── emoji_bearchildren_04.webp
│ ├── emoji_bearchildren_05.webp
│ ├── emoji_bearchildren_06.webp
│ ├── emoji_bearchildren_07.webp
│ ├── emoji_bearchildren_08.webp
│ ├── emoji_bearchildren_09.webp
│ ├── emoji_bearchildren_10.webp
│ ├── emoji_bearchildren_11.webp
│ ├── emoji_bearchildren_12.webp
│ ├── emoji_bearchildren_13.webp
│ ├── emoji_bearchildren_14.webp
│ ├── emoji_bearchildren_15.webp
│ ├── emoji_bearchildren_16.webp
│ ├── emoji_bearchildren_17.webp
│ ├── emoji_bearchildren_18.webp
│ ├── emoji_bearchildren_19.webp
│ ├── emoji_bearchildren_20.webp
│ ├── emoji_image_emoticon.png
│ ├── emoji_image_emoticon10.png
│ ├── emoji_image_emoticon100.png
│ ├── emoji_image_emoticon101.png
│ ├── emoji_image_emoticon102.png
│ ├── emoji_image_emoticon103.png
│ ├── emoji_image_emoticon104.png
│ ├── emoji_image_emoticon105.png
│ ├── emoji_image_emoticon106.png
│ ├── emoji_image_emoticon107.png
│ ├── emoji_image_emoticon108.png
│ ├── emoji_image_emoticon109.png
│ ├── emoji_image_emoticon11.png
│ ├── emoji_image_emoticon110.png
│ ├── emoji_image_emoticon111.png
│ ├── emoji_image_emoticon112.png
│ ├── emoji_image_emoticon113.png
│ ├── emoji_image_emoticon114.png
│ ├── emoji_image_emoticon115.png
│ ├── emoji_image_emoticon116.png
│ ├── emoji_image_emoticon117.png
│ ├── emoji_image_emoticon118.png
│ ├── emoji_image_emoticon119.png
│ ├── emoji_image_emoticon12.png
│ ├── emoji_image_emoticon120.png
│ ├── emoji_image_emoticon121.png
│ ├── emoji_image_emoticon122.png
│ ├── emoji_image_emoticon123.png
│ ├── emoji_image_emoticon124.png
│ ├── emoji_image_emoticon125.png
│ ├── emoji_image_emoticon126.png
│ ├── emoji_image_emoticon127.png
│ ├── emoji_image_emoticon128.png
│ ├── emoji_image_emoticon129.png
│ ├── emoji_image_emoticon13.png
│ ├── emoji_image_emoticon130.png
│ ├── emoji_image_emoticon131.png
│ ├── emoji_image_emoticon132.png
│ ├── emoji_image_emoticon133.png
│ ├── emoji_image_emoticon134.png
│ ├── emoji_image_emoticon135.png
│ ├── emoji_image_emoticon136.png
│ ├── emoji_image_emoticon137.png
│ ├── emoji_image_emoticon14.png
│ ├── emoji_image_emoticon15.png
│ ├── emoji_image_emoticon16.png
│ ├── emoji_image_emoticon17.png
│ ├── emoji_image_emoticon18.png
│ ├── emoji_image_emoticon19.png
│ ├── emoji_image_emoticon2.png
│ ├── emoji_image_emoticon20.png
│ ├── emoji_image_emoticon21.png
│ ├── emoji_image_emoticon22.png
│ ├── emoji_image_emoticon23.png
│ ├── emoji_image_emoticon24.png
│ ├── emoji_image_emoticon25.png
│ ├── emoji_image_emoticon26.png
│ ├── emoji_image_emoticon27.png
│ ├── emoji_image_emoticon28.png
│ ├── emoji_image_emoticon29.png
│ ├── emoji_image_emoticon3.png
│ ├── emoji_image_emoticon30.png
│ ├── emoji_image_emoticon31.png
│ ├── emoji_image_emoticon32.png
│ ├── emoji_image_emoticon33.png
│ ├── emoji_image_emoticon34.png
│ ├── emoji_image_emoticon35.png
│ ├── emoji_image_emoticon36.png
│ ├── emoji_image_emoticon37.png
│ ├── emoji_image_emoticon38.png
│ ├── emoji_image_emoticon39.png
│ ├── emoji_image_emoticon4.png
│ ├── emoji_image_emoticon40.png
│ ├── emoji_image_emoticon41.png
│ ├── emoji_image_emoticon42.png
│ ├── emoji_image_emoticon43.png
│ ├── emoji_image_emoticon44.png
│ ├── emoji_image_emoticon45.png
│ ├── emoji_image_emoticon46.png
│ ├── emoji_image_emoticon47.png
│ ├── emoji_image_emoticon48.png
│ ├── emoji_image_emoticon49.png
│ ├── emoji_image_emoticon5.png
│ ├── emoji_image_emoticon50.png
│ ├── emoji_image_emoticon6.png
│ ├── emoji_image_emoticon61.png
│ ├── emoji_image_emoticon62.png
│ ├── emoji_image_emoticon63.png
│ ├── emoji_image_emoticon64.png
│ ├── emoji_image_emoticon65.png
│ ├── emoji_image_emoticon66.png
│ ├── emoji_image_emoticon67.png
│ ├── emoji_image_emoticon68.png
│ ├── emoji_image_emoticon69.png
│ ├── emoji_image_emoticon7.png
│ ├── emoji_image_emoticon70.png
│ ├── emoji_image_emoticon71.png
│ ├── emoji_image_emoticon72.png
│ ├── emoji_image_emoticon73.png
│ ├── emoji_image_emoticon74.png
│ ├── emoji_image_emoticon75.png
│ ├── emoji_image_emoticon76.png
│ ├── emoji_image_emoticon77.png
│ ├── emoji_image_emoticon78.png
│ ├── emoji_image_emoticon79.png
│ ├── emoji_image_emoticon8.png
│ ├── emoji_image_emoticon80.png
│ ├── emoji_image_emoticon81.png
│ ├── emoji_image_emoticon82.png
│ ├── emoji_image_emoticon83.png
│ ├── emoji_image_emoticon84.png
│ ├── emoji_image_emoticon85.png
│ ├── emoji_image_emoticon86.png
│ ├── emoji_image_emoticon87.png
│ ├── emoji_image_emoticon88.png
│ ├── emoji_image_emoticon89.png
│ ├── emoji_image_emoticon9.png
│ ├── emoji_image_emoticon90.png
│ ├── emoji_image_emoticon91.png
│ ├── emoji_image_emoticon92.png
│ ├── emoji_image_emoticon93.png
│ ├── emoji_image_emoticon94.png
│ ├── emoji_image_emoticon95.png
│ ├── emoji_image_emoticon96.png
│ ├── emoji_image_emoticon97.png
│ ├── emoji_image_emoticon98.png
│ ├── emoji_image_emoticon99.png
│ ├── emoji_shoubai_emoji_face_01.webp
│ ├── emoji_shoubai_emoji_face_02.webp
│ ├── emoji_shoubai_emoji_face_03.webp
│ ├── emoji_shoubai_emoji_face_04.webp
│ ├── emoji_shoubai_emoji_face_05.webp
│ ├── emoji_shoubai_emoji_face_06.webp
│ ├── emoji_shoubai_emoji_face_07.webp
│ ├── emoji_shoubai_emoji_face_08.webp
│ ├── emoji_shoubai_emoji_face_09.webp
│ ├── emoji_shoubai_emoji_face_10.webp
│ ├── emoji_shoubai_emoji_face_100.webp
│ ├── emoji_shoubai_emoji_face_101.webp
│ ├── emoji_shoubai_emoji_face_102.webp
│ ├── emoji_shoubai_emoji_face_103.webp
│ ├── emoji_shoubai_emoji_face_104.webp
│ ├── emoji_shoubai_emoji_face_105.webp
│ ├── emoji_shoubai_emoji_face_106.webp
│ ├── emoji_shoubai_emoji_face_11.webp
│ ├── emoji_shoubai_emoji_face_12.webp
│ ├── emoji_shoubai_emoji_face_13.webp
│ ├── emoji_shoubai_emoji_face_14.webp
│ ├── emoji_shoubai_emoji_face_15.webp
│ ├── emoji_shoubai_emoji_face_16.webp
│ ├── emoji_shoubai_emoji_face_17.webp
│ ├── emoji_shoubai_emoji_face_18.webp
│ ├── emoji_shoubai_emoji_face_19.webp
│ ├── emoji_shoubai_emoji_face_20.webp
│ ├── emoji_shoubai_emoji_face_21.webp
│ ├── emoji_shoubai_emoji_face_22.webp
│ ├── emoji_shoubai_emoji_face_23.webp
│ ├── emoji_shoubai_emoji_face_24.webp
│ ├── emoji_shoubai_emoji_face_25.webp
│ ├── emoji_shoubai_emoji_face_26.webp
│ ├── emoji_shoubai_emoji_face_27.webp
│ ├── emoji_shoubai_emoji_face_28.webp
│ ├── emoji_shoubai_emoji_face_29.webp
│ ├── emoji_shoubai_emoji_face_30.webp
│ ├── emoji_shoubai_emoji_face_31.webp
│ ├── emoji_shoubai_emoji_face_32.webp
│ ├── emoji_shoubai_emoji_face_33.webp
│ ├── emoji_shoubai_emoji_face_34.webp
│ ├── emoji_shoubai_emoji_face_35.webp
│ ├── emoji_shoubai_emoji_face_36.webp
│ ├── emoji_shoubai_emoji_face_37.webp
│ ├── emoji_shoubai_emoji_face_38.webp
│ ├── emoji_shoubai_emoji_face_39.webp
│ ├── emoji_shoubai_emoji_face_40.webp
│ ├── emoji_shoubai_emoji_face_41.webp
│ ├── emoji_shoubai_emoji_face_42.webp
│ ├── emoji_shoubai_emoji_face_43.webp
│ ├── emoji_shoubai_emoji_face_44.webp
│ ├── emoji_shoubai_emoji_face_45.webp
│ ├── emoji_shoubai_emoji_face_46.webp
│ ├── emoji_shoubai_emoji_face_47.webp
│ ├── emoji_shoubai_emoji_face_48.webp
│ ├── emoji_shoubai_emoji_face_49.webp
│ ├── emoji_shoubai_emoji_face_50.webp
│ ├── emoji_shoubai_emoji_face_51.webp
│ ├── emoji_shoubai_emoji_face_52.webp
│ ├── emoji_shoubai_emoji_face_53.webp
│ ├── emoji_shoubai_emoji_face_54.webp
│ ├── emoji_shoubai_emoji_face_55.webp
│ ├── emoji_shoubai_emoji_face_56.webp
│ ├── emoji_shoubai_emoji_face_57.webp
│ ├── emoji_shoubai_emoji_face_58.webp
│ ├── emoji_shoubai_emoji_face_59.webp
│ ├── emoji_shoubai_emoji_face_60.webp
│ ├── emoji_shoubai_emoji_face_61.webp
│ ├── emoji_shoubai_emoji_face_62.webp
│ ├── emoji_shoubai_emoji_face_63.webp
│ ├── emoji_shoubai_emoji_face_64.png
│ ├── emoji_shoubai_emoji_face_65.webp
│ ├── emoji_shoubai_emoji_face_66.webp
│ ├── emoji_shoubai_emoji_face_67.webp
│ ├── emoji_shoubai_emoji_face_68.webp
│ ├── emoji_shoubai_emoji_face_69.webp
│ ├── emoji_shoubai_emoji_face_70.webp
│ ├── emoji_shoubai_emoji_face_71.webp
│ ├── emoji_shoubai_emoji_face_72.webp
│ ├── emoji_shoubai_emoji_face_73.webp
│ ├── emoji_shoubai_emoji_face_74.png
│ ├── emoji_shoubai_emoji_face_75.webp
│ ├── emoji_shoubai_emoji_face_76.webp
│ ├── emoji_shoubai_emoji_face_77.webp
│ ├── emoji_shoubai_emoji_face_78.webp
│ ├── emoji_shoubai_emoji_face_79.webp
│ ├── emoji_shoubai_emoji_face_80.webp
│ ├── emoji_shoubai_emoji_face_81.png
│ ├── emoji_shoubai_emoji_face_82.webp
│ ├── emoji_shoubai_emoji_face_83.webp
│ ├── emoji_shoubai_emoji_face_84.webp
│ ├── emoji_shoubai_emoji_face_85.webp
│ ├── emoji_shoubai_emoji_face_86.webp
│ ├── emoji_shoubai_emoji_face_87.webp
│ ├── emoji_shoubai_emoji_face_88.webp
│ ├── emoji_shoubai_emoji_face_89.webp
│ ├── emoji_shoubai_emoji_face_90.webp
│ ├── emoji_shoubai_emoji_face_91.webp
│ ├── emoji_shoubai_emoji_face_92.webp
│ ├── emoji_shoubai_emoji_face_93.webp
│ ├── emoji_shoubai_emoji_face_94.webp
│ ├── emoji_shoubai_emoji_face_95.webp
│ ├── emoji_shoubai_emoji_face_96.webp
│ ├── emoji_shoubai_emoji_face_97.webp
│ ├── emoji_shoubai_emoji_face_98.webp
│ ├── emoji_shoubai_emoji_face_99.webp
│ ├── ic_account.xml
│ ├── ic_add.xml
│ ├── ic_agree.xml
│ ├── ic_back.xml
│ ├── ic_comment.xml
│ ├── ic_copy.xml
│ ├── ic_dashboard_black_24dp.xml
│ ├── ic_delete.xml
│ ├── ic_disagree.xml
│ ├── ic_down.xml
│ ├── ic_download.xml
│ ├── ic_error.xml
│ ├── ic_history.xml
│ ├── ic_home_black_24dp.xml
│ ├── ic_idea.xml
│ ├── ic_info.xml
│ ├── ic_input.xml
│ ├── ic_jump.xml
│ ├── ic_launcher_background.xml
│ ├── ic_launcher_foreground.xml
│ ├── ic_link.xml
│ ├── ic_location.xml
│ ├── ic_notifications_black_24dp.xml
│ ├── ic_ok.xml
│ ├── ic_open.xml
│ ├── ic_paste.xml
│ ├── ic_refresh.xml
│ ├── ic_search.xml
│ ├── ic_see.xml
│ ├── ic_settings.xml
│ ├── ic_share.xml
│ ├── ic_sort.xml
│ ├── ic_time.xml
│ └── ic_up.xml
│ ├── layout
│ ├── activity_main.xml
│ ├── activity_search.xml
│ ├── activity_thread.xml
│ ├── dialog_account_info.xml
│ ├── dialog_detail.xml
│ ├── dialog_detail_item_content.xml
│ ├── dialog_detail_item_title.xml
│ ├── dialog_jump_page.xml
│ ├── dialog_login_method.xml
│ ├── fragment_account_item.xml
│ ├── fragment_account_list.xml
│ ├── fragment_comment.xml
│ ├── fragment_comment_item.xml
│ ├── fragment_dashboard.xml
│ ├── fragment_forum.xml
│ ├── fragment_forum_thread_item.xml
│ ├── fragment_history.xml
│ ├── fragment_history_forum_item.xml
│ ├── fragment_history_post_item.xml
│ ├── fragment_history_user_item.xml
│ ├── fragment_home.xml
│ ├── fragment_home_bar_item.xml
│ ├── fragment_home_page.xml
│ ├── fragment_login.xml
│ ├── fragment_photo.xml
│ ├── fragment_profile.xml
│ ├── fragment_profile_followed_forums.xml
│ ├── fragment_profile_forum_item.xml
│ ├── fragment_profile_reply.xml
│ ├── fragment_profile_reply_item.xml
│ ├── fragment_profile_thread_item.xml
│ ├── fragment_profile_threads.xml
│ ├── fragment_search.xml
│ ├── fragment_search_post.xml
│ ├── fragment_search_post_item.xml
│ ├── fragment_search_post_load_state.xml
│ ├── fragment_search_result.xml
│ ├── fragment_search_result_bar_item.xml
│ ├── fragment_search_user.xml
│ ├── fragment_search_user_item.xml
│ ├── fragment_settings.xml
│ ├── fragment_thread.xml
│ ├── fragment_thread_bar.xml
│ ├── fragment_thread_comment_preview.xml
│ ├── fragment_thread_header.xml
│ ├── fragment_thread_post_item.xml
│ ├── image_content.xml
│ ├── search_suggestion_item.xml
│ ├── thread_list_footer.xml
│ └── video_view.xml
│ ├── menu
│ ├── account_item_menu.xml
│ ├── accounts_menu.xml
│ ├── bottom_nav_menu.xml
│ ├── comment_menu.xml
│ ├── forum_menu.xml
│ ├── forum_sort_menu.xml
│ ├── history_item_menu.xml
│ ├── history_menu.xml
│ ├── home_menu.xml
│ ├── photo_menu.xml
│ ├── post_item_menu.xml
│ ├── profile_menu.xml
│ ├── search_order_menu.xml
│ └── thread_menu.xml
│ ├── mipmap-anydpi-v26
│ ├── ic_launcher.xml
│ └── ic_launcher_round.xml
│ ├── navigation
│ ├── home_page_navigation.xml
│ └── mobile_navigation.xml
│ ├── values-night-v29
│ └── themes.xml
│ ├── values-night
│ ├── colors.xml
│ └── themes.xml
│ ├── values-v31
│ └── colors.xml
│ ├── values
│ ├── attrs.xml
│ ├── colors.xml
│ ├── dimens.xml
│ ├── ic_launcher_background.xml
│ ├── ids.xml
│ ├── integers.xml
│ ├── strings.xml
│ ├── styles.xml
│ └── themes.xml
│ └── xml
│ ├── backup_rules.xml
│ ├── data_extraction_rules.xml
│ ├── file_paths.xml
│ └── preference.xml
├── build.gradle.kts
├── gradle.properties
├── gradle
├── libs.versions.toml
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle.kts
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea
5 | .DS_Store
6 | /build
7 | /captures
8 | .externalNativeBuild
9 | .cxx
10 | local.properties
11 | keystore.properties
12 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/app/src/debug/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | RoTieba Debug
4 |
--------------------------------------------------------------------------------
/app/src/main/ic_launcher-playstore.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/ic_launcher-playstore.png
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/Constants.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba
2 |
3 | const val DEFAULT_FORUM_AVATAR = "https://tb1.bdstatic.com/tb/cms/frs/bg/default_avatar20141017.jpg"
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/Logger.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba
2 |
3 | import android.util.Log
4 |
5 | object Logger {
6 | private const val TAG = "RoTieba"
7 |
8 | fun d(msg: String) {
9 | if (BuildConfig.DEBUG)
10 | Log.d(TAG, msg)
11 | }
12 |
13 | fun e(msg: String) {
14 | Log.e(TAG, msg)
15 | }
16 |
17 | fun e(msg: String, t: Throwable) {
18 | Log.e(TAG, msg, t)
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/TiebaApiError.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api
2 |
3 | import java.io.IOException
4 |
5 | class TiebaApiError(val errno: Int, val msg: String?) : IOException() {
6 | override val message: String
7 | get() = "$errno: $msg"
8 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/TiebaLoginAPI.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api
2 |
3 | import io.github.a13e300.ro_tieba.api.json.LoginInfo
4 | import retrofit2.http.Field
5 | import retrofit2.http.FormUrlEncoded
6 | import retrofit2.http.POST
7 |
8 | interface TiebaLoginAPI {
9 | @FormUrlEncoded
10 | @POST("/c/s/login")
11 | suspend fun login(@Field("bdusstoken") bduss: String): LoginInfo
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/TiebaProtobufAPI.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api
2 |
3 | import okhttp3.MultipartBody
4 | import okhttp3.ResponseBody
5 | import retrofit2.http.Headers
6 | import retrofit2.http.Multipart
7 | import retrofit2.http.POST
8 | import retrofit2.http.Part
9 |
10 | interface TiebaProtobufAPI {
11 | @Headers("x_bd_data_type: protobuf")
12 | @Multipart
13 | @POST("/c/f/pb/page?cmd=302001")
14 | suspend fun getPosts(@Part part: MultipartBody.Part): ResponseBody
15 |
16 | @Headers("x_bd_data_type: protobuf")
17 | @Multipart
18 | @POST("/c/f/frs/page?cmd=301001")
19 | suspend fun getThreads(@Part part: MultipartBody.Part): ResponseBody
20 |
21 | @Headers("x_bd_data_type: protobuf")
22 | @Multipart
23 | @POST("/c/f/pb/floor?cmd=302002")
24 | suspend fun getComments(@Part part: MultipartBody.Part): ResponseBody
25 |
26 | @Headers("x_bd_data_type: protobuf")
27 | @Multipart
28 | @POST("/c/u/user/profile?cmd=303012")
29 | suspend fun getUserProfile(@Part part: MultipartBody.Part): ResponseBody
30 |
31 | @Headers("x_bd_data_type: protobuf")
32 | @Multipart
33 | @POST("/c/f/frs/generalTabList?cmd=309622")
34 | suspend fun getThreadsInTab(@Part part: MultipartBody.Part): ResponseBody
35 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/TiebaWebAPI.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api
2 |
3 | import io.github.a13e300.ro_tieba.api.web.GetFid
4 | import io.github.a13e300.ro_tieba.api.web.SearchForum
5 | import io.github.a13e300.ro_tieba.api.web.SearchThread
6 | import io.github.a13e300.ro_tieba.api.web.SearchUser
7 | import retrofit2.Call
8 | import retrofit2.http.FormUrlEncoded
9 | import retrofit2.http.GET
10 | import retrofit2.http.Query
11 |
12 | interface TiebaWebAPI {
13 | @FormUrlEncoded
14 | @GET("/f/commit/share/fnameShareApi?ie=utf-8")
15 | fun getFid(@Query("fname") forumName: String): Call
16 |
17 | @GET("/mo/q/search/forum")
18 | suspend fun searchForum(
19 | @Query("word") keyword: String
20 | ): SearchForum
21 |
22 | @GET("/mo/q/search/thread")
23 | suspend fun searchThread(
24 | @Query("word") keyword: String,
25 | @Query("pn") page: Int,
26 | @Query("st") order: String, // 0 -> old, 1 -> new, 2 -> relevant
27 | @Query("tt") filter: String, // 2 -> all, 1 -> thread
28 | @Query("ct") ct: String = "2"
29 | ): SearchThread
30 |
31 | @GET("/mo/q/search/user")
32 | suspend fun searchUser(
33 | @Query("word") keyword: String
34 | ): SearchUser
35 | }
36 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/adapters/IntBooleanAdapter.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api.adapters
2 |
3 | import com.google.gson.JsonDeserializationContext
4 | import com.google.gson.JsonDeserializer
5 | import com.google.gson.JsonElement
6 | import com.google.gson.JsonPrimitive
7 | import java.lang.reflect.Type
8 |
9 | class IntBooleanAdapter : JsonDeserializer {
10 | override fun deserialize(
11 | json: JsonElement,
12 | typeOfT: Type?,
13 | context: JsonDeserializationContext
14 | ): Any? {
15 | if (json is JsonPrimitive) {
16 | if (json.isBoolean)
17 | return json.asBoolean
18 | else if (json.isNumber)
19 | return json.asInt != 0
20 | else if (json.isString)
21 | return json.asString == "1"
22 | return context.deserialize(json, typeOfT)
23 | }
24 | return null
25 | }
26 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/adapters/IntStringAdapter.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api.adapters
2 |
3 | import com.google.gson.JsonDeserializationContext
4 | import com.google.gson.JsonDeserializer
5 | import com.google.gson.JsonElement
6 | import com.google.gson.JsonPrimitive
7 | import java.lang.reflect.Type
8 |
9 | class IntStringAdapter : JsonDeserializer {
10 | override fun deserialize(
11 | json: JsonElement,
12 | typeOfT: Type?,
13 | context: JsonDeserializationContext
14 | ): Any? {
15 | if (json is JsonPrimitive) {
16 | if (json.isNumber) {
17 | if (typeOfT == Integer.TYPE || typeOfT == Integer::class.java)
18 | return json.asInt
19 | else if (typeOfT == java.lang.Long.TYPE || typeOfT == java.lang.Long::class.java)
20 | return json.asLong
21 | } else if (json.isString) {
22 | if (typeOfT == Integer.TYPE || typeOfT == Integer::class.java)
23 | return json.asString.toInt()
24 | else if (typeOfT == java.lang.Long.TYPE || typeOfT == java.lang.Long::class.java)
25 | return json.asString.toLong()
26 | }
27 | return context.deserialize(json, typeOfT)
28 | }
29 | return null
30 | }
31 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/adapters/NullAdapter.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api.adapters
2 |
3 | import com.google.gson.JsonDeserializationContext
4 | import com.google.gson.JsonDeserializer
5 | import com.google.gson.JsonElement
6 | import java.lang.reflect.Type
7 |
8 | class NullAdapter : JsonDeserializer {
9 | override fun deserialize(
10 | json: JsonElement,
11 | typeOfT: Type?,
12 | context: JsonDeserializationContext
13 | ): Any? {
14 | if (json.isJsonObject) {
15 | return context.deserialize(json, typeOfT)
16 | }
17 | return null
18 | }
19 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/json/GetFollowForums.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api.json
2 |
3 | import com.google.gson.annotations.JsonAdapter
4 | import com.google.gson.annotations.SerializedName
5 | import io.github.a13e300.ro_tieba.api.adapters.NullAdapter
6 |
7 | data class GetFollowForums(
8 | @SerializedName("has_more")
9 | val hasMore: Boolean,
10 | @JsonAdapter(NullAdapter::class)
11 | @SerializedName("forum_list")
12 | val forumList: ForumList?,
13 | ) {
14 | data class ForumList(
15 | @SerializedName("non-gconforum")
16 | val nonGconForum: List?,
17 | @SerializedName("gconforum")
18 | val gconForum: List?
19 | )
20 |
21 | data class Forum(
22 | val id: String,
23 | val name: String,
24 | @SerializedName("level_id")
25 | val levelId: String,
26 | val avatar: String,
27 | val slogan: String
28 | )
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/json/LoginInfo.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api.json
2 |
3 | data class LoginInfo(
4 | val user: UserInfo,
5 | val anti: AntiInfo
6 | ) {
7 | data class UserInfo(
8 | val id: String,
9 | val name: String,
10 | val portrait: String
11 | )
12 |
13 | data class AntiInfo(
14 | val tbs: String
15 | )
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/json/TiebaApiErrorInfo.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api.json
2 |
3 | import com.google.gson.annotations.SerializedName
4 |
5 | data class TiebaApiErrorInfo(
6 | @SerializedName("error_code", alternate = ["no", "errno"])
7 | val errorCode: String,
8 | @SerializedName("error_msg", alternate = ["error", "errmsg"])
9 | val errorMsg: String?
10 | )
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/protobuf/FrsPageSortType.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api.protobuf
2 |
3 | /**
4 | * https://github.com/Starry-OvO/aiotieba/blob/ed8867f6ac73b523389dd1dcbdd4b5f62a16ff81/aiotieba/client.py#L494
5 | * 排序方式 对于有热门分区的贴吧 0热门排序 1按发布时间 2关注的人 34热门排序 >=5是按回复时间
6 | * 对于无热门分区的贴吧 0按回复时间 1按发布时间 2关注的人 >=3按回复时间
7 | */
8 | enum class FrsPageSortType(val value: Int) {
9 | HOT(0),
10 | CREATE_TIME(1),
11 | FOLLOW(2),
12 | REPLY_TIME(5)
13 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/protobuf/GeneralTabListSortType.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api.protobuf
2 |
3 | enum class GeneralTabListSortType(val value: Int) {
4 | REPLY_TIME(0),
5 | CREATE_TIME(1)
6 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/web/GetFid.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api.web
2 |
3 | data class GetFid(
4 | val data: Data
5 | ) {
6 | data class Data(
7 | val fid: String
8 | )
9 | }
10 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/web/SearchForum.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api.web
2 |
3 | import com.google.gson.annotations.JsonAdapter
4 | import com.google.gson.annotations.SerializedName
5 | import io.github.a13e300.ro_tieba.api.adapters.NullAdapter
6 |
7 | data class SearchForum(
8 | @JsonAdapter(NullAdapter::class)
9 | val exactMatch: ForumInfo?,
10 | val fuzzyMatch: List
11 | ) {
12 | data class ForumInfo(
13 | @SerializedName("forum_id")
14 | val forumId: Int,
15 | @SerializedName("forum_name")
16 | val forumName: String,
17 | val avatar: String,
18 | val intro: String?,
19 | val slogan: String?
20 | )
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/web/SearchUser.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api.web
2 |
3 | import com.google.gson.annotations.JsonAdapter
4 | import com.google.gson.annotations.SerializedName
5 | import io.github.a13e300.ro_tieba.api.adapters.NullAdapter
6 |
7 | data class SearchUser(
8 | @JsonAdapter(NullAdapter::class)
9 | val exactMatch: UserInfo?,
10 | val fuzzyMatch: List
11 | ) {
12 | data class UserInfo(
13 | val id: Long,
14 | val intro: String,
15 | @SerializedName("user_nickname")
16 | val nickname: String,
17 | val name: String?, // empty!
18 | @SerializedName("show_nickname")
19 | val showNickName: String,
20 | @SerializedName("portrait")
21 | val avatar: String,
22 | @SerializedName("encry_uid")
23 | val portrait: String,
24 | @SerializedName("has_concerned")
25 | val concerned: Int,
26 | @SerializedName("fans_num")
27 | val fansNum: String // String (3.6w) or Int (36)
28 | )
29 | }
30 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/api/web/WebApiResult.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.api.web
2 |
3 | import com.google.gson.annotations.SerializedName
4 |
5 | data class WebApiResult(
6 | @SerializedName("no")
7 | val errorCode: Int,
8 | @SerializedName("error")
9 | val errorMsg: String,
10 | val data: T
11 | )
12 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/arch/Event.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.arch
2 |
3 | class Event(val data: T) {
4 | var handled = false
5 |
6 | inline fun handle(handler: (T) -> Unit) {
7 | if (!handled) {
8 | handler(data)
9 | handled = true
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/db/AccountDao.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.db
2 |
3 | import androidx.room.Dao
4 | import androidx.room.Delete
5 | import androidx.room.Entity
6 | import androidx.room.Insert
7 | import androidx.room.OnConflictStrategy
8 | import androidx.room.PrimaryKey
9 | import androidx.room.Query
10 | import io.github.a13e300.ro_tieba.account.AccountManager
11 | import kotlinx.coroutines.flow.Flow
12 |
13 | @Entity
14 | data class Account(
15 | @PrimaryKey
16 | val uid: String = AccountManager.ACCOUNT_ANONYMOUS,
17 | val name: String? = null,
18 | val portrait: String? = null,
19 | val tbs: String? = null,
20 | val bduss: String? = null,
21 | val stoken: String? = null,
22 | val baiduId: String? = null
23 | )
24 |
25 | @Dao
26 | interface AccountDao {
27 | @Query("SELECT * FROM Account")
28 | fun getAccounts(): Flow>
29 |
30 | @Query("SELECT * FROM Account WHERE uid = :uid")
31 | fun getAccount(uid: String): Account?
32 |
33 | @Insert(onConflict = OnConflictStrategy.REPLACE)
34 | fun addAccount(account: Account)
35 |
36 | @Delete
37 | fun removeAccount(account: Account)
38 | }
39 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/db/AppDataBase.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.db
2 |
3 | import androidx.room.AutoMigration
4 | import androidx.room.Database
5 | import androidx.room.RoomDatabase
6 |
7 | @Database(
8 | entities = [Account::class, HistoryEntry::class],
9 | version = 3,
10 | exportSchema = true,
11 | autoMigrations = [AutoMigration(from = 1, to = 2), AutoMigration(from = 2, to = 3)]
12 | )
13 | abstract class AppDataBase : RoomDatabase() {
14 | abstract fun accountDao(): AccountDao
15 | abstract fun historyDao(): HistoryDao
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/misc/ContainerBehavior.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.misc
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import android.view.View
6 | import androidx.coordinatorlayout.widget.CoordinatorLayout
7 | import io.github.a13e300.ro_tieba.R
8 |
9 | class ContainerBehavior(context: Context, attrs: AttributeSet) :
10 | CoordinatorLayout.Behavior(context, attrs) {
11 | override fun onMeasureChild(
12 | parent: CoordinatorLayout,
13 | child: View,
14 | parentWidthMeasureSpec: Int,
15 | widthUsed: Int,
16 | parentHeightMeasureSpec: Int,
17 | heightUsed: Int
18 | ): Boolean {
19 | parent.onMeasureChild(
20 | child,
21 | parentWidthMeasureSpec,
22 | widthUsed,
23 | parentHeightMeasureSpec,
24 | heightUsed
25 | )
26 | return true
27 | }
28 |
29 | override fun onLayoutChild(
30 | parent: CoordinatorLayout,
31 | child: View,
32 | layoutDirection: Int
33 | ): Boolean {
34 | parent.onLayoutChild(child, layoutDirection)
35 | child.offsetTopAndBottom(parent.findViewById(R.id.list).top)
36 | return true
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/misc/MyURLSpan.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.misc
2 |
3 | import android.text.TextPaint
4 | import android.text.style.URLSpan
5 |
6 | open class MyURLSpan(url: String) : URLSpan(url) {
7 | var pressed = false
8 | override fun updateDrawState(ds: TextPaint) {
9 | ds.color = ds.linkColor
10 | ds.isUnderlineText = pressed
11 | }
12 | }
13 |
14 | class UserSpan(val uidOrPortrait: String) :
15 | MyURLSpan("rotieba://user/profile?uid_or_portrait=$uidOrPortrait")
16 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/misc/OnPreImeBackPressedListener.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.misc
2 |
3 | import android.view.View
4 |
5 | fun interface OnPreImeBackPressedListener {
6 | fun onBackPressed(view: View): Boolean
7 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/models/Comment.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.models
2 |
3 | import java.util.Date
4 |
5 | data class Comment(
6 | override val user: User,
7 | override val content: List,
8 | override val floor: Int,
9 | val postId: Long,
10 | val tid: Long,
11 | override val time: Date,
12 | val ppid: Long
13 | ) : IPost {
14 | override val id: Long
15 | get() = ppid
16 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/models/Content.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.models
2 |
3 | import android.os.Parcelable
4 | import kotlinx.parcelize.Parcelize
5 |
6 | @Parcelize
7 | sealed class Content : Parcelable {
8 | data class TextContent(val text: String) : Content()
9 | data class ImageContent(
10 | val previewSrc: String,
11 | val src: String,
12 | val width: Int,
13 | val height: Int,
14 | val order: Int,
15 | ) : Content()
16 |
17 | data class EmojiContent(
18 | val id: String
19 | ) : Content()
20 |
21 | data class LinkContent(val text: String, val link: String) : Content()
22 | data class UserContent(val text: String, val uidOrPortrait: String) : Content()
23 |
24 | data class VideoContent(
25 | val src: String,
26 | val previewSrc: String,
27 | val width: Int,
28 | val height: Int,
29 | val duration: Int,
30 | val size: Int,
31 | val text: String
32 | ) : Content()
33 |
34 | data class UnknownContent(
35 | val type: Int,
36 | val text: String,
37 | val source: String
38 | ) : Content()
39 |
40 | }
41 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/models/Forum.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.models
2 |
3 | import io.github.a13e300.ro_tieba.DEFAULT_FORUM_AVATAR
4 | import io.github.a13e300.ro_tieba.api.json.GetFollowForums
5 | import io.github.a13e300.ro_tieba.api.web.SearchForum
6 |
7 | data class Forum(
8 | val name: String,
9 | val id: Long,
10 | val avatarUrl: String = DEFAULT_FORUM_AVATAR,
11 | val desc: String? = null
12 | )
13 |
14 | fun SearchForum.ForumInfo.toForum(): Forum =
15 | Forum(forumName, forumId.toLong(), avatar.ifEmpty { DEFAULT_FORUM_AVATAR }, slogan)
16 |
17 | data class UserForum(
18 | val name: String,
19 | val id: Long,
20 | val avatarUrl: String = DEFAULT_FORUM_AVATAR,
21 | val desc: String? = null,
22 | val levelId: Int
23 | )
24 |
25 | fun GetFollowForums.Forum.toUserForum() = UserForum(
26 | name, id.toLong(), avatar.ifEmpty { DEFAULT_FORUM_AVATAR }, slogan, levelId.toInt()
27 | )
28 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/models/ForumSortType.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.models
2 |
3 | import io.github.a13e300.ro_tieba.api.protobuf.FrsPageSortType
4 | import io.github.a13e300.ro_tieba.api.protobuf.GeneralTabListSortType
5 |
6 | enum class ForumSortType(val frsType: FrsPageSortType, val tabType: GeneralTabListSortType) {
7 | REPLY_TIME(FrsPageSortType.REPLY_TIME, GeneralTabListSortType.REPLY_TIME),
8 | CREATE_TIME(FrsPageSortType.CREATE_TIME, GeneralTabListSortType.CREATE_TIME)
9 | }
10 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/models/ForumTab.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.models
2 |
3 | sealed class ForumTab(open val name: String) {
4 | sealed class PrimaryTab(override val name: String) : ForumTab(name)
5 | data object HotTab : PrimaryTab("热门")
6 | data object LatestTab : PrimaryTab("最新")
7 | data object GoodTab : PrimaryTab("精品")
8 |
9 | data class GeneralTab(
10 | val id: Int,
11 | override val name: String,
12 | val type: Int
13 | ) : ForumTab(name)
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/models/IPost.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.models
2 |
3 | import java.util.Date
4 |
5 | interface IPost {
6 | val user: User
7 | val content: List
8 | val floor: Int
9 | val id: Long
10 | val time: Date
11 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/models/Photo.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.models
2 |
3 | import android.os.Parcelable
4 | import kotlinx.parcelize.Parcelize
5 |
6 | @Parcelize
7 | data class Photo(
8 | val url: String,
9 | val order: Int,
10 | val source: String,
11 | val content: List? = null
12 | ) : Parcelable
13 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/models/Post.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.models
2 |
3 | import java.util.Date
4 |
5 | data class Post(
6 | override val user: User,
7 | override val content: List,
8 | override val floor: Int,
9 | val postId: Long,
10 | val tid: Long,
11 | override val time: Date,
12 | val comments: List,
13 | val commentCount: Int,
14 | val agreeNum: Long = 0,
15 | val disagreeNum: Long = 0,
16 | val page: Int = 0
17 | ) : IPost {
18 | override val id: Long
19 | get() = postId
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/models/PostId.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.models
2 |
3 | sealed class PostId {
4 | abstract val tid: Long
5 | open val pid: Long = 0L
6 | open val spid: Long = 0L
7 |
8 | data class Thread(override val tid: Long) : PostId()
9 | data class Post(override val tid: Long, override val pid: Long) : PostId()
10 | data class Comment(override val tid: Long, override val pid: Long, override val spid: Long) :
11 | PostId()
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/models/Reply.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.models
2 |
3 | import java.util.Date
4 |
5 | data class Reply(
6 | val content: List,
7 | val pid: Long,
8 | val comment: Boolean,
9 | val quota: QuotaInfo?,
10 | val threadId: Long,
11 | val threadTitle: String,
12 | val time: Date,
13 | val forumId: Long,
14 | val forumName: String
15 | ) {
16 | data class QuotaInfo(
17 | val pid: Long,
18 | val uid: Long,
19 | val username: String,
20 | val content: String
21 | )
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/models/SearchedPost.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.models
2 |
3 | import java.util.Date
4 |
5 | data class SearchedPost(
6 | val user: User,
7 | val id: PostId,
8 | val time: Date,
9 | val title: String,
10 | val forum: Forum,
11 | val content: List
12 | )
13 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/models/ThreadType.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.models
2 |
3 | enum class ThreadType {
4 | NORMAL,
5 | HELP
6 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/models/TiebaThread.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.models
2 |
3 | import androidx.recyclerview.widget.DiffUtil
4 | import java.util.Date
5 |
6 | data class TiebaThread(
7 | val tid: Long,
8 | val postId: Long,
9 | val title: String,
10 | val author: User,
11 | val content: List,
12 | val time: Date,
13 | val replyNum: Int,
14 | val isGood: Boolean,
15 | val forum: Forum? = null,
16 | val createTime: Date? = null,
17 | val viewNum: Int = 0,
18 | val agreeNum: Long = 0,
19 | val disagreeNum: Long = 0,
20 | val images: List = emptyList(),
21 | val tabInfo: ForumTab.GeneralTab? = null,
22 | val threadType: ThreadType = ThreadType.NORMAL,
23 | val isTop: Boolean = false
24 | )
25 |
26 | object ThreadComparator : DiffUtil.ItemCallback() {
27 | override fun areItemsTheSame(oldItem: TiebaThread, newItem: TiebaThread): Boolean {
28 | return oldItem.tid == newItem.tid
29 | }
30 |
31 | override fun areContentsTheSame(oldItem: TiebaThread, newItem: TiebaThread): Boolean {
32 | return oldItem == newItem
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/serializer/SearchHistorySerializer.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.serializer
2 |
3 | import androidx.datastore.core.CorruptionException
4 | import androidx.datastore.core.Serializer
5 | import com.google.protobuf.InvalidProtocolBufferException
6 | import io.github.a13e300.ro_tieba.datastore.SearchHistory
7 | import java.io.InputStream
8 | import java.io.OutputStream
9 |
10 | object SearchHistorySerializer :
11 | Serializer {
12 | override val defaultValue: SearchHistory = SearchHistory.getDefaultInstance()
13 |
14 | override suspend fun readFrom(input: InputStream): SearchHistory {
15 | try {
16 | return SearchHistory.parseFrom(input)
17 | } catch (exception: InvalidProtocolBufferException) {
18 | throw CorruptionException("Cannot read proto.", exception)
19 | }
20 | }
21 |
22 | override suspend fun writeTo(
23 | t: SearchHistory,
24 | output: OutputStream
25 | ) = t.writeTo(output)
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/serializer/Settings.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.serializer
2 |
3 | import androidx.datastore.core.CorruptionException
4 | import androidx.datastore.core.Serializer
5 | import com.google.protobuf.InvalidProtocolBufferException
6 | import io.github.a13e300.ro_tieba.datastore.Settings
7 | import java.io.InputStream
8 | import java.io.OutputStream
9 |
10 | object SettingsSerializer : Serializer {
11 | override val defaultValue: Settings = Settings.getDefaultInstance()
12 |
13 | override suspend fun readFrom(input: InputStream): Settings {
14 | try {
15 | return Settings.parseFrom(input)
16 | } catch (exception: InvalidProtocolBufferException) {
17 | throw CorruptionException("Cannot read proto.", exception)
18 | }
19 | }
20 |
21 | override suspend fun writeTo(
22 | t: Settings,
23 | output: OutputStream
24 | ) = t.writeTo(output)
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/ui/HomePageFragment.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.ui
2 |
3 | import android.os.Bundle
4 | import android.view.LayoutInflater
5 | import android.view.View
6 | import android.view.ViewGroup
7 | import androidx.navigation.fragment.NavHostFragment
8 | import androidx.navigation.ui.setupWithNavController
9 | import com.google.android.material.bottomnavigation.BottomNavigationView
10 | import io.github.a13e300.ro_tieba.BaseFragment
11 | import io.github.a13e300.ro_tieba.R
12 | import io.github.a13e300.ro_tieba.databinding.FragmentHomePageBinding
13 |
14 | class HomePageFragment : BaseFragment() {
15 |
16 | override fun onCreateView(
17 | inflater: LayoutInflater, container: ViewGroup?,
18 | savedInstanceState: Bundle?
19 | ): View {
20 | val binding = FragmentHomePageBinding.inflate(inflater, container, false)
21 | val navView: BottomNavigationView = binding.navView
22 |
23 | val navHostFragment =
24 | childFragmentManager.findFragmentById(R.id.nav_host_fragment_homepage) as NavHostFragment
25 | val navController = navHostFragment.navController
26 | navView.setupWithNavController(navController)
27 | return binding.root
28 | }
29 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/ui/dashboard/DashboardViewModel.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.ui.dashboard
2 |
3 | import androidx.lifecycle.LiveData
4 | import androidx.lifecycle.MutableLiveData
5 | import androidx.lifecycle.ViewModel
6 |
7 | class DashboardViewModel : ViewModel() {
8 |
9 | private val _text = MutableLiveData().apply {
10 | value = "WIP"
11 | }
12 | val text: LiveData = _text
13 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/ui/history/HistoryViewModel.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.ui.history
2 |
3 | import androidx.lifecycle.ViewModel
4 | import androidx.lifecycle.viewModelScope
5 | import androidx.paging.Pager
6 | import androidx.paging.PagingConfig
7 | import androidx.paging.cachedIn
8 | import io.github.a13e300.ro_tieba.App
9 |
10 | class HistoryViewModel : ViewModel() {
11 | val flow = Pager(
12 | PagingConfig(pageSize = 30)
13 | ) {
14 | App.instance.db.historyDao().getHistories()
15 | }.flow
16 | .cachedIn(viewModelScope)
17 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/utils/AnimUtils.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.utils
2 |
3 | import android.view.View
4 | import android.view.animation.Animation
5 | import android.view.animation.AnimationUtils
6 | import androidx.core.view.isGone
7 | import io.github.a13e300.ro_tieba.R
8 |
9 | fun View.showAnim(down: Boolean) {
10 | val anim = AnimationUtils.loadAnimation(
11 | context,
12 | if (down) R.anim.slide_in_down else R.anim.slide_in_up
13 | )
14 | isGone = false
15 | startAnimation(anim)
16 | }
17 |
18 | fun View.hideAnim(down: Boolean) {
19 | val anim = AnimationUtils.loadAnimation(
20 | context,
21 | if (down) R.anim.slide_out_down else R.anim.slide_out_up
22 | )
23 | anim.setAnimationListener(object : Animation.AnimationListener {
24 | override fun onAnimationStart(p0: Animation?) {
25 | }
26 |
27 | override fun onAnimationEnd(p0: Animation?) {
28 | isGone = true
29 | }
30 |
31 | override fun onAnimationRepeat(p0: Animation?) {
32 | }
33 | })
34 | startAnimation(anim)
35 | }
36 |
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/view/MySearchView.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.view
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import android.view.KeyEvent
6 | import com.google.android.material.search.SearchView
7 | import io.github.a13e300.ro_tieba.misc.OnPreImeBackPressedListener
8 |
9 | class MySearchView : SearchView {
10 | constructor(context: Context) : super(context)
11 | constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
12 |
13 | override fun dispatchKeyEventPreIme(event: KeyEvent): Boolean {
14 | if (event.action == KeyEvent.ACTION_DOWN && event.keyCode == KeyEvent.KEYCODE_BACK &&
15 | onBackPressedListener?.onBackPressed(this) == true
16 | ) {
17 | return true
18 | }
19 | return super.dispatchKeyEventPreIme(event)
20 | }
21 |
22 | var onBackPressedListener: OnPreImeBackPressedListener? = null
23 | }
--------------------------------------------------------------------------------
/app/src/main/java/io/github/a13e300/ro_tieba/view/PreImeBackInterceptorView.kt:
--------------------------------------------------------------------------------
1 | package io.github.a13e300.ro_tieba.view
2 |
3 | import android.content.Context
4 | import android.util.AttributeSet
5 | import android.view.KeyEvent
6 | import android.widget.FrameLayout
7 | import io.github.a13e300.ro_tieba.misc.OnPreImeBackPressedListener
8 |
9 | class PreImeBackInterceptorView : FrameLayout {
10 | constructor(context: Context) : super(context)
11 | constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
12 |
13 | override fun dispatchKeyEventPreIme(event: KeyEvent): Boolean {
14 | if (event.action == KeyEvent.ACTION_DOWN && event.keyCode == KeyEvent.KEYCODE_BACK &&
15 | onBackPressedListener?.onBackPressed(this) == true
16 | ) {
17 | return true
18 | }
19 | return super.dispatchKeyEventPreIme(event)
20 | }
21 |
22 | var onBackPressedListener: OnPreImeBackPressedListener? = null
23 | }
--------------------------------------------------------------------------------
/app/src/main/protobuf/datastore/SearchHistory.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option java_package = "io.github.a13e300.ro_tieba.datastore";
4 | option java_multiple_files = true;
5 |
6 | message SearchHistory {
7 | message Entry {
8 | string keyword = 1;
9 | }
10 | repeated Entry entries = 1;
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/datastore/Settings.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 |
3 | option java_package = "io.github.a13e300.ro_tieba.datastore";
4 | option java_multiple_files = true;
5 |
6 | message Settings {
7 | string current_account = 1;
8 | bool disable_auto_link = 2;
9 | bool disable_auto_bv = 3;
10 | }
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/Abstract.proto:
--------------------------------------------------------------------------------
1 | // tbclient.Agree
2 | syntax = "proto3";
3 | option java_package = "tbclient";
4 |
5 | message Abstract {
6 | int32 type = 1;
7 | string text = 2;
8 | string link = 3;
9 | string src = 4;
10 | string un = 5;
11 | string during_time = 6;
12 | string voice_md5 = 7;
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/Agree.proto:
--------------------------------------------------------------------------------
1 | // tbclient.Agree
2 | syntax = "proto3";
3 | option java_package = "tbclient";
4 | message Agree {
5 | int64 agree_num = 1;
6 | int64 disagree_num = 4;
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/CommitPersonalMsgReqIdl.proto:
--------------------------------------------------------------------------------
1 | // protobuf.CommitPersonalMsg.CommitPersonalMsgReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.CommitPersonalMsg";
4 | message CommitPersonalMsgReqIdl {
5 | message DataReq {
6 | int64 toUid = 2;
7 | int32 msgType = 3;
8 | string content = 4;
9 | int64 recordId = 6;
10 | }
11 | DataReq data = 1;
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/CommitPersonalMsgResIdl.proto:
--------------------------------------------------------------------------------
1 | // protobuf.CommitPersonalMsg.CommitPersonalMsgResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.CommitPersonalMsg";
4 | import "Error.proto";
5 |
6 | message CommitPersonalMsgResIdl {
7 | Error error = 1;
8 | message DataRes {
9 | int64 msgId = 1;
10 | message BlockInfo {
11 | int32 blockErrno = 1;
12 | string blockErrmsg = 2;
13 | }
14 | BlockInfo blockInfo = 6;
15 | }
16 | DataRes data = 2;
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/CommitReceivedPmsgReqIdl.proto:
--------------------------------------------------------------------------------
1 | // protobuf.CommitReceivedPmsg.CommitReceivedPmsgReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.CommitReceivedPmsg";
4 | message CommitReceivedPmsgReqIdl {
5 | message DataReq {
6 | int64 groupId = 1;
7 | int64 toUid = 2;
8 | int32 msgType = 3;
9 | int64 msgId = 4;
10 | }
11 | DataReq data = 1;
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/CommitReceivedPmsgResIdl.proto:
--------------------------------------------------------------------------------
1 | // protobuf.CommitReceivedPmsg.CommitReceivedPmsgResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.CommitReceivedPmsg";
4 | import "Error.proto";
5 |
6 | message CommitReceivedPmsgResIdl {
7 | Error error = 1;
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/CommonReq.proto:
--------------------------------------------------------------------------------
1 | // tbclient.CommonReq
2 | syntax = "proto3";
3 | option java_package = "tbclient";
4 | message CommonReq {
5 | int32 _client_type = 1;
6 | string _client_version = 2;
7 | string BDUSS = 10;
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/Error.proto:
--------------------------------------------------------------------------------
1 | // tbclient.Error
2 | syntax = "proto3";
3 | option java_package = "tbclient";
4 | message Error {
5 | int32 errorno = 1;
6 | string errmsg = 2;
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/ForumList.proto:
--------------------------------------------------------------------------------
1 | // Not actually exist
2 | syntax = "proto3";
3 | option java_package = "tbclient";
4 | message ForumList {
5 | int64 forum_id = 1;
6 | string forum_name = 2;
7 | int32 member_count = 4;
8 | int64 post_num = 7;
9 | int64 thread_num = 8;
10 | }
11 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/FrsPageReqIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.FrsPage.FrsPageReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.FrsPage";
4 | import "CommonReq.proto";
5 |
6 | message FrsPageReqIdl {
7 | message DataReq {
8 | CommonReq common = 39;
9 | string fname = 1;
10 | int32 rn = 2;
11 | int32 rn_need = 3;
12 | int32 is_good = 4;
13 | int32 cid = 5;
14 | int32 pn = 15;
15 | int32 sort = 47;
16 | }
17 | DataReq data = 1;
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/FrsPageResIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.FrsPage.FrsPageResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.FrsPage";
4 | import "Error.proto";
5 | import "Page.proto";
6 | import "ThreadInfo.proto";
7 | import "User.proto";
8 | import "FrsTabInfo.proto";
9 |
10 | message FrsPageResIdl {
11 | Error error = 1;
12 | message DataRes {
13 | // https://github.com/n0099/tbclient.protobuf/blob/main/proto/FrsPage/ForumInfo.proto
14 | message ForumInfo {
15 | int64 id = 1;
16 | string name = 2;
17 | string avatar = 24;
18 | string slogan = 25;
19 | }
20 | ForumInfo forum = 2;
21 | Page page = 4;
22 | repeated ThreadInfo thread_list = 7;
23 | repeated User user_list = 17;
24 | message NavTabInfo {
25 | repeated FrsTabInfo tab = 1;
26 | }
27 | NavTabInfo nav_tab_info = 37;
28 | }
29 | DataRes data = 2;
30 | }
31 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/FrsTabInfo.proto:
--------------------------------------------------------------------------------
1 | // tbclient.FrsTabInfo
2 | syntax = "proto3";
3 | option java_package = "tbclient";
4 | message FrsTabInfo {
5 | int32 tab_id = 1;
6 | int32 tab_type = 2;
7 | string tab_name = 3;
8 | string tab_url = 4;
9 | string tab_gid = 5;
10 | string tab_title = 6;
11 | int32 is_general_tab = 7;
12 | string tab_code = 8;
13 | uint32 tab_version = 9;
14 | int32 is_default = 10;
15 | int32 need_page = 11;
16 | // TabPic head_pics = 12;
17 | string exposure_monitor_url = 13;
18 | string click_monitor_url = 14;
19 | string demote_url = 15;
20 | int32 is_no_show_publisher = 16;
21 | int32 is_no_show_in_publisher = 17;
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/GeneralTabListReqIdl.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 | option java_package = "tbclient.GeneralTabList";
3 | import "CommonReq.proto";
4 |
5 | message GeneralTabListReqIdl {
6 | message DataReq {
7 | CommonReq common = 1;
8 | int32 tab_id = 2;
9 | int64 forum_id = 3;
10 | int32 pn = 4;
11 | int32 rn = 5;
12 | int32 scr_w = 6;
13 | int32 scr_h = 7;
14 | int32 scr_dip = 8;
15 | int64 last_thread_id = 9;
16 | int32 is_default_navtab = 10;
17 | string tab_name = 11;
18 | int32 is_general_tab = 12;
19 | int32 sort_type = 13;
20 | int32 tab_type = 14;
21 | int32 request_times = 20;
22 | }
23 | DataReq data = 1;
24 | }
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/GeneralTabListResIdl.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 | option java_package = "tbclient.GeneralTabList";
3 | import "Error.proto";
4 | import "ThreadInfo.proto";
5 | import "User.proto";
6 |
7 | message GeneralTabListResIdl {
8 | message DataRes {
9 | repeated ThreadInfo general_list = 1;
10 | int32 has_more = 2;
11 | repeated User user_list = 3;
12 | int32 new_thread_num = 6;
13 | int32 sort_type = 7;
14 | }
15 | Error error = 1;
16 | DataRes data = 2;
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/GetBawuInfoReqIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.GetBawuInfo.GetBawuInfoReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.GetBawuInfo";
4 | import "CommonReq.proto";
5 |
6 | message GetBawuInfoReqIdl {
7 | message DataReq {
8 | CommonReq common = 1;
9 | uint64 fid = 2;
10 | }
11 | DataReq data = 1;
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/GetBawuInfoResIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.GetBawuInfo.GetBawuInfoResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.GetBawuInfo";
4 | import "Error.proto";
5 |
6 | message GetBawuInfoResIdl {
7 | message DataRes {
8 | message BawuTeam {
9 | int32 total_num = 1;
10 | message BawuRoleDes {
11 | string role_name = 1;
12 | message BawuRoleInfoPub {
13 | int64 user_id = 2;
14 | string portrait = 5;
15 | int32 user_level = 6;
16 | string user_name = 8;
17 | string name_show = 9;
18 | }
19 | repeated BawuRoleInfoPub role_info = 2;
20 | }
21 | repeated BawuRoleDes bawu_team_list = 2;
22 | }
23 | BawuTeam bawu_team_info = 1;
24 | }
25 | DataRes data = 1;
26 | Error error = 2;
27 | }
28 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/GetDislikeListReqIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.GetDislikeList.GetDislikeListReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.GetDislikeList";
4 | import "CommonReq.proto";
5 |
6 | message GetDislikeListReqIdl {
7 | message DataReq {
8 | CommonReq common = 1;
9 | int32 pn = 3;
10 | int32 rn = 4;
11 | }
12 | DataReq data = 1;
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/GetDislikeListResIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.GetDislikeList.GetDislikeListResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.GetDislikeList";
4 | import "Error.proto";
5 | import "ForumList.proto";
6 |
7 | message GetDislikeListResIdl {
8 | Error error = 1;
9 | message DataRes {
10 | repeated ForumList forum_list = 1;
11 | int32 has_more = 2;
12 | int32 cur_page = 3;
13 | }
14 | DataRes data = 2;
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/GetForumSquareReqIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.GetForumSquare.GetForumSquareReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.GetForumSquare";
4 | import "CommonReq.proto";
5 |
6 | message GetForumSquareReqIdl {
7 | message DataReq {
8 | CommonReq common = 1;
9 | string class_name = 2;
10 | int32 pn = 3;
11 | int32 rn = 4;
12 | int64 user_id = 5;
13 | }
14 | DataReq data = 1;
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/GetForumSquareResIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.GetForumSquare.GetForumSquareResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.GetForumSquare";
4 | import "Error.proto";
5 | import "Page.proto";
6 |
7 | message GetForumSquareResIdl {
8 | Error error = 1;
9 | message DataRes {
10 | message RecommendForumInfo {
11 | uint64 forum_id = 2;
12 | string forum_name = 3;
13 | uint32 is_like = 4;
14 | uint32 member_count = 5;
15 | uint32 thread_count = 6;
16 | }
17 | repeated RecommendForumInfo forum_info = 2;
18 | Page page = 3;
19 | }
20 | DataRes data = 2;
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/GetGroupMsgReqIdl.proto:
--------------------------------------------------------------------------------
1 | // protobuf.GetGroupMsg.GetGroupMsgReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.GetGroupMsg";
4 | message GetGroupMsgReqIdl {
5 | string cuid = 1;
6 | message DataReq {
7 | message GroupLastId {
8 | int64 groupId = 1;
9 | int64 lastMsgId = 2;
10 | }
11 | repeated GroupLastId groupMids = 6;
12 | string gettype = 7;
13 | }
14 | DataReq data = 2;
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/GetGroupMsgResIdl.proto:
--------------------------------------------------------------------------------
1 | // protobuf.GetGroupMsg.GetGroupMsgResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.GetGroupMsg";
4 | import "Error.proto";
5 |
6 | message GetGroupMsgResIdl {
7 | Error error = 1;
8 | message DataRes {
9 | message GroupMsg {
10 | message GroupInfo {
11 | int64 groupId = 1;
12 | int32 groupType = 20;
13 | }
14 | GroupInfo groupInfo = 1;
15 | message MsgInfo {
16 | int64 msgId = 1;
17 | int32 msgType = 3;
18 | string content = 5;
19 | int32 createTime = 8;
20 | message UserInfo {
21 | int64 userId = 1;
22 | string userName = 2;
23 | string portrait = 4;
24 | // string userNameShow = 18;
25 | }
26 | UserInfo userInfo = 10;
27 | }
28 | repeated MsgInfo msgList = 2;
29 | }
30 | repeated GroupMsg groupInfo = 1;
31 | }
32 | DataRes data = 2;
33 | }
34 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/GetUserByTiebaUidReqIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.GetUserByTiebaUid.GetUserByTiebaUidReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.GetUserByTiebaUid";
4 | import "CommonReq.proto";
5 |
6 | message GetUserByTiebaUidReqIdl {
7 | message DataReq {
8 | CommonReq common = 1;
9 | string tieba_uid = 2;
10 | }
11 | DataReq data = 1;
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/GetUserByTiebaUidResIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.GetUserByTiebaUid.GetUserByTiebaUidResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.GetUserByTiebaUid";
4 | import "Error.proto";
5 | import "User.proto";
6 |
7 | message GetUserByTiebaUidResIdl {
8 | Error error = 1;
9 | message DataRes {
10 | User user = 1;
11 | }
12 | DataRes data = 2;
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/GetUserInfoReqIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.GetUserInfo.GetUserInfoReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.GetUserInfo";
4 | message GetUserInfoReqIdl {
5 | message DataReq {
6 | int64 user_id = 2;
7 | }
8 | DataReq data = 1;
9 | }
10 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/GetUserInfoResIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.GetUserInfo.GetUserInfoResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.GetUserInfo";
4 | import "Error.proto";
5 | import "User.proto";
6 |
7 | message GetUserInfoResIdl {
8 | Error error = 1;
9 | message DataRes {
10 | User user = 1;
11 | }
12 | DataRes data = 2;
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/Media.proto:
--------------------------------------------------------------------------------
1 | // tbclient.Media
2 | syntax = "proto3";
3 | option java_package = "tbclient";
4 | message Media {
5 | int32 type = 1;
6 | string small_pic = 2;
7 | string big_pic = 3;
8 | string water_pic = 4;
9 | string src_pic = 8;
10 | uint32 width = 10;
11 | uint32 height = 11;
12 | string origin_pic = 15;
13 | uint32 origin_size = 16;
14 | }
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/Page.proto:
--------------------------------------------------------------------------------
1 | // tbclient.Page
2 | syntax = "proto3";
3 | option java_package = "tbclient";
4 | message Page {
5 | int32 page_size = 1;
6 | int32 current_page = 3;
7 | int32 total_count = 4;
8 | int32 total_page = 5;
9 | int32 has_more = 6;
10 | int32 has_prev = 7;
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/PbContent.proto:
--------------------------------------------------------------------------------
1 | // tbclient.PbContent
2 | syntax = "proto3";
3 | option java_package = "tbclient";
4 | message PbContent {
5 | uint32 type = 1;
6 | string text = 2;
7 | string link = 3;
8 | string src = 4;
9 | string bsize = 5;
10 | string cdn_src = 8;
11 | string big_cdn_src = 9;
12 | string c = 11;
13 | string voice_md5 = 12;
14 | int64 uid = 15;
15 | uint32 during_time = 13;
16 | uint32 is_sub = 14;
17 | string dynamic = 16;
18 | string _static = 17;
19 | uint32 width = 18;
20 | uint32 height = 19;
21 | string origin_src = 25;
22 | uint32 origin_size = 27;
23 | message TiebaPlusInfo {
24 | string title = 1;
25 | string desc = 2;
26 | string jump_url = 3;
27 | string app_icon = 6;
28 | int32 target_type = 12;
29 | int32 h5_jump_type = 13;
30 | string h5_jump_number = 14;
31 | string h5_jump_param = 15;
32 | int32 jump_type = 16;
33 | string button_desc = 23;
34 | }
35 | TiebaPlusInfo tiebaplus_info = 40;
36 | message Item {
37 | string item_name = 2;
38 | }
39 | Item item = 41;
40 | }
41 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/PbFloorReqIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.PbFloor.PbFloorReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.PbFloor";
4 | import "CommonReq.proto";
5 |
6 | message PbFloorReqIdl {
7 | message DataReq {
8 | CommonReq common = 9;
9 | int64 tid = 1;
10 | int64 pid = 2;
11 | int64 spid = 3;
12 | int32 pn = 4;
13 | }
14 | DataReq data = 1;
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/PbFloorResIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.PbFloor.PbFloorResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.PbFloor";
4 | import "Error.proto";
5 | import "SimpleForum.proto";
6 | import "Page.proto";
7 | import "Post.proto";
8 | import "ThreadInfo.proto";
9 | import "SubPostList.proto";
10 |
11 | message PbFloorResIdl {
12 | Error error = 1;
13 | message DataRes {
14 | Page page = 1;
15 | Post post = 3;
16 | repeated SubPostList subpost_list = 4;
17 | ThreadInfo thread = 5;
18 | SimpleForum forum = 6;
19 | }
20 | DataRes data = 2;
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/PbPageReqIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.PbPage.PbPageReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.PbPage";
4 | import "CommonReq.proto";
5 |
6 | message PbPageReqIdl {
7 | message DataReq {
8 | CommonReq common = 25;
9 | int64 tid = 4;
10 | int32 only_thread_author = 5;
11 | int32 sort = 6;
12 | int64 pid = 7;
13 | int32 with_comments = 8;
14 | int32 comment_rn = 9;
15 | int32 rn = 13;
16 | int32 pn = 18;
17 | int32 comment_sort_by_agree = 74;
18 | int32 is_fold = 78;
19 | }
20 | DataReq data = 1;
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/PbPageResIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.PbPage.PbPageResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.PbPage";
4 | import "Error.proto";
5 | import "SimpleForum.proto";
6 | import "Page.proto";
7 | import "Post.proto";
8 | import "ThreadInfo.proto";
9 | import "User.proto";
10 |
11 | message PbPageResIdl {
12 | Error error = 1;
13 | message DataRes {
14 | SimpleForum forum = 2;
15 | Page page = 3;
16 | repeated Post post_list = 6;
17 | ThreadInfo thread = 8;
18 | repeated User user_list = 13;
19 | int32 has_fold_comment = 68;
20 | }
21 | DataRes data = 2;
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/PollInfo.proto:
--------------------------------------------------------------------------------
1 | // tbclient.PollInfo
2 | syntax = "proto3";
3 | option java_package = "tbclient";
4 | message PollInfo {
5 | int32 is_multi = 2;
6 | int64 total_num = 3;
7 | message PollOption {
8 | int64 num = 2;
9 | string text = 3;
10 | }
11 | repeated PollOption options = 9;
12 | int64 total_poll = 11;
13 | string title = 12;
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/Post.proto:
--------------------------------------------------------------------------------
1 | // tbclient.Post
2 | syntax = "proto3";
3 | option java_package = "tbclient";
4 | import "PbContent.proto";
5 | import "SubPostList.proto";
6 | import "User.proto";
7 | import "Agree.proto";
8 | import "SimpleForum.proto";
9 |
10 | message Post {
11 | int64 id = 1;
12 | uint32 floor = 3;
13 | uint32 time = 4;
14 | repeated PbContent content = 5;
15 | uint32 sub_post_number = 13;
16 | int64 author_id = 19;
17 | message SubPost {
18 | repeated SubPostList sub_post_list = 2;
19 | }
20 | SubPost sub_post_list = 15;
21 | message SignatureData {
22 | message SignatureContent {
23 | int32 type = 1;
24 | string text = 2;
25 | }
26 | repeated SignatureContent content = 4;
27 | }
28 | SignatureData signature = 21;
29 | User author = 23;
30 | Agree agree = 37;
31 | SimpleForum from_forum = 38;
32 | int64 tid = 46;
33 | message CustomFigure {
34 | string background_value = 3;
35 | }
36 | CustomFigure custom_figure = 60;
37 | message CustomState {
38 | string content = 2;
39 | }
40 | CustomState custom_state = 61;
41 | }
42 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/PostInfoList.proto:
--------------------------------------------------------------------------------
1 | // tbclient.PostInfoList
2 | syntax = "proto3";
3 | option java_package = "tbclient";
4 | import "Media.proto";
5 | import "PollInfo.proto";
6 | import "PbContent.proto";
7 | import "Agree.proto";
8 |
9 | message PostInfoList {
10 | uint64 forum_id = 1;
11 | uint64 thread_id = 2;
12 | uint64 post_id = 3;
13 | uint32 create_time = 5;
14 | string forum_name = 6;
15 | string title = 7;
16 | message PostInfoContent {
17 | repeated PbContent post_content = 1;
18 | uint64 create_time = 2;
19 | uint64 post_type = 3;
20 | uint64 post_id = 4;
21 | }
22 | repeated PostInfoContent content = 8;
23 | string user_name = 10;
24 | repeated Media media = 16;
25 | uint32 reply_num = 17;
26 | int64 user_id = 18;
27 | string user_portrait = 19;
28 | uint64 thread_type = 26;
29 | PollInfo poll_info = 28;
30 | int32 freq_num = 33;
31 | string name_show = 35;
32 | int32 share_num = 39;
33 | Agree agree = 40;
34 | int32 is_share_thread = 44;
35 | repeated PbContent first_post_content = 49;
36 | }
37 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/ProfileReqIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.Profile.ProfileReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.Profile";
4 | import "CommonReq.proto";
5 |
6 | message ProfileReqIdl {
7 | message DataReq {
8 | int64 uid = 1;
9 | uint32 need_post_count = 2;
10 | uint32 pn = 6;
11 | CommonReq common = 9;
12 | int32 page = 15;
13 | string friend_uid_portrait = 16;
14 | }
15 | DataReq data = 1;
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/ProfileResIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.Profile.ProfileResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.Profile";
4 | import "Error.proto";
5 | import "User.proto";
6 | import "PostInfoList.proto";
7 |
8 | message ProfileResIdl {
9 | Error error = 1;
10 | message DataRes {
11 | User user = 1;
12 | message Anti {
13 | int32 block_stat = 6;
14 | int32 hide_stat = 7;
15 | int32 days_tofree = 9;
16 | }
17 | Anti anti_stat = 2;
18 | repeated PostInfoList post_list = 4;
19 | }
20 | DataRes data = 2;
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/PushNotifyResIdl.proto:
--------------------------------------------------------------------------------
1 | // protobuf.PushNotify.PushNotifyResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.PushNotify";
4 | message PushNotifyResIdl {
5 | message PusherMsg {
6 | message PusherMsgInfo {
7 | int64 groupId = 1;
8 | int64 msgId = 2;
9 | int32 type = 4;
10 | string et = 6;
11 | int32 groupType = 7;
12 | }
13 | PusherMsgInfo data = 2;
14 | }
15 | repeated PusherMsg multiMsg = 2;
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/ReplyMeReqIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.ReplyMe.ReplyMeReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.ReplyMe";
4 | import "CommonReq.proto";
5 |
6 | message ReplyMeReqIdl {
7 | message DataReq {
8 | string pn = 1;
9 | CommonReq common = 3;
10 | }
11 | DataReq data = 1;
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/ReplyMeResIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.ReplyMe.ReplyMeResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.ReplyMe";
4 | import "Error.proto";
5 | import "Page.proto";
6 | import "User.proto";
7 |
8 | message ReplyMeResIdl {
9 | Error error = 1;
10 | message DataRes {
11 | Page page = 1;
12 | message ReplyList {
13 | uint64 thread_id = 1;
14 | uint64 post_id = 2;
15 | uint32 time = 3;
16 | string fname = 5;
17 | string content = 6;
18 | uint32 is_floor = 7;
19 | string quote_content = 8;
20 | User replyer = 9;
21 | uint64 quote_pid = 14;
22 | User quote_user = 15;
23 | User thread_author_user = 25;
24 | }
25 | repeated ReplyList reply_list = 2;
26 | }
27 | DataRes data = 2;
28 | }
29 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/SearchPostForumReqIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.SearchPostForum.SearchPostForumReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.SearchPostForum";
4 | import "CommonReq.proto";
5 |
6 | message SearchPostForumReqIdl {
7 | message DataReq {
8 | CommonReq common = 1;
9 | string fname = 2;
10 | }
11 | DataReq data = 1;
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/SearchPostForumResIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.SearchPostForum.SearchPostForumResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.SearchPostForum";
4 | import "Error.proto";
5 | import "FrsTabInfo.proto";
6 |
7 | message SearchPostForumResIdl {
8 | Error error = 1;
9 | message DataRes {
10 | message SearchForum {
11 | int64 forum_id = 1;
12 | string forum_name = 2;
13 | repeated FrsTabInfo tab_info = 9;
14 | }
15 | SearchForum exact_match = 1;
16 | }
17 | DataRes data = 2;
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/SimpleForum.proto:
--------------------------------------------------------------------------------
1 | // tbclient.SimpleForum
2 | syntax = "proto3";
3 | option java_package = "tbclient";
4 | message SimpleForum {
5 | int64 id = 1;
6 | string name = 2;
7 | string avatar = 4;
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/SubPostList.proto:
--------------------------------------------------------------------------------
1 | // tbclient.SubPost
2 | syntax = "proto3";
3 | option java_package = "tbclient";
4 | import "PbContent.proto";
5 | import "User.proto";
6 | import "Agree.proto";
7 |
8 | message SubPostList {
9 | int64 id = 1;
10 | repeated PbContent content = 2;
11 | uint32 time = 3;
12 | int64 author_id = 4;
13 | string title = 5;
14 | uint32 floor = 6;
15 | User author = 7;
16 | Agree agree = 9;
17 | }
18 |
19 | message SubPost {
20 | uint64 pid = 1;
21 | repeated SubPostList sub_post_list = 2;
22 | }
23 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/UpdateClientInfoReqIdl.proto:
--------------------------------------------------------------------------------
1 | // protobuf.UpdateClientInfo.UpdateClientInfoReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.UpdateClientInfo";
4 | message UpdateClientInfoReqIdl {
5 | string cuid = 1;
6 | message DataReq {
7 | string bduss = 1;
8 | string device = 2;
9 | bytes secretKey = 3;
10 | string stoken = 12;
11 | }
12 | DataReq data = 2;
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/UpdateClientInfoResIdl.proto:
--------------------------------------------------------------------------------
1 | // protobuf.UpdateClientInfo.UpdateClientInfoResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.UpdateClientInfo";
4 | import "Error.proto";
5 |
6 | message UpdateClientInfoResIdl {
7 | Error error = 1;
8 | message DataRes {
9 | message GroupInfo {
10 | int64 groupId = 1;
11 | int32 groupType = 20;
12 | int64 lastMsgId = 21;
13 | }
14 | repeated GroupInfo groupInfo = 1;
15 | }
16 | DataRes data = 2;
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/UserPostReqIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.UserPost.UserPostReqIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.UserPost";
4 | import "CommonReq.proto";
5 |
6 | message UserPostReqIdl {
7 | message DataReq {
8 | int64 user_id = 1;
9 | uint32 rn = 2;
10 | uint32 is_thread = 4;
11 | uint32 need_content = 5;
12 | uint32 pn = 26;
13 | int32 is_view_card = 33;
14 | CommonReq common = 27;
15 | }
16 | DataReq data = 1;
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/protobuf/tbclient/UserPostResIdl.proto:
--------------------------------------------------------------------------------
1 | // tbclient.UserPost.UserPostResIdl
2 | syntax = "proto3";
3 | option java_package = "tbclient.UserPost";
4 | import "Error.proto";
5 | import "PostInfoList.proto";
6 |
7 | message UserPostResIdl {
8 | Error error = 1;
9 | message DataRes {
10 | repeated PostInfoList post_list = 1;
11 | }
12 | DataRes data = 2;
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/fade_enter_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/fade_exit_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/fade_pop_enter_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/fade_pop_exit_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/nav_default_enter_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/nav_default_exit_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/nav_default_pop_enter_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/nav_default_pop_exit_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/slide_in_down.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
8 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/slide_in_up.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
8 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/slide_out_down.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
8 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/slide_out_up.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
8 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/background.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/background_with_divider.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -
5 |
6 |
7 |
8 |
9 |
10 | -
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_01.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_01.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_02.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_02.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_03.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_03.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_04.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_04.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_05.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_05.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_06.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_06.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_07.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_07.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_08.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_08.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_09.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_09.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_10.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_10.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_11.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_11.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_12.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_12.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_13.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_13.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_14.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_14.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_15.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_15.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_16.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_16.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_17.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_17.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_18.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_18.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_19.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_19.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_bearchildren_20.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_bearchildren_20.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon10.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon100.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon101.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon101.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon102.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon102.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon103.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon103.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon104.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon104.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon105.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon105.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon106.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon106.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon107.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon107.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon108.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon108.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon109.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon109.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon11.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon110.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon110.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon111.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon111.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon112.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon112.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon113.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon113.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon114.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon115.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon115.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon116.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon116.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon117.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon117.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon118.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon118.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon119.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon119.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon12.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon120.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon120.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon121.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon121.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon122.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon122.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon123.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon123.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon124.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon124.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon125.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon126.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon126.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon127.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon127.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon128.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon129.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon129.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon13.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon130.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon130.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon131.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon131.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon132.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon132.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon133.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon133.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon134.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon134.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon135.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon135.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon136.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon136.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon137.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon137.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon14.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon15.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon16.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon17.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon18.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon19.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon2.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon20.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon21.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon21.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon22.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon22.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon23.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon23.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon24.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon25.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon25.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon26.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon26.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon27.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon27.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon28.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon28.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon29.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon3.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon30.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon30.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon31.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon31.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon32.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon33.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon33.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon34.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon34.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon35.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon35.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon36.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon36.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon37.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon37.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon38.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon38.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon39.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon39.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon4.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon40.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon41.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon41.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon42.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon42.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon43.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon43.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon44.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon44.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon45.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon45.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon46.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon46.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon47.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon47.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon48.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon49.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon49.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon5.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon50.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon6.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon61.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon61.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon62.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon62.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon63.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon63.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon64.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon65.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon65.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon66.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon66.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon67.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon67.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon68.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon68.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon69.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon69.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon7.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon70.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon70.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon71.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon71.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon72.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon73.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon73.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon74.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon74.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon75.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon75.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon76.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon77.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon77.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon78.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon78.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon79.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon79.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon8.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon80.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon81.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon81.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon82.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon82.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon83.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon83.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon84.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon84.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon85.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon85.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon86.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon86.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon87.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon87.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon88.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon88.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon89.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon89.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon9.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon90.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon90.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon91.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon91.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon92.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon92.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon93.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon93.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon94.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon94.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon95.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon95.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon96.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon97.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon97.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon98.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon98.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_image_emoticon99.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_image_emoticon99.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_01.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_01.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_02.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_02.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_03.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_03.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_04.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_04.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_05.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_05.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_06.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_06.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_07.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_07.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_08.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_08.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_09.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_09.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_10.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_10.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_100.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_100.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_101.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_101.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_102.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_102.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_103.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_103.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_104.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_104.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_105.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_105.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_106.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_106.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_11.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_11.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_12.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_12.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_13.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_13.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_14.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_14.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_15.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_15.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_16.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_16.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_17.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_17.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_18.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_18.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_19.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_19.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_20.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_20.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_21.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_21.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_22.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_22.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_23.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_23.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_24.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_24.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_25.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_25.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_26.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_26.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_27.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_27.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_28.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_28.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_29.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_29.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_30.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_30.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_31.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_31.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_32.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_32.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_33.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_33.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_34.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_34.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_35.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_35.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_36.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_36.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_37.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_37.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_38.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_38.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_39.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_39.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_40.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_40.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_41.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_41.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_42.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_42.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_43.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_43.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_44.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_44.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_45.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_45.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_46.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_46.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_47.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_47.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_48.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_48.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_49.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_49.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_50.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_50.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_51.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_51.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_52.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_52.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_53.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_53.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_54.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_54.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_55.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_55.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_56.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_56.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_57.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_57.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_58.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_58.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_59.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_59.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_60.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_60.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_61.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_61.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_62.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_62.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_63.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_63.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_64.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_65.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_65.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_66.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_66.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_67.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_67.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_68.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_68.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_69.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_69.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_70.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_70.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_71.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_71.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_72.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_72.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_73.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_73.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_74.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_74.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_75.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_75.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_76.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_76.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_77.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_77.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_78.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_78.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_79.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_79.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_80.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_80.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_81.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_81.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_82.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_82.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_83.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_83.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_84.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_84.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_85.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_85.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_86.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_86.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_87.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_87.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_88.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_88.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_89.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_89.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_90.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_90.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_91.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_91.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_92.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_92.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_93.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_93.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_94.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_94.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_95.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_95.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_96.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_96.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_97.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_97.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_98.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_98.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/emoji_shoubai_emoji_face_99.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/app/src/main/res/drawable/emoji_shoubai_emoji_face_99.webp
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_account.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_add.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_agree.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_back.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_comment.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_copy.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_dashboard_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_delete.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_disagree.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_down.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_download.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_error.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_history.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_home_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_idea.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_info.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_input.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_jump.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_link.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_location.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_notifications_black_24dp.xml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_ok.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_open.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_paste.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_refresh.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_search.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_see.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_settings.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_share.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_sort.xml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_time.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
13 |
14 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/ic_up.xml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_main.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_search.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_thread.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_detail.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_detail_item_content.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_detail_item_title.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/dialog_login_method.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
16 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_dashboard.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_login.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
16 |
21 |
22 |
23 |
28 |
29 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_profile_followed_forums.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
14 |
15 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_profile_reply.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
14 |
15 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_profile_threads.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
14 |
15 |
24 |
25 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_search_post_load_state.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
17 |
18 |
26 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_search_result.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
23 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_search_user.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
23 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_thread_comment_preview.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_thread_header.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
20 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/image_content.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/thread_list_footer.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
16 |
17 |
25 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/video_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
15 |
16 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/account_item_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/accounts_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/bottom_nav_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/comment_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/forum_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/forum_sort_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/history_item_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/history_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/home_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/photo_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/profile_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/search_order_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/thread_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/navigation/home_page_navigation.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
19 |
20 |
24 |
--------------------------------------------------------------------------------
/app/src/main/res/values-night/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #30000000
4 |
--------------------------------------------------------------------------------
/app/src/main/res/values-v31/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | @android:color/system_accent1_50
4 | @android:color/system_neutral2_700
5 |
--------------------------------------------------------------------------------
/app/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 | 16dp
6 | 16sp
7 | 25sp
8 | 5sp
9 | 10dp
10 | 8dp
11 |
--------------------------------------------------------------------------------
/app/src/main/res/values/ic_launcher_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #CFE5FF
4 | #001D33
5 |
--------------------------------------------------------------------------------
/app/src/main/res/values/ids.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/values/integers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 300
4 |
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
12 |
13 |
16 |
17 |
20 |
21 |
27 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/backup_rules.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/data_extraction_rules.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
12 |
13 |
19 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/file_paths.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/xml/preference.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
8 |
12 |
17 |
22 |
26 |
--------------------------------------------------------------------------------
/build.gradle.kts:
--------------------------------------------------------------------------------
1 | import java.io.ByteArrayOutputStream
2 |
3 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
4 | plugins {
5 | alias(libs.plugins.com.android.application) apply false
6 | alias(libs.plugins.org.jetbrains.kotlin.android) apply false
7 | }
8 |
9 | fun String.execute(currentWorkingDir: File = file("./")): String {
10 | val byteOut = ByteArrayOutputStream()
11 | project.exec {
12 | workingDir = currentWorkingDir
13 | commandLine = split("\\s".toRegex())
14 | standardOutput = byteOut
15 | }
16 | return String(byteOut.toByteArray()).trim()
17 | }
18 |
19 | val gitCommitCount = "git rev-list HEAD --count".execute().toInt()
20 | val gitCommitHash = "git rev-parse --verify --short HEAD".execute()
21 |
22 | val verCode by extra(1)
23 | val verName by extra("1.0-v$verCode-g$gitCommitCount-$gitCommitHash")
24 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/5ec1cff/RoTieba/fef58fb35cc9949be45b7e8e8d486420d99f4ee8/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed May 10 10:00:56 CST 2023
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
5 | zipStoreBase=GRADLE_USER_HOME
6 | zipStorePath=wrapper/dists
7 |
--------------------------------------------------------------------------------
/settings.gradle.kts:
--------------------------------------------------------------------------------
1 | pluginManagement {
2 | repositories {
3 | google()
4 | mavenCentral()
5 | gradlePluginPortal()
6 | }
7 | }
8 | dependencyResolutionManagement {
9 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
10 | repositories {
11 | google()
12 | mavenCentral()
13 | }
14 | }
15 |
16 | rootProject.name = "RoTieba"
17 | include(":app")
18 |
--------------------------------------------------------------------------------